详细请看 Github: github.com/shanhuijie.
five in a row (五子棋成功判断)
从横、纵、 左斜升、 左斜降 四个角度判断
欢迎探讨
package fiveinarow
import(
"sort"
"math"
)
const(
Vertical = 100
Level = 100
matrix = Vertical * Level
point = 4
)
type Coordinat struct{
X int
Y int
Color string
}
type Allinat struct{
Key []Coordinat
}
func InArray(need Coordinat, needArr []Coordinat) bool {
for _,v := range needArr{
if v == need {
return true
}
}
return false
}
func inverted(tmp []int) bool { //倒序检查
var i int
for k := len(tmp)-1; k>=0;k--{
if k == 0{ //最后一个下标说明无法对比
return false
}
if tmp[k]-1 == tmp[k]{ //说明值是连续数字
i++
if i == point{ //如果达到连续数就返回
return true
}
}else{
i = 0
}
}
return false
}
func postive(tmp []int) (bool,int) { //正序检查
var i int
for ck, cv := range tmp {
if ck == len(tmp)-1{ //最后一个下标说明无法对比
return false,-1
}
if cv+1 == tmp[ck+1] { //说明值是连续数字
i++
if i == point{