Лабы / ЛР7 ООП
.docxЛР7
по варианту боты средней точности и любой другой точности.
import random
class Player(): #родительский класс
def __init__(self, name):
self.name = name
print(f"Hello, {self.name}.")#имена
class Bot(Player):#дочерний класс
def __init__(self,name, a, b):
super().__init__(name)#методсупер наследует конструктор род.класса
self.name = name
self.a = a#разброс для точности
self.b = b
def shoot(self):
x = 0
#подсчет очков
res = abs(x - random.uniform(self.a, self.b))
if res > 1:
return 0
if res == 1:
return 0.1
res = 1.0 - res
return res
def shooting_range(player1,player2):
res1 = 0
res2 = 0
#стрельба
for i in range(0,2):
res1 += round(player1.shoot(),3)
res2 += round(player2.shoot(),3)
print(res1)
print(res2)
#выявление победителя
if res1 > res2:
print(f"Winner is {player1.name}")
elif res1 == res2 :
print(f"Winner is {player1.name} and {player2.name}")
else:
print(f"Winner is {player2.name}")
def main():
bot1 = Bot("Bazik", -5, 5)#средней точности
bot2 = Bot("Holdi", -9, 9)#любой точности
shooting_range(bot1, bot2)#вызов функции стрельбы
if __name__ == "__main__":
main()
Пример работы программы