List Info

Thread: Re: random subscripts




Re: random subscripts
country flaguser name
United States
2008-03-20 11:15:20


--- Jenda Krynicky < Jenda%40Krynicky.cz">JendaKrynicky.cz> wrote:

> From: Donald Korrecta < draktrax%40yahoo.com">draktraxyahoo.com>
>; > The entire prog:
&gt; > foreach $b ("spades", "hearts", "clubs",
> "diamonds") {
> > foreach $a ("ace", 2..10, "jack", "queen",
> "king") {
> > $c=0;
&gt; > $deck[&;c]= "$a of $b";
>
> I believe you meant
&gt; $deck[$c]= "$a of $b";
>
> your code would attempt to call the c() subroutine
> and thus should
> return an error that there is no such function.
>
> > $c++;
> > }
> > }
> > foreach $i (1..10) }
> > $card=$deck[rand deck];
&gt; > print "Card $i is the $card;
&gt; > }
> >
> > if i print out the result of the nested loops
&gt; > i get a list of all cards. the prog returns only
>; the
> > king of diamonds. what am i missing?
>
> The first thing you are missing is
>
> use strict;
> use warnings;
> # and possibly
> # no warnings 'uninitialized'; # I find this
>; particular warning
> annoying.
>
> then you are missing the variable declarations.
>
> foreach my $b ("spades", "hearts", "clubs",
> "diamonds") {
> foreach my $a ("ace", 2..10, "jack", "queen",
> "king") {
> my $c=0;
&gt; $deck[$c]= "$a of $b";
> $c++;
> }
> }
> foreach my $i (1..10) }
> my $card=$deck[rand deck];
&gt; print "Card $i is the $cardn&quot;;
> }
>
> this might help you to see the problem, you reset
&gt; the $c counter in
> each iteration of the inner foreach loop, thus you
> only ever set
> $deck[0]. Which you could easiy find out by printing
> the deck to
> make sure it's initialized correctly:
>
> use Data:umper;
&gt; print Dumper(deck);
>
>
> Next thing, you should not use variables $a and $b
> outside sort{}.
> They are a bit special. Besides $a and $b is not
> very informative, is
> it? What does "a&quot; mean? Nothing! Use meaningful
> variable names!
&gt;
> Also, if you want to add a value at the end of an
> array you do not
> need to keep a counter, just push() the value into
>; the array:
&gt;
>
> use strict;
> use warnings;
> no warnings 'uninitialized';
&gt;
> my deck;
&gt; foreach my $color ("spades", "hearts", "clubs",
> "diamonds") {
> foreach my $value ("ace", 2..10, "jack", "queen",
> "king") {
> push deck, "$value of $color&quot;;
> }
> }
> # use Data:umper;
&gt; # print Dumper(deck);
>
> foreach my $i (1..10) }
> my $card=$deck[rand deck];
&gt; print "Card $i is the $cardn&quot;;
> }
>
>
> HTH, Jenda
&gt; ===== Jenda%40Krynicky.cz">JendaKrynicky.cz === http://Jenda.Krynicky.cz
&gt; =====
&gt; When it comes to wine, women and song, wizards are
> allowed
> to get drunk and croon as much as they like.
&gt; -- Terry Pratchett in Sourcery
>
>

in the actual script the variables are called "suit"
and "rank". Some of your response,though, is a little
past where I am. I do thank you for your lesson and
will keep your correspondence for future reference.
a most grateful newbie,
draktrax

__________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

__._,_.___
.

__,_._,___
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )