diff options
Diffstat (limited to 'code/main.felan')
-rw-r--r-- | code/main.felan | 73 |
1 files changed, 15 insertions, 58 deletions
diff --git a/code/main.felan b/code/main.felan index e2c056b..7f9b130 100644 --- a/code/main.felan +++ b/code/main.felan @@ -1,68 +1,25 @@ @import("basic.felan"); +file :: @import("file.felan"); -main :: () -> void { - stones := 6; - player := 1; - while stones > 0 { - r :res =minimax(stones,true); - stones -= r.move; - putc @cast(stones,u8) + '0'; - putc '\n'; - putc 'p'; - putc @cast(player,u8) + '0'; - putc '\n'; - player = (if player == 2 1 else 2); - } +foo :: () -> void { + putc 'b'; }; -res :: struct { - move : i64; - score : i64; +main :: () -> void { + file.foo(); +// foo(); }; -minimax :: (currentStones:i64, isMaximizing:bool) -> res { - if currentStones <= 0 { - r : res = undefined; - r.move = 0; - r.score = (if isMaximizing {-1;} else {1;}); - return r; - } - - found := false; - bestMove : res = undefined; - score := (if isMaximizing {-1000000;} else {1000000;}); - move := 1; - while move <= 2 { - if currentStones - move >= 0 { - found = true; - result : res = minimax(currentStones - move, !isMaximizing); - if isMaximizing { - if result.score > score { - bestMove.move = move; - bestMove.score = result.score; - score = result.score; - } - }else{ - if result.score < score { - bestMove.move = move; - bestMove.score = result.score; - score = result.score; - } - } - } - move += 1; - } +/* +@import("basic.felan"); - if !found { - r : res = undefined; - r.move = 0; - r.score = (if isMaximizing {-1;} else {1;}); - return r; +main :: () -> void { + i := 0; + while i < 10 { + putc @cast(i,u8)+'0'; + i += 1; +// break; } - - return bestMove; }; - - - +*/ |