Sacar un naipe de la baraja con PHP

24/Oct/2010 PHP , 6 Comentarios
programación php

La idea es poder sacar una carta aleatoria de la baraja (una baraja inglesa o francesa). La baraja se compone de cuatro palos (Picas ♠, Corazones , Diamantes y Tréboles ♣) y de trece cartas por cada palo, comprendidas desde el as al diez y tres figuras.

Para llevar acabo la operación y sacar un naipe aleatorio, vamos a almacenar todas las posibilidades de cartas en variables.

  1. $palos = array('Picas','Corazones','Diamantes','Tréboles');
  2. $cartas = array('As','Dos','Tres','Cuatro','Cinco','Seis','Siete','Ocho','Nueve','Diez','Jota','Reina','Rey');

Hemos creado dos variables, por una parte una variable con un array que contiene los cuatro palos de la baraja y la otra variable con un array con las diez numeraciones y tres figuras de las cartas, consiguiendo así las 52 cartas de las barajas. Gracias al array nos permite almacenar varios entradas en una misma variable.

  1. $palo = array_rand($palos, 1);
  2. $carta = array_rand($cartas, 1);

Usamos la función array_rand() que nos ofrece PHP, la cual nos devuelve la clave al azar de una entrada del array.

Ahora únicamente nos queda mostrar los valores aleatorios en una frase.

  1. print 'La carta que salió de la baraja fue: ' . $cartas[$carta] . ' de ' . $palos[$palo] ;

Vídeos sobre PHP


6 comentarios en “Sacar un naipe de la baraja con PHP”

Jose Sevilla

Jose

Una manera muy optimizada es esa.
Pon como ejemplo siempre manejar esos valores posteriormente, si haces un array con las 52 cartas todo se agranda despues. Por ejemplo diferenciar entre masculino y femenino para personalizar la frase, de esta forma solo tendrias que poner un if en el caso de ser Jota o Reyna para mostrar un valor femenino, de la otra forma, tendrias que poner 8 valores (2 por cada palo). Observa la diferencia, y eso sucederia con todo, lo unico que aportaria seria codigo muchisimo mas grande y lento.

Jose Sevilla

Deyner Paul Reinoso Rosado

Lo que dice FelipeM es una buena idea, pero creo que consume mas recursos y a mi parecer es algo critico sobre todo en software que se ejecuta a través de la Web.

Jose Sevilla

FelipeM

Creo que sería más sencillo hacer un random de 52, y luego con el módulo, la división y un par de switch decidir qué carta ha salido.

Jose Sevilla

Deyner Paul Reinoso Rosado

Propongo que creemos un set de juegos que usen barajas…

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*