Úkol 2-2 – Úplně lehké heslo
// mozna profiltrovat z misek stejna slova na obou vahach hned po parsingu
function task259reset()
{
$pool = array('Křemílek', 'Vochomůrka', 'Rákosníček', 'Česílko', 'Rumcajs', 'Manka', 'Cipísek', 'Štaflík', 'Špagetka', 'Bob', 'Bobek', 'Krteček', 'Amálka', 'Kubko', 'Maťko', 'Bolek', 'Lolek', 'Mach', 'Šebestová', 'Krakonoš', 'Spejbl', 'Hurvínek', 'Čmelda', 'Brumda', 'Sazínek', 'Škubánek', 'Racochejl', 'Barbucha', 'Pampalini', 'Klinček', 'Jurošík', 'Žabčo', 'Žabinka', 'Bambulka');
$_SESSION['Task259Password'] = '***';
$_SESSION['Task259Word'] = array();
$_SESSION['Task259Ban'] = array();
for($i = 0; $i < 9; $i++)
{
do
{
$n = rand(0, count($pool) - 1);
}
while(isset($_SESSION['Task259Word'][$pool[$n]]));
$_SESSION['Task259Word'][$pool[$n]] = 2;
}
$_SESSION['Task259Count'] = 2;
// if(time() >= mktime(6, 0, 0, 3, 21, 2012)) $_SESSION['Task259Count'] = 3;
$_SESSION['Task259Assigned'] = 0;
}
function task259assign()
{
$keys = array_keys($_SESSION['Task259Word']);
do
{
$word = $keys[rand(0, 8)];
}
while(isset($_SESSION['Task259Ban'][$word]));
$_SESSION['Task259Password'] = $word;
$_SESSION['Task259Word'][$word] = 1;
$_SESSION['Task259Assigned'] = 1;
}
if(!isset($_SESSION['Task259Word'])) task259reset();
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']))
{
if(isset($_REQUEST['a']))
{
task259reset();
echo "document.location = '/2012/ukoly/ukol-2-2-uplne-lehke-heslo/';";
die();
}
if($_SESSION['Task259Count'] <= 0) die();
$words_l = preg_split("/[ ,]/u", $_REQUEST['l'], -1, PREG_SPLIT_NO_EMPTY);
$words_r = preg_split("/[ ,]/u", $_REQUEST['r'], -1, PREG_SPLIT_NO_EMPTY);
$count_l = 0;
foreach($words_l as $word)
{
if(!isset($_SESSION['Task259Word'][$word])) $error = 1;
$count_l++;
}
$count_r = 0;
foreach($words_r as $word)
{
if(!isset($_SESSION['Task259Word'][$word])) $error = 1;
$count_r++;
}
if(isset($error))
{
echo "$('#c').addClass('error'); setTimeout(\"$('#c').removeClass('error');\", 1000);";
die();
}
$_SESSION['Task259Count']--;
if($_SESSION['Task259Count'] <= 0) echo "$('#c').attr('disabled', 'disabled');";
if(!$_SESSION['Task259Assigned'] && $count_l >= 3 && $count_r >= 3 && $count_l == $count_r) task259assign();
if(!$_SESSION['Task259Assigned'] && $count_l == $count_r)
{
foreach($words_l as $word)
{
$_SESSION['Task259Ban'][$word] = 1;
if(count($_SESSION['Task259Ban']) > 4)
{
task259assign();
break;
}
}
}
if(!$_SESSION['Task259Assigned'] && $count_l == $count_r)
{
foreach($words_r as $word)
{
$_SESSION['Task259Ban'][$word] = 1;
if(count($_SESSION['Task259Ban']) > 4)
{
task259assign();
break;
}
}
}
$weight_l = 0;
foreach($words_l as $word)
{
$weight_l += $_SESSION['Task259Word'][$word];
}
$weight_r = 0;
foreach($words_r as $word)
{
$weight_r += $_SESSION['Task259Word'][$word];
}
if($weight_l < $weight_r) echo "$('#l').animate({ top: 10 }, 1000, 'easeOutBounce'); $('#r').animate({ top: 90 }, 1000, 'easeOutBounce'); $('#n').text('".$_SESSION['Task259Count']."');";
elseif($weight_l > $weight_r) echo "$('#l').animate({ top: 90 }, 1000, 'easeOutBounce'); $('#r').animate({ top: 10 }, 1000, 'easeOutBounce'); $('#n').text('".$_SESSION['Task259Count']."');";
else echo "$('#l').animate({ top: 50 }, 3000, 'easeOutElastic'); $('#r').animate({ top: 50 }, 3000, 'easeOutElastic'); $('#n').text('".$_SESSION['Task259Count']."');";
write_log('vahy', (isset($team_name) ? $team_name : "")." (".$_REQUEST['l']." | ".$_REQUEST['r'].") DEBUG - vahy slov: ".serialize($_SESSION['Task259Word'])." zakaz nizke vahy: ".serialize($_SESSION['Task259Ban'])." password: ".$_SESSION['Task259Password']);
die();
}
echo "
Vyberte si heslo: ".implode(', ', array_keys($_SESSION['Task259Word']))."
\n";
?>
/>