Вопрос задан 07.07.2023 в 02:08. Предмет Информатика. Спрашивает Невская Александра.

Очень нужна помощь. Нужно дополнить код(На Python). ЗАДАНИЕ: Устройте несколько дуэлей подряд и

выведите результаты (Их можно хранить в словаре). В награду за победу персонажу можно увеличивать очки здоровья. ИЗНАЧАЛЬНЫЙ КОД: import time, random q=random.randint(1,10) w=random.randint(1,10) player1 = {'Имя' : "Боб", 'Здоровье' : 100, 'Атака' : q} player2 = {'Имя' : "Мери", 'Здоровье' : 100, 'Атака' : w} while player1['Здоровье'] > 0 and player2['Здоровье'] > 0: player2['Здоровье'] -= player1['Атака'] print(player1['Имя'], ' атакует ', player2['Имя']) time.sleep(1) player1['Здоровье'] -= player2['Атака'] print(player2['Имя'], ' атакует ', player1['Имя']) time.sleep(1) print('Боб :', player1['Здоровье'], 'Мери :', player2['Здоровье'])
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Микитчин Наталя.

Ответ:

Логика приложения сохранена. Теперь игрок представлен классом, а не словарём (потому что ооп труъ). Атакующая сторона выбирается случайно.

import random

import time  

import typing

from typing import NewType

player = NewType('Player', object)

class Player:

   def __init__(self, name, hp, dmg):

       self._name = name

       self._health = hp  

       self._damage = dmg  

   @property

   def NAME(self):

       return self._name

   

   @property

   def HP(self):

       return self._health  

   @HP.setter  

   def HP(self, NewValue):

       self._health = NewValue

   @property

   def DMG(self):

       return self._damage

   def Attack(self, trg: player):

       trg.HP -= self._damage

def main():

   enemies = [Player('Bob', 100, 25), Player('Tom', 100, 23)]

   choices = [0, 1]

   while (enemies[0].HP > 0 and enemies[1].HP > 0):

       CurrSelected = random.choice(choices)

       OtherSelected = abs(CurrSelected-1)

       Slc = enemies[CurrSelected]

       Other = enemies[OtherSelected]

       print(f'Player {Slc.NAME} (HP: {Slc.HP}) attack {Other.NAME} (HP: {Other.HP} -> {Other.HP - Slc.DMG})')

       enemies[CurrSelected].Attack(enemies[abs(CurrSelected-1)])

       time.sleep(1)

if __name__ == '__main__':

   main()

   

Объяснение:

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

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

python
import time, random def duel(player1, player2): q = random.randint(1, 10) w = random.randint(1, 10) while player1['Здоровье'] > 0 and player2['Здоровье'] > 0: player2['Здоровье'] -= player1['Атака'] print(player1['Имя'], ' атакует ', player2['Имя']) time.sleep(1) player1['Здоровье'] -= player2['Атака'] print(player2['Имя'], ' атакует ', player1['Имя']) time.sleep(1) if player1['Здоровье'] <= 0: print(player1['Имя'], ' проиграл дуэль!') player2['Здоровье'] += 10 # Увеличиваем здоровье победителя if player2['Здоровье'] <= 0: print(player2['Имя'], ' проиграл дуэль!') player1['Здоровье'] += 10 # Увеличиваем здоровье победителя player1 = {'Имя': "Боб", 'Здоровье': 100, 'Атака': 0} player2 = {'Имя': "Мери", 'Здоровье': 100, 'Атака': 0} duel_count = 3 # Количество дуэлей for _ in range(duel_count): # Перезаписываем начальные здоровье и атаку перед каждой дуэлью player1['Здоровье'] = 100 player2['Здоровье'] = 100 duel(player1, player2) print('Итоговые статистики:') print(player1['Имя'], ' : Здоровье -', player1['Здоровье'], 'Атака -', player1['Атака']) print(player2['Имя'], ' : Здоровье -', player2['Здоровье'], 'Атака -', player2['Атака'])

Этот код создает функцию duel, которая проводит один дуэль между двумя персонажами. После каждой дуэли, победитель получает награду в виде увеличения очков здоровья. Затем код проводит указанное количество дуэлей (в данном случае, 3 раза), обновляя данные персонажей перед каждой дуэлью и выводя итоговые статистики.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос