<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های رضا ناظری</title>
        <link>https://virgool.io/feed/@naazeri</link>
        <description>nazeriland.ir</description>
        <language>fa</language>
        <pubDate>2026-06-16 13:34:02</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/7328/avatar/vAUSTs.jpg?height=120&amp;width=120</url>
            <title>رضا ناظری</title>
            <link>https://virgool.io/@naazeri</link>
        </image>

                    <item>
                <title>آموزش نصب PyGame</title>
                <link>https://virgool.io/@naazeri/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%86%D8%B5%D8%A8-pygame-gwjlvesalisb</link>
                <description>اول باید python 3 رو نصب کنین. اگه قبلا این کار رو انجام دادین، می تونین این مرحله رو رد کنین.از این لینک می تونین آخرین نسخه پایتون رو برای سیستم عاملتون رو دانلود کنینبعد از نصب پایتون، یه ترمینال باز کنید(cmd – powershell – bash) و این دستور رو اجرا کنین:pip install pygameممکنه بسته به سیستم عاملتون بجای pip دستور pip3 این کارو انجام بدهاگه مشکلی در نصب داشتین اول ip تون رو تغییر بدین و به احتمال زیاد مسئله حل بشه.اما اگر بازهم مشکل پابرجا بود، بجای استفاده از آخرین نسخه پایتون، از یه ورژن قدیمی تر استفاده کنین. مثلا بجای پایتون 3.11 از 3.10 استفاده کنین.برای اینکه مطمئن بشین همه چیز درسته این دستور رو بزنین تا یه نمونه بازی ساخته شده با pygame اجرا بشه:python -m pygame.examples.aliensممکنه بسته به سیستم عاملتون بجای python دستور python3 این کارو انجام بدهاگه بازی اجرا شد، تبریک میگم، PyGame با موفقیت نصب شده.امیدوارم بازی های باحالی باهاش بسازین ?</description>
                <category>رضا ناظری</category>
                <author>رضا ناظری</author>
                <pubDate>Wed, 27 Sep 2023 12:36:36 +0330</pubDate>
            </item>
                    <item>
                <title>بازی Snake در ۳۰ خط با پایتون</title>
                <link>https://virgool.io/@naazeri/%D8%A8%D8%A7%D8%B2%DB%8C-snake-%D8%AF%D8%B1-%DB%B3%DB%B0-%D8%AE%D8%B7-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-dr1ndfuknayu</link>
                <description>خیلی جنبه فان داره که با پایتون تو تعداد خط کد کمتر، یه کاری رو انجام داد. با بازی معروف اسنیک حتما آشنا هستین. برای چند دقیقه فکر کنین میخواین خودتون این بازی رو بنویسین. بنظرتون در ساده ترین حالت چند خط کد میشه؟ اصلا امتحانش کنین و دست به کد بشین...حالا بریم ببینیم چجوری میشه این بازی رو تو ۳۰ خط با زبون پایتون و کتابخونه pygame نوشت: https://gist.github.com/naazeri/674ee76daa8108ff70d6caeafb41df28 قبل از اجرای بازی، لازمه کتابخونه pygame رو نصب کنین: آموزش نصب PyGameبرای اجرای کد اول پایتون ۳ رو نصب کنین و بعد کتابخونه pygame رو به این صورت نصب کنین:pip install pygameبعد کد هارو تو یه فایل به اسم مثلا game.py می‌نویسیم و با دستور زیر اجراش میکنیم:python game.pyممکنه تو سیستم عامل شما نیاز باشه بجای python از python3 استفاده کنین تا بازی اجرا بشه.درنهایت، تعداد خط کد کمتر بیشتر جنبه فان داره و احساس خوبی میده ?</description>
                <category>رضا ناظری</category>
                <author>رضا ناظری</author>
                <pubDate>Sat, 16 Sep 2023 18:59:44 +0330</pubDate>
            </item>
                    <item>
                <title>منبع آموزش Node.js</title>
                <link>https://virgool.io/@naazeri/%D9%85%D9%86%D8%A8%D8%B9-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-nodejs-xxzghgu8kgcm</link>
                <description>یه سری از آموزش ها موضوع رو از پایه شروع میکنن به توضیح دادن و کم کم وارد لول های بالاتر میشن. اگه میخواین یه موضوعی رو خوب و عمیق یاد بگیرین این روش خیلی مناسب تره.میتونید حدس بزنید خروجی این برنامه به چه صورته؟ https://gist.github.com/naazeri/e55b0011eeb20fa46e540ccf01d25d37 مشاهده کدحالا برنامه رو روی سیستم خودتون اجرا کنین و ببینین خروجی همون چیزی بود که حدس زدین؟اگه اینطور باشه نشون میده درک بسیار درست و عمیقی از node.js دارین. اما اگه چیزی که انتظارشو داشتین اتفاق نیفتاد و میخواین یه node.js دولپر خفن با درک عمیق از event loop و مفاهیم پایه ای باشین پیشنهاد میکنم این پلی لیست یوتیوب رو که یه دوره آموزش Node.js درجه ۱ ببینید:مشاهده در یوتیوب</description>
                <category>رضا ناظری</category>
                <author>رضا ناظری</author>
                <pubDate>Fri, 31 Mar 2023 12:29:28 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش ساخت ساعت دیجیتال در پایتون</title>
                <link>https://virgool.io/@naazeri/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%B3%D8%A7%D8%B9%D8%AA-%D8%AF%DB%8C%D8%AC%DB%8C%D8%AA%D8%A7%D9%84-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-edp4vvxvbux6</link>
                <description>خیلی باحال میشه بجای استفاده از ساعت پیشفرض سیستم، از برنامه ساعتی که خودمون نوشتیم استفاده کنیم ?می‌تونیم هرجور خواستیم تغییرش بدیم، رنگشو عوض کنیم، فونت و اندازشو تغییر بدیم و هرچیز دیگه ای که دوست داشته باشیمیه کتابخونه ای تو پایتون هست به اسم tk یا tkinter که کمکمون میکنه برناممون بجای اینکه تو console اجرا بشه و فقط متن داشته باشه، یه windows داشته باشیم و دستمون باز باشه برای انجام هر کار گرافیکی.پس اول از همه این کتابخونه رو نصب می‌کنیمpip install tkحالا میریم برای نوشتن برناممون. میخوایم مثل همیشه همه چیز تو ساده ترین حالت ممکن باشه https://gist.github.com/naazeri/b41d8aefcb2270b12eb9bc0574b231f8 مشاهده کداول کتابخونه tkinter رو import میکنم تا بتونیم ازش استفاده کنیم. از کتابخونه time هم تابع strftime رو لازم داریم تا زمان سیستم رو دریافت کنیمتو خط ۷ و ۸ یه window خالی میسازیم. بعدا میخوایم داخلش زمان رو نشون بدیم. یه عنوان هم براش انتخاب میکنیمخط ۱۱ تا ۱۵: یه Label میسازیم که بهمون کمک میکنه تا یه متنی رو روی صفحه نشون بدیم. تو برنامه ما این متن همون زمان ساعتمون هست. فونت و رنگ و این چیزارو هم بهش میدیم که جذاب تر بشه و در آخر تو صفحه قرارش میدیمخط ۱۸ تا ۲۱: برای نمایش ساعت تو لیبل که الان ساختیم، یه تابع می نویسیم و زمان رو به کمک تابع strftime دریافت میکنیم و نمایش میدیم. این تابع فقط یک بار اجرا میشه و دیگه زمانمون ثابت می‌مونه. مثل ساعتی میشه که باتریش تموم شده. پس باید بگیم این تابع هر ثانیه تکرار بشه و تو خط ۲۱ این کار رو انجام دادیم. چون واحد زمان میلی ثانیه هست 1000 میلی ثانیه همون 1 ثانیه میشهخط ۲۴ و ۲۵: در انتها تابع نمایش ساعتی که الان نوشتیم رو اجرا میکنیم و تابع mainloop که مربوط به کتابخونه tkinter هست تا برناممون درحال اجرا بمونه.به همین راحتی برنامه نمایش ساعت رو نوشتیم ?✊</description>
                <category>رضا ناظری</category>
                <author>رضا ناظری</author>
                <pubDate>Fri, 31 Mar 2023 12:15:52 +0330</pubDate>
            </item>
                    <item>
                <title>لیست پیوندی در پایتون</title>
                <link>https://virgool.io/@naazeri/%D9%84%DB%8C%D8%B3%D8%AA-%D9%BE%DB%8C%D9%88%D9%86%D8%AF%DB%8C-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-yyfwmunqxtsu</link>
                <description>لیست پیوندی یه نوع ساختار داده یا Data Structure. کارش ذخیره کردن داده ها به صورت زنجیره‌ای.به هر پیوند یا زنجیر node میگیم. هر node علاوه بر اطلاعاتی که بهش میدیم تا ذخیره کنه، آدرس node بعدیش رو هم می‌دونه. مثل صف نونوایی، که شما همیشه یادتون نگه میدارین که پشت سر کی هستین تا صف رو گم نکنین ?کاربردزمانی که نمی‌دونین تعداد داده هاتون چقدر هستزمانی که میخواین داده هارو مرحله به مرحله یا تک به تک به لیست اضافه کنینوقتی که بخواین یه داده ای رو به وسط لیست اضافه یا حذف کنینیکی از نکات مثبت لیست پیوندی سرعت بالای اضافه کردن یه آیتم جدید بهش هست. برخلاف آرایه که موقع اضافه کردن داده جدید، دوباره ساخته میشه، اینجا فقط یه پیوند به داده جدید میخوره.پیاده سازی لیست پیوندی یا linked list در پایتون https://gist.github.com/naazeri/332916d3a97b5066fd355b971f229b1d مشاهده کد</description>
                <category>رضا ناظری</category>
                <author>رضا ناظری</author>
                <pubDate>Thu, 23 Mar 2023 21:43:18 +0330</pubDate>
            </item>
                    <item>
                <title>نام گذاری صحیح در برنامه نویسی</title>
                <link>https://virgool.io/@naazeri/%D9%86%D8%A7%D9%85-%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C-%D8%B5%D8%AD%DB%8C%D8%AD-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-awyuhovbuwdd</link>
                <description>شاید انتخاب نام مناسب برای متغیر ها و تابع هامون یه مقدار زمان بیشتری ببره ولی بعدا از صرف ساعت ها فکر کردن برای درک کد پیشگیری می‌کنه. برای همین هرموقع احساس کردین اسم بهترین برای متغیرهاتون پیدا کردین، بهتره که عوضش کنین.اسم ها باید انقدر واضح باشن که بدون نیاز به کامنت نوشتن، هدف، نحوه استفاده و کاربردش رو توضیح بده و جای هیچ سوالی باقی نذاره. مثلا این اسم هیچ مفهومی نداره و برای درکش باید براش کامنت نوشته بشه:int a // ageاما این کد کاملا واضح و نیاز به کامنت نداره:int age
int daysSinceCreationگاهی فکر می‌کنیم اسمی که انتخاب کردیم واضحه ولی درواقع اینطور نیست چون ما فقط شرایط حال حاضر رو درنظر می‌گیریم و داریم به حافظمون اعتماد می‌کنیم. مثل این:List listدرسته که اسمی انتخاب کردیم که مشخص می‌کنه متغیرمون یه لیست ولی معلوم نیست چه اطلاعاتی داخلش هستList studentListاین اسم خیلی واضح تره و مشخصه که لیستی از دانش آموز ها هست.یه حالتی که خیلی هم رایجه استفاده از حالت مخفف و کوتاه شده یه کلمه هست مثل:int cnt
int hpشاید تو فضای فکری حال حاضر شما خیلی واضح باشه که اینا چی هستن ولی بهتره از اسم کاملش استفاده بشه:int counter
int healthProgressیه سری اسم ها هستن که واضح نیستن ولی به صورت تف مال کار مارو راه میندازن چون نمی‌خوایم بیشتر زمان بزاریم و اسم مناسبی براش پیدا کنیم مثل:string ProductInfo
string ProductData
string TheProductاینا اصلا وضوح و توضیحی به کد ما نمیده.مراقب اسم هایی که اختلاف خیلی کمی باهم دارن باشین چون خیلی راحت ممکنه شمارو به اشتباه بندازن:string XYZControllerForEfficientHandlingOfStrings
string XYZControllerForEfficientStorageOfStringsاگه بتونین از اسمایی که تلفظ راحت تری داره استفاده کنین قطعا راحت ترین. مثلا انتخاب این اسم باعث میشه هربار کلی تلاش کنین تا تلفظش کنین:int PlayerDeteriorateبجاش میشه از کلمه ای که شاید دقیقا اون معنی رو نده ولی خیلی واضح تره استفاده کرد:int PlayerDamageیه نکته ای به صورت تجربی دستتون میاد اینه که از اسم هایی استفاده کنین که تا حد ممکن یکتا یا یونیک باشن چون خیلی پیش میاد که بین هزاران خط کد، دنبال متغیری هستین که یه بخشایی از اسمش یادتون هست، اینجوری اگه سرچ کنین خیلی راحت بهش می‌رسین. بعلاوه بعضی زبون های برنامه نویسی IDE های قدرتمندی ندارن تا موقع تغییر نام یه متغیر یا یه تابع، تمام جاهایی که از اون استفاده شده هم اسمش تغییر کنه. اینجاست که شما مجبور میشین از قابلیت replace استفاده کنین و با کلی ترس و لرز این کارو بکنین بعد ببینین اسم خیلی چیزای دیگه هم تغییر کرد و یه دردسری براتون میشه. مثلا این اسم ها خیلی رایجه:string name
int counter
int resultولی این اسم ها یونیک تره:string customerFirstName
int levelFinalScoreیه سری اسم ها هستن که همه بهش عادت کردن و اگه شما تغییرش بدین، کسی که کد شمارو می‌خونه باید فکر کنه و تو ذهنش بگه آها منظورش همون فلان چیزه. مثلا همه تو حلقه شمارنده رو i میزارن و اگه یه حلقه دیگه داخلش باشه شمارندشو j میزارن. اگه شما بجاش از q و w استفاده کنین باعث سردرگمی میشه. مگر اسمی انتخاب کنین که خیلی واضح منظورتون رو برسونه.</description>
                <category>رضا ناظری</category>
                <author>رضا ناظری</author>
                <pubDate>Mon, 06 Mar 2023 19:07:19 +0330</pubDate>
            </item>
                    <item>
                <title>تولید عدد رندوم غیر تکراری در پایتون</title>
                <link>https://virgool.io/@naazeri/%D8%AA%D9%88%D9%84%DB%8C%D8%AF-%D8%B9%D8%AF%D8%AF-%D8%B1%D9%86%D8%AF%D9%88%D9%85-%D8%BA%DB%8C%D8%B1-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-f4fd9z1anw5v</link>
                <description>میخوایم ببینیم چطوری تو پایتون اعداد رندوم غیر تکراری تولید کنیم. 2 حالت براش درنظر می‌گیریم:حالت اولتو حالت اول میخوایم همه اعداد رندوم رو یکجا تولید کنیم و تو یه آرایه ذخیره کنیم. این روش خیلی سادست چون کتابخونه random این کارو برامون انجام میده:تو این کد 100 تا عدد رندوم غیر تکراری تولید کردیم که بازه اعداد بین 1 تا 500. شامل خود 500 نمیشه درواقع تا 499 اما شامل عدد 1 میشه.روش کار تابع sample به این صورته که دوتا ورودی ازمون میخواد تا اعداد رو تولید کنه. اول بازه اعداد رو میگیم. یعنی میگیم میخوایم اعدادمون تو چه رنجی باشه و بعد تعداد اعداد رندومی که میخوایم برامون تولید بشه. قطعا تعداد اعداد نباید از طول بازمون بیشتر باشه وگرنه ارور میده. به همین سادگی ?حالت دومحالت دوم به این صورت که میخوایم اعداد رو تکی تکی تولید کنیم اما غیر تکراری و به آرایمون اضافه کنیم.مشاهده کدعملکرد این کد هم مثل قبلیه اما اعداد تکی تکی تولید شدن و به آرایه اضافه شده. یه آرایه خالی numbers داریم که میخوایم اعداد رو بهش اضافه کنیم.خط 13 یک حلقه می‌نویسیم به تعداد اعدادی که میخوایم تولید کنیم که 100 هست. برای تولید عدد رندوم یه تابع می‌نویسیم که کدمون مرتب تر باشه به اسم getUniqueRandom توی یه حلقه بی‌نهایت یک عدد رندوم تولید میکنم و چک میکنم توی لیستم هست یا نه. به این دلیل حلقم بی‌نهایته که میخوام تا زمانی که عدد غیرتکراری پیدا نشده ادامه بده. بعد از اینکه عدد پیدا شد return میکنمش و حلقه هم تموم میشه.مثل حالت قبل اگرتعداد اعدادی که میخواین تولید کنین بیشتر از بازه اعدادتون باشه، به مشکل میخورین اما بجای اینکه خطا بده، برنامه تو حلقه while گیر می‌کنه و هرگز بیرون نمیاد.تمرینچک کنین اگه تعداد عدد های رندوم که میخواین تولید کنین از حداکثر بازه اعدادتون بیشتر بود، خطای مناسبی نشون بده و برنامه تو حلقه بی‌نهایت گیر نکنه</description>
                <category>رضا ناظری</category>
                <author>رضا ناظری</author>
                <pubDate>Sun, 05 Mar 2023 15:24:17 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش استفاده از = در f-strings پایتون</title>
                <link>https://virgool.io/@naazeri/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%AF%D8%B1-f-strings-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-yvk6g9ibfu6m</link>
                <description>پایتون معروفه به اینکه با تعداد خط کد کمتر، کار بیشتری نسبت به بقیه زبون ها انجام بده. این خیلی جذابه و خیلی حال میده که با یک یا چند خط کد کلی کار انجام بدیم ? به همین دلیل سرعت توسعه برنامه تو پایتون خیلی بالاست و معمولا خیلی ساده تر میشه کاری رو انجام داد.استفاده از print برای debug کردن برنامه های پایتون خیلی رایجه. مثلا میخواین بدونین بعد از اجرای یه دستوری، مقدار یکی از متغیر هاتون چیه؟ کار خیلی رایج اینه که اون متغیر رو print کنیم. اما کم کم تعداد این print ها زیاد میشه و دیگه نمیشه تشخیص داد که کدوم خط مال کدوم دستور print هست. برای همین بعضیا میان یه سری کاراکتر به print اضافه میکنن مثلا:این یه روشیه که بتونیم تشخیص بدیم از بین print های زیادی که انجام دادیم، اونی که دنبالش هستیم کدومه. طبیعتا این روش خیلی مناسب نیست و ممکنه بازم به چالش بخوریم. یکی از روش های خیلی بهتر اینه که اسم اون متغیر روهم چاپ کنیم. به این صورت:به این صورت خیلی راحت تر متوجه میشیم که هدفمون از این print چی بوده و راحت می‌تونیم پیداش کنیم?حالا این کد رو درنظر بگیرین:همونطور که می‌بینین، درسته این روش خیلی بهتره اما مدام داریم خودمون رو تکرار می‌کنیم. اگه دقت کنین 2 بار count رو نوشتیم همین طور برای name و age هم 2 بار تکراشون کردیم.تو ورژن 3.8 پایتون یه ویژگی به f-string اضافه شده که نیاز نباشه ما این تکرار رو انجام بدیم و کار باهاش خیلی راحته و تو یک چشم بهم زدن میشه یادش گرفت. به چه صورت؟ فقط کافیه یک = قرار بدیم تا همین نتیجه رو بدست بیاریم. به این صورت:به همین راحتی با قراردادن یک = کلی کدمون کوتاه تر و راحت تر شد ? حالا از این به بعد می‌تونید بازهم کدهای ساده تر و کوتاه تری بنویسید و بیشتر از این زبون فوق العاده لذت ببرین ❤️</description>
                <category>رضا ناظری</category>
                <author>رضا ناظری</author>
                <pubDate>Sun, 05 Mar 2023 15:14:09 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش ساخت بازی سنگ کاغذ قیچی با پایتون</title>
                <link>https://virgool.io/@naazeri/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%A8%D8%A7%D8%B2%DB%8C-%D8%B3%D9%86%DA%AF-%DA%A9%D8%A7%D8%BA%D8%B0-%D9%82%DB%8C%DA%86%DB%8C-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-gmdbyyvs5ldk</link>
                <description>پیشنهاد میکنم اگه قبلا آموزش ساخت برنامه تاس رو ندیدین و برنامشو ننوشتین، اول اون رو انجام بدینسلام به دوستان عزیزم ❤️تو دوران بچگیمون به بهونه های زیادی سنگ کاغذ قیچی بازی می‌کردیم. مثلا وقتی به توافق نمی‌رسیدیم که تو بازی کی جز کدوم تیم باشه با این بازی به یه نتیجه ای میرسیدیم یا مثلا اول چه تیمی با چه تیمی بازی کنه ?نوشتن این مدل برنامه ها که یه بازی از دوران کودکیمون بوده، برای یادگیری برنامه نویسی خیلی عالیه چون موضوع جذابیه و ما کلی خاطره جالب ازش داریم. به این دلیل که این بازی از قبل تو ذهنمون یه چیز جذابی بوده، حالا اگه الان بیایم برنامه‌ی اون بازی رو بنویسیم، خیلی حال میده و یه احساس خفن بودن خاصی پیدا می‌کنیم ? بعلاوه کلا بازی و سرگرمی یکی از موضوعات خیلی خیلی مورد علاقه خودم هست و من به شخصه دوست دارم هرچیزی رو یه جوری به بازی ربطش بدم و طوری انجامش بدم که یه لذتی ببرم و تبدیل بشه به یه بهونه‌ای برای عشق و حال و سرگرمی ? اینجوری هرکاری انجام میدم، همراه با لذت بردن میشه و باعث میشه همیشه پر از انگیزه و شور و شوق باشم برای انجام همه کارهام.همونطور که سنگ کاغذ قیچی، بازی کردن تو واقعیت خیلی کار آسون و راحتیه، نوشتن برنامش هم خیلی آسونه و قطعا می‌تونید به راحتی این بازی رو بنویسین. همیشه سعی کنین به راحت ترین راه حل ممکن فکر کنین و مسئله رو به ساده ترین شکل ممکن حل کنین. این بهترین راه انجام هر کاریه. اگه بخاین مسائل رو از روش های سخت و پیچیده حل کنین کلی انرژی ازتون میگیره و خیلی حال نمیده.میخوایم بازی روجوری بنویسیم که ما درمقابل کامپیوتر بازی کنیم. پس بازیمون نیاز به یه هوش مصنوعی ساده داره تا بتونه انتخاب کنه از چه ابزاری درمقابل ما استفاده کنه. پس بازی به این شکله که ما از بین سنگ، کاغذ و قیچی یکی رو انتخاب می‌کنیم، بعد هوش مصنوعی هم یکی رو انتخاب می‌کنه و درنهایت بررسی می‌کنیم که برنده کی هست یا شایدم مساوی بشیم.حالا می‌تونید قبل از نگاه کردن به کد من، خودتون تلاش کنید و به یه روش خیلی ساده این بازی رو بنویسین و حتما راه حل های خیلی خوبی به ذهنتون میرسه ? بعد بیاین به کد من هم نگاه کنین و ایده بگیرین و تمرینات رو انجام بدین.مشاهده کدکاری که من انجام دادم اینه که اول کتابخونه random رو import کردم تا به کمک این کتابخونه، هوش مصنوعی بازیم بتونه از بین سنگ، کاغذ و قیچی یکی رو انتخاب کنه.بعد انتخاب خودمو پرسیدم و انتخاب AI یا هوش مصنوعی روهم به کمک کتابخونه random بدست آوردم.توجه: بعد از اجرای بازی، برای انتخاب کردن سنگ، حرف r رو تایپ کنید. به همین ترتیب برای کاغذ p و قیچی s و در نهایت enter بزنید.حالا می‌رسیم به اینکه برنده بازی رو مشخص کنیم که خیلی کار ساده‌ای هست. از آسون ترینش شروع می‌کنیم که حالت مساوی هست. اگه انتخاب ما و AI مثل هم بود، برابر میشیم.حالت بعدی اینه که AI بازی رو ببره. 3 روش وجود داره که این اتفاق بیفته:ما قیچی انتخاب کنیم و اون سنگما کاغذ انتخاب کنیم و اون قیچیما سنگ انتخاب کنیم و اون کاغذاگه یکی از حالت های بالا پیش بیاد، AI بازی رو برده، اگر هیچ کدوم از حالت های بالا نبود، یعنی ما بازی رو بردیم ? به همین راحتی می‌تونیم این بازی رو بنویسیم و نیازی نیست تمام حالت های ممکن رو پوشش بدیم. همین که بدونیم AI بازی رو نبرده، پس ما برنده شدیم. به همین راحتی. حالا می‌تونیم بازی که خودمون نوشتیم رو بازی کنیم و کلی لذت ببریم. واقعا حال میده بازی که خودمون نوشتیم رو بازی کنیم ?تمرین 1:الان بازی به این صورته که وقتی یک بار بازی رو انجام بدین برنامه تموم میشه و بسته میشه. اگه بخوایم دوباره بازی کنیم، باید دوباره برنامه رو اجرا کنیم. حالا بازی رو طوری تغییر بدین که بعد از یک دور بازی کردن، نیازی نباشه برنامه رو دوباره اجرا کنیم، بازی مدام تکرار بشه.تمرین 2:بازی رو از حالت 1 نفره به حالت 2 نفره تغییر بدین. درواقع هوش مصنوعی رو حذف کنین. اینجوری می‌تونین با دوستاتون هم بازی کنین ?</description>
                <category>رضا ناظری</category>
                <author>رضا ناظری</author>
                <pubDate>Sat, 04 Mar 2023 17:21:19 +0330</pubDate>
            </item>
                    <item>
                <title>اپراتور Walrus در پایتون</title>
                <link>https://virgool.io/@naazeri/%D8%A7%D9%BE%D8%B1%D8%A7%D8%AA%D9%88%D8%B1-walrus-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-roru0exvzw1s</link>
                <description>زبون پایتون بخاطر سینتکس(syntax) ساده و نزدیک به زبون انگلیسی که داره همه رو جذب خودش می‌کنه چون می‌تونیم با چند خط کد ساده کارای باحال و خفنی انجام بدیم و این خیلی حس خوبی میده ?می‌خوام یکی از ویژگی های خیلی خوبی که تو پایتون 3.8 اضافه شده رو بهتون بگم تا با این اپراتور خیلی خوب و کاربردی آشنا بشین. اپراتور walrus (تلفظ: والرِس) که به صورت =: نوشته میشه، می‌تونه تعداد خط کدهای مارو کمتر کنه. این ویژگی خیلی خیلی خوبه و برنامه نویسای پایتون همیشه دوست دارن تو تعداد خط کد کمتر کارای بیشتری انجام بدن چون خیلی حال میده ?بعلاوه باعث میشه سرعت کد نویسی و توسعه برناممون سریعتر بشه چون تو زمان کمتر و با کد کمتر، داریم کارهای بیشتری انجام میدیم و این یعنی راحتی، که چیزیه که دنبالش هستیم تا همیشه ساده‌تر کد بزنیم و بیشتر لذت ببریم و برنامه های باحال‌تر و با ارزش‌تری درست کنیم.دلیل اینکه اسمشو گذاشتن walrus شباهت ظاهری این اپراتور به گراز دریایی ?کار با این اپراتور خیلی خیلی سادست و به راحتی می‌تونین یاد بگیرینش. حالا می‌خوایم با چندتا مثال ساده کامل درکش کنیم و از این به بعد تو برنامه هامون ازش استفاده کنیم.مثلا این کد رو درنظر بگیرین:تو کد بالا ما تو مرحله اول، طول اسم رو بدست آوردیم و داخل n ذخیره کردیم چون بعدش می‌خوایم هم تو if هم تو print ازش استفاده کنیم و نیاز نداشته باشیم 2 بار طول اسم رو محاسبه کنیم. بعد تو مرحله دوم داخل if چک کردیم بیشتر از 10 هست یا نه.حالا اگه از اپراتور walrus استفاده کنیم کدمون اینطوری میشه:اینجا اون دو مرحله قبل رو توی یک خط انجام میدیم. اومدیم تو شرط if هم طول اسم رو حساب کردیم هم داخل متغیر n ذخیرش کردیم هم چک کردیم بیشتر از 10 هست یا نه؟ یعنی 3 کار مختلف رو توی یک خط انجام دادیم ?حالا یه مثال دیگه:اینجاهم 3 مرحله داریم. مرحله اول شروع می‌کنیم یک خط از فایل رو می‌خونیم و تو متغیر line ذخیره می‌کنیم. مرحله دوم چک می‌کنیم اطلاعاتی وجود داره یا به آخر فایل رسیدیم؟ اگر هنوز فایلمون اطلاعاتی داشت، اطلاعات رو می‌خونیم و پروسس می‌کنیم. مرحله سوم خط بعدی فایل رو می‌خونیم و مرحله دوم تکرار میشه…حالا اومدیم از اپراتور walrus استفاده کردیم و همه اون کارهارو توی یک خط انجام دادیم ? یعنی هم خط اول فایل رو خوندیم، هم داخل متغیر line ذخیره کردیم، هم چک کردیم اطلاعاتی وجود داره؟ و هم خط بعدی رو خوندیم و این روند رو تا وقتی به انتهای فایل برسیم ادامه دادیمپس walrus به این صورت می‌تونه کار رو خیلی خیلی برامون راحت تر کنه و تو تعداد خط کد کمتر، کار مدنظر مارو انجام بده و ماهم با راحتی و لذت بیشتر کد بزنیم.</description>
                <category>رضا ناظری</category>
                <author>رضا ناظری</author>
                <pubDate>Sat, 04 Mar 2023 17:00:45 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش ساخت برنامه تاس با پایتون</title>
                <link>https://virgool.io/@naazeri/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AA%D8%A7%D8%B3-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-aezjved1xbps</link>
                <description>سلام به دوستان عزیزم❤️میخوایم یه برنامه خیلی ساده و راحت، که برای شروع یادگیری پایتون بسیار خوبه رو باهم بنویسیم.هدفمون اینه برنامه ای بنویسیم که عملکرد تاس رو شبیه سازی کنه. همون تاسی که تو خیلی بازی ها مثل مارپله ازش برای بدست آوردن یه عدد رندوم یا تصادفی استفاده می‌کنیم. این برنامه باوجود سادگی و راحتیش نکات خیلی خوبی بهمون یاد میده که تو اکثر پروژه های تجاری و بزرگ استفاده میشه. درواقع تولید یک عدد رندوم یه کار خیلی خیلی پرکاربرد و مفیدی تو برنامه نویسی هست.مثلا اگه از اعداد رندوم تو بازی سازی استفاده نشه، شما چند بار یه مرحله از بازی رو انجام بدین دیگه همه چیزشو حفظ میشین و بازی براتون تکراری میشه یا بازی حالت واقعی پیدا نمی‌کنه. اما به کمک اعداد رندوم می‌تونید هربار جای یک سری آیتم هارو عوض کنین تا هربار بازی جدید و غیر منتظره باشه. مثلا وقتی دارین یه بازی می‌سازین به کمک اعداد رندوم می‌تونین شلیک اسلحه رو واقعی کنین. تو واقعیت تفنگ بهمون ضربه میزنه و ما نمی‌تونیم همه تیرهامون رو به یک نقطه بزنیم. درواقع یکم خطا داریم. تو ساخت بازیمون با تولید یک عدد رندوم میشه برای هر تیر یک مقدار خطا درنظر بگیریم تا همه تیرها به هدف برخورد نکنه ? به همین راحتی به کمک یک عدد رندوم بازی مثل کانتر انقدر جذاب میشه ?حالا میخوایم با زبون پایتون یه برنامه بنویسیم که بدون نیاز به تاس فیزیکی، یک عدد رندوم بین 1 تا 6 بهمون بده تا عملکرد یک تاس واقعی رو شبیه سازی کنیم?import random

n = random.randint(1, 6)
print(n)مرحله اول کتابخونه random رو import می‌کنیم چون این کتابخونه به راحتی برامون عدد رندوم تولید می‌کنه.بعد بهش میگیم یک عدد صحیح (integer یا غیر اعشاری) بین 1 تا 6 بهمون بده. اونم با کمال میل این کارو انجام میده. در نهایت عددمون رو نمایش می‌دیم یا پرینت می‌کنیمش.حالا هربار که برنامه رو اجرا کنیم بهمون یک عدد رندوم بهمون میده. از این به بعد می‌تونین تو بازی هایی که نیاز به تاس داره، از این برنامتون استفاده کنین تا هم خیلی باحال تر و cool تر بشه هم کسی تقلب نکنه.تمرینبرنامه رو جوری تغییر بدین که برای تولید عدد رندوم جدید، نیاز به اجرای دوباره برنامه نباشه. مثلا وقتی اجرا می‌کنیم یک عدد رندوم بده و وقتی با کیبورد Enter می‌زنیم، یه عدد رندوم دیگه بده. به این صورت برای تولید عدد رندوم جدید، فقط کافیه یک Enter بزنیم.</description>
                <category>رضا ناظری</category>
                <author>رضا ناظری</author>
                <pubDate>Sat, 04 Mar 2023 16:38:44 +0330</pubDate>
            </item>
                    <item>
                <title>Lua Cheat Sheet</title>
                <link>https://virgool.io/@naazeri/lua-cheat-sheet-nsbpwnjluwsl</link>
                <description>هرموقع نیاز داشتین که با یه نگاه خلاصه‌ای از سینتکس و قواعد زبون Lua رو ببینین یا مثلا شک داشتین تو lua چجوری یه table تعریف می‌کردن؟ می‌تونید از این سایت خیلی خوب استفاده کنید.خیلی زیبا و مرتب مطالب رو دسته بندی کرده. جاهایی که نیاز بوده کامنت گذاشته و یه چیت شیت یا برگه تقلب درست درمونی برای Lua آماده کرده.مشاهده Cheat Sheet</description>
                <category>رضا ناظری</category>
                <author>رضا ناظری</author>
                <pubDate>Sat, 04 Mar 2023 13:24:41 +0330</pubDate>
            </item>
            </channel>
</rss>