فرهاد خداویردی زاده

مدیرIT

طراح وب سایت وردپرسی

سئوکار وب سایت

برنامه نویس هوش مصنوعی و پردازش داده

طراحی با جنگو

فرهاد خداویردی زاده

مدیرIT

طراح وب سایت وردپرسی

سئوکار وب سایت

برنامه نویس هوش مصنوعی و پردازش داده

طراحی با جنگو

نوشته های بلاگ

ایجاد ویژگی‌ها و رفتارها

۱۴۰۳-۰۹-۰۹ داستان

### داستان بیستم: ایجاد ویژگی‌ها و رفتارها

پس از موفقیت در ساخت قهرمان، آراد می‌خواست ویژگی‌ها و رفتارهای بیشتری برای قهرمان‌هایش ایجاد کند تا بتواند دنیای بازی خود را گسترش دهد. او به سینا گفت: «سینا، چطور می‌تونم ویژگی‌های بیشتری به قهرمان‌هام اضافه کنم؟ مثلاً قدرت جادویی، سرعت، و رفتارهای پیچیده‌تر؟»

سینا گفت: «این ایده خیلی خوبیه، آراد! با استفاده از کلاس‌ها می‌تونی هر ویژگی و رفتاری رو که دوست داری به قهرمان‌هات اضافه کنی. می‌تونی به کلاس قهرمان، ویژگی‌های بیشتری مثل قدرت جادویی و سرعت اضافه کنی و متدهای جدیدی برای رفتارهای مختلف تعریف کنی.»

#### تعریف ویژگی‌های جدید

سینا پیشنهاد کرد تا ویژگی‌هایی مثل قدرت جادویی و سرعت به کلاس قهرمان اضافه شود. او کد زیر را نوشت:

“`python
class قهرمان:
def __init__(self, نام, قدرت, سلامتی, قدرت_جادویی, سرعت):
self.نام = نام
self.قدرت = قدرت
self.سلامتی = سلامتی
self.قدرت_جادویی = قدرت_جادویی
self.سرعت = سرعت

def حمله(self):
print(f”{self.نام} با قدرت {self.قدرت} حمله می‌کند!”)

def دفاع(self):
print(f”{self.نام} در حالت دفاعی قرار می‌گیرد و {self.قدرت // ۲} آسیب کمتر می‌بیند.”)

def بهبود_سلامتی(self, مقدار):
self.سلامتی += مقدار
print(f”{self.نام} سلامتی خود را بهبود داد. سلامتی فعلی: {self.سلامتی}”)

def حمله_جادویی(self):
print(f”{self.نام} با قدرت جادویی {self.قدرت_جادویی} حمله جادویی می‌کند!”)

def حرکت(self):
print(f”{self.نام} با سرعت {self.سرعت} حرکت می‌کند.”)
“`

سینا توضیح داد که اکنون قهرمان‌ها دارای ویژگی‌های جدیدی هستند که هنگام ساخت آن‌ها باید تعیین شوند، و همچنین متدهای جدیدی برای حمله جادویی و حرکت در کلاس اضافه شده است.

#### ایجاد یک قهرمان با ویژگی‌های جدید

آراد با استفاده از کلاس ارتقایافته، یک قهرمان جدید ساخت:

“`python
رستم = قهرمان(“رستم”, ۹۰, ۱۰۰, ۵۰, ۳۰)
رستم.حمله()
رستم.حمله_جادویی()
رستم.حرکت()
“`

خروجی کد به شکل زیر بود:

“`
رستم با قدرت ۹۰ حمله می‌کند!
رستم با قدرت جادویی ۵۰ حمله جادویی می‌کند!
رستم با سرعت ۳۰ حرکت می‌کند.
“`

#### تعریف رفتارهای پیچیده‌تر

سینا گفت: «حالا می‌تونی رفتارهای پیچیده‌تری تعریف کنی، مثلاً متدی که وضعیت کلی قهرمان رو نشون بده یا حمله‌ای که هم قدرت عادی و هم جادویی رو ترکیب کنه.»

او برای آراد متد جدیدی به نام `وضعیت` اضافه کرد که وضعیت قهرمان را نشان می‌دهد:

“`python
class قهرمان:
def __init__(self, نام, قدرت, سلامتی, قدرت_جادویی, سرعت):
self.نام = نام
self.قدرت = قدرت
self.سلامتی = سلامتی
self.قدرت_جادویی = قدرت_جادویی
self.سرعت = سرعت

def حمله(self):
print(f”{self.نام} با قدرت {self.قدرت} حمله می‌کند!”)

def دفاع(self):
print(f”{self.نام} در حالت دفاعی قرار می‌گیرد و {self.قدرت // ۲} آسیب کمتر می‌بیند.”)

def بهبود_سلامتی(self, مقدار):
self.سلامتی += مقدار
print(f”{self.نام} سلامتی خود را بهبود داد. سلامتی فعلی: {self.سلامتی}”)

def حمله_جادویی(self):
print(f”{self.نام} با قدرت جادویی {self.قدرت_جادویی} حمله جادویی می‌کند!”)

def حرکت(self):
print(f”{self.نام} با سرعت {self.سرعت} حرکت می‌کند.”)

def وضعیت(self):
print(f”نام: {self.نام}, قدرت: {self.قدرت}, سلامتی: {self.سلامتی}, قدرت جادویی: {self.قدرت_جادویی}, سرعت: {self.سرعت}”)
“`

آراد با اجرای کد زیر وضعیت قهرمان خود را مشاهده کرد:

“`python
رستم.وضعیت()
“`

خروجی به این شکل بود:

“`
نام: رستم, قدرت: ۹۰, سلامتی: ۱۰۰, قدرت جادویی: ۵۰, سرعت: ۳۰
“`

#### ترکیب حمله‌ها

برای ایجاد حمله‌های ترکیبی، سینا متدی جدید به نام `حمله_ترکیبی` اضافه کرد که هم از قدرت عادی و هم جادویی استفاده می‌کند:

“`python
class قهرمان:
def __init__(self, نام, قدرت, سلامتی, قدرت_جادویی, سرعت):
self.نام = نام
self.قدرت = قدرت
self.سلامتی = سلامتی
self.قدرت_جادویی = قدرت_جادویی
self.سرعت = سرعت

def حمله(self):
print(f”{self.نام} با قدرت {self.قدرت} حمله می‌کند!”)

def دفاع(self):
print(f”{self.نام} در حالت دفاعی قرار می‌گیرد و {self.قدرت // ۲} آسیب کمتر می‌بیند.”)

def بهبود_سلامتی(self, مقدار):
self.سلامتی += مقدار
print(f”{self.نام} سلامتی خود را بهبود داد. سلامتی فعلی: {self.سلامتی}”)

def حمله_جادویی(self):
print(f”{self.نام} با قدرت جادویی {self.قدرت_جادویی} حمله جادویی می‌کند!”)

def حرکت(self):
print(f”{self.نام} با سرعت {self.سرعت} حرکت می‌کند.”)

def وضعیت(self):
print(f”نام: {self.نام}, قدرت: {self.قدرت}, سلامتی: {self.سلامتی}, قدرت جادویی: {self.قدرت_جادویی}, سرعت: {self.سرعت}”)

def حمله_ترکیبی(self):
قدرت_کل = self.قدرت + self.قدرت_جادویی
print(f”{self.نام} با حمله ترکیبی و قدرت {قدرت_کل} حمله می‌کند!”)
“`

آراد متد حمله ترکیبی را امتحان کرد:

“`python
رستم.حمله_ترکیبی()
“`

و خروجی به شکل زیر بود:

“`
رستم با حمله ترکیبی و قدرت ۱۴۰ حمله می‌کند!
“`

#### نتیجه‌گیری

آراد با این تغییرات و قابلیت‌های جدید، توانست قهرمان‌های خود را پیشرفته‌تر و واقع‌گرایانه‌تر کند. او با خوشحالی گفت: «سینا، حالا دنیای بازی من پر از قهرمان‌هایی با ویژگی‌ها و رفتارهای متنوع شده!»

سینا لبخند زد و گفت: «آفرین، آراد! حالا یاد گرفتی که با استفاده از ویژگی‌ها و رفتارهای جدید در کلاس‌ها، می‌تونی شخصیت‌های پیچیده‌تر و واقع‌گرایانه‌تری بسازی. این پایه‌ای برای ساخت دنیای مجازی و بازی‌های پیشرفته‌تر خواهد بود!»