В программе создается ненужный бесконечный цикл, из за этого программа перестает функционировать

ConderKanS

Новичок
Пользователь
Май 18, 2020
4
0
1
Я недавно начал заниматься Python'ом и одной из первых моих программ стала маленькая игра камень-ножницы-бумага в которой и случилась ошибка в виде ненужного бесконечного цикла, из за которого программа перестает работать.
Операционная система: Windows
Версия Pytnon: 2.7
Использую: random
Вот код:




import random

ComputerScore1 = 0
ComputerScore2 = 0

player1 = 0
player2 = 0

comp1 = 0
comp2 = 0

chiter = 0

part = int(input("Сколько раундов будет?"))

while ComputerScore1 < part or ComputerScore2 < part:
player1 = random.randint(1,3)
if player1 == 1:
comp1 = "камень"
elif player1 == 2:
comp1 = "ножницы"
elif player1 == 3:
comp1 = "бумага"
elif player2 == 1:
comp2 = "камень"
elif player2 == 2:
comp2 = "ножницы"
elif player2 == 3:
comp2 = "бумага"
if comp1 == "камень":
chiter = "бумага"
ComputerScore2 += 1
elif comp1 == "ножницы":
chiter = "камень"
ComputerScore2 += 1
elif comp1 == "бумага":
chiter = "ножницы"
ComputerScore2 += 1

if ComputerScore1 <= part:
print("Победил первый бот")
elif ComputerScore2 <= part:
print("Победил второй бот")
 

Insomnia78

Пользователь
Пользователь
Май 3, 2020
20
9
3
Сделать в while условие раундом(While rounds) и каждый раз уменьшать rounds. Player2 вообще никак не задается. Зачем вообще так делать замудрено?
 

Insomnia78

Пользователь
Пользователь
Май 3, 2020
20
9
3
from random import choice
rounds = int(input('Введите кол-во раудов '))
choices = ['камень','ножницы','бумага']
player_score=0
bot_score=0
while rounds:
player_choise = input('камень/ножницы/бумага ')
bot_choise = choice(choices)
if player_choise == 'камень' and bot_choise == 'ножницы':
player_score+=1
rounds-=1
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Я недавно начал заниматься Python'ом и одной из первых моих программ стала маленькая игра камень-ножницы-бумага в которой и случилась ошибка в виде ненужного бесконечного цикла, из за которого программа перестает работать.
Код вставляйте через кнопку вставить -> код -> python.
Вот пример без бесконечного цикла:
Python:
import random


player1 = 0
player2 = 0

part = int(input("Сколько раундов будет? "))

choices = ['камень', 'ножницы', 'бумага']
rules = {'камень': 'ножницы', 'ножницы': 'бумага', 'бумага': 'камень'}
count = 1

while part > 0:
    print('-' * 30)
    print('Раунд', count)
    print('-' * 30)
    x1 = random.choice(choices)
    print('Первый игрок:', x1)
    x2 = random.choice(choices)
    print('Второй игрок:', x2)

    if rules[x1] == x2:
        player1 += 1
        print('Первый игрок выигрывает раунд')
    elif rules[x2] == x1:
        player2 += 1
        print('Второй игрок выигрывает раунд')
    else:
        print('Результат раунда - ничья')           

    print('Счет', player1, ':', player2)
    part -= 1
    count += 1

if player1 > player2:
    print('-' * 30)
    print("Победил первый игрок")
    print('-' * 30)
elif player1 < player2:
    print('-' * 30)
    print("Победил второй игрок")
    print('-' * 30)
else:
    print('-' * 30)
    print('Ничья')
    print('-' * 30)
 

Форум IT Специалистов