2016-11-18 12 views
-1

, wie ich einen Punktezähler auf diese Tic Tac Toe-Spiel fügen Sie:Tic Tac Toe für python3

i müssen in der Lage sein Punktzahl der Tic Tac Toe Spiele zu halten, so dass die Benutzer (es ist ein 2-Spieler-Spiel) kann veränderbare Spiele hintereinander spielen und das Programm wird Punkte für sie behalten. Das Programm unten erlaubt den Benutzern bereits, weiter zu spielen, so dass sie mehrere Spiele hintereinander spielen können, aber das Programm nicht den Punktestand des Spielers verfolgt x und o oder die Anzahl der Krawatten. wie ich diesem hinzufügen, so dass es Spieler X gewinnt Tablett wird, Spieler o der Siege, und die Anzahl an Verbindungen

def drawboard(board): 
    print(' | |') 
    print(' ' + str(board[7]) + ' | ' +str(board[8]) + ' | ' + str(board[9])) 
    print(' | |') 
    print('-----------') 
    print(' | |') 
    print(' ' + str(board[4]) + ' | ' + str(board[5]) + ' | ' + str(board[6])) 
    print(' | |') 
    print('-----------') 
    print(' | |') 
    print(' ' + str(board[1]) + ' | ' + str(board[2]) + ' | ' + str(board[3])) 
    print(' | |') 
def draw(board): 
    print(board[7], board[8], board[9]) 
    print(board[4], board[5], board[6]) 
    print(board[1], board[2], board[3]) 
    print() 
def t(board): 
    while True: 
      try: 
        x = int(input()) 
        if x in board: 
          return x 
        else: 
          print("\nSpace already taken. Try again") 
      except ValueError: 
        print("\nThat's not a number. enter a space 1-9") 
def GO(win,board): 
    for x, o, b in win: 
      if board[x] == board[o] == board[b]: 
        print("Player {0} wins!\n".format(board[x])) 
        print("Congratulations!\n") 
        return True 
    if 9 == sum((pos == 'X' or pos == 'O') for pos in board): 
      print("The game ends in a tie\n") 
      return True 
def tic_tac_toe(): 
    board = [None] + list(range(1, 10)) 
    win = [(1, 2, 3),(4, 5, 6),(7, 8, 9),(1, 4, 7),(2, 5, 8),(3, 6, 9),(1, 5, 9),(3, 5, 7),] 
    for player in 'XO' * 9: 
      drawboard(board) 
      if GO(win,board): 
        break 
      print("Player {0}".format(player)) 
      board[t(board)] = player 
      print() 
def main(): 
    while True: 
      tic_tac_toe() 
      if input("Play again (y/n)\n") != "y": 
        break 
main() 

Antwort

0

Sehen, dass der Code schon ein bisschen chaotisch ist und immer noch ohne Antwort, würde ich eine schnelle vorschlagen & schmutzige Lösung.

Sie können eine globale Variable außerhalb aller Funktionen definieren, wie:

scoreboard = {"X": 0, "O": 0, "T": 0} 

Dann erhöhen Sie einfach die Noten in Ihrer GO Funktion.

def GO(win,board): 
    for x, o, b in win: 
     if board[x] == board[o] == board[b]: 
      print("Player {0} wins!\n".format(board[x])) 
      print("Congratulations!\n") 
      scoreboard[board[x]] += 1 
      return True 
    if 9 == sum((pos == 'X' or pos == 'O') for pos in board): 
     print("The game ends in a tie\n") 
     scoreboard["T"] += 1 
     return True 

und drucken Sie nur die Noten von scoreboard wo immer Sie wollen.

Ich würde jedoch empfehlen zu lernen, wie Sie Ihren Code lesbarer machen. Es wird Ihnen helfen, schwierigere Programme einfacher zu schreiben. Es wird helfen, schnelle und schmutzige Lösungen wie diese zu vermeiden und viele schwierige Dinge ohne viel Aufwand an Ort und Stelle zu bringen.

In jedem Fall, Glückwunsch, ein funktionierendes TTT-Spiel zu schreiben, weiter so :)