Aug-15-2017, 04:28 PM
I'm making a two player noughts and crosses game, and when player one wins, it asks player two to make a move before ending the game. I don't know how to get it to end the game straight away if player 1 wins. Also, at the end of the code, I'm not sure how to get the code to restart or end depending on the user's input. Any help, please?
grid = [1, 2, 3, 4, 5, 6, 7, 8, 9] gridSave = [1, 2, 3, 4, 5, 6, 7, 8, 9] gameRun = True def show(): # creates the gameplay grid print(grid[0], '|', grid[1], '|', grid[2]) print('----------') print(grid[3], '|', grid[4], '|', grid[5]) print('----------') print(grid[6], '|', grid[7], '|', grid[8]) def checkX(): # checks if player 1 (X) has a line gameRun = True if grid[0] == 'X' and grid[1] == 'X' and grid[2] == 'X': print("Player one wins!") gameRun = False if grid[3] == 'X' and grid[4] == 'X' and grid[5] == 'X': print("Player one wins!") gameRun = False if grid[6] == 'X' and grid[7] == 'X' and grid[8] == 'X': print("Player one wins!") gameRun = False if grid[0] == 'X' and grid[3] == 'X' and grid[6] == 'X': print("Player one wins!") gameRun = False if grid[1] == 'X' and grid[4] == 'X' and grid[7] == 'X': print("Player one wins!") gameRun = False if grid[2] == 'X' and grid[5] == 'X' and grid[8] == 'X': print("Player one wins!") gameRun = False if grid[0] == 'X' and grid[4] == 'X' and grid[8] == 'X': print("Player one wins!") gameRun = False if grid[2] == 'X' and grid[4] == 'X' and grid[6] == 'X': print("Player one wins!") gameRun = False return gameRun def checkY(): # checks if player 2 (Y) has a line gameRun = True if grid[0] == 'Y' and grid[1] == 'Y' and grid[2] == 'Y': print("Player one wins!") gameRun = False if grid[3] == 'Y' and grid[4] == 'Y' and grid[5] == 'Y': print("Player one wins!") gameRun = False if grid[6] == 'Y' and grid[7] == 'Y' and grid[8] == 'Y': print("Player one wins!") gameRun = False if grid[0] == 'Y' and grid[3] == 'Y' and grid[6] == 'Y': print("Player one wins!") gameRun = False if grid[1] == 'Y' and grid[4] == 'Y' and grid[7] == 'Y': print("Player one wins!") gameRun = False if grid[2] == 'Y' and grid[5] == 'Y' and grid[8] == 'Y': print("Player one wins!") gameRun = False if grid[0] == 'Y' and grid[4] == 'Y' and grid[8] == 'Y': print("Player one wins!") gameRun = False if grid[2] == 'Y' and grid[4] == 'Y' and grid[6] == 'Y': print("Player one wins!") gameRun = False return gameRun show() while gameRun == True: # main game inputX = input("Player one, please select a spot: ") inputX = (int(inputX) - 1) if grid[inputX] != 'X' and grid[inputX] != 'O': grid[inputX] = 'X' else: print("This space is taken!") gameRun = checkX() show() inputY = input("Player two, please select a spot: ") inputY = (int(inputY) - 1) if grid[inputY] != 'X' and grid[inputY] != 'O': grid[inputY] = 'O' else: print("This space is taken!") show() gameRun = checkX() if gameRun == False: playAgain = input("The game is now finished! Play again? (Y/N)") if playAgain == 'Y': gameRun = True if playAgain == 'N': print("Goodbye!")