comp.lang.ada
 help / color / mirror / Atom feed
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



  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