class interface TICTACTOE
creation
make
feature(s) from TICTACTOE
-- Constant(s)
Max_level: INTEGER
-- Maximum computer intelligence.
feature(s) from TICTACTOE
-- Reset
reset
-- Create/initialise.
feature(s) from TICTACTOE
-- Option(s)
set_level (lvl: INTEGER)
-- Level (1: Easy, Max_level: Difficult).
require
valid: lvl > 0 and lvl <= Max_level
ensure
done: level = lvl
feature(s) from TICTACTOE
-- Status
is_square (col, row: INTEGER): BOOLEAN
-- Is this (col, row) correct?
ensure
done: Result = (col >= 1 and col <= 3 and row >= 1 and row <= 3)
is_empty (col, row: INTEGER): BOOLEAN
-- Is this square empty?
require
in: is_square(col,row)
is_user (col, row: INTEGER): BOOLEAN
-- Is this a user's square?
require
in: is_square(col,row)
is_computer (col, row: INTEGER): BOOLEAN
-- Is this a computer's square?
require
in: is_square(col,row)
is_finished: BOOLEAN
-- Finished?
is_user_winner: BOOLEAN
-- Who wins?
require
ok: is_finished
is_computer_winner: BOOLEAN
require
ok: is_finished
feature(s) from TICTACTOE
-- Action
move (col, row: INTEGER)
-- User plays on (col, row).
require
notend: not is_finished;
ok: is_square(col,row);
empty: is_empty(col,row)
computer_move
-- Computer plays.
require
notend: not is_finished
invariant
board: board /= Void;
end of TICTACTOE