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

مدیرIT

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

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

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

طراحی با جنگو

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

مدیرIT

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

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

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

طراحی با جنگو

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

ساخت قهرمان

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

### داستان نوزدهم: ساخت قهرمان

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

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

#### ساخت کلاس قهرمان

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

او کد زیر را نوشت و توضیح داد:

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

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

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

سینا توضیح داد که متد `__init__` به عنوان سازنده‌ی کلاس عمل می‌کند و به ما امکان می‌دهد ویژگی‌های اولیه مانند نام، قدرت، و سلامتی را هنگام ایجاد قهرمان تعیین کنیم.

#### ایجاد یک قهرمان

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

“`python
رستم = قهرمان(“رستم”, ۹۰, ۱۰۰)
رستم.حمله()
رستم.دفاع()
“`

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

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

آراد با هیجان گفت: «چقدر عالیه! حالا می‌تونم قهرمان‌های مختلفی بسازم!»

#### اضافه کردن توانایی‌های جدید به قهرمان

سینا پیشنهاد داد که توانایی جدیدی به قهرمان اضافه کنند. او یک متد `بهبود_سلامتی` به کلاس اضافه کرد تا قهرمان بتواند سلامتی خود را بازیابی کند:

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

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

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

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

آراد متد جدید را امتحان کرد:

“`python
رستم.بهبود_سلامتی(۲۰)
“`

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

“`
رستم سلامتی خود را بهبود داد. سلامتی فعلی: ۱۲۰
“`

آراد متوجه شد که با استفاده از کلاس‌ها و اشیاء می‌تواند شخصیت‌های مختلفی با ویژگی‌ها و توانایی‌های گوناگون بسازد.

#### ایجاد چندین قهرمان و مبارزه بین آن‌ها

سینا پیشنهاد داد که آراد چند قهرمان دیگر بسازد و آن‌ها را در مقابل هم قرار دهد. آراد کد زیر را نوشت و قهرمان دیگری به نام «سهراب» ساخت:

“`python
سهراب = قهرمان(“سهراب”, ۸۰, ۱۱۰)
رستم.حمله()
سهراب.دفاع()
“`

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

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

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