بازی ۲۰۴۸

پروژه Course object

مقدمهپیوند
این مقاله در نظر دارد بهترین وضعیت برای بازی ۲۰۴۸ را پیدا کند
این بازی در ۲ مدل مختلف اجرا می شود
۱ انسان و کامپیوتر
۲
کامپیوتر و کامپیوتر
در حالت اول بصورت رندوم پیش می رود و هدف پیاده سازی بازی بود.
در حالت دوم درخت مینی_مکس به بازی اضافه می شود که تا عمق ۵ پیش می رود.

توضیح و شرح مسئله
بازی ۲۰۴۸ را می خواهیم با استفاده از درخت مینی-مکس به بهترین امتیاز برسانیم به گونه ای که درخت آن در شکل زیر آورده شده

درخت مینی-مکس بازی

  1. در لایه mux از بین حرکت در چهار جهت بهترین وضعیت انتخاب می شود.

  2. در لایه min از بین حالت های بورد وقتی عدد ۲ یا ۴ در خانه های خالی قرار می گیرد، بدترین حالت انتخاب می شود.

امتیازدهی به گره های پایانی
حال می خواهیم بررسی کنیم که چگونه به leaf node ها امتیاز دادیم.
راه هایی که در ابتدا برای ارزیابی گره های انتهایی به ذهنمان رسید موارد زیر است :
تعداد خانه های خالی مقدار بزرگترین خانه جدول
فاصله خانه های هم مقدار از هم مجموع خانه های کل جدول
_ ...
راه های ابتدا تقریبا ناکارآمد بودند و فقط از یک جهت جدول را بررسی می کردند.
سپس با توجه به موارد بالا و شرایط مختلف به یک فرمول جامع و خطی و ترکیبی از راه های ابتدایی و ... رسیدیم که موارد بالا را پوشش می دهد
nodeScore =
score - (largestgrad_score/10.0) + (largestempty_cell) + (largest*largest)
حال به توضیح پارامتر ها در فرمول بالا می پردازیم :
Score : عدد هر خانه ضربدر مقداری ثابت که در جدول زیر مشخص است
[[32,2,2,0.125]
[16,4,1,0.250]
[16,4,1,0.250]
[8,8,0.5,0.5]]
همانطور که در جدول بالا می بینید، سمت چپ بالای جدول بیشترین امتیاز را داراست و بصورت مارپیچ ابتدا حرکت به سمت پایین امتیاز تقسیم بر ۲ می شود.تا اعداد در گوشه و بصورت پشت هم چیده شوند.
Largest : بیشترین مقدار عدد در جدول می باشد
Grade_score : مجموع اعداد هر ردیف یا ستون

empty_cell : تعداد خانه های خالی می باشد

آدرس کد بارگذاری شده :
https://github.com/pouriapourrashidi/ai2019