comp.lang.ada
 help / color / mirror / Atom feed
From: bozovic.bojan@gmail.com
Subject: Re: Card game deck but with trumps suit for tarot "divination" Is there a better way than enumerating all cards?
Date: Sun, 28 Jan 2018 01:23:56 -0800 (PST)
Date: 2018-01-28T01:23:56-08:00	[thread overview]
Message-ID: <40142b86-fdcf-49d3-bee7-2fdbb04c6db0@googlegroups.com> (raw)
In-Reply-To: <87y3ki743m.fsf@jacob-sparre.dk>

On Sunday, January 28, 2018 at 9:57:34 AM UTC+1, Jacob Sparre Andersen wrote:
> bozovic.bojan@gmail.com writes:
> 
> > These cards contain of 4 suits of 14 cards each, and special "trump"
> > so called "major arcana" cards, 22 of them, for total of 78 cards. I
> > created enumeration type and listed all 78 cards (with Tarot_Card'Pos
> > of course 0..77 an Tarot_Card_Position in that range, and Deck as
> > array(Tarot_Card_Position) of Card_Properties record with name and
> > meaning fields. Using Ada.Numerics.Discrete_Random it works, but I
> > wonder if better solution is possible)! When I've tried to make 4
> > suits of 14 cards and 22 cards in trump "suit" I however failed to see
> > a solution and how I would iterate over such type, so I wonder if that
> > route is possible. Thanks!
> 
> Why the mess with the type "Tarot_Card_Position"?  You can make arrays
> over enumeration types.
> 
> It sound like your problem space doesn't quite match a single
> enumeration type, though.  Maybe you really need a variant record?
> 
>    type Card (Trump : Boolean) is
>       record
>          case Trump is
>             when True =>
>                Trump_Value : Major_Arcana;
>             when False =>
>                Suit        : Suits;
>                Value       : Values;
>       end record;
> 
> The naming is horrible, and the code is untested, but I hope you get the
> idea.
> 
> Greetings,
> 
> Jacob
> -- 
> "Good enough for physics" -- Ridcully

Thanks for the input, I'll look into your suggestion, but the main problem is each card has its "divinatoy meaning". I've used Tarot_Card_Position because it makes more sense to shuffle deck indexed in integer than in enumeration type and draw then a number of cars from it. But I know I wrote some awful code, as I really have little experience and no formal education.

procedure Shuffle (TDeck : in out Deck) is
      position_gen   : position_random.Generator;
      Temporary_Data : Card_Properties;
      Index_Random   : Tarot_Card_Position;
   begin
      position_random.Reset (Gen => position_gen);
      for Index in Tarot_Card_Position'First .. Tarot_Card_Position'Last loop
         Index_Random         := position_random.Random (Gen => position_gen);
         Temporary_Data       := TDeck (Index);
         TDeck (Index)        := TDeck (Index_Random);
         TDeck (Index_Random) := Temporary_Data;
      end loop;
   end Shuffle;

I make a Deck, Initialize it (with all 78 "divinatory meanings" of cards) call this Shuffle and draw then a number of cards. My code is not ideal, it just happen to work, but I've did only some PHP programming and assembler programming back in 80s on 8-bit home computer.

  reply	other threads:[~2018-01-28  9:23 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-28  7:48 Card game deck but with trumps suit for tarot "divination" Is there a better way than enumerating all cards? bozovic.bojan
2018-01-28  8:57 ` Jacob Sparre Andersen
2018-01-28  9:23   ` bozovic.bojan [this message]
2018-01-28  9:46     ` Jeffrey R. Carter
2018-01-28 14:17       ` bozovic.bojan
2018-01-28 16:39     ` Dennis Lee Bieber
2018-01-29 23:16     ` Randy Brukardt
2018-01-30  2:30       ` bozovic.bojan
2018-02-02 19:07       ` Robert Eachus
2018-02-02 23:00         ` Dennis Lee Bieber
2018-02-02 23:05         ` Randy Brukardt
2018-02-03  8:17           ` Jeffrey R. Carter
2018-02-03 16:59           ` Robert Eachus
2018-02-06  0:39             ` Randy Brukardt
2018-02-06  3:17               ` Robert Eachus
2018-02-06  8:30           ` Petter Fryklund
2018-02-07 20:03             ` Card game deck but with trumps suit for tarot "divination" Is there a better way Robert Eachus
2018-02-07 21:10               ` Bojan Bozovic
2018-02-08 23:06                 ` Robert Eachus
2018-01-28 11:01   ` Card game deck but with trumps suit for tarot "divination" Is there a better way than enumerating all cards? gautier_niouzes
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox