module Strategy1 where import Datatypes import VM import Datatypes.Game (Command(..)) strat1 :: Game -> ([Command],Int) strat1 game = if new_notes == GameOver then (new_command : [], score new_game) else (new_command : (fst $ strat1 new_game), snd $ strat1 new_game) where (new_game_se,notes_se) = step game MoveSE (new_game_sw,notes_sw) = step game MoveSW se = (new_game_se,notes_se,MoveSE) sw = (new_game_sw,notes_sw,MoveSW) (new_game,new_notes,new_command) = case (notes_sw,notes_se) of (GameOver,GameOver) -> se (_,GameOver) -> sw (GameOver,_) -> se (Lock i,OK) -> if i > 0 then sw else se (OK,Lock i) -> if i > 0 then se else sw (OK,OK) -> sw (Lock i,Lock j) -> if i > j then sw else se otherwise -> (game,GameOver,MoveE)