E D R , A S I H C RSS

ALittle Ai Seminar

TableOfContent

주제

간단 Othello AI λ§Œλ“€μ–΄λ³΄κΈ°

μˆœμ„œ

  • 간단 Othello 룰에 λŒ€ν•œ μ„€λͺ…
  • 1μ°¨ κ΅¬ν˜„
  • approach : state machine
  • approach : minimax

νŒ€ ꡬ성

2-3λͺ… λ‹Ή 1νŒ€μœΌλ‘œ. νŒ€ λ‚΄μ—λŠ”
  • 파이썬 ν”„λ‘œκ·Έλž˜λ° κ°€λŠ₯ν•œ μ‚¬λžŒ 1λͺ… 이상
  • 였델둜 κ²Œμž„μ„ μ•„λŠ” μ‚¬λžŒμ΄ 1λͺ… 이상

ν˜Ήμ€, κ΅¬ν˜„ μžμ²΄κ°€ κ°„λ‹¨ν•˜λ€λ‘œ κ°„λ‹¨νžˆ 문법을 λ„μ›€λ°›μ•„μ„œ ν”„λ‘œκ·Έλž˜λ° 진행해도 μ’‹μŒ

μ£Όμš” 클래슀

class Board
getPutableList(self,aStone)
ν•΄λ‹Ή 돌 색에 λŒ€ν•œ 놓을 수 μžˆλŠ” μœ„μΉ˜λ“€ ν„°ν”Œλ“€μ„ μ€λ‹€
(col,row)λ“€ 리슀트

count(self,aStone)
ν•΄λ‹Ή 돌 색을 μ„Όλ‹€

isPutable(self, aCol, aRow, aStone)
ν•΄λ‹Ή 돌 색일 ν•΄λ‹Ή μœ„μΉ˜μ— 놓을 수 μžˆλŠ”μ§€ μ—¬λΆ€ ν…ŒμŠ€νŠΈ(true/false)

tsGameOver(self)
κ²Œμž„ μ’…λ£Œ 쑰건 μƒνƒœμ— λ„λ‹¬ν–ˆλŠ”μ§€μ— λŒ€ν•œ μ—¬λΆ€

class Player
name(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 μˆ˜μƒ, ν˜„νƒœ, κ·œν˜„
Upload:CheepPlayer.zip
Upload:SmartPlayer.py
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:21
Processing time 0.0159 sec