2016-05-18 16 views
1

Ich muss ein Othello Spielbrett machen und ich frage mich, wie Sie es machen, damit es das Brett richtig druckt. Dies ist mein Code im Moment.Drucken eines 2D Spielbretts

import collections 

NONE = 0 
BLACK = 'B' 
WHITE = 'W' 

BOARD_COLUMNS = int(input('How many board columns? ')) 
BOARD_ROWS = int(input('How many board rows? ')) 

class OthelloGameState: 

    def _new_game_board() -> [[int]]: 

     board = [] 

     for col in range(BOARD_COLUMNS): 
      board.append([]) 
      for row in range(BOARD_ROWS): 
       board[-1].append(NONE) 
     return board 

    print (_new_game_board()) 

verwenden ich den Druck zu sehen, was das Brett aussieht und es kam wie:

[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] , [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

Wie würde ich es so machen, dass es so sein soll, wie es sein soll?

Antwort

1
import pprint 

board = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] 
pprint.pprint(board) 

Ausgänge:

[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] 

Prüfen Sie den vollständigen Durchlauf des oben aus: https://ideone.com/6buCwM

0

Vielleicht möchten Sie Ihr Board eine Zustandsgröße der OthelloGameState Klasse machen. Auf diese Weise können Sie das aktualisieren und Ihre _new_game_board() Methode füllt nur das mit der richtigen Größe von Zeilen und Spalten.

Dann können Sie die Antwort von Copy and Paste verwenden, um das Board zu drucken (oder Ihre eigene Methode, wenn Sie es ohne die geschweiften Klammern anzeigen möchten).

def print_board(board): 
    for col in range(BOARD_COLUMNS): 
     print(' '.join([row for row in range(BOARD_ROWS)])) 

Python print() Methode wird nicht formatiert werden an alle ausgegeben, so dass Sie selbst tun müssen.

https://ideone.com/bNxew0 für ein funktionierendes Beispiel