지금 하스켈 배우고있는데 이게 엄청나게 원시적인 언어라 참 헛갈리네........


이게 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