Maxibon Kata

maxibon-kata

Descripción

La Maxibon Kata es un ejercicio de programación diseñado para simular la gestión de un congelador de Maxibons (un tipo de helado). En esta kata, debes escribir un programa que controle el número de Maxibons en el congelador mientras varios desarrolladores los consumen. Es un buen ejercicio para practicar el manejo de estados compartidos y lógica de control.

Reglas del juego

  1. El congelador puede almacenar un número ilimitado de Maxibons.
  2. Hay varios desarrolladores que pueden tomar Maxibons del congelador.
  3. Si un desarrollador toma Maxibons y el número de Maxibons en el congelador cae por debajo de un umbral (por ejemplo, 2 Maxibons), se ordena automáticamente una reposición de Maxibons para llenar el congelador hasta un número específico (por ejemplo, 10 Maxibons).

Cada desarrollador tiene una cantidad específica de Maxibons que consume. Por ejemplo, un desarrollador puede consumir entre 0 y 3 Maxibons en una visita al congelador.

Objetivo de la kata

El objetivo de esta kata es implementar la lógica para gestionar el congelador de Maxibons. Debes escribir una función que tome como entrada la lista de desarrolladores y el número de Maxibons que consumen, y que devuelva el estado final del congelador después de que todos los desarrolladores hayan tomado sus Maxibons.

Instrucciones

  1. Representa el estado inicial del congelador con un número entero que indica el número de Maxibons disponibles.
  2. Crea una lista de desarrolladores, cada uno con un nombre y el número de Maxibons que consume.
  3. Implementa una función que reciba la lista de desarrolladores y el estado inicial del congelador, y que actualice el número de Maxibons después de que cada desarrollador haya tomado su porción.
  4. Si en algún momento el número de Maxibons en el congelador cae por debajo del umbral, la función debe simular una orden de reposición para llenar el congelador hasta el número especificado.
  5. Devuelve el estado final del congelador y cualquier información relevante sobre las órdenes de reposición.

Ejemplo

Supongamos que el estado inicial del congelador es de 10 Maxibons y la lista de desarrolladores es la siguiente:

[
  { nombre: "Alice", consume: 3 },
  { nombre: "Bob", consume: 1 },
  { nombre: "Charlie", consume: 2 },
  { nombre: "Dave", consume: 4 }
]

Después de que todos los desarrolladores hayan tomado sus Maxibons, el estado del congelador puede ser:

Estado final del congelador: 10 (después de una reposición)

Otro ejemplo con estado inicial de 5 Maxibons:

[
  { nombre: "Alice", consume: 3 },
  { nombre: "Bob", consume: 2 }
]

Resultado:

Estado final del congelador: 10 (después de una reposición)

Original

https://github.com/Karumi/MaxibonKataKotlin

  • TypeScript y Property-based testing

    Solución con TypeScript y Property-based testing v1