Можно ли как-нибудь сократить этот код? [закрыто]Python

Программы на Python
Гость
Можно ли как-нибудь сократить этот код? [закрыто]

Сообщение Гость »


I'm making a code that would allow the player to make the player choose the slot for the the tic tac toe game. I just need to shorten the code because a lot of it looks repetitive. There is a lot more code I want to add to my file and It's a lot easier to scroll less than 400 lines of code. I have used this block 4 times total because I cannot figure out a way to make this code less.

Код: Выделить всё

while True:
player1 = input("Player 1, where do you want to place your X?\n")
if player1 == "1":
if s1 == " ":
s1 = "X"
print_board(s1, s2, s3, s4, s5, s6, s7, s8, s9)
break
else:
print("That square is already taken. Please choose another square.")
continue
elif player1 == "2":
if s2 == " ":
s2 = "X"
print_board(s1, s2, s3, s4, s5, s6, s7, s8, s9)
break
else:
print("That square is already taken. Please choose another square.")
continue
elif player1 == "3":
if s3 == " ":
s3 = "X"
print_board(s1, s2, s3, s4, s5, s6, s7, s8, s9)
break
else:
print("That square is already taken. Please choose another square.")
continue
elif player1 == "4":
if s4 == " ":
s4 = "X"
print_board(s1, s2, s3, s4, s5, s6, s7, s8, s9)
break
else:
print("That square is already taken. Please choose another square.")
continue
elif player1 == "5":
if s5 == " ":
s5 = "X"
print_board(s1, s2, s3, s4, s5, s6, s7, s8, s9)
break
else:
print("That square is already taken. Please choose another square.")
continue
elif player1 == "6":
if s6 == " ":
s6 = "X"
print_board(s1, s2, s3, s4, s5, s6, s7, s8, s9)
break
else:
print("That square is already taken. Please choose another square.")
continue
elif player1 == "7":
if s7 == " ":
s7 = "X"
print_board(s1, s2, s3, s4, s5, s6, s7, s8, s9)
break
else:
print("That square is already taken. Please choose another square.")
continue
elif player1 == "8":
if s8 == " ":
s8 = "X"
print_board(s1, s2, s3, s4, s5, s6, s7, s8, s9)
break
else:
print("That square is already taken. Please choose another square.")
continue
elif player1 == "9":
if s9 == " ":
s9 = "X"
print_board(s1, s2, s3, s4, s5, s6, s7, s8, s9)
break
else:
print("That square is already taken. Please choose another square.")
continue
else:
print("Invalid input")
continue
I tried to use functions but they can't contain 'break' or 'continue' statements for the loop.


Источник: https://stackoverflow.com/questions/781 ... -this-code

Вернуться в «Python»