Информатика, вопрос задал yarikbobryn , 1 год назад

Поможіть будь ласка!!! Даю 25 балів (Це Python)

Доработайте игру “Камень, ножницы, бумага” так, чтобы программа объявляла победителя

раунда, который первым набрал 3 очка, после этого спрашивала начинать ли новый раунд и

При вводе пользователем “yes” продолжала игру с нулевого счета.

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

случайным образом, а с учетом вашего хода, чтобы всегда выигрывать.


yarikbobryn: Будь ласка допоможіть
werior36: Ти сказал доработать? Где код? Или нужно написать с нуля?

Ответы на вопрос

Ответил leprekon882
1

import random

moves = ['камень', 'ножницы', 'бумага']

score = {'пользователь': 0, 'компьютер': 0}

def determine_winner(user_move, computer_move):

   if user_move == computer_move:

       return 'ничья'

   elif (user_move == 'камень' and computer_move == 'ножницы') or \

        (user_move == 'ножницы' and computer_move == 'бумага') or \

        (user_move == 'бумага' and computer_move == 'камень'):

       return 'пользователь'

   else:

       return 'компьютер'

def cheat(user_move):

   if user_move == 'камень':

       return 'бумага'

   elif user_move == 'ножницы':

       return 'камень'

   elif user_move == 'бумага':

       return 'ножницы'

while True:

   print(f'Счет: {score}')

   user_move = input('Ваш ход (камень, ножницы, бумага): ')

   computer_move = cheat(user_move)

   winner = determine_winner(user_move, computer_move)

   print(f'Вы: {user_move}, Компьютер: {computer_move}')

   print(f'Победитель: {winner}')

   score[winner] += 1

   if score['пользователь'] == 3 or score['компьютер'] == 3:

       if input('Начать новый раунд? (yes/no) ') == 'yes':

           score = {'пользователь': 0, 'компьютер': 0}

       else:

           break

Приложения:
Ответил werior36
1

"""game"""

from random import randint

def game():

   """head game function"""

   count_player = 0

   count_bot = 0

   items = ['бумага', 'ножници', 'камень']

   brain = [1, 2, 0]

   print("""Ваш вибор:

1.бумага

2.ножници

3.камень

   """)

   while True:

       if count_player >= 3:

           print("победа за играком!")

           break

       elif count_bot >= 3:

           print("победа за ботом!")

           break

       selected_user = int(input(">"))-1

       print(f"Ход бота: {items[brain[selected_user]]}")

       if brain[selected_user] != selected_user:

           count_bot += 1

           print(f"Бот побил -> {items[selected_user]} с помощью -> {items[brain[selected_user]]}")

       elif brain[selected_user] == selected_user:

           count_player += 1

           print(f"Пользователь побил -> {items[selected_user]} с помощью -> {items[brain[selected_user]]}")

       else:

           print("Попробуйте ещо!")

def main():

   """start program function"""

   while True:

       input_user = input("Play (yes/no):\n")

       if input_user.lower() == "yes":

           game()

       elif input_user.lower() == "no":

           exit()

       else:

           print("Error input!")

           continue

if __name__ == '__main__':

   main()

также я добавил фото где нужну изменить что-би бот начал играть честно, напиши туда тогда randint(0,3)

Приложения:

werior36: я добавил в ещо в текстовий файл, надеюсь проблем с отступами небудет
Новые вопросы