然后根据下面的表,给值,每下一步判断一次
棋型名称 棋型模式 估值
活四 ?AAAA? 300000
死四A AAAA? 2500
死四B AAA?A 3000
死四C AA?AA 2600
活三 ??AAA?? 3000
死三A AAA?? 500
死三B ?A?AA? 800
死三C A??AA 600
死三D A?A?A 550
活二 ???AA??? 650
死二A AA??? 150
死二B ??A?A?? 250
死二C ?A??A? 200
代码挺长的,没什么看的意义,自己琢磨一下这个就写了
不懂得继续问
objectMainextendsApp{varreverse_pairs = 0//逆序数
defmsort[T](cmp:(T, T) =>Boolean)(l:List[T]):List[T] = {
defmerge(l1:List[T], l2:List[T]):List[T]=(l1, l2)match{
case(Nil, _) =>l2
case(_, Nil) =>l1
case(x::left1, y::left2) =>
if(cmp(x, y))
x::merge(left1, l2)
else{
reverse_pairs += l1.length
y::merge(l1, left2)
}
}
valn = l.length / 2
if(n == 0)
return l
else{
val(l1, l2) = l.splitAt(n)
merge(msort(cmp)(l1), msort(cmp)(l2))
}
}
println(msort((x:Int, y:Int) =>x<y)(List(5, 4, 3, 2, 7,6 )))
println(reverse_pairs)
}
我有个简单的思路: 先定义一条线上棋子的各种布局,比如初步定义长度为五个子 ◎◎◎◎● ◎◎●◎× ◎●◎×× ◎×◎×◎ 等等。白圈是自己的子,黑圈是对方的子,叉子是未走的格子。 程序里有个布局表,再定义各个布局的分数,比如连五最99分,连三30分等等。 ...