You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
1.1 KiB

9 years ago
  1. module Strategy1 where
  2. import Datatypes
  3. import VM
  4. import Datatypes.Game (Command(..))
  5. strat1 :: Game -> ([Command],Int)
  6. strat1 game = if new_notes == GameOver
  7. then (new_command : [], score new_game)
  8. else (new_command : (fst $ strat1 new_game), snd $ strat1 new_game)
  9. where
  10. (new_game_se,notes_se) = step game MoveSE
  11. (new_game_sw,notes_sw) = step game MoveSW
  12. se = (new_game_se,notes_se,MoveSE)
  13. sw = (new_game_sw,notes_sw,MoveSW)
  14. (new_game,new_notes,new_command) = case (notes_sw,notes_se) of
  15. (GameOver,GameOver) -> se
  16. (_,GameOver) -> sw
  17. (GameOver,_) -> se
  18. (Lock i,OK) -> if i > 0
  19. then sw
  20. else se
  21. (OK,Lock i) -> if i > 0
  22. then se
  23. else sw
  24. (OK,OK) -> sw
  25. (Lock i,Lock j) -> if i > j
  26. then sw
  27. else se
  28. otherwise -> (game,GameOver,MoveE)