TableOfContent |
μ£Όμ ¶
κ°λ¨ Othello AI λ§λ€μ΄λ³΄κΈ°
μμ ¶
- κ°λ¨ Othello λ£°μ λν μ€λͺ
- 1μ°¨ ꡬν
- approach : state machine
- approach : minimax
ν κ΅¬μ± ¶
2-3λͺ
λΉ 1νμΌλ‘. ν λ΄μλ
νΉμ, ꡬν μμ²΄κ° κ°λ¨νλ―λ‘ κ°λ¨ν λ¬Έλ²μ λμλ°μμ νλ‘κ·Έλλ° μ§νν΄λ μ’μ
- νμ΄μ¬ νλ‘κ·Έλλ° κ°λ₯ν μ¬λ 1λͺ
μ΄μ
- μ€λΈλ‘ κ²μμ μλ μ¬λμ΄ 1λͺ
μ΄μ
μ΄μ© ν΄λ€(μ€μΉν κ²) ¶
μ£Όμ ν΄λμ€ ¶
class Board
getPutableList(self,aStone)
count(self,aStone)
isPutable(self, aCol, aRow, aStone)
tsGameOver(self)
class Player
ν΄λΉ λ μμ λν λμ μ μλ μμΉλ€ ν°νλ€μ μ€λ€
(col,row)λ€ λ¦¬μ€νΈ
(col,row)λ€ λ¦¬μ€νΈ
count(self,aStone)
ν΄λΉ λ μμ μΌλ€
isPutable(self, aCol, aRow, aStone)
ν΄λΉ λ μμΌ ν΄λΉ μμΉμ λμ μ μλμ§ μ¬λΆ ν
μ€νΈ(true/false)
tsGameOver(self)
κ²μ μ’
λ£ μ‘°κ±΄ μνμ λλ¬νλμ§μ λν μ¬λΆ
name(self)
put(self)
isPutable(self,aCol,aRow)
getStoneColor(self)
getPutableList(self)
ν΄λΉ νλ μ΄μ΄μ μ΄λ¦μ λνλ
put(self)
μ€μ λμ λμ
isPutable(self,aCol,aRow)
μκΈ° μμ μ΄ λμ μ μλ μμΉμΈμ§μ λν μ¬λΆ 체ν¬
getStoneColor(self)
μμ μ λ μμ λν΄ μ€νΈλ§μ 리ν΄
getPutableList(self)
ν΄λΉ νλ μ΄μ΄κ° λμ μ μλ μμΉλ€μ λν 리μ€νΈλ₯Ό μ»μ΄μ΄.
1 minute tutorial ¶
κΈ°λ³Έ λΌλ ¶
~cpp from Player import Player class DefaultComputerPlayer(Player): def __init__(self,aStone, aBoard): Player.__init__(self, aStone, aBoard) def name(self): return "MyName~" def execute(self): putableList = self.getPutableList() posX,posY = putableList[0] return self.put(posX,posY)
Evaluator interface ¶
~cpp from evaluator import Evaluator class SimpleEvaluator(Evaluator): def __init__(self,aBoardSize=8): Evaluator.__init__(self,aBoardSize) # ν΄λΉ νμ λν΄ νκ°νλ ν¨μ # stone μ λν΄μ μ΄ νμ΄ λͺμ μ§λ¦¬ νμΈμ§μ λν΄ μ μλ₯Ό λ§€κΈ΄λ€ def evaluate(self,board,stone): return board.count(stone)
Simple Heuristic Table ¶
50 4 16 12 12 16 4 50 4 -30 -4 -5 -5 -4 -30 4 16 -4 1 0 0 1 -4 16 12 -5 0 0 0 0 -5 12 12 -5 0 0 0 0 -5 12 16 -4 1 0 0 1 -4 16 4 -30 -4 -5 -5 -4 -30 4 50 4 16 12 12 16 4 50
λμ κ²°κ³Ό ¶
νλͺ | μμ±μ | μ½λ |
Namsang | μμ, μ ν, 보창 | ALittleAiSeminar/Namsang |
Smart | κΈ°μ , μ νΈ, νλ | Upload(zeropage):SmartPlayer.py |
NonNamsang | μμ, νν, κ·ν |

