2013-11-24 97 views
0

我正在嘗試爲5x5網格中的匹配遊戲創建一個類。用戶將根據行號和列號選擇範圍。我花了最近幾個小時試圖弄清楚如何設置它,並且我認爲它應該是一個集合或者一個具有x,y座標的元組列表。我可以做得到一組生成的座標列表:在Python中創建匹配遊戲

board = set((x,y) 
     for x in range(5) 
     for y in range(5)) 

我無法弄清楚如何真正變成一個可行的板這雖然。我試圖用匹配的值創建一個「真實的棋盤」,以及一個只有X的「顯示」棋盤,直到用戶獲得匹配,然後真實值將顯示在棋盤上。

因此理想情況下,應該有一個板,看起來像

X X X X X 
X X X X X 
X X X X X 
X X X X X 
X X X X X 

,另一個隨機對:

A M F H I 
C D B J E 
G I F A C 
D J G H L 
K E L B M 
+0

也許你應該嘗試一個4x5板,或5×6板?由於5x5棋盤上有奇數個位置,這很難用_匹配對來填充。 –

回答

1

也許有更好的方式來表示主板是使用字典:

board = {} 
for x in range(5): 
    for y in range(5): 
     board[x, y] = 'X' 

您可以通過執行以下操作來更新字符:board[3, 4] = 'D'

你甚至可以使用指定板dictionary comprehension

board = {(x, y): 'X' for x in range(5) for y in range(5)} 
+0

這似乎比列表解決方案簡單一些。就更新角色而言,我知道我需要用隨機值生成第二個表格,它是我的指導原則的一部分,以及用戶輸入網格上的座標以顯示元素。我是否會像上面所做的那樣做同樣的事情,但是添加一個while循環來隨機添加變量達2次?即使在弄清楚之後,我如何才能使網格與座標相符? – Swolerosis

1

我會用列表的列表做到這一點:

board = [] 

def initializeBoard(board): 
    for i in range(5): 
     board.append([]) 
    for l in board: 
     for i in range(5): 
      l.append('X') 

def printBoard(board): 
    for l in board: 
     for e in l: 
      print e, 
     print 


initializeBoard(board) 
board[0][1] = 'A' # To access an element   
printBoard(board) 

>>> 
X A X X X 
X X X X X 
X X X X X 
X X X X X 
X X X X X