From: Jacob Sparre Andersen <sparre@nbi.dk>
Subject: Re: [newbie] simple(?) data structures
Date: 27 Jun 2004 15:12:34 +0200
Date: 2004-06-27T15:12:34+02:00 [thread overview]
Message-ID: <plwu1tuou5.fsf@sparre.crs4.it> (raw)
In-Reply-To: 2jao1qFvj2rgU1@uni-berlin.de
Roland Illig wrote:
> type Stone is (Empty, Black, White);
> type Player is (Black, White);
You might want to make Player a subtype of Stone:
subtype Player is Stone range Black .. White;
That would remove the need for this declaration:
> To_Stone : constant array (Player) of Stone := (Black => Black,
> White => White);
And since the colours assigned to the players are derived from the
colours of the stones, it also makes sense from a logical point of
view.
> type Move is private;
I would probably declare Move like this:
type Move (Pass : Boolean := True) is
record
case Pass is
when True =>
null;
when False =>
X, Y : Positive;
end case;
end record;
With this construction, Move.X and Move.Y are only available if
Move.Pass is False.
And if you had used a generic package, parametrized with the size of
the board, I would definitely use the Board indexing type for Move.X
and Move.Y.
Jacob
--
CAUTION
BLADE EXTREMELY SHARP
KEEP OUT OF CHILDREN
next prev parent reply other threads:[~2004-06-27 13:12 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-06-12 22:23 [newbie] simple(?) data structures Roland Illig
2004-06-12 22:52 ` Frank
2004-06-13 0:10 ` Ludovic Brenta
2004-06-13 3:13 ` Roland Illig
2004-06-13 7:59 ` Marius Amado Alves
2004-06-13 11:56 ` Ludovic Brenta
2004-06-13 14:47 ` Stephen Leake
2004-06-13 18:24 ` Jeffrey Carter
2004-06-13 0:31 ` Jeffrey Carter
2004-06-13 1:26 ` tmoran
2004-06-13 2:47 ` tmoran
2004-06-13 3:53 ` Roland Illig
2004-06-13 10:12 ` Georg Bauhaus
2004-06-13 23:32 ` Robert I. Eachus
2004-06-14 12:29 ` Georg Bauhaus
2004-06-13 4:46 ` Steve
2004-06-13 4:59 ` tmoran
2004-06-13 17:58 ` Jeffrey Carter
2004-06-16 11:08 ` Roland Illig
2004-06-16 21:05 ` Georg Bauhaus
2004-06-16 23:23 ` Roland Illig
2004-06-17 0:44 ` Jeffrey Carter
2004-06-17 12:37 ` Hyman Rosen
2004-06-17 13:11 ` Björn Persson
2004-06-18 9:55 ` Ole-Hjalmar Kristensen
2004-06-18 11:03 ` Björn Persson
2004-06-18 12:04 ` Hyman Rosen
2004-06-22 8:11 ` Ole-Hjalmar Kristensen
2004-06-18 0:20 ` David Starner
2004-06-18 5:06 ` Hyman Rosen
2004-06-18 5:47 ` Martin Krischik
2004-06-18 7:30 ` Brian May
2004-06-18 14:21 ` Larry Kilgallen
2004-06-19 19:51 ` Robert I. Eachus
2004-06-18 15:04 ` Georg Bauhaus
2004-06-19 2:02 ` James Rogers
2004-06-18 9:51 ` Ole-Hjalmar Kristensen
2004-06-27 13:12 ` Jacob Sparre Andersen [this message]
2004-06-24 0:09 ` Matthew Heaney
2004-06-24 14:50 ` Nick Roberts
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox