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!")
