bashir_nashi
چهارشنبه 24 مهر 1387, 20:04 عصر
سلام به دوستان
من سه الگوریتم برای پیاده سازی بازی دوز بلدم که البته اسمهاشون رو نمی دونم !
این سه روش اینها هستند :
- روش اول :
یک صفحه شامل یک بردار 9 عنصری داریم که هر عنصر شامل 0 (خالی) یا 1 (حرکتx) یا 2 (حرکتo) است. همچنین یک جدول حرکت داریم که برداری از 3 بتوان 9 عنصر میباشد که هر عنصر آن یک بردار 9 عنصری نمایانگر موقعیت صفحه است. یعنی در کل 19683 عنصر داریم.
برای انجام حرکت این گونه عمل می کنیم که به صفحه به عنوان یک عدد مبنای 3 نگاه می کنیم و معادل دهدهی آن را بدست می آوریم. از این عدد بعنوان اندیس به جدول حرکت استفاده می کنیم و بردار ذخیره شده آنجا را بدست می آوریم.بردار انتخاب شده بیانگر موقعیت بازی بعد از حرکت است . پس صفحه بازی را برابر این بردار قرار می دهیم.
- روش دوم :
یک بردار 9 عنصری بیانگر صفحه بازی داریم که با 2 (خالی) یا 3 (x) یا 5 (o) پر می شود. در هر لحظه از بازی x تلاش میکند خودش را برنده کند یعنی به دنبال خانه های متوالی می گردد که حاصلضرب مقادیرش برابر 5*5*2 شود اگر پیدا نکرد جلوی برنده شدن o را می گیرد یعنی به دنبال 3*3*2 می گردد و ...
البته این روش با استفاده از مربع جادیی هم قابل پیاده سازی است.
روش سوم :
استفاده از درخت برای پیش بینی و ترسیم تمام حالات ممکن و ...
ولی فکر می کنم روش های حل دیگری هم باشه که از دوستان می خوام اونها رو معرفی کنند
ممنون
من سه الگوریتم برای پیاده سازی بازی دوز بلدم که البته اسمهاشون رو نمی دونم !
این سه روش اینها هستند :
- روش اول :
یک صفحه شامل یک بردار 9 عنصری داریم که هر عنصر شامل 0 (خالی) یا 1 (حرکتx) یا 2 (حرکتo) است. همچنین یک جدول حرکت داریم که برداری از 3 بتوان 9 عنصر میباشد که هر عنصر آن یک بردار 9 عنصری نمایانگر موقعیت صفحه است. یعنی در کل 19683 عنصر داریم.
برای انجام حرکت این گونه عمل می کنیم که به صفحه به عنوان یک عدد مبنای 3 نگاه می کنیم و معادل دهدهی آن را بدست می آوریم. از این عدد بعنوان اندیس به جدول حرکت استفاده می کنیم و بردار ذخیره شده آنجا را بدست می آوریم.بردار انتخاب شده بیانگر موقعیت بازی بعد از حرکت است . پس صفحه بازی را برابر این بردار قرار می دهیم.
- روش دوم :
یک بردار 9 عنصری بیانگر صفحه بازی داریم که با 2 (خالی) یا 3 (x) یا 5 (o) پر می شود. در هر لحظه از بازی x تلاش میکند خودش را برنده کند یعنی به دنبال خانه های متوالی می گردد که حاصلضرب مقادیرش برابر 5*5*2 شود اگر پیدا نکرد جلوی برنده شدن o را می گیرد یعنی به دنبال 3*3*2 می گردد و ...
البته این روش با استفاده از مربع جادیی هم قابل پیاده سازی است.
روش سوم :
استفاده از درخت برای پیش بینی و ترسیم تمام حالات ممکن و ...
ولی فکر می کنم روش های حل دیگری هم باشه که از دوستان می خوام اونها رو معرفی کنند
ممنون