golang 在golang bbop
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 在golang bbop相关的知识,希望对你有一定的参考价值。
package la0c
import (
"math/rand"
"strconv"
"strings"
)
const (
ANSWER = "ビ,ビ,ッ,ド,レ,ッ,ド,・,オ,ペ,レ,ー,ショ,ン"
MATERIAL = "ビ,ビ,ド,レ,ド,オ,ペ,レ,ショ"
)
type bbopResult struct {
Result string `json:"result"`
MatchCount int `json:"match_count"`
}
func TryBBOP(seed string) bbopResult {
answerArray := strings.Split(ANSWER, ",")
baseArray := strings.Split(ANSWER, ",")
materialArray := strings.Split(MATERIAL, ",")
for i, ans := range answerArray {
switch ans {
case "ッ", "・", "ー", "ン":
continue
default:
if i, err := strconv.ParseInt(seed, 10, 64); err == nil {
rand.Seed(i)
}
index := rand.Intn(9)
baseArray[i] = materialArray[index]
}
}
return bbopResult{
Result: strings.Join(baseArray, ""),
MatchCount: CalcMatchCount(baseArray),
}
}
func CalcMatchCount(result []string) int {
answerArray := strings.Split(ANSWER, ",")
count := 0
for i, ans := range answerArray {
switch ans {
case "ッ", "・", "ー", "ン":
continue
default:
if result[i] == ans {
count++
}
}
}
return count
}
golang 在GoLang中测试bcrypt
///usr/bin/env go run "$0" "$@"; exit;
package main
import (
"fmt"
"os"
"golang.org/x/crypto/bcrypt"
)
func main() {
if len(os.Args) == 1 {
println("Usage: crypto.go <word to be encrypted>")
os.Exit(1)
}
p := []byte(os.Args[1])
h, err := bcrypt.GenerateFromPassword(p, 0)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(h))
if err := bcrypt.CompareHashAndPassword(h, p); err != nil {
fmt.Println(err)
os.Exit(1)
}
}
以上是关于golang 在golang bbop的主要内容,如果未能解决你的问题,请参考以下文章
ruby mikutter_bbop_plugin.rb
请教关于在golang中怎么使用进程的问题
golang使用成本高
Golang入门到项目实战 第一个golang应用
Golang 入门
如何在golang使用自定义的包