من در حال بازی کردن بازی “Scramble” (که مشابه بازی “Boggle” است) روی iPod Touch خود بودم و متوجه شدم که در آن خیلی خوب نیستم. اما چالش الگوریتمی نوشتن یک برنامه برای حل بازی Scramble برایم بسیار جذاب بود و نتواستم از آن چشم‌پوشی کنم. این کار واقعاً چالش‌برانگیز بود، اما در نهایت بسیار رضایت‌بخش بود.

برنامه ابتدا یک لیست از کلمات قانونی را از یک فایل متنی می‌گیرد. از آنجا که حرف “Q” همیشه به صورت “Qu” نمایش داده می‌شود، کلمات دیکشنری تغییر می‌کنند تا حرف “U” بعد از “Q” حذف شود. کاربر باید برد را به عنوان یک آرایه ۲۵ کاراکتری در برنامه اصلی به نام “word4.m” وارد کند. برای پیدا کردن نزدیک‌ترین همسایگان هر یک از حروف و خود برد، من هم با استفاده از ایندکسینگ تک‌عضوی آرایه و هم ایندکسینگ مختصات x-y آرایه آزمایش کردم.

الگوریتم ابتدا نزدیک‌ترین همسایه را پیدا کرده و سپس همسایه همسایه را برای ساختن دنباله‌های کاراکتری بررسی می‌کند. این دنباله‌ها با لیست کلمات مقایسه می‌شوند تا ببینند آیا امیدوارکننده هستند یا خیر، و در صورتی که نباشند، دنباله‌ها حذف می‌شوند. در نهایت، یک لیست نهایی از کلمات تولید شده و بر اساس طول کلمه‌ها مرتب می‌شود.

این پروژه ترکیبی از چالش‌های الگوریتمی و مهارت در پردازش داده‌ها بود که به نتیجه رضایت‌بخشی رسید.

دسته بندی: برچسب ها: