Skip to content

M4R14/Ai-Tic-Tac-Toe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

Ai-Tic-Tac-Toe (AT3)

แนวคิดการเดินหมาก AT3 จะเลื่อกตาเดินที่มีผลต่อทั้งกระดานมากที่สุดคือ 1.เพิ่มโอกาสชนะ 2.ลงโอกาสชนะของอีกฝ่าย

O เดินก่อนที่ตำแหน่ง 2
+---+---+---+---+ 
|   | 1 | 2 | 3 | 
+===+===+===+===+ 
| 0 | _ | O | _ | 
+---+---+---+---+ 
| 3 | _ | _ | _ | 
+---+---+---+---+ 
| 6 | _ | _ | _ | 
+---+---+---+---+ 

จากการกระดานวิธีชนะมีทั้งหมด 8 วิธี ซึ่งวิธีชนะทั้งหมดเขียนอยู่ในคอลัม line คอลัมถัดมา index คือตำแหน่งที่สามารถเดินต่อไปได้ คอลัมสุดท้าย score คือคะแนนรวม โดยกำหนดให้ หมากที่เดินก่อนมีค่าเท่ากับ -1 และหมากทัดไปมีค่าเท่ากับ 1

+-----------+-----------+-------+
|   line    |   index   | score |
+===========+===========+=======+
| [1, 2, 3] | [1, 3]    | -1    |
+-----------+-----------+-------+
| [4, 5, 6] | [4, 5, 6] | 0     |
+-----------+-----------+-------+
| [7, 8, 9] | [7, 8, 9] | 0     |
+-----------+-----------+-------+
| [1, 4, 7] | [1, 4, 7] | 0     |
+-----------+-----------+-------+
| [2, 5, 8] | [5, 8]    | -1    |
+-----------+-----------+-------+
| [3, 6, 9] | [3, 6, 9] | 0     |
+-----------+-----------+-------+
| [1, 5, 9] | [1, 5, 9] | 0     |
+-----------+-----------+-------+
| [7, 5, 3] | [7, 5, 3] | 0     |
+-----------+-----------+-------+

จากตรารางนี้ทำให้ทราบหมากต่อไปของ X เพื่อไม่ให้แพ้ได้ในระดับนึง ตอนนี้ X เหลือตาเดินอีก 8 ตา ต้องเลือกตาเดินที่จากแนวคิด เพิ่มโอกาสชนะและลงโอกาสชนะของอีกฝ่ายไปพร้อมกัน

+--------+---+---+---+---+---+---+---+---+---+
| index  | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
+========+===+===+===+===+===+===+===+===+===+
| weight | 3 | 0 | 3 | 2 | 4 | 2 | 3 | 2 | 3 |
+--------+---+---+---+---+---+---+---+---+---+

ตารางนี้ได้จากการนับวิธีชนะในแต่ละตำแหน่งที่ X สามารถเดินได้ โดยตำแหน่งที่มีค่า weight สูงที่สุดคือตาเดิมที่มีผลกระทบกับกระดานมากที่สุด ถ้าหาก AT3 ว่าง X ลงตำแหน่งที่ 5 จะเพิ่มโอกาสชนะให้มันอย่างมาก แต่วิธีนี้บ้างครับไม่ได้ ลงโอกาสชนะของอีกฝ่าย (O)

scoreIndex =  1 , score =  -1 , weight= 3 , abs(score)*weight =  3
scoreIndex =  5 , score =  -1 , weight= 4 , abs(score)*weight =  4

จากสมการนี้ scoreIndex ที่ให้ abs(score) x weight มากที่ตาเดินถัดไปของ X

+---+---+---+---+
|   | 1 | 2 | 3 |
+===+===+===+===+
| 0 | _ | O | _ |
+---+---+---+---+
| 3 | _ | X | _ |
+---+---+---+---+
| 6 | _ | _ | _ |
+---+---+---+---+

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages