En esta página se muestran una parte de las soluciones de los ejercicios Matrices (3), concretamente el fragmento PHP, sin el principio ni el final de la página que se pueden dejar en fragmentos HTML.
Si lo prefiere, puede descargar unas posibles soluciones completas de estos ejercicios.
A continuación se muestran cuatro soluciones. En las dos primeras, los valores de los dados a mostrar se generan al mostrarlos. En las dos últimas, los valores de los dados se guardan en una matriz y posteriormente se muestran los dados.
<?php
// Guardamos los nombres de las imágenes en la matriz $dadosPoker
$dadosPoker = ["N", "R", "J", "Q", "K", "A"];
// Generamos el número de dados que vamos a mostrar
$n = rand(3, 7);
print " <h2>Tirada de $n dados</h2>\n";
print "\n";
print " <p>\n";
for ($i = 0; $i < $n; $i++) {
// Generamos el valor de un dado
// Cuidado: se trata de un índice, no del valor
$dado = array_rand($dadosPoker);
// Mostramos la imagen del dado
print " <img src=\"img/dados-poker/$dadosPoker[$dado].svg\" alt=\"$dadosPoker[$dado]\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
?>
<?php
// Guardamos los nombres de las imágenes en la matriz $dadosPoker
$dadosPoker = ["N", "R", "J", "Q", "K", "A"];
// Generamos el número de dados que vamos a mostrar
$n = rand(3, 7);
print " <h2>Tirada de $n dados</h2>\n";
print "\n";
print " <p>\n";
for ($i = 0; $i < $n; $i++) {
// Generamos el valor de un dado
// Cuidado: se trata de un índice, no del valor
$dado = $dadosPoker[array_rand($dadosPoker)];
// Mostramos la imagen del dado
print " <img src=\"img/dados-poker/$dado.svg\" alt=\"$dado\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
?>
<?php
// Guardamos los nombres de las imágenes en la matriz $dadosPoker
$dadosPoker = ["N", "R", "J", "Q", "K", "A"];
// Guardamos los valores de los dados en la matriz $dados
// Cuidado: se guardan los índices, no los valores
$n = rand(3, 7);
for ($i = 0; $i < $n; $i++) {
$dados[] = array_rand($dadosPoker);
}
// Mostramos las imágenes de los dados obtenidos
print " <h2>Tirada de $n dados</h2>\n";
print "\n";
print " <p>\n";
foreach ($dados as $dado) {
print " <img src=\"img/dados-poker/$dadosPoker[$dado].svg\" alt=\"$dadosPoker[$dado]\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
?>
<?php
// Guardamos los nombres de las imágenes en la matriz $dadosPoker
$dadosPoker = ["N", "R", "J", "Q", "K", "A"];
// Guardamos los valores de los dados en la matriz $dados
$n = rand(3, 7);
for ($i = 0; $i < $n; $i++) {
$dados[] = $dadosPoker[array_rand($dadosPoker)];
}
// Mostramos las imágenes de los dados obtenidos
print " <h2>Tirada de $n dados</h2>\n";
print "\n";
print " <p>\n";
foreach ($dados as $dado) {
print " <img src=\"img/dados-poker/$dado.svg\" alt=\"$dado\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
?>
A continuación se muestran tres soluciones. En las tres se guardan los valores de los dados en una matriz y posteriormente se muestran los dados. La diferencia entre ellas es la estructura de la matriz o matrices que guardan los nombres de los ficheros SVG ("N", "R", "J", etc.) y los textos que describen las caras ("Negros", "Rojos", "Jota", etc.).
Un detalle importante de esta solución es que puesto que los nombres de los ficheros y los textos que describen las caras se guardan en dos matrices distintas, es crucial que el orden en las dos matrices sea el mismo, para que un único índice nos permita acceder a los dos valores relacionados.
<?php
// Guardamos los nombres de las imágenes en la matriz $dadosPoker
$dadosPoker = ["N", "R", "J", "Q", "K", "A"];
$nombresPoker = ["Negros", "Rojos", "Jota", "Reina", "Rey", "As"];
// Guardamos los valores de los dados en la matriz $dados
// Cuidado: se guardan los índices, no los valores
$n = rand(3, 7);
for ($i = 0; $i < $n; $i++) {
$dados[] = array_rand($dadosPoker);
}
// Mostramos las imágenes y los atributos alt de los dados obtenidos
print " <h2>Tirada de $n dados</h2>\n";
print "\n";
print " <p>\n";
foreach ($dados as $dado) {
print " <img src=\"img/dados-poker/$dadosPoker[$dado].svg\" alt=\"$nombresPoker[$dado]\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
?>
<?php
// Guardamos los nombres de las imágenes en la matriz $dadosPoker
$dadosPoker = [["N", "Negros"], ["R", "Rojos"], ["J", "Jota"], ["Q", "Reina"], ["K", "Rey"], ["A", "As"]];
// Guardamos los valores de los dados en la matriz $dados
// Cuidado: se guardan los índices, no los valores
$n = rand(3, 7);
for ($i = 0; $i < $n; $i++) {
$dados[] = array_rand($dadosPoker);
}
// Mostramos las imágenes y los atributos alt de los dados obtenidos
print " <h2>Tirada de $n dados</h2>\n";
print "\n";
print " <p>\n";
foreach ($dados as $dado) {
print " <img src=\"img/dados-poker/{$dadosPoker[$dado][0]}.svg\" alt=\"{$dadosPoker[$dado][1]}\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
?>
<?php
// Guardamos los nombres de las imágenes en la matriz $dadosPoker
$dadosPoker = ["N" => "Negros", "R" => "Rojos", "J" => "Jota", "Q" => "Reina", "K" => "Rey", "A" => "As"];
// Guardamos los valores de los dados en la matriz $dados
$n = rand(3, 7);
for ($i = 0; $i < $n; $i++) {
$dados[] = array_rand($dadosPoker);
}
// Mostramos las imágenes y los atributos alt de los dados obtenidos
print " <h2>Tirada de $n dados</h2>\n";
print "\n";
print " <p>\n";
foreach ($dados as $dado) {
print " <img src=\"img/dados-poker/$dado.svg\" alt=\"$dadosPoker[$dado]\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
?>
En esta solución los valores de las cartas no se guardan en una matriz, sino que se generan en el momento de mostrar la carta. El valor del palo que se genera es un índice de la matriz $palos, y ese mismo valor se puede utilizar también en la matriz $nombresPalos.
Como tanto el número como el palo aparecen en dos lugares de la página (en el nombre del fichero a mostrar y en el atributo alt), guardamos estos valores en dos variables auxiliares.
<?php
// Guardamos los nombres de los cuatro palos
$palos = ["c", "d", "p", "t"];
$nombresPalos = ["corazones", "diamantes", "picas", "tréboles"];
// No guardamos los valores de las cartas
// Los generaremos cuando mostremos las cartas
$n = rand(5, 10);
// Mostramos las imágenes de las cartas obtenidas
print " <h2>Extracción de $n cartas</h2>\n";
print "\n";
print " <p>\n";
for ($i = 0; $i < $n; $i++) {
$palo = array_rand($palos);
$numero = rand(1, 10);
print " <img src=\"img/cartas/$palos[$palo]$numero.svg\" alt=\"$numero de $nombresPalos[$palo]\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
?>
En esta solución no se guardan los valores en una matriz, sino que se generan en el momento de mostrar la carta. El valor del palo que se genera es un índice de la matriz de dos dimensiones $palos.
Como tanto el número como el palo aparecen en dos lugares de la página (en el nombre del fichero a mostrar y en el atributo alt), guardamos estos valores en dos variables auxiliares.
<?php
// Guardamos los nombres de los cuatro palos
$palos = [["c", "corazones"], ["d", "diamantes"], ["p", "picas"], ["t", "tréboles"]];
// No guardamos los valores de las cartas
// Los generaremos cuando mostremos las cartas
$n = rand(5, 10);
// Mostramos las imágenes de las cartas obtenidas
print " <h2>Extracción de $n cartas</h2>\n";
print "\n";
print " <p>\n";
for ($i = 0; $i < $n; $i++) {
$palo = array_rand($palos);
$numero = rand(1, 10);
print " <img src=\"img/cartas/{$palos[$palo][0]}$numero.svg\" alt=\"$numero de {$palos[$palo][1]}\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
?>
En esta solución los valores de las cartas (palo y número) se guardan en una matriz $cartas de dos dimensiones.
Cada elemento de la matriz $cartas es una matriz de dos elementos, el primer elemento ([0]) es la inicial del palo y el segundo ([1]) es el número de la carta.
<?php
// Guardamos los nombres de los cuatro palos
$palos = ["c" => "corazones", "d"=> "diamantes", "p" => "picas", "t" => "tréboles"];
// Guardamos los valores de las cartas en la matriz $cartas
// La matriz tiene dos dimensiones
$n = rand(5, 10);
for ($i = 0; $i < $n; $i++) {
$cartas[] = [array_rand($palos), rand(1, 10)];
}
// Mostramos las imágenes de las cartas obtenidas
print " <h2>Extracción de $n cartas</h2>\n";
print "\n";
print " <p>\n";
foreach ($cartas as $carta) {
print " <img src=\"img/cartas/$carta[0]$carta[1].svg\" alt=\"$carta[1] de {$palos[$carta[0]]}\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
?>
<?php
// Guardamos todos los valores de las cartas en la matriz $mazo
$n = rand(5, 10);
$mazo = range(1, 10);
// Barajamos el mazo de cartas
shuffle($mazo);
// Creamos una nueva matriz con los primeros valores de $mazo (el número de valores que queremos mostrar)
for ($i = 0; $i < $n; $i++) {
$cartas[$i] = $mazo[$i];
}
// Mostramos las imágenes de las cartas guardadas en $cartas
print " <h2>$n cartas sin repetición</h2>\n";
print "\n";
print " <p>\n";
foreach ($cartas as $carta) {
print " <img src=\"img/cartas/c$carta.svg\" alt=\"$carta de corazones\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
?>
Como array_rand() extrae índices al azar pero en orden creciente, debemos barajar $cartas para que las cartas no salgan en orden creciente.
Como array_rand() extrae índices de la matriz $mazo, para mostrar el valor de las cartas tenemos que utilizar la referencia $mazo[$carta].
<?php
// Guardamos todos los valores de las cartas en la matriz $mazo
$n = rand(5, 10);
$mazo = range(1, 10);
// Extraemos el número de cartas deseado
$cartas = array_rand($mazo, $n);
// Barajamos las cartas extraidas
shuffle($cartas);
// Mostramos las imágenes de las cartas guardadas en $cartas
print " <h2>$n cartas sin repetición</h2>\n";
print "\n";
print " <p>\n";
foreach ($cartas as $carta) {
print " <img src=\"img/cartas/c$mazo[$carta].svg\" alt=\"$mazo[$carta] de corazones\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
?>
Para obtener las cartas desordenadas, también podríamos haber barajado el mazo antes de extraer los índices
<?php
// Guardamos todos los valores de las cartas en la matriz $mazo
$n = rand(5, 10);
$mazo = range(1, 10);
// Barajamos el mazo
shuffle($mazo);
// Extraemos el número de cartas deseado
$cartas = array_rand($mazo, $n);
// ...
<?php
// Guardamos los valores de las cartas en la matriz $cartas
$n = rand(5, 10);
for ($i = 0; $i < $n; $i++) {
$cartas[] = rand(1, 10);
}
// Mostramos las imágenes de las cartas obtenidas
print " <h2>Cartas</h2>\n";
print "\n";
print " <p>\n";
foreach ($cartas as $carta) {
print " <img src=\"img/cartas/t$carta.svg\" alt=\"$carta de tréboles\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
// Calculamos y mostramos los valores máximo y mínimo
print "<p>La carta más alta es un " . max($cartas) . " y la carta más baja es un " . min($cartas) . "</p>\n";
print "\n";
?>
<?php
// Guardamos los valores de las cartas en la matriz $cartas
$n = rand(5, 10);
for ($i = 0; $i < $n; $i++) {
$cartas[] = rand(1, 10);
}
// Mostramos las imágenes de las cartas obtenidas
print " <h2>Cartas</h2>\n";
print "\n";
print " <p>\n";
foreach ($cartas as $carta) {
print " <img src=\"img/cartas/t$carta.svg\" alt=\"$carta de tréboles\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
// Calculamos el valor máximo
$eliminar = max($cartas);
// Mostramos el valor máximo
print "<p>La carta más alta es un $eliminar.</p>\n";
print "\n";
// Mostramos la carta de valor máximo
print " <h2>Carta a eliminar</h2>\n";
print "\n";
print " <p>\n";
print " <img src=\"img/cartas/t$eliminar.svg\" alt=\"$eliminar de tréboles\" width=\"100\">\n";
print " </p>\n";
print "\n";
// Recorremos la matriz de valores de cartas y eliminamos los elementos que coinciden con el máximo
for ($i = 0; $i < $n; $i++) {
if ($cartas[$i] == $eliminar) {
unset($cartas[$i]);
}
}
// Mostramos las imágenes de las cartas (las eliminadas ya no se mostrarán)
print " <h2>Cartas restantes</h2>\n";
print "\n";
print " <p>\n";
foreach ($cartas as $carta) {
print " <img src=\"img/cartas/t$carta.svg\" alt=\"$carta de tréboles\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
// Calculamos y mostramos el valor máximo actual
print "<p>La carta más alta es ahora un " . max($cartas) . ".</p>\n";
print "\n";
?>
<?php
$numero = rand(5, 15);
// Guardamos los valores de las bolas en la matriz $bolas
$bolas = [];
for ($i = 0; $i < $numero; $i++) {
$bolas[$i] = rand(10102, 10111);
}
// Mostramos las imágenes de las bolas obtenidas
print " <h2>Entre estas $numero bolas ...</h2>\n";
print "\n";
print " <p style=\"font-size: 400%; margin: 0;\">\n";
foreach ($bolas as $bola) {
print " $bola;\n";
}
print " </p>\n";
print "\n";
// Eliminamos las bolas duplicadas
$resultado = array_unique($bolas);
// Mostramos las imágenes de las bolas restantes
print " <h2>... hay " . count($resultado) . " bolas distintas</h2>\n";
print "\n";
print " <p style=\"font-size: 400%; margin: 0;\">\n";
foreach ($resultado as $bola) {
print " $bola;\n";
}
print " </p>\n";
print "\n";
?>
<?php
$numero = rand(10, 20);
// Guardamos los valores de los emoticonos en la matriz $emoticonos
$emoticonos = [];
for ($i = 0; $i < $numero; $i++) {
$emoticonos[$i] = rand(128512, 128580);
}
// Mostramos las imágenes de los emoticonos obtenidos
print " <h2>$numero emoticonos ...</h2>\n";
print "\n";
print " <p style=\"font-size: 400%; margin: 0;\">\n";
foreach ($emoticonos as $emoticono) {
print " $emoticono;\n";
}
print " </p>\n";
print "\n";
// Emoticono a buscar
$busca = rand(128512, 128580);
// Mostramos el resultado de la búsqueda
if (in_array($busca, $emoticonos)) {
print " <p>El emoticono <span style=\"font-size: 400%;\">$busca;</span> está entre ellos.</p>\n";
} else {
print " <p>El emoticono <span style=\"font-size: 400%;\">$busca;</span> NO está entre ellos.</p>\n";
}
print "\n";
?>
<?php
$numero = rand(7, 20);
// Guardamos los valores de las frutas en la matriz $frutas
$frutas = [];
for ($i = 0; $i < $numero; $i++) {
$frutas[$i] = rand(128147, 128152);
}
// Mostramos las imágenes de las frutas obtenidas
print " <h2>$numero corazones</h2>\n";
print "\n";
print " <p style=\"font-size: 400%; margin: 0;\">\n";
foreach ($frutas as $fruta) {
print " $fruta;\n";
}
print " </p>\n";
print "\n";
// Contamos las frutas
$cuenta = array_count_values($frutas);
// Mostramos el resultado de contar las frutas
print " <h2>Conteo</h2>\n";
print "\n";
foreach ($cuenta as $indice => $valor) {
print " <p style=\"font-size: 400%; margin: 0;\">$indice; $valor</p>\n";
}
print "\n";
?>
<?php
// Definimos las matrices con los rangos de emoticonos
$emoticonos_1 = range(128512, 128580);
$emoticonos_2 = range(129296, 129303);
$emoticonos_3 = range(129312, 129317);
$emoticonos_4 = range(129319, 129327);
$emoticonos_5 = [129392, 129393];
$emoticonos_6 = range(129395, 129398);
$emoticonos_7 = [129402, 129488];
// Unimos las matrices en una sola
$emoticonos = array_merge($emoticonos_1, $emoticonos_2, $emoticonos_3, $emoticonos_4, $emoticonos_5, $emoticonos_6, $emoticonos_7);
// Mostramos las imágenes de los emoticonos obtenidos
print " <h2>". count($emoticonos) . " emoticonos</h2>\n";
print "\n";
print " <p style=\"font-size: 400%; margin: 0;\">\n";
foreach ($emoticonos as $emoticono) {
print " $emoticono;\n";
}
print " </p>\n";
print "\n";
// Mostramos un emoticono al azar
print " <h2>Uno al azar</h2>\n";
print "\n";
print " <p style=\"font-size: 400%; margin: 0;\">". $emoticonos[rand(0, count($emoticonos)-1)] . ";</p>\n";
?>
<?php
$numero = rand(2, 7);
// Creamos la matriz de dados aleatorios
$dados = [];
for ($i = 0; $i < $numero; $i++) {
$dados[$i] = rand(1, 6);
}
// Mostramos los dados
print " <h2>Tirada de $numero dados</h2>\n";
print "\n";
print " <p>\n";
foreach ($dados as $dado) {
print " <img src=\"img/$dado.svg\" alt=\"$dado\" width=\"100\" height=\"100\">\n";
}
print " </p>\n";
print "\n";
// Ordenamos los dados
sort($dados);
// Mostramos los dados ordenados
print " <h2>Tirada ordenada</h2>\n";
print "\n";
print " <p>\n";
foreach ($dados as $dado) {
print " <img src=\"img/$dado.svg\" alt=\"$dado\" width=\"100\" height=\"100\">\n";
}
print " </p>\n";
?>
<?php
$numero = rand(5, 10);
// Creamos la matriz de cartas aleatorias
$cartas = [];
for ($i = 0; $i < $numero; $i++) {
$cartas[$i] = rand(127169, 127173);
}
// Mostramos las cartas
print " <h2>Mano de $numero cartas</h2>\n";
print "\n";
print " <p style=\"font-size: 700%; margin: 0; line-height: 100%;\">\n";
foreach ($cartas as $carta) {
print " $carta;\n";
}
print " </p>\n";
print "\n";
// Ordenamos las cartas
$cartas_2 = array_unique($cartas);
sort($cartas_2);
// Mostramos las cartas ordenadas
print " <h2>Cartas distintas obtenidas (ordenadas)</h2>\n";
print "\n";
print " <p style=\"font-size: 700%; margin: 0; line-height: 100%;\">\n";
foreach ($cartas_2 as $carta) {
print " $carta;\n";
}
print " </p>\n";
print "\n";
// Contamos las cartas
$cartas_3 = array_count_values($cartas);
// Mostramos las cartas contadas
print " <h2>Número de cartas obtenidas (sin ordenar)</h2>\n";
print "\n";
print " <p style=\"line-height: 600%;\">\n";
foreach ($cartas_3 as $indice => $valor) {
print " <span style=\"font-size: 500%;\">$valor</span> <span style=\"font-size: 700%;\">$indice; - </span>\n";
}
print " </p>\n";
print "\n";
// Ordenamos las cartas
arsort($cartas_3);
// Mostramos las cartas contadas ordenadas
print " <h2>Número de cartas obtenidas (ordenada)</h2>\n";
print "\n";
print " <p style=\"line-height: 600%;\">\n";
foreach ($cartas_3 as $indice => $valor) {
print " <span style=\"font-size: 500%;\">$valor</span> <span style=\"font-size: 700%;\">$indice; - </span>\n";
}
print " </p>\n";
?>
<?php
// Mostramos con cuántos dados va a jugar el Atacante
print " <h2>Atacante</h2>\n";
print "\n";
$numero1 = rand(1, 3);
if ($numero1 == 1) {
print " <p>El atacante ataca con $numero1 dado:</p>\n";
} else {
print " <p>El atacante ataca con $numero1 dados:</p>\n";
}
print "\n";
// Guardamos los valores del Atacante en la matriz $dados1
$dados1 = [];
for ($i = 0; $i < $numero1; $i++) {
$dados1[$i] = rand(1, 6);
}
// Ordenamos la matriz $dados1 y mostramos los resultados obtenidos por el Atacante
rsort($dados1);
print " <p>\n";
foreach ($dados1 as $dado) {
print " <img src=\"img/$dado.svg\" alt=\"$dado\" width=\"100\" height=\"100\">\n";
}
print " </p>\n";
print "\n";
// Mostramos con cuántos dados va a jugar el Defensor
print " <h2>Defensor</h2>\n";
print "\n";
$numero2 = rand(1, 2);
if ($numero2 == 1) {
print " <p>El defensor defiende con $numero2 dado:</p>\n";
} else {
print " <p>El defensor defiende con $numero2 dados:</p>\n";
}
print "\n";
// Guardamos los valores del Defensor en la matriz $dados2
$dados2 = [];
for ($i = 0; $i < $numero2; $i++) {
$dados2[$i] = rand(1, 6);
}
// Ordenamos la matriz $dados2 y mostramos los resultados obtenidos por el Defensor
rsort($dados2);
print " <p>\n";
foreach ($dados2 as $dado) {
print " <img src=\"img/$dado.svg\" alt=\"$dado\" width=\"100\" height=\"100\">\n";
}
print " </p>\n";
print "\n";
// En los acumuladores $bajasAtacante $bajasDefensor contamos cuántas partidas ha perdido cada uno
// El número de dados que se compara es el menor de los números de dados tirados
$menor = min($numero1, $numero2);
$bajasAtacante = 0;
$bajasDefensor = 0;
for ($i = 0; $i < $menor; $i++) {
if ($dados1[$i] > $dados2[$i]) {
$bajasDefensor++;
} else {
$bajasAtacante++;
}
}
// Mostramos cuántas bajas ha tenido cada jugador
print " <h2>Resultado</h2>\n";
print "\n";
print " <p>El atacante pierde <strong>$bajasAtacante</strong> unidad";
if ($bajasAtacante != 1) {
print "es";
}
print ". El defensor pierde <strong>$bajasDefensor</strong> unidad";
if ($bajasDefensor != 1) {
print "es";
}
print ".</p>\n";
?>
<?php
// Guardamos los valores de las cartas en la matriz $cartas
// $n es el número de cartas que repartiremos a cada jugador,
// por lo que generamos 2 * $n cartas
$n = rand(2, 6);
$cartas = [];
for ($i = 0; $i < 2 * $n; $i++) {
$cartas[] = rand(1, 10);
}
// Mostramos las imágenes de las cartas obtenidas
print " <h2>Las " . 2 * $n . " cartas a repartir</h2>\n";
print "\n";
print " <p>\n";
foreach ($cartas as $carta) {
print " <img src=\"img/cartas/c$carta.svg\" alt=\"$carta de corazones\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
// Barajamos los valores de las cartas
shuffle($cartas);
// Creamos una matriz con las $n primeras cartas
$cartasA = [];
for ($i = 0; $i < $n; $i++) {
$cartasA[] = $cartas[$i];
}
// Creamos una matriz con las $n siguientes cartas
for ($i = 0; $i < $n; $i++) {
$cartasB[] = $cartas[$i+ $n];
}
// Mostramos las imágenes de las cartas del primer jugador
print " <h2>Las $n cartas del jugador A</h2>\n";
print "\n";
print " <p>\n";
foreach ($cartasA as $carta) {
print " <img src=\"img/cartas/c$carta.svg\" alt=\"$carta de corazones\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
// Mostramos las imágenes de las cartas del segundo jugador
print " <h2>Las $n cartas del jugador B</h2>\n";
print "\n";
print " <p>\n";
foreach ($cartasB as $carta) {
print " <img src=\"img/cartas/c$carta.svg\" alt=\"$carta de corazones\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
?>
<?php
// Guardamos los valores de las cartas en la matriz $cartas
$n = rand(3, 12);
$cartas = [];
for ($i = 0; $i < $n; $i++) {
$cartas[] = rand(1, 10);
}
// Mostramos las imágenes de las cartas obtenidas
print " <h2>Las $n cartas</h2>\n";
print "\n";
print " <p>\n";
foreach ($cartas as $carta) {
print " <img src=\"img/cartas/c$carta.svg\" alt=\"$carta de corazones\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
// Recorremos la matriz de cartas y si el valor de la carta es par, eliminamos el valor
for ($i = 0; $i < $n; $i++) {
if ($cartas[$i] % 2) {
unset($cartas[$i]);
}
}
// Mostramos las imágenes de las cartas (las eliminadas ya no se mostrarán)
print " <h2>Sin cartas impares</h2>\n";
print "\n";
print " <p>\n";
foreach ($cartas as $carta) {
print " <img src=\"img/cartas/c$carta.svg\" alt=\"$carta de corazones\" width=\"100\">\n";
}
print " </p>\n";
print "\n";
// Reindexamos la matriz de cartas para poderla recorrer con un bucle for
// y que los índices sean consecutivos
$cartas = array_values($cartas);
// Recorremos la matriz de cartas (hasta el penúltimo valor)
// comparando cada valor con el siguiente y si coinciden
// damos el valor true a la variable testigo $consecutivas
$consecutivas = false;
for ($i = 0; $i < count($cartas) - 1; $i++) {
if ($cartas[$i] == $cartas[$i + 1]) {
$consecutivas = true;
}
}
// Según el valor de consecutivas mostramos un mensaje distinto
print $consecutivas ? "<p>Hay cartas iguales consecutivas</p>\n" : "<p>No hay cartas iguales consecutivas</p>\n";
?>