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

Камень, ножницы, бумага

03.05.2021, 23:00. Показов 3917. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
написал код для игры КНБ:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
from random import choice
my_choose = ["Камень", "Ножницы", "Бумага"]
computer_choose = choice(my_choose)
win = {"Камень":"Бумага", "Ножницы":"Камень", "Бумага": "Ножницы"}
print ("Камень, Ножницы, Бумага\n")
start = input("Ваш выбор: ")
print (computer_choose)
if my_choose == computer_choose:
    print("Ничья")
if (my_choose, computer_choose) in win:
    print('Вы победили')
else:
    print("Вы проиграли")
выводит:
Python
1
2
3
4
5
6
7
8
9
10
Камень, Ножницы, Бумага
 
Ваш выбор: Камень
Ножницы
Traceback (most recent call last):
  File "C:\Usersвгений\.PyCharm2018.3\config\scratches\scratch.py", line 10, in <module>
    if (my_choose, computer_choose) in win:
TypeError: unhashable type: 'list'
 
Process finished with exit code 1
с чем связано? и как можно проверить значение в словаре?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.05.2021, 23:00
Ответы с готовыми решениями:

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

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

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

8
5518 / 2871 / 571
Регистрация: 07.11.2019
Сообщений: 4,762
04.05.2021, 06:02
Проверить значение в словаре можно по ключу. Открой учебник и посмотри как это правильно делается.
0
8 / 7 / 2
Регистрация: 29.09.2019
Сообщений: 54
06.05.2021, 22:20
а зачем вы сравниваете ["Камень", "Ножницы", "Бумага"] с choice(my_choose) ну итд по тексту сценария
0
710 / 356 / 104
Регистрация: 09.02.2018
Сообщений: 805
06.05.2021, 22:31
Сравнение - ==. = это присваивание.
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
06.05.2021, 23:11
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
import random
 
win = 0
 
lose = 0
 
while True:
 
    tip = input("Камень, Ножницы или Бумага? - ")
 
    res = 0
 
    if tip.lower() == "камень":
        res = 1
 
    elif tip.lower() == "ножницы":
        res = 2
 
    elif tip.lower() == "бумага":
        res = 3
 
    else:
 
        print("Нет такого варианта!")
 
        continue
 
    rr = random.randrange(1, 3);
 
    if res == rr:
 
        win += 1
 
        print("Вы выиграли!")
 
    else:
 
        lose += 1
 
        print("Вы проиграли ;c")
 
    print("Счет - ", win, "/", lose, " (Выигрыши/Проигрыши)")
0
710 / 356 / 104
Регистрация: 09.02.2018
Сообщений: 805
06.05.2021, 23:48
Python
1
2
3
4
5
    if res == rr:
 
        win += 1
 
        print("Вы выиграли!")
Это же нелогично. Должна быть ничья тогда.

Добавлено через 25 минут
Вот так хорошо было бы:

Python
1
print((lambda my_choice, computer_choice:("Выбор компьютера: " + computer_choice + "\n" + ("Ничья." if my_choice == computer_choice else "Вы победили!" if my_choice == {"Камень":"Бумага", "Ножницы":"Камень", "Бумага": "Ножницы"}[computer_choice] else "Вы проиграли...")))(input("Камень, Ножницы, Бумага\n\nВаш выбор: ").capitalize(), __import__('random').choice(["Камень", "Ножницы", "Бумага"])))
0
8 / 7 / 2
Регистрация: 29.09.2019
Сообщений: 54
07.05.2021, 01:46
КулХацкеръ
8 строчка посмотри внимательней и немного и представь что там реально есть ну и так далее

Добавлено через 1 час 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
from random import shuffle
 
 
base = {0: "R", 1: "S", 2: "P"}
 
while True:
    gamer = int(input("R-0, S-1, P2 : "))
    
    r = [0, 1, 2]
    shuffle(r)
    
    if gamer in r:
        print(f"gamer {base[gamer]} - mashine {base[r[0]]} ")
        if gamer == r[0]:
            print("equally")
        elif gamer == 0 and r[0] == 2:
            print("loss")
        elif gamer == 2 and r[0] == 0:
            print("win")
        elif gamer < r[0]:
            print("win")
        else:
            print("loss")
    else:
        print("error")
0
5518 / 2871 / 571
Регистрация: 07.11.2019
Сообщений: 4,762
07.05.2021, 06:22
Без if:
Python
1
2
3
4
5
6
7
from random import randint
base = ('камень', 'ножницы', 'бумага')
print (*base)
i=base.index(input('Ваш выбор: '))
j=randint(0,2)
print (f'Компьютер:  {base[j]}')
print(('Ничья', 'Вы победили', 'Вы проиграли')[j-i])
3
8 / 7 / 2
Регистрация: 29.09.2019
Сообщений: 54
07.05.2021, 09:31
u235 ++
здорово вы то о чем я

Добавлено через 11 минут
хотелось какую то цикличную структуру данных но чет не доперло про индексы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.05.2021, 09:31
Помогаю со студенческими работами здесь

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

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

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

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

Камень, ножницы, бумага, ром, пират
Скажите,пожалуйста, в чем ошибка a = input() b = input() if a == b: print('ничья')


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru