Combinando dos de mis pasiones: la programacion y la gastronomía.
Para todos aquellos que comparten ambos gustos e intentan hacer de cualquier actividad diaria un algoritmo.

Thursday, February 11, 2010

//Algoritmo #1 - Picante de pollo

/*
ALGORITMOS CULINARIOS

Combinando dos de mis pasiones: la programacion y la gastronomía.
Para todos aquellos que comparten ambos gustos e intentan hacer de cualquier actividad diaria un algoritmo.
*/

//Algoritmo #1 - Picante de pollo
//@author Telma Frege, 02/2010
class Ingrediente extends Alimento{ }

class Utensilio extends Herramienta{ }

class PicantePollo implements PlatosBolivianos{
private $nro_personas;
private $utensilios;
private $cocina;
private $estado;
const NRO_PORCIONES = 4;

//se asumen métodos gets and sets

private function PicantePollo($nro_personas=4){
$this->nro_personas = $nro_personas;
//receta para 4 personas
$this->radio = $nro_personas / NRO_PORCIONES;
}

private function prepararIngredientes(){
$pollo = new Ingrediente();
$pollo->setCantidad($cantidad=(4*$this->getRadio()), 'preza');

$tomate = new Ingrediente();
$tomate->setCantidad($cantidad=(1*$this->getRadio()), 'unidad');
$tomate->picar('cubitos');

$cebolla = new Ingrediente();
$cebolla->setCantidad($cantidad=(0.5*$this->getRadio()), 'unidad');
$cebolla->picar('cubitos');

$aji = new Ingrediente();
$aji->setCantidad($cantidad=(1*$this->getRadio()), 'cuchara');

$perejil = new Ingrediente();
$perejil->setCantidad($cantidad=(2*$this->getRadio()), 'cucharilla');
$perejil->picar();

$comino = new Ingrediente();
$comino->setCantidad($cantidad=(2*$this->getRadio()), 'cucharilla');

$sal = new Ingrediente();
$sal->setCantidad($cantidad=(0.5*$this->getRadio()), 'cucharilla');

$pimienta = new Ingrediente();
$pimienta->setCantidad($cantidad=(0.5*$this->getRadio()), 'cucharilla');

$agua = new Ingrediente();
$agua->setCantidad($cantidad=(2*$this->getRadio()), 'taza');
}

public function cocinar(){
$this->setEstado('cocinando');
$this->prepararIngredientes();

$olla = new Utensilio();
$olla->anadir($pollo);
$olla->anadir($comino);
$olla->anadir($sal);
$olla->anadir($pimienta);
$olla->anadir($aji);
$olla->anadir($perejil);
$olla->anadir($cebolla);
$olla->anadir($tomate);
$olla->anadir($agua);
$olla->ponerAHervir(90, 'minutos', 'fuego medio');

$this->prepararAcompanamientos();
$this->setEstado('listo');
}

private function prepararAcompanamientos(){
$arroz = new Ingrediente();
$arroz->setCantidad($cantidad=(1*$this->getRadio()), 'taza');
$this->cocinar($arroz, 'hervir', 20, 'minutos');

$papa = new Ingrediente();
$papa->setCantidad($cantidad=(4*$this->getRadio()), 'unidades', 'peladas');
$papa->cocinar($papa, 'hervir', 15, 'minutos');

$cebolla = new Ingrediente();
$cebolla->setCantidad($cantidad=(0.5*$this->getRadio()), 'unidad');
$cebolla->picar('juliana');

$tomate = new Ingrediente();
$tomate->setCantidad($cantidad=(1*$this->getRadio()), 'unidad');
$tomate->picar('juliana');

$ensalada = $this->mezclar($cebolla, $tomate);
}

public function servir(){ }

}


$cena_de_hoy = new Cena();
$plato = new PicantePollo($personas=
8);

$plato->cocinar();

do{
esperar(5, 'minutos');
removerOlla();
}
while( $plato->getEstado() != 'listo' ));


//Manejo de excepciones
try{
$plato->servir();

$cerveza = new Taquina();
$cena_de_hoy->acompanarCon($plato, $cerveza);
}
catch(Exception e){
if(e.type == 'sabe mal'){
$telefono->pedirPizza();
}
}