I've made a 5x5 matrix game, consisting of 25 0's. Player 1 can change any 0 to a 1 and player 2 can change any 0 to a 2.
I'm just having trouble figuring out how to validate the positions on the board so that if a player has already placed their number, they need to input a different number which space hasn't been taken.
For example:
Player 1 | Please enter a number between 1-25: 3
0 0 3 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Player 2 | Please enter a number between 1-25: 3
This position is already taken! Please enter a different position:
Also, how would I program the game to determine if there are no longer any 0's on the board? As it will then be a draw.
Code:
def player1_turn():
player1_option = int(input("Player 1 | Please enter a number between 1-25: "))
if player1_option <= 0:
print("You can only enter a number between 1 and 25")
player1_turn()
elif player1_option > 25:
print("You can only enter a number between 1 and 25")
player1_turn()
player1 = (player1_option - 1) #Counter-acts the elements from starting at 0
grid[int(player1) // 5][int(player1) % 5] = 1 #places a 1 in inputted position
for row in grid: #for each row in the grid
print(*row, sep=" ")
print()
for y in range(0,4):
for x in range(0,4):
if grid[y][x] == grid[y][x+1] == grid[y+1][x] == grid[y+1][x+1] >0: #if there is a 2x2 of same number in grid:
print("Player",grid[y][x],"has won!")
exit()