18.10.2014 Views

Object-oriented Software in Ada 95

Object-oriented Software in Ada 95

Object-oriented Software in Ada 95

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Case study: Design of a game 131<br />

Counter<br />

package Class_Counter is<br />

type Counter is private;<br />

type Counter_Colour is ( Black, White );<br />

procedure Set( The:<strong>in</strong> out Counter; Rep:<strong>in</strong> Counter_Colour );<br />

procedure Display( The:<strong>in</strong> Counter );<br />

procedure Display_None( The:<strong>in</strong> Counter );<br />

procedure Flip( The:<strong>in</strong> out Counter );<br />

function Rep( The:<strong>in</strong> Counter ) return Counter_Colour;<br />

private<br />

end Class_Counter;<br />

Player<br />

package Class_Player is<br />

type Player is private;<br />

procedure Set( The:<strong>in</strong> out Player; C:<strong>in</strong> Counter_Colour );<br />

procedure Get_Move(The:<strong>in</strong> Player; Row,Column:out Integer);<br />

function My_Counter( The:<strong>in</strong> Player ) return Counter;<br />

procedure Announce( The:<strong>in</strong> Player; What:<strong>in</strong> State_Of_Game );<br />

private<br />

end Class_Player;<br />

Cell<br />

package Class_Cell is<br />

type Cell is private;<br />

type Cell_Holds is ( C_White, C_Black, Empty );<br />

procedure Initialize( The:<strong>in</strong> out Cell );<br />

function Holds( The:<strong>in</strong> Cell ) return Cell_Holds;<br />

procedure Add( The:<strong>in</strong> out Cell; Players_Counter:<strong>in</strong> Counter );<br />

procedure Display( The:<strong>in</strong> Cell );<br />

procedure Flip( The:<strong>in</strong> out Cell );<br />

function To_Colour( C:<strong>in</strong> Cell_Holds ) return Counter_Colour;<br />

private<br />

end Class_Cell;<br />

Board<br />

package Class_Board is<br />

type Board is private;<br />

type State_Of_Game is ( Play, W<strong>in</strong>, Draw, Lose );<br />

type Move_Status is ( Ok, Invalid, Pass );<br />

procedure Set_Up( The:<strong>in</strong> out Board );<br />

procedure Add( The:<strong>in</strong> out Board; X,Y:<strong>in</strong> Integer;<br />

Move_Is:<strong>in</strong> Move_Status );<br />

procedure Now_Play<strong>in</strong>g( The:<strong>in</strong> out Board; C:<strong>in</strong> Counter_Colour );<br />

procedure Display( The:<strong>in</strong> Board );<br />

function Check_Move( The:<strong>in</strong> Board; X,Y:<strong>in</strong> Integer )<br />

return Move_Status;<br />

function Status( The:<strong>in</strong> Board ) return State_Of_Game;<br />

function Contents( The:<strong>in</strong> Board; X,Y:<strong>in</strong> Integer )<br />

return Cell_Holds;<br />

private<br />

end Class_Board;<br />

© M A Smith - May not be reproduced without permission

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!