Создаю игру «Крестики-нолики», но ход второго игрока пропускается, если он делает неправильный ход в заполненной строке.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Создаю игру «Крестики-нолики», но ход второго игрока пропускается, если он делает неправильный ход в заполненной строке.

Сообщение Anonymous »

Во-первых, я все еще новичок в программировании, поэтому, пожалуйста, не ругайте меня за то, что я что-то делаю неправильно. Все в коде — это то, чему я научился на уроках.
Итак, я создал игру «Крестики-нолики», и, как сказано в названии, ход второго игрока пропускается, если весь строка заполняется на доске.
Основная часть кода:

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

print("This is Tic-Tac-Toe, play this with a friend")
TicTacToe = [["-", "-", "-"],
["-", "-", "-"],
["-", "-", "-"]]

for row in TicTacToe:
print(row[0],row[1],row[2])

while True:
Player = input("Which row do you want to go; T = top, M = middle, or B = bottom?\n")

if Player not in ["top", "Top", "T", "t", "middle", "Middle", "M", "m", "bottom", "Bottom", "B", "b"]:
print("Wrong input, I'm afraid you are going to have to actually write what you were told to.")
continue

# These are the moves of the player, starting with Player One.

if Player == "top" or Player == "Top" or Player == "T" or Player == "t":
while True:
Movement = input("Where do you want to go, L = left, M = middle or R = right?\n")
# Checks if the movement after the player chose their option is in check
if Movement not in ["left", "Left", "L", "l", "Middle", "middle", "M", "m", "right", "Right", "R", "r"]:
print("That is not one of the options you are allowed to write, please write the options listed.")
continue

if Movement == "left" or Movement == "Left" or Movement == "L" or Movement == "l":
if TicTacToe[0][0] == "-":
TicTacToe[0][0] = "X"
break
else:
print("A move has already been placed there!")

# Now it is the beginning of Player Two's turn

while True:
Player2 = input("Now it's your turn Player Two; T = top, M = middle, or B = bottom?\n")

# This is what happens if Player Two does not input the options originally listed

if Player2 not in ["top", "Top", "T", "t", "middle", "Middle", "M", "m", "bottom", "Bottom", "B", "b"]:
print("Wrong input, I'm afraid you are going to have to actually write what you were told to.")
continue

# Moves of Player Two

if Player2 == "top" or Player2 == "Top" or Player2 == "T" or Player2 == "t":
while True:
Movement = input("Where do you want to go, L = left, M = middle or R = right?\n")
# Checks if the movement after the player chose their option is in check
if Movement not in ["left", "Left", "L", "l", "Middle", "middle", "M", "m", "right", "Right", "R", "r"]:
print("That is not one of the options you are allowed to write, please write the options listed.")
continue

if Movement == "left" or Movement == "Left" or Movement == "L" or Movement == "l":
if TicTacToe[0][0] == "-":
TicTacToe[0][0] = "O"
break
else:
print("A move has already been placed there!")
break
Итак, в этом блоке кода для второго игрока, а также других подобных ему, я вместо этого попытался заменить разрыв под тегом else на оператор continue, думая, что он будет зацикливаться на исходный вопрос: «Теперь твоя очередь, второй игрок; T = верхний, M = средний или B = нижний?».
Блок кода:

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

                if Movement == "left" or Movement == "Left" or Movement == "L"  or Movement == "l":
if TicTacToe[0][0] == "-":
TicTacToe[0][0] = "O"
break
else:
print("A move has already been placed there!")
break
Измененный блок кода:

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

                if Movement == "left" or Movement == "Left" or Movement == "L" or Movement == "l":
if TicTacToe[0][0] == "-":
TicTacToe[0][0] = "O"
break
else:
print("A move has already been placed there!")
continue
Вместо этого он возвращается к переменной «Движение», которая мягко блокирует второго игрока, поскольку строка полностью заполнена.
Если кто-нибудь знает, как это сделать чтобы это исправить, пожалуйста, объясните, почему мой метод не работает, а также как работает новый метод.

Подробнее здесь: https://stackoverflow.com/questions/783 ... oes-a-wron
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Я пытаюсь написать игру «Крестики-нолики», но столкнулся с такой проблемой.
    Гость » » в форуме Python
    0 Ответы
    57 Просмотры
    Последнее сообщение Гость
  • Оптимальный алгоритм определения того, кто выиграл игру в крестики-нолики
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Оптимальный алгоритм определения того, кто выиграл игру в крестики-нолики
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Проблема с расчетом выигрыша, когда компьютер выигрывает в моем приложении «Крестики-нолики»
    Гость » » в форуме IOS
    0 Ответы
    74 Просмотры
    Последнее сообщение Гость
  • Проблема с отображением «X» при первом клике в игре «Крестики-нолики»
    Anonymous » » в форуме CSS
    0 Ответы
    58 Просмотры
    Последнее сообщение Anonymous

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