• Publicidad

Explicar funcionamiento de código

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Explicar funcionamiento de código

Notapor Mar_tal » 2012-05-14 16:03 @711

Fisher-Yates shuffle
sub shuffle {
use integer;

my $array = shift;
my $i;

for ($i = @$array; -$i; ) {
my $j = int rand ($i+1);
@$array[$i,$j] = @$array[$j,$i];
}
}
my %card;
sub init_cards {
my $c = shift;

my @denom = ( 2 .. 9, qw/ t j q k a / );
my @suits = qw/ h d c s /;

my @dim = ( -width => CARDWIDTH, -height => CARDHEIGHT );

foreach my $d (@denom) {
foreach my $s (@suits) {
my $im = $c->Photo(-file => "cards/$d$s.gif", @dim);
$card{"$d$s"} = $im;
}
}
}
Mar_tal
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2012-04-24 15:12 @675

Publicidad

Re: Explicar funcionamiento de código

Notapor explorer » 2012-05-14 16:23 @724

Consta de dos subrutinas.

La primera realiza una mezcla de elementos siguiendo el algoritmo Fisher-Yates.

Luego se declara la variable %card (carta, en inglés, así que suponemos que aquí se almacena un mazo de cartas).

La siguiente subrutina inicializa el mazo de cartas. Hace un doble bucle con los valores de las cartas (de 2 a 9, y diez (ten), sota (jack), reina (queen), rey (king), y as (ace)), junto con los palos de las cartas (tréboles (clubs ♣), diamantes (diamonds ♦), corazones (hearts ♥) y picas (spades ♠)).

Las claves de %card será de la forma "ah", para el as de corazones, por ejemplo. Y el valor es un objeto, supongo que una imagen, almacena en el directorio cards/.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 21 invitados