هفته 3 - یک جهش ایمان
بعد از حل حدود 20 معما ، احساس اعتماد به نفس کافی برای عرصه آموزش برنامه نویسی صفر تا صد ربات کردم. من با رسیدن به سطح پایین Bronze یک انحراف کوتاه با Coders Strike Back انجام دادم تا فقط از چگونگی عملکرد بازی های چند نفره مطلع شوم.
بنر افسانه های کد و جادو
LoC & M ، اینجا آمده ام!
صعود در لیگ های وود بسیار راحتتر از آنچه انتظار داشتم بود. من فقط قوانین را اجرا کردم و اطمینان حاصل کردم که عملی که ایجاد کردم حداقل معتبر است - من از مواردی که داشتم استفاده کردم. اگر نگهبان نبود به نگهبانان یا حریف حمله کردم. برای انتخاب هدف ، من به راحتی فرض کردم که کارت با شناسه بالاتر قویتر است.
به زودی من با یک ربات بسیار گنگ که حداقل همیشه اقدامات معتبری انجام می دادم ، در قسمت پایین لیگ برنز قرار گرفتم. اگرچه من هرگز در برابر رئیس پیروز نشدم ، اما می توانم برخی از ربات های حتی گنگ را شکست دهم. فکر کردم "حالا کار واقعی شروع می شود!"
من با بهبود پیش نویس و انتخاب بازی در مرحله نبرد به نیمه بالاتر لیگ صعود کردم. با این حال آموزش برنامه نویسی صفر تا صد، من کاملاً مطمئن بودم که صرفاً استفاده از روشهای اکتشافی بهتر من را از این طریق دور نخواهد کرد. من از درک استراتژی واقعی بازی خیلی دور بودم ، به طوری که چندین بار ، "فقط" آمار ابتکاری خود را "بهبود" دادم تا ببینم ربات من در رتبه بندی سقوط می کند ...
من می دانستم که باید لیست اقدامات ممکن را برای بهترین اقدامات جستجو کنم ، و برای این منظور من به یک عملکرد ارزیابی وضعیت بازی و یک شبیه سازی عملی از اقدامات مختلف نیاز داشتم. از لحاظ تئوری ، من در مورد هرس MiniMax و alpha-beta و جستجوی درخت مونت کارلو ، حتی در مورد الگوریتم های ژنتیک اطلاعاتی داشتم ، اما هرگز یکی از این الگوریتم های پیچیده را پیاده سازی نکردم.
هفته 4 - Refactoring… دو بار
من کد خود را به نمایشی بهتر از وضعیت بازی (آنچه در آن زمان فکر می کردم) تبدیل کردم: به جای متغیرهای جهانی متعدد ، یک آرایه انجمنی واحد که می تواند فوراً کپی شود - برای شبیه سازی مهم است. iranian cyber من همچنین تصمیم گرفتم که یادگیری از دیگران تقلب نبوده است ، بنابراین در این انجمن برخی ایده های مفید و صرفه جویی در وقت را مطالعه کردم. (LoC & M یک مسابقه در سال 2018 بود ، بنابراین پس از پایان آن ، بسیاری از مردم در مورد چگونگی حل این مشکل با یکدیگر مشورت کردند.) م آموزش برنامه نویسی صفر تا صد ن فهمیدم که دیگر نباید وقت صرف روش های تهیه پیش نویس کنم ، زیرا برنده مسابقه ClosetAI یک سفارش کارت ثابت منتشر کرده است که بسیار کار می کند بهتر از هر منحنی سفارش یا مانا که قبلاً امتحان کرده بودم. تا کنون ، بزرگترین کمک جریان 2 * 4 ساعته توسط رهبر لیگ Legend reCurse بود ، که در آن او یک ربات را از ابتدا ایجاد کرد. مرد ، این پسر می تواند سریعتر از اینکه چشمک بزنم کد بنویسد. ☺️
وقت آن بود که مجدداً از ابتدا تجدید نظر کنیم ، یا دقیق تر ، زمان بازنویسی و معرفی یک ساختار کد و داده بسیار واضح تر ، دقیقاً شبیه آنچه reCurse در جریان اول استفاده می شود ، با کلاسهای جداگانه (بدون ساختار C ++ در PHP) برای کارت ، Player ، Action ، Turn ، GameState ، BotAgent و غیره. من همچنین شروع به نوشتن شبیه ساز کردم ، شبیه آنچه در جریان دوم reCurse ارائه شده است. من یک بار دیگر یاد گرفتم که از نوع شل بودن PHP با تمام وجود متنفر باشم. هنگامی که یک نام متغیر را اشتباه تایپ می کنید ، اغلب پیام های خطایی دریافت نمی کنید. مفسر فقط یک متغیر جدید ایجاد می کند و شما تعجب می کنید که چرا کد آنطور که د آموزش برنامه نویسی صفر تا صد ر نظر گرفته شده کار نمی کند ... من چندین ساعت اشکال زدایی احمقانه را از دست دادم.
- ۰۰/۰۲/۲۸