Acredito que Mamonas fez parte da infância de todos aqui, da minha não foi diferente. Em homenagem ao super grupo de besteirou, um Music Code do Sabão Crá-Crá.
$saboes = array(new Sabao('crá'),new Sabao('cré'),new Sabao('cri'),new Sabao('cró'),new Sabao('crú'));
$cabelo = new CabeloDoSaco();
foreach($saboes as $sabao) {
echo 'Sabão '. $sabao->apelido();
echo 'Sabão '. $sabao->apelido();
echo 'Não deixe o cabelo do saco ';
switch($sabao->nome){
'crá': $cabelo->enrolar();break;
'cré': $cabelo->dePe();break;
'cri': $cabelo->cair();break;
'cró': $cabelo->daNo();break;
'crú':
/* Comentário do Cantor
* Êita, diachu!
*/
$c_ = new CabeloDoC_();
$cabelo->enrolar($c_);
}
}
?>
class Sabao {
public $name;
function __construct($nome){
$this->nome = $nome;
}
public function apelido(){
return $this->name . '-' . $this->name;
}
}
class Pelo {
var $estado = array(
'enrolado'=>array('com'=>null),
'dePe'=>false,
'comNo'=>false
);
private function enrolar($com = null){
if (is_null($com)){
$this->estado['enrolado']['com'] = $this;
}
else {
$this->estado['enrolado']['com'] = $com;
}
}
private function ficarDePe(){
$this->estado['dePe']=true;
}
private function darNo(){
$this->estado['comNo']=true;
}
}
class Cabelo {
protected $pelos = array();
function __construct(){
for ($i = 0; $i < NUM_PELOS; $i++){
array_push($this->pelos, new Pelo)
}
}
protected function getUmPelo(){
return $this->pelos[rand(0,count($this->pelos))];
}
protected function enrolar ($com = null){
$num = count($this->pelos);
if (is_null($com)){
for ($i = 0; $i < $num; $i++){
$this->pelos[$i]->enrolar();
}
} else {
for ($i = 0; $i < num; $i++){
$this->pelos[$i]->enrolar($com->getUmPelo());
}
}
}
protected function dePe (){
$num = count($this->pelos);
for ($i = 0; $i < $num; $i++){
$this->pelos[$i]->ficarDePe();
}
}
protected function cair(){
$num = count($this->pelos);
for ($i = 0; $i < $num; $i++){
unset($this->pelos[$i]);
}
}
protected function daNo(){
$num = count($this->pelos);
for ($i = 0; $i < $num; $i++){
$this->pelos[$i]->ficarDePe();
}
}
}
class CabeloDoSaco extends Cabelo{
private $estilo = 'Enrolados';
}
class CabeloDoC_ extends Pelo{
private $sujo = true;
}
Agora é só compilar… ops, ouvir! Que os ponteiros estejam com vocês! Flws!