Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import matplotlib.pyplot as plt
- def horse_stat_modifier(age, start_age=5, max_age=30, plateau_width=0.33):
- mid_age = (max_age + start_age) / 2 # Средний возраст (15 лет)
- plateau_start = mid_age - (mid_age - start_age) * plateau_width
- plateau_end = mid_age + (max_age - mid_age) * plateau_width
- if age < start_age or age > max_age:
- return 0 # За границами возрастов коэффициент 0
- if start_age <= age < plateau_start:
- return (age - start_age) / (plateau_start - start_age) # Рост
- elif plateau_start <= age <= plateau_end:
- return 1 # Плато, статы не меняются
- else:
- return (max_age - age) / (max_age - plateau_end) # Убывание
- # Создаем массив возрастов от 0 до 33 лет с шагом 0.1
- ages = np.arange(0, 33, 0.1)
- modifiers = []
- # Вывод в консоль
- print("Возраст | Коэффициент")
- print("-" * 25)
- for age in ages:
- modifier = horse_stat_modifier(age)
- modifiers.append(modifier)
- print(f"{age:6.1f} | {modifier:.3f}")
- # Построение графика
- plt.figure(figsize=(10, 5))
- plt.plot(ages, modifiers, label="Коэффициент статов", color="blue", linewidth=2)
- plt.axvline(x=3, color="gray", linestyle="--", label="Стартовый возраст")
- plt.axvline(x=30, color="gray", linestyle="--", label="Максимальный возраст")
- plt.axhline(y=1, color="red", linestyle="--", label="Макс. уровень статов (плато)")
- plt.xlabel("Возраст лошади (лет)")
- plt.ylabel("Коэффициент")
- plt.title("Изменение коэффициента статов лошади с возрастом")
- plt.legend()
- plt.grid(True)
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement