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

Зациклить игру Камень, Ножницы, Бумага

29.04.2023, 17:47. Показов 1369. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как сделать так, что-бы после выйгрыша/проигрыша/ничьей, программа не останавливалась, а заново просила пользователя ввести камень, ножницы или бумагу
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
import random
 
player_name = input("введите ваше имя: ")
ab = ["камень", "ножницы", "бумага"]
 
a = random.choice(ab)
 
player_input = input("введите: камень, ножницы, бумага: ").strip()
 
if player_input not in ("камень" , "ножницы" , "бумага"):
    raise ValueError(f'не знаю такого знака: {player_input}')
 
print("компьютер выбирает значение...")
 
player_conclusion = print(f"компьютер выбрал {a}" " " f"вы выбрали {player_input}" )
 
if (a == "ножницы") and (player_input == "ножницы") or (a == "камень") and (player_input == "камень") or (a == "бумага") and (player_input == "бумага"):
    print("ничья")
 
if (a == "ножницы") and (player_input == "бумага") or (a == "камень") and (player_input == "ножницы") or (a == "бумага") and (player_input == "камень"):
    print("выйграл компьютер")
 
if (a == "камень") and (player_input == "бумага") or (a == "бумага") and (player_input == "ножницы") or (a == "ножницы") and (player_input == "камень"):
    print(f"выйграл {player_name}")
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.04.2023, 17:47
Ответы с готовыми решениями:

Делал игру "камень ножницы бумага", но в конце программа не считает счёт, хотя условие для увеличение переменной выполне
import random w = 0 m = 0 int(w) int(m) def game(): w = 0

Камень ножницы бумага
Полина и Алина играют в "Камень-ножницы-бумага", кто проиграет, тот моет посуду. Если ничья, то посуду моет Полина, потому что она младше. ...

Камень-ножницы-бумага
Здравствуйте, задали написать простейшую игру на питоне, я выбрал камень,ножницы,бумага. Все в принципе я сделал, но вот цикл не...

7
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,316
29.04.2023, 17:59
строки 17, 20 23 нужно переделать потому как (a == "ножницы") - переизбыток скобок и не факт, что сработает как задумано))
0
 Аватар для Semen-Semenich
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
29.04.2023, 18:03
Лучший ответ Сообщение было отмечено sizam как решение

Решение

sizam, изучи цикл while
0
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,316
29.04.2023, 18:07
Цитата Сообщение от sizam Посмотреть сообщение
player_conclusion = print(f"компьютер выбрал {a}" " " f"вы выбрали {player_input}" )
и эф строки заодно
должно быть так:
Python
1
print(f"то что нужно")
0
2 / 2 / 0
Регистрация: 29.04.2023
Сообщений: 12
29.04.2023, 18:13  [ТС]
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
import random
 
while True:
 
    player_name = input("введите ваше имя: ")
    ab = ["камень", "ножницы", "бумага"]
 
    a = random.choice(ab)
 
    player_input = input("введите: камень, ножницы, бумага: ").strip()
 
    if player_input not in ("камень" , "ножницы" , "бумага"):
        raise ValueError(f'не знаю такого знака: {player_input}')
 
    print("компьютер выбирает значение...")
 
    player_conclusion = print(f"компьютер выбрал {a}" " " f"вы выбрали {player_input}" )
 
    if a == "ножницы" and player_input == "ножницы" or a == "камень" and player_input == "камень" or a == "бумага" and player_input == "бумага":
        print("ничья")
 
    if a == "ножницы" and player_input == "бумага" or a == "камень" and player_input == "ножницы" or a == "бумага" and player_input == "камень":
        print("выйграл компьютер")
 
    if a == "камень" and player_input == "бумага" or a == "бумага" and player_input == "ножницы" or a == "ножницы" and player_input == "камень":
        print(f"выйграл {player_name}")
0
 Аватар для TimutGin
515 / 339 / 146
Регистрация: 16.02.2021
Сообщений: 626
29.04.2023, 18:16
sizam,
Python
1
if (a == player_input): print("ничья")
1
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
29.04.2023, 18:50
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
import random
ab = {3:"камень", 2:"ножницы", 1:"бумага"}
player_name = input("введите ваше имя: ")
while True :
   player_input = input("введите: камень, ножницы, бумага: ")
   player_var=0
   for key in ab:
      if ab[key]==player_input:
         player_var=key
   if player_var==0:
      raise ValueError(f'не знаю такого варианта: {player_input}') 
 
   print("компьютер выбирает значение...")
   computer_var = random.choice(range(1,4))
   print(f"компьютер выбрал {ab[computer_var]}, {player_name} выбрал {player_input}" )
 
   if player_var==computer_var:
      print("ничья")
   elif player_var - computer_var==1 or player_var - computer_var==-2 :
      print(f"{player_name} выиграл")
   else :
      print("компьютер выиграл")
   if input("продолжим да/нет?")!="да":
      break
0
4 / 3 / 1
Регистрация: 25.12.2022
Сообщений: 20
29.04.2023, 21:30
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import random
 
ELEMENTS = ["камень", "ножницы", "бумага"]
 
while True:
    print(f"Выберите елементы из предложенных {ELEMENTS}")
    elementUser = input("\nЯ выберу пожалуй...\n")
    elementComputer = random.choice(ELEMENTS)
    print(f"Компьютер выбрал "{elementComputer}"\n")
    if elementComputer == "бумага" and elementUser == "ножницы" or elementComputer == "ножницы" and elementUser == "камень" or elementComputer == "камень" and elementComputer == "бумага":
        print("\nвыйграл человек")
 
    elif elementComputer == "ножницы" and elementUser == "бумага" or elementComputer == "камень" and elementUser == "ножницы" or elementComputer == "бумага" and elementUser == "камень":
        print("\nвыйграл компьютер")
    
    else:
        print("\nничья")
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.04.2023, 21:30
Помогаю со студенческими работами здесь

Камень, ножницы, бумага
написал код для игры КНБ: from random import choice my_choose = computer_choose = choice(my_choose) win =...

Камень, ножницы, бумага
Два пирата хотят поделить добычу. Уже придуман способ, который устроит обоих: один из них должен разделить добычу на две кучи, а второй —...

Камень-ножницы-бумага
Здравствуйте, новичок в Питоне, решил сделать обычную камень-ножницы-бумага с некоторыми фичами. Все работало хорошо, до определенного...

Камень, ножницы, бумага
Здравствуйте. Видел такую задачу на Java, решил попробовать сделать то же самое на Python, но не получилось. Помоги пожалуйста. При...

Игра Камень Ножницы Бумага
Добрый день! Недавно начал изучать Python. Мне нужна помощь, не могу разобраться в коде который набираю по книге Эл Свейгарт...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru