Haskell 고수
goondo(150.203)
2015-05-14 13:21
추천 0
지금 하스켈 배우고있는데 이게 엄청나게 원시적인 언어라 참 헛갈리네........
이게 Player 하나를 만들어서 더 좋은 선택을 하게 만들어야되는데
지금 Minimax-Tree 를 적용시켜야 애가 더 잘 움직이는데 어떻게 해야될지 이게 개념은 이해가 가는데 어떻게 써야되는지 참 모르겠음....
혹시 고수있으면 팁좀 알려주세요 ..
module Player (
select_move -- :: Board -> Lookahead -> Pond_Ix
) where
import Data.Board
select_move :: Board -> Lookahead -> Pond_Ix
select_move (Board current_turn pondA _ pondB _) _ = find_index my_pond (maximum my_pond) 1 1
where
my_pond
| current_turn == Player_A = pondA
| otherwise = pondB
oppo_pond
| current_turn == Player_A = pondB
| otherwise = pondA
find_index :: Ponds -> Pebbles -> Pond_Ix -> Pond_Ix -> Pond_Ix
find_index pond value index max_index = case pond of
[] -> max_index
x : xs
| x == 0 -> find_index xs value next_index max_index
| x + index == 7 || x + index < 7 && my_pond !! (index + x - 1) == 0 && oppo_pond !! (abs (6 - index)) > 0 -> index
| value == x -> find_index xs value next_index index
| otherwise -> find_index xs value next_index max_index
where next_index = index + 1
댓글 0