我正在製作一個棋盤遊戲,其中每個斑點都是一個按鈕。除了我想要檢測勝利之外,一切工作都應該如此。我的板子高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]]
任何幫助表示讚賞!感謝您的時間!
這是一個定義如何贏的可怕方式。你應該定義更多動態的東西 –