М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Danil21K
Danil21K
06.04.2020 20:31 •  Информатика

Створити гру "Камінь-ножиці-папір". Для цього передбачити
3 кнопки з написами для вибору відповіді користувачем, і ще одна
фігура - обирається випадковим чином комп'ютером. Залежно від того,
яка утворюється комбінація фігур – у вікні повідомлення виводиться
рішення: Нічия, Виграв комп'ютер чи Ви
грали Ви.

👇
Ответ:
Usimys
Usimys
06.04.2020

Відповідь:Ось приклад коду на мові Python, який створює гру "Камінь-ножиці-папір" з вибором користувачем і випадковим вибором комп'ютера:

python

Copy code

import random

def get_user_choice():

   valid_choices = ['камінь', 'ножиці', 'папір']

   user_choice = input("Виберіть свій варіант (камінь, ножиці, папір): ").lower()

   while user_choice not in valid_choices:

       print("Неправильний вибір. Спробуйте ще раз.")

       user_choice = input("Виберіть свій варіант (камінь, ножиці, папір): ").lower()

   return user_choice

def get_computer_choice():

   choices = ['камінь', 'ножиці', 'папір']

   return random.choice(choices)

def determine_winner(user_choice, computer_choice):

   if user_choice == computer_choice:

       return "Нічия!"

   elif (

       (user_choice == 'камінь' and computer_choice == 'ножиці') or

       (user_choice == 'ножиці' and computer_choice == 'папір') or

       (user_choice == 'папір' and computer_choice == 'камінь')

   ):

       return "Ви виграли!"

   else:

       return "Комп'ютер виграв!"

def play_game():

   print("Гра 'Камінь-ножиці-папір' розпочалась!")

   user_choice = get_user_choice()

   computer_choice = get_computer_choice()

   print(f"Ваш вибір: {user_choice}")

   print(f"Вибір комп'ютера: {computer_choice}")

   result = determine_winner(user_choice, computer_choice)

   print(result)

play_game()

У цьому коді функція get_user_choice() отримує вибір користувача, перевіряє його на коректність і повертає введений варіант. Функція get_computer_choice() випадковим чином вибирає варіант комп'ютера зі списку. Функція determine_winner() порівнює вибір користувача і комп'ютера, визначає переможця або оголошує нічию. Функція play_game() координує весь процес гри, викликаючи решту функцій і виводячи результат гри на екран.

Пояснення:

4,7(76 оценок)
Открыть все ответы
Ответ:
toktogulovadanna77
toktogulovadanna77
06.04.2020
Для перевода чисел в дополнительный код, нужно:
1) перевести в двоичную систему счисления
0000 1101            13
0000 0111             7
2) инвертировать (заменить 0 на 1 и наоборот)
1111 0010
1111 1000
3) и прибавить 1
1111 0011
1111 1001
все)
числа в дополнительном коде мы получили

теперь сложение:
   1111 0011
   1111 1001 +
1 1110 1100
мы получили переполнение и единицу в старшем разряде, это значит, сумма будет со знаком минус
теперь переведем сумму в обычный код, не трогаем старший бит
1) _001 0011 инвертируем биты
2) _001 0100 прибавим 1
3) переводим в десятичную систему счисления:
2^{2}+ 2^{4} = 20

вспоминаем, что сумма отрицательная, поэтому ответ будет: -20
------------
для положительных чисел нужно перевести в двоичную систему
Например:
2 + 3
0000 0010 - 2
0000 0011 - 3
и сложить
0000 0101 - 2^{2} + 2^{1} = 2 + 4 = 6
у положительных дополнительный код совпадает с прямым кодом
4,7(79 оценок)
Ответ:
lex9090
lex9090
06.04.2020
N=8 в задании, насколько я понимаю, означает решение для восьмибитного представления данных, т.е. для случай, когда левый бит отводится под знак (0 - плюс, 1 - минус), а семь правых битов используются для представления числа.
Отрицательное число представляется в дополнительном коде, т.е. нули заменяются единицами (и единицы - нулями), а потом в младшем разряде к полученному числу прибавляется единица.
Вначале перевод.
-13(10)=-0001101(2)
Инвертируем биты: 1110010
Прибавляем единицу: 1110011
И дописываем слева 1 в качестве знака. 1 1110011
Аналогичным образом поступаем и с числом -7:
-7(10)=-0000111(2)
Инвертируем биты: 1111000
Прибавляем единицу: 1111001
И дописываем слева 1 в качестве знака. 1 1111001
Теперь сложение. Выполняем его в столбик для всех восьми бит.
   11110011
+ 11111001
 
   11101100
У нас при сложении появилась единица переноса из левого разряда, но дальше уже разрядов нет и она просто отбрасывается.
Результат получился с единичным знаковым разрядом. Поэтому для получения величины результата поступаем в обратном порядке: отделяем семь правых бит, вычитаем единицу и снова инвертируем полученное значение. Вместо единичного знакового разряда приписываем числу знак минус.
1101100 - 1 = 1101011. Инверсия: 0010100, результат -10100(2)=-20(10)
4,5(59 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ