is115-php/modul4/index4_5.php

78 lines
2.3 KiB
PHP

<?php include '../common.php'; ?><!DOCTYPE html>
<html lang="no">
<head>
<title><?=title();?></title>
<link rel="stylesheet" href="../index.css">
</head>
<body>
<div class="container">
<h1><?=title();?></h1>
<h4><?=getNavigation();?></h4>
<h2>Liten konkurranse</h2>
<?php
// Introduserer deltakerne med 0 poeng.
$deltaker["Karl"] = 0;
$deltaker["Mia"] = 0;
$deltaker["Ove"] = 0;
$deltaker["Erik"] = 0;
$deltaker["Aurora"] = 0;
$deltaker["Emma"] = 0;
$deltaker["Simon"] = 0;
$deltaker["Tuva"] = 0;
$deltaker["Syvert"] = 0;
$deltaker["Trine"] = 0;
$runde = 0;
echo "Konkurranse mellom ".str_lreplace(',',' og', implode(', ', array_keys($deltaker)))."<br><br>\n";
while(count($deltaker) > 1){
$runde++;
echo "<h5>Runde $runde</h5>\n";
// Gir hver deltaker en tilfeldig sum poenger mellom 1 og 50.
foreach($deltaker as $navn => $poeng){
$deltaker[$navn] += random_int(1,50);
}
// Sortere matrisen etter poengsum.
arsort($deltaker);
// Skriv ut poengsummen for alle gjenværende deltakere
$strArr = array();
foreach ($deltaker as $navn => $poeng){
$strArr[] = "$navn ($poeng)";
}
echo "<p>Poeng denne runden:<br>";
echo implode(', ', $strArr);
echo "</p>";
// Identifiser laveste poengsum
$lavestePoeng = $deltaker[ array_key_last($deltaker) ];
// Identifisere deltakere med laveste poengsum
$lavesteDeltakere = array_keys($deltaker, $lavestePoeng);
if(count($lavesteDeltakere) > 1){
echo "<p>Deltakerne ".str_lreplace(',', ' og', "<strong>".implode("</strong>, <strong>", $lavesteDeltakere)."</strong>")." har færrest poeng, og er ute av konkurransen.</p>\n";
}
else {
echo "<p><strong>$lavesteDeltakere[0]</strong> har færrest poeng, og er ute av konkurransen.</p>\n";
}
// Tar navnet/navnene ut av matrisen
foreach ($lavesteDeltakere as $navn){
unset($deltaker[$navn]);
}
}
// Annonsere vinneren
$vinnerNavn = array_key_first($deltaker);
echo "<p><strong>Vinneren er ".$vinnerNavn." med ".$deltaker[$vinnerNavn]." poeng!</strong></p>\n";
?>
</div>
</body>
</html>