Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 08.04.2022
Сообщений: 1

Не корректно работает ничья в коде, как исправить?

08.04.2022, 14:33. Показов 583. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Когда доходит до ничьей, переменная v несколько раз просит сделать выбор, как сделать так, чтобы выбор можно было сделать только раз при ничьей?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def game(sets):
    for i in range(3):
        v = str(input("Выберите камень, ножницы или бумагу: "))
        print(f"Выбор компьютера: {sets}")
        if v == "Камень" and sets =="Ножницы":
            print("Вы победили в этом раунде")
        elif v == "Камень" and sets =="Бумага":
            print("Вы проиграли в этом раунде")
        elif v == "Камень" and sets =="Камень":
            print("В этом раунде ничья, переиграйте его.")
            v = str(input("Выберите камень, ножницы или бумагу: "))
        elif v == "Ножницы" and sets =="Бумага":
            print("Вы победили в этом раунде")
        elif v == "Ножницы" and sets =="Камень":
            print("Вы проиграли в этом раунде")
        elif v == "Ножницы" and sets =="Ножницы":
            print("В этом раунде ничья, переиграйте его.")
            v = str(input("Выберите камень, ножницы или бумагу: "))
        elif v == "Бумага" and sets =="Камень":
            print("Вы победили в этом раунде")
        elif v == "Бумага" and sets =="Ножницы":
            print("Вы проиграли в этом раунде")
        elif v == "Бумага" and sets =="Бумага":
            print("В этом раунде ничья, переиграйте его.")
            v = str(input("Выберите камень, ножницы или бумагу: "))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.04.2022, 14:33
Ответы с готовыми решениями:

Исправить ошибку в коде (Программа не корректно работает с ру языком)
всем привет программа работает на eng языке а вот на Русском проблемы она оставляет одну букву хотя должа захватывать её для переноса в...

Подскажите как исправить ошибку в коде, чтобы корректно выводило графики
У меня был пример кода как построить график с 2 отрезков, а мне нужно 3 отрезков как на скриншоте, пробовал переделать код, но постоянно...

Запрос не всегда корректно работает. Как исправить?
Есть такие, упрощённо, таблицы: CREATE TABLE dbo.DataTable ( CityId uniqueidentifier NOT NULL, CompanyId uniqueidentifier NOT...

1
 Аватар для __ALPHA__
302 / 160 / 87
Регистрация: 16.04.2018
Сообщений: 239
08.04.2022, 16:12
В вашем коде компьютер все три раунда будет выбирать одно и то же - врятли так задумано. И логичнее было бы в переменной sets хранить количество раундов в игре, а не выбор компьютера. А что бы при ничьей раунд повторялся, надо for заменить на while. Еще надо создать переменную, запоминающую у кого сколько побед, что бы по итогам игры вывести победителя. Вводимое слово так же можно преобразовать в слово с большой буквы. Кстати, три условия на ничью можно заменить одним условием.
Вот код, который всё это учитывает:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import random
 
def game(sets):
    раунд = 1
    win_player = 0 #побед игрока
    win_computer = 0 #побед компьютера
    while раунд <= sets:
        print(f'Раунд {раунд}')
        
        v = str(input("Выберите камень, ножницы или бумагу: "))
        v = v.title() #слово будет с заглавной буквы
 
        rnd = random.randint(0, 2) #число от 0 до 2
        #0 соответствует камню
        #1 соответствует ножницам
        #2 соответствует бумаге
        computer = ['Камень','Ножницы','Бумага'][rnd] #выбор компьютера
        
        print(f"Выбор компьютера: {computer}")
        if v == "Камень" and computer =="Ножницы":
            print("Вы победили в этом раунде")
            win_player += 1
        elif v == "Камень" and computer =="Бумага":
            print("Вы проиграли в этом раунде")
            win_computer += 1
        elif v == "Ножницы" and computer =="Бумага":
            print("Вы победили в этом раунде")
            win_player += 1
        elif v == "Ножницы" and computer =="Камень":
            print("Вы проиграли в этом раунде")
            win_computer += 1
        elif v == "Бумага" and computer =="Камень":
            print("Вы победили в этом раунде")
            win_player += 1
        elif v == "Бумага" and computer =="Ножницы":
            print("Вы проиграли в этом раунде")
            win_computer += 1
        elif v == computer: #ничья
            print("В этом раунде ничья, переиграйте его.")
            continue
        раунд += 1
        
    if win_player > win_computer:
        print('Итог игры: игрок победил')
    elif win_player < win_computer:
        print('Итог игры: компьютер победил')
    else:
        print('Итог игры: ничья')
game(3)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.04.2022, 16:12
Помогаю со студенческими работами здесь

Условие макроса сравнение дат и времени работает не корректно.Как это исправить?
Sub Макрос_1() For i = 5 To Sheets(&quot;Ввод Данных&quot;).Range(&quot;A&quot; &amp; Rows.Count).End(xlUp).Row If Sheets(&quot;Ввод...

Дано натуральное число: верно ли, что данное число делится на А,В и С. Не корректно работает, как исправить?
#include&lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;Rus&quot;); int x; cout &lt;&lt; &quot;Введите число x:...

Admin panel не правильно работает из-за ошибки в models.py Разобрался где в коде ошибка но как исправить её?
from django.db import models # Create your models here. from django.urls import reverse # Used to generate urls by reversing the...

Не корректно отображаются события. Как исправить?
Здравствуйте. Подскажите, как исправить косяк с выводом событий за текущий месяц. Обнаружил его на этапе завершения и честно говоря...

Массив, как исправить, чтоб работало корректно?
Написала.. Но сказали переделать. Вот условие: Дан прямоугольный массив А. Получить номера строк, элементы которых расположены в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru