我正在制作一个棋盘游戏,其中每个斑点都是一个按钮。除了我想要检测胜利之外,一切工作都应该如此。我的板子高5个,宽4个。所以20个按钮。他们的名字是这样的:如何检查我的游戏阵列阵列
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
16 17 18 19
我做了一个包含所有可能胜利的数组数组。按钮上有一些图片,你必须连续获取三张图片。这里是我的数组阵列的胜利
// horizontal wins
var winList: [[Int]] = [ [0,1,2], [1,2,3],
[4,5,6], [5,6,7],
[8,9,10], [9,10,11],
[12,13,14], [13,14,15],
[16,17,18], [17,18,19],
// vertical wins
[0,4,8], [4,8,12], [8,12,16],
[1,5,9], [5,9,13], [9,13,17],
[2,6,10], [6,10,14], [10,14,18],
[3,7,11], [7,11,15], [11,15,19],
// right diagonal wins
[2,5,8], [3,6,9], [6,9,12],
[7,10,13], [10,13,16], [11,14,17],
// left diagonal wins
[1,6,11], [0,5,10], [5,10,15],
[4,9,14], [9,14,19], [8,13,18]]
我有一个名为checkForWin
的空函数。我该如何检查是否有任何标题按钮与winList中的某个模式相匹配。为了获胜,他们都应该在按钮上有相同的图像。
我之前在法律上采取了类似的行动。我有一个数组的数组。这里是我的函数之前:
func checkIfValidMove(moveFromButton: UIButton, moveToButton: UIButton) -> Bool {
var moveFromButtonTitle = moveFromButton.currentTitle
var moveToButtonTitle = moveToButton.currentTitle
var moveFromButtonTitleInt = moveFromButtonTitle?.toInt()
var moveToButtonTitleInt = moveToButtonTitle?.toInt()
if moveToButton.imageView!.image != UIImage(named:"NoPiece.png") {
return false
} else {
if contains(moveList[moveFromButtonTitleInt!], moveToButtonTitleInt!) {
return true
} else {
return false
}
}
}
这里是我的合法举动变量:
var moveList: [[Int]] = [ [1,4], [0,2,5], [1,3,6], [2,7],
[0,5,8], [1,4,6,9], [2,5,7,10], [3,6,11],
[4,9,12], [5,8,10,13], [6,9,11,14], [7,10,15],
[8,13,16], [9,12,14,17], [10,13,15,18], [11,14,19],
[12,17], [13,16,18], [14,17,19], [15,18]]
任何帮助表示赞赏!感谢您的时间!
这是一个定义如何赢的可怕方式。你应该定义更多动态的东西 –