شما می دانید زمانی که شما Wordled شده اید …

Summarize this content to 400 words in Persian Lang
آیا تا به حال پروژه ای را با این فکر شروع کرده اید که “چقدر می تواند سخت باشد؟” – فقط ماهها بعد متوجه شدم که پاسخ این است: «خیلی سختتر، قطعاً فعلاً از عمق من خارج است». خوب این فقط خلاصه این پروژه است که مدتی است روی آن کار کرده ام. داستان اینجاست.
من سالهاست که به کامپیوتر علاقه مند هستم. من اولین رایانه شخصی ام را در نوجوانی ساختم، در سال 2008، و در آن زمان نرم افزار نوعی جادوی مرموز به نظر می رسید که نمی توانستم سرم را دور آن بپیچم. به سرعت به حدود یک سال پیش، و من متوجه شدم که در Codecademy ثبت نام کردم. تا حدودی تلاش و یادگیری یک مهارت جدید بود، اگر تصمیم بگیرم یا نیاز به تغییر شغل در آینده داشته باشم. با این حال، بیشتر فقط برای سرگرمی و رضایت شخصی بود – شاید بالاخره بتوانم کمی بیشتر در مورد نحوه کار آن نرم افزار مرموز بفهمم؟
اولین توقف من دوره رایگان سی شارپ بود که به اندازه کافی مجذوب من شد تا برای اشتراک سالانه ثبت نام کنم. چند ماه بعد، تصمیم گرفتم برای یک کار بزرگ بروم و مسیر شغلی علوم کامپیوتر را شروع کنم. اگرچه میتوانستم سراغ چیزی شبیه توسعه وب بروم، اما وقتی برای اولین بار وارد کامپیوتر شدم، متوجه شدم علوم کامپیوتر بیشتر با علایق اولیه من مطابقت دارد – نه فقط یاد گرفتن نحوه کدنویسی، بلکه نحوه کارکرد آن در زیر سرپوش.
این دوره با آموزش یک زبان جدید – پایتون – به من شروع شد. شنیده بودم که این زبان یکی از محبوبترین زبانها برای مبتدیان است و میتوانستم دلیل آن را بفهمم. من که قبلاً با سی شارپ آشنا شده بودم، که به اندازه کافی آسان به نظر می رسید، اما با برخی ابهامات عجیب و غریب که در سرم وجود داشت، مانند اردکی به پایتون رفتم.
با این حال، سپس به بخشی از دوره رسید که من نیاز به ساختن اولین پروژه پورتفولیو خود داشتم. خلاصه این بود که یک بازی ترمینال در پایتون ایجاد کنیم و آن را در GitHub و یک پلتفرم وبلاگ نویسی منتشر کنیم. خب در ابتدا، بخشی از تکلیف که باعث شد من به دردسر بیفتم، به اشتراک گذاشتن پروژه ام با دیگران بود. من تمایل دارم از انتشار مطالب در فضای باز پرهیز کنم، به خصوص زمانی که احساس می کنم به درستی نمی دانم چه کاری انجام می دهم. یک حرفه شکست خورده در گذشته به عنوان یک کاریکاتوریست به من خطرات “تفک زدن” را آموخت – این تصور را به من داد که برای به دست آوردن مشتریان بالقوه، شایستگی و شاید با تجربه تر از آنچه در واقع داشتم، هستم. با این حال، این داستان دیگری است.
اساساً، نسخه فشرده این مقدمه طولانی این است که من این پست را می نویسم زیرا Codecademy مرا مجبور به انجام آن کرده است. من دچار هیچ توهم/توهم نیستم که من یک کدنویس شگفتانگیز هستم – من فقط یک آدم عصبی کنجکاو هستم که دوست دارم تا پایان این دوره بروم و در طول راه چیزهای جالبی یاد بگیرم. و میدونی چیه، من از این بابت خوشحالم و اگر تو هم مثل من هستی، تو هم باید باشی.
پس در مورد بازی ای که قرار بود بسازم چطور؟ من چند پیشنهاد شروع از Codecademy داشتم، مانند Blackjack، Tic-Tac-Toe، و Minesweeper، اما میخواستم چیز متفاوتی را امتحان کنم. بازیای که من هر روز از انجام آن لذت میبرم «Wordle» است که اکنون متعلق به نیویورک تایمز است و میزبان آن است. ظاهراً آن بازی به عنوان یک پروژه شخصی کوچک شروع شد که یک پسر برای دوست دخترش ساخته بود، و من از سادگی ظاهری قوانین بازی و نحوه کارکرد آن مجذوب شدم. بنابراین تصمیم گرفتم نسخه شخصی خود را از “Wordle” ایجاد کنم تا ببینم آیا می توانم آن را برای خودم کشف کنم یا خیر. بالاخره چقدر میتونه سخت باشه؟…
پاسخ کوتاه – با توجه به اینکه من فقط یک مبتدی هستم، کمی سخت تر از آنچه فکر می کردم. من مطمئن هستم که یک متخصص می تواند یک کلون Wordle را در چند ساعت از بین ببرد، اما برای من این یک پروژه چند ماهه بوده است. من بیشتر شب ها قبل از خواب روی آن کار می کردم و تجربه بسیار لذت بخشی بود. من را متعجب کرده است که در یک بازی ترمینال به ظاهر ساده تعداد قطعات متحرک وجود دارد.
می توانید کد من را در GitHub اینجا پیدا کنید.
این پروژه هنوز در حال انجام است و من قصد دارم با گذشت زمان به رفع اشکالات و اضافه کردن ویژگیها ادامه دهم. به طور خلاصه، نحوه کار این بازی به شرح زیر است:
پس از راهاندازی، یک صفحه نمایش به کاربر نشان داده میشود و از او خواسته میشود نام خود را وارد کند. در مرحله بعد، بازی یک کلمه مخفی را در پسزمینه انتخاب میکند که در حال حاضر از یک لیست آزمایشی شامل ده کلمه ۶ حرفی است. در نسخه بعدی، من قصد دارم این لیست را گسترش دهم تا کلمات احتمالی بیشتری در دسترس باشد. سپس برنامه یک صفحه کلید و شبکه ای از حدس های فعلی را نمایش می دهد. فقط حدس های 6 حرفی، فقط با حروف الفبا و عددی پذیرفته می شود. هر بار که یک حدس ارسال می شود، برنامه حدس را تجزیه و تحلیل می کند و آن را با کلمه مخفی مقایسه می کند. اگر بازیکن یک حرف درست را در جای مناسب انتخاب کرده باشد به رنگ سبز چاپ می شود و حرف مربوطه روی صفحه کلید سبز می شود. اگر حرف درست باشد اما در جای خود قرار نداشته باشد، به رنگ زرد چاپ می شود. اگر حرفی نادرست باشد، با رنگ خاکستری چاپ می شود. این فرآیند دقیقاً منطق بازی اصلی را تقلید می کند، اگرچه من چند اشکال لبه کیس را کشف کرده ام که می تواند باعث خرابی آن شود. اگر بازیکن در شش بار تلاش کلمه را به درستی حدس بزند، برنده می شود. اگر آنها بیش از شش بار تلاش کنند، بازی با شکست به پایان می رسد.
بنابراین ساده به نظر می رسد، اما در واقع چند ماه طول کشید تا به این مرحله برسم. من از پیچیدگی کدم شگفت زده شدم و در تاریخ بعدی قصد دارم در صورت امکان آن را ساده کنم. در عین حال، این یک چالش واقعاً لذت بخش برای من بود و خوشحالم که توانستم تا اینجا به آن برسم. اکنون میخواهم دوره را ادامه دهم، اما کاملاً قصد دارم به طور مرتب به آن برگردم تا برخی بهروزرسانیها را انجام دهم. اگر پیشنهادی برای کد یا ویژگیهای جدید احتمالی دارید، لطفاً به من اطلاع دهید.
آیا تا به حال پروژه ای را با این فکر شروع کرده اید که “چقدر می تواند سخت باشد؟” – فقط ماهها بعد متوجه شدم که پاسخ این است: «خیلی سختتر، قطعاً فعلاً از عمق من خارج است». خوب این فقط خلاصه این پروژه است که مدتی است روی آن کار کرده ام. داستان اینجاست.
من سالهاست که به کامپیوتر علاقه مند هستم. من اولین رایانه شخصی ام را در نوجوانی ساختم، در سال 2008، و در آن زمان نرم افزار نوعی جادوی مرموز به نظر می رسید که نمی توانستم سرم را دور آن بپیچم. به سرعت به حدود یک سال پیش، و من متوجه شدم که در Codecademy ثبت نام کردم. تا حدودی تلاش و یادگیری یک مهارت جدید بود، اگر تصمیم بگیرم یا نیاز به تغییر شغل در آینده داشته باشم. با این حال، بیشتر فقط برای سرگرمی و رضایت شخصی بود – شاید بالاخره بتوانم کمی بیشتر در مورد نحوه کار آن نرم افزار مرموز بفهمم؟
اولین توقف من دوره رایگان سی شارپ بود که به اندازه کافی مجذوب من شد تا برای اشتراک سالانه ثبت نام کنم. چند ماه بعد، تصمیم گرفتم برای یک کار بزرگ بروم و مسیر شغلی علوم کامپیوتر را شروع کنم. اگرچه میتوانستم سراغ چیزی شبیه توسعه وب بروم، اما وقتی برای اولین بار وارد کامپیوتر شدم، متوجه شدم علوم کامپیوتر بیشتر با علایق اولیه من مطابقت دارد – نه فقط یاد گرفتن نحوه کدنویسی، بلکه نحوه کارکرد آن در زیر سرپوش.
این دوره با آموزش یک زبان جدید – پایتون – به من شروع شد. شنیده بودم که این زبان یکی از محبوبترین زبانها برای مبتدیان است و میتوانستم دلیل آن را بفهمم. من که قبلاً با سی شارپ آشنا شده بودم، که به اندازه کافی آسان به نظر می رسید، اما با برخی ابهامات عجیب و غریب که در سرم وجود داشت، مانند اردکی به پایتون رفتم.
با این حال، سپس به بخشی از دوره رسید که من نیاز به ساختن اولین پروژه پورتفولیو خود داشتم. خلاصه این بود که یک بازی ترمینال در پایتون ایجاد کنیم و آن را در GitHub و یک پلتفرم وبلاگ نویسی منتشر کنیم. خب در ابتدا، بخشی از تکلیف که باعث شد من به دردسر بیفتم، به اشتراک گذاشتن پروژه ام با دیگران بود. من تمایل دارم از انتشار مطالب در فضای باز پرهیز کنم، به خصوص زمانی که احساس می کنم به درستی نمی دانم چه کاری انجام می دهم. یک حرفه شکست خورده در گذشته به عنوان یک کاریکاتوریست به من خطرات “تفک زدن” را آموخت – این تصور را به من داد که برای به دست آوردن مشتریان بالقوه، شایستگی و شاید با تجربه تر از آنچه در واقع داشتم، هستم. با این حال، این داستان دیگری است.
اساساً، نسخه فشرده این مقدمه طولانی این است که من این پست را می نویسم زیرا Codecademy مرا مجبور به انجام آن کرده است. من دچار هیچ توهم/توهم نیستم که من یک کدنویس شگفتانگیز هستم – من فقط یک آدم عصبی کنجکاو هستم که دوست دارم تا پایان این دوره بروم و در طول راه چیزهای جالبی یاد بگیرم. و میدونی چیه، من از این بابت خوشحالم و اگر تو هم مثل من هستی، تو هم باید باشی.
پس در مورد بازی ای که قرار بود بسازم چطور؟ من چند پیشنهاد شروع از Codecademy داشتم، مانند Blackjack، Tic-Tac-Toe، و Minesweeper، اما میخواستم چیز متفاوتی را امتحان کنم. بازیای که من هر روز از انجام آن لذت میبرم «Wordle» است که اکنون متعلق به نیویورک تایمز است و میزبان آن است. ظاهراً آن بازی به عنوان یک پروژه شخصی کوچک شروع شد که یک پسر برای دوست دخترش ساخته بود، و من از سادگی ظاهری قوانین بازی و نحوه کارکرد آن مجذوب شدم. بنابراین تصمیم گرفتم نسخه شخصی خود را از “Wordle” ایجاد کنم تا ببینم آیا می توانم آن را برای خودم کشف کنم یا خیر. بالاخره چقدر میتونه سخت باشه؟…
پاسخ کوتاه – با توجه به اینکه من فقط یک مبتدی هستم، کمی سخت تر از آنچه فکر می کردم. من مطمئن هستم که یک متخصص می تواند یک کلون Wordle را در چند ساعت از بین ببرد، اما برای من این یک پروژه چند ماهه بوده است. من بیشتر شب ها قبل از خواب روی آن کار می کردم و تجربه بسیار لذت بخشی بود. من را متعجب کرده است که در یک بازی ترمینال به ظاهر ساده تعداد قطعات متحرک وجود دارد.
می توانید کد من را در GitHub اینجا پیدا کنید.
این پروژه هنوز در حال انجام است و من قصد دارم با گذشت زمان به رفع اشکالات و اضافه کردن ویژگیها ادامه دهم. به طور خلاصه، نحوه کار این بازی به شرح زیر است:
پس از راهاندازی، یک صفحه نمایش به کاربر نشان داده میشود و از او خواسته میشود نام خود را وارد کند. در مرحله بعد، بازی یک کلمه مخفی را در پسزمینه انتخاب میکند که در حال حاضر از یک لیست آزمایشی شامل ده کلمه ۶ حرفی است. در نسخه بعدی، من قصد دارم این لیست را گسترش دهم تا کلمات احتمالی بیشتری در دسترس باشد. سپس برنامه یک صفحه کلید و شبکه ای از حدس های فعلی را نمایش می دهد. فقط حدس های 6 حرفی، فقط با حروف الفبا و عددی پذیرفته می شود. هر بار که یک حدس ارسال می شود، برنامه حدس را تجزیه و تحلیل می کند و آن را با کلمه مخفی مقایسه می کند. اگر بازیکن یک حرف درست را در جای مناسب انتخاب کرده باشد به رنگ سبز چاپ می شود و حرف مربوطه روی صفحه کلید سبز می شود. اگر حرف درست باشد اما در جای خود قرار نداشته باشد، به رنگ زرد چاپ می شود. اگر حرفی نادرست باشد، با رنگ خاکستری چاپ می شود. این فرآیند دقیقاً منطق بازی اصلی را تقلید می کند، اگرچه من چند اشکال لبه کیس را کشف کرده ام که می تواند باعث خرابی آن شود. اگر بازیکن در شش بار تلاش کلمه را به درستی حدس بزند، برنده می شود. اگر آنها بیش از شش بار تلاش کنند، بازی با شکست به پایان می رسد.
بنابراین ساده به نظر می رسد، اما در واقع چند ماه طول کشید تا به این مرحله برسم. من از پیچیدگی کدم شگفت زده شدم و در تاریخ بعدی قصد دارم در صورت امکان آن را ساده کنم. در عین حال، این یک چالش واقعاً لذت بخش برای من بود و خوشحالم که توانستم تا اینجا به آن برسم. اکنون میخواهم دوره را ادامه دهم، اما کاملاً قصد دارم به طور مرتب به آن برگردم تا برخی بهروزرسانیها را انجام دهم. اگر پیشنهادی برای کد یا ویژگیهای جدید احتمالی دارید، لطفاً به من اطلاع دهید.