Tracks
/
PHP
PHP
/
Ejercicios
/
Números de la suerte
Números de la suerte

Números de la suerte

Ejercicio de aprendizaje

Introducción

Malabares de tipos

Los malabares de tipos también se conocen como coerción de tipos. Los malabares de tipos ocurren cuando dos valores de tipos distintos se convierten al mismo tipo para realizar una operación.

$baskets = 5 // int
$apples_per_basket = "3" // string
$baskets * $apples_per_basket
# => 15

Esto se puede hacer de forma implícita (como en el ejemplo de arriba) o de forma explícita con una conversión de tipos al estilo de C:

$apples_per_basket = "3" // string
$my_number = (int) $apples_per_basket // cast string to int
# => 3 // int

Los tipos permitidos para la conversión de tipos manual son: bool, int, float, string, array, object. Lo más común es usar la conversión de tipos para cambiar un entero (int) a un número de punto flotante (float) o viceversa.

Instrucciones

Tu amigo Kojo es un gran fanático de los números. Tiene un pequeño sitio web para jugar con números. Kojo no es muy bueno programando, así que te pidió ayuda.

Vas a crear dos métodos auxiliares para nuevos juegos de números en el sitio web de Kojo, y un tercero para validar algunos datos que el usuario puede ingresar.

1. Calcular la suma de los números de la máquina tragamonedas

Uno de los juegos del sitio web de Kojo es una máquina tragamonedas que muestra dos grupos de rodillos con dígitos. Cada grupo de dígitos representa un número. Para la mecánica del juego, Kojo necesita saber la suma de esos dos números.

Escribe un método sumUp que acepte dos arrays como parámetros. Cada array consta de uno o más dígitos entre 0 y 9. La función debe interpretar cada array como un número y devolver la suma de esos dos números.

<?php
$lucky_numbers = new LuckyNumbers()

$lucky_numbers->sumUp([1, 2, 3], [0, 7]);
//=> 130

// [1, 2, 3] represents 123 and [0, 7] represents 7.
// 123 + 7 = 130

2. Determinar si un número es un palíndromo

Otro de los juegos del sitio web es un pequeño cuestionario llamado «Lucky Numbers». El usuario puede ingresar un número y luego ve si ese número pertenece a alguna secuencia o patrón secreto. La secuencia o el patrón de los «números de la suerte» cambia cada mes, y cada usuario solo tiene un número limitado de intentos para adivinarlo.

Los números de la suerte de este mes deben ser números que sean palíndromos. Los números palindrómicos siguen siendo iguales cuando se invierten sus dígitos.

Implementa la nueva función isPalindrome que acepte un número entero como parámetro. La función debe devolver true si el número es un palíndromo y false en caso contrario. El número de entrada siempre será un entero positivo.

<?php
$lucky_numbers = new LuckyNumbers()

$lucky_numbers->isPalindrome(1441);
//=>  true

$lucky_numbers->isPalindrome(123);
//=> false

3. Generar un mensaje de error para datos de usuario no válidos

En varios lugares del sitio web hay campos de entrada donde los usuarios pueden escribir números y hacer clic en un botón para activar alguna acción. Kojo quiere mejorar la experiencia de usuario de su sitio. Quiere mostrar un mensaje de error en caso de que el usuario haga clic en el botón pero el campo contenga un valor de entrada no válido.

Aquí hay un poco más de información sobre cómo se proporciona el valor de un campo de entrada.

  • Si el usuario escribe algo en un campo, el valor asociado siempre es un string, incluso si solo escribió números.
  • Si el usuario escribe algo pero luego lo borra, la variable será un string vacío.
  • Antes de que el usuario empiece a escribir, la variable será un string vacío.

Escribe una función validate que acepte como parámetro lo que el usuario ingresó. Si el usuario no proporcionó ningún dato, validate debe devolver 'Required field'. Si la entrada no representa un número entero positivo distinto de cero (según las reglas de conversión de tipos de PHP), debe devolverse 'Must be a whole number larger than 0'. En todos los demás casos puedes asumir que la entrada es válida, así que el valor devuelto debe ser un string vacío.

<?php
$lucky_numbers = new LuckyNumbers()

$lucky_numbers->validate('123');
// => ''

$lucky_numbers->validate('');
// => 'Required field'

$lucky_numbers->validate('abc');
// => 'Must be a whole number larger than 0'
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
PHP Exercism

¿Todo listo para empezar Números de la suerte?

Regístrate en Exercism para aprender y dominar PHP con 11 conceptos122 ejercicios y mentoría humana real, todo gratis.