Таким образом, в основном задача, которую я пытаюсь выполнить, - это создать игру connect 4, используя python и текстовое кодирование, чтобы напечатать игровую доску connect 4. В настоящее время я закончил создание доски и позволил игроку вставить жетон (O) в первый ряд игрового поля. Тем не менее, я не могу позволить игроку размещать счетчики в любой из вышеперечисленных строк, поскольку данные «O» хранятся в той переменной, которая должна быть, но затем однажды возвращаются к своей исходной переменной. l oop перезапускается на второй ход. В настоящее время я еще не разработал ни одного противника или игрока 2 для игры, так как эта проблема ставит меня в тупик. Я пробовал разные методы, такие как создание разных циклов, прерывание l oop в определенных областях и некоторые другие методы, которые, как я думал, могли бы решить проблему, но пока ничего не помогло. Вот код, о котором я говорю:
place2 = " "
place3 = " "
place4 = " "
place5 = " "
place6 = " "
place7 = " "
place8 = " "
place9 = " "
place10 = " "
place11 = " "
place12 = " "
place13 = " "
place14 = " "
place15 = " "
place16 = " "
place17 = " "
place18 = " "
place19 = " "
place20 = " "
place21 = " "
place22 = " "
place23 = " "
place24 = " "
place25 = " "
print("This is connect 4. You have to connect 4 tokens on the board before your opponent")
print("""
| {20} | {21} | {22} | {23} | {24} |
|---|---|---|---|---|
| {15} | {16} | {17} | {18} | {19} |
|---|---|---|---|---|
| {10} | {11} | {12} | {13} | {14} |
|---|---|---|---|---|
| {5} | {6} | {7} | {8} | {9} |
|---|---|---|---|---|
| {0} | {1} | {2} | {3} | {4} |
|---|---|---|---|---|
| A | B | C | D | E |
""".format(place1, place2, place3, place4, place5, place6, place7, place8, place9, place10, place11, place12, place13, place14, place15, place16, place17, place18, place19, place20, place21, place22, place23, place24, place25))
while True:
place = input("Pick a slot to put your token in; A, B, C, D or E: ")
if place.casefold() == "a":
place1 = "O"
elif place.casefold() == "b":
place2 = "O"
elif place.casefold() == "c":
place3 = "O"
elif place.casefold() == "d":
place4 = "O"
elif place.casefold() == "e":
place5 = "O"
else:
print("That's not an option, select again")
if place5 == "O":
place10 = "O"
elif place10 == "O":
place15 = "O"
elif place15 == "O":
place20 = "O"
elif place20 == "O":
place25 == "O"
print("You placed your token in the " + str(place).upper() + " column")
print("""
| {20} | {21} | {22} | {23} | {24} |
|---|---|---|---|---|
| {15} | {16} | {17} | {18} | {19} |
|---|---|---|---|---|
| {10} | {11} | {12} | {13} | {14} |
|---|---|---|---|---|
| {5} | {6} | {7} | {8} | {9} |
|---|---|---|---|---|
| {0} | {1} | {2} | {3} | {4} |
|---|---|---|---|---|
| A | B | C | D | E |
""".format(place1, place2, place3, place4, place5, place6, place7, place8, place9, place10, place11, place12, place13, place14, placee15, place16, place17, place18, place19, place20, place21, place22, place23, place24, place25))
Этот код немного грязный, так как это мой первый год, когда я использую кодирование в качестве темы. Я решил сначала проверить код в столбце «e», однако всякий раз, когда игрок вводит «e», код отображает «O» в местах 5 и 10. Я подозреваю, что это может быть связано с тем, что код говорит что если place5 = "O", то place10 также = "O". Есть ли способ постоянно хранить «O» вместо переменных, и есть ли правильный способ сделать так, чтобы, если токен находился в месте ввода, токен был помещен над ним?