Skip to content

Instantly share code, notes, and snippets.

@vittore
Created October 23, 2016 14:04
Show Gist options
  • Save vittore/0050eaa2f01d24fde7ad80025efa059a to your computer and use it in GitHub Desktop.
Save vittore/0050eaa2f01d24fde7ad80025efa059a to your computer and use it in GitHub Desktop.
<?php
$campanelli=[];
for($i=1;$i<=1024;$i++){
$campanelli[$i]=$i;
}
$verso=1;
$i=1;
while (daSuonare($campanelli)>1) {
$campanelli[$i]='*';
echo "\r\n";
echo (($verso==1)?'->':'<-');
echo " suono il campanello $i ";
dumpDaSuonare($campanelli);
if ($prossimo=ciSonoCampanelliSuonabiliNelloStessoVerso($campanelli,$i,$verso)) {
$i=$prossimo;
} else {
$verso=-$verso;
}
}
function daSuonare($campanelli) {
$daSuonare=0;
foreach ($campanelli as $value) {
if ($value!='*') {
$daSuonare++;
}
}
return $daSuonare;
}
function ciSonoCampanelliSuonabiliNelloStessoVerso($campanelli,$posizioneAttuale,$verso){
if ($verso==1) {
$daSuonare=0;
for($i=$posizioneAttuale;$i<=1024;$i++){
if ($campanelli[$i]=='*') {continue;}
$daSuonare++;
if ($daSuonare==2) {return $i;}
}
return 0;
} else {
$daSuonare=0;
for($i=$posizioneAttuale;$i>=1;$i--){
if ($campanelli[$i]=='*') {continue;}
$daSuonare++;
if ($daSuonare==2) {return $i;}
}
return 0;
}
}
function dumpDaSuonare($campanelli){
$i=0;
foreach($campanelli as $campanello){
if ($campanello=='*') {continue;}
if ($i++>10) {continue;}
echo " ".$campanello;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment