diff options
author | Loïc Hoguin <[email protected]> | 2016-03-28 15:36:42 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2016-03-28 15:36:42 +0200 |
commit | fe3492a98de29942477b061cd02c92246f4bf85a (patch) | |
tree | 2255b796a657e6e4dfb72beec1141258d17f1220 /res | |
download | ninenines.eu-fe3492a98de29942477b061cd02c92246f4bf85a.tar.gz ninenines.eu-fe3492a98de29942477b061cd02c92246f4bf85a.tar.bz2 ninenines.eu-fe3492a98de29942477b061cd02c92246f4bf85a.zip |
Initial commit, new website system
Diffstat (limited to 'res')
-rw-r--r-- | res/erlanger-preview.pdf | bin | 0 -> 118131 bytes | |||
-rw-r--r-- | res/tictactoe.erl | 89 |
2 files changed, 89 insertions, 0 deletions
diff --git a/res/erlanger-preview.pdf b/res/erlanger-preview.pdf Binary files differnew file mode 100644 index 00000000..33fc7c18 --- /dev/null +++ b/res/erlanger-preview.pdf diff --git a/res/tictactoe.erl b/res/tictactoe.erl new file mode 100644 index 00000000..abbc78e0 --- /dev/null +++ b/res/tictactoe.erl @@ -0,0 +1,89 @@ +-module(tictactoe). + +-export([new/0]). +-export([play/4]). +-export([check/1]). + +new() -> + {undefined, undefined, undefined, + undefined, undefined, undefined, + undefined, undefined, undefined}. + +play(Who, X, Y, Board) -> + setelement((Y - 1) * 3 + X, Board, Who). + +check(Board) -> + case Board of + {x, x, x, + _, _, _, + _, _, _} -> {victory, x}; + + {_, _, _, + x, x, x, + _, _, _} -> {victory, x}; + + {_, _, _, + _, _, _, + x, x, x} -> {victory, x}; + + {x, _, _, + x, _, _, + x, _, _} -> {victory, x}; + + {_, x, _, + _, x, _, + _, x, _} -> {victory, x}; + + {_, _, x, + _, _, x, + _, _, x} -> {victory, x}; + + {x, _, _, + _, x, _, + _, _, x} -> {victory, x}; + + {_, _, x, + _, x, _, + x, _, _} -> {victory, x}; + + {o, o, o, + _, _, _, + _, _, _} -> {victory, o}; + + {_, _, _, + o, o, o, + _, _, _} -> {victory, o}; + + {_, _, _, + _, _, _, + o, o, o} -> {victory, o}; + + {o, _, _, + o, _, _, + o, _, _} -> {victory, o}; + + {_, o, _, + _, o, _, + _, o, _} -> {victory, o}; + + {_, _, o, + _, _, o, + _, _, o} -> {victory, o}; + + {o, _, _, + _, o, _, + _, _, o} -> {victory, o}; + + {_, _, o, + _, o, _, + o, _, _} -> {victory, o}; + + {A, B, C, + D, E, F, + G, H, I} when A =/= undefined, B =/= undefined, C =/= undefined, + D =/= undefined, E =/= undefined, F =/= undefined, + G =/= undefined, H =/= undefined, I =/= undefined -> + draw; + + _ -> ok + end. |