
Python. Два игрока бросают кубик и двигаются по полю на котором m шагов. Правила игры такие: если у
игрока на кубике выпадает 3, то у него на счете "сгорает" 3 очка, а если выпадает 6, то количество очков удваивается. Игроки слелали по 10 ходов. Кто сейчас выиграл? Составьте пожалуйста программу для этой задачи

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

Ответ:
т.к. автор не уточнил алгоритм, то будет так:
присваивается значение выпавшее, если не равно 3 или 6
если 3, то уменьшаем на 3
если 6, то увеличиваем в 2 раза
! очки МОГУТ уходить в "-". Если было -4, а выпало 6,
то будет 4, т.к. -4 + |-4|*2 = 4
если было 0 очков и выпало 6, то 0 и останется, т.к. 0*6=0
трассировка по шагам - можно отследить как шла игра
Объяснение:
Python
from random import randint
a=0
b=0
def getstep(z):
s=randint(1,7)
if s==3:
z-=3
elif s==6:
z+=abs(z)*2
else:
z+=s
return z
for i in range (1,11):
a=getstep(a)
print('1 step', i, ' Очки=', a)
b=getstep(b)
print('2 step', i, ' Очки=', b)
if a>b:
print('1 выиграл')
elif b>a:
print('2 выиграл')
else:
print('Ничья')




Для решения данной задачи можно написать программу на языке Python. Вот пример кода:
```python import random
def игра(): # Инициализация начальных значений m = 30 # Количество шагов на поле игрок_1_очки = 0 игрок_2_очки = 0
for _ in range(10): # Количество ходов # Ход игрока 1 бросок_игрока_1 = random.randint(1, 6) if бросок_игрока_1 == 3: игрок_1_очки -= 3 elif бросок_игрока_1 == 6: игрок_1_очки *= 2
# Ход игрока 2 бросок_игрока_2 = random.randint(1, 6) if бросок_игрока_2 == 3: игрок_2_очки -= 3 elif бросок_игрока_2 == 6: игрок_2_очки *= 2
# Вывод результатов print(f"Игрок 1: {игрок_1_очки} очков") print(f"Игрок 2: {игрок_2_очки} очков")
if игрок_1_очки > игрок_2_очки: print("Игрок 1 выиграл!") elif игрок_2_очки > игрок_1_очки: print("Игрок 2 выиграл!") else: print("Ничья!")
# Запуск игры игра() ```
В этом коде создается функция `игра()`, которая моделирует 10 ходов для каждого из двух игроков. После этого программа выводит количество набранных очков каждым игроком и объявляет победителя или объявляет ничью, если у обоих игроков равное количество очков.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili