/
connectfour.go
42 lines (34 loc) · 858 Bytes
/
connectfour.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package stupidconnectfour
import (
"math/rand"
"github.com/moul/bolosseum/bots"
"github.com/moul/bolosseum/stupid-ias"
)
var Rows = 6
var Cols = 7
type ConnectfourStupidIA struct {
stupidias.StupidIA
}
func NewIA() (*ConnectfourStupidIA, error) {
return &ConnectfourStupidIA{}, nil
}
func (ia *ConnectfourStupidIA) Init(message bots.QuestionMessage) *bots.ReplyMessage {
return &bots.ReplyMessage{
Name: "ConnectFour StupidIA",
}
}
func (ia *ConnectfourStupidIA) PlayTurn(question bots.QuestionMessage) *bots.ReplyMessage {
availableMoves := []int{}
board := question.Board.([][]string)
for x := 0; x < Cols; x++ {
for y := 0; y < Rows; y++ {
if board[y][x] == "" {
availableMoves = append(availableMoves, x)
break
}
}
}
return &bots.ReplyMessage{
Play: float64(availableMoves[rand.Intn(len(availableMoves))]),
}
}