Random placering ud fra en bestemt fordeling
HejJeg er løbet en i et lille problem. Jeg starter lige med siden:
http://www.lordpoke.dk/skole/kingo3.php
Forklaring til siden:
Til venstre er der otte "knapper"; fra r1 til r4 og g1 og g4. Hver knap aktiverer et af de 15 grå felter til højre, som så bliver enten rødt eller gult. Én knap aktivere altså ét felt. Mit problem er at jeg gerne vil have, at alle 15 felter er aktiverede hele tiden - bestemt ud fra den procentmæssige fordeling af aktiverede knapper. Eks: Hvis en rød knap er aktiveret er alle 15 felter røde. Er tre røde og to gule aktiverede er 9 felter røde og 6 gule.
Til højre ses en tabel, hvor den procentmæssige fordeling er regnet ud og, hvor der står, hvor mange felter der "burde" være røde og gule (og en enkelt grå, når det ikke går op).
Udover det skal de farvede felter placeres tilfædigt, så én knap ikke aktivere nogen bestemte felter.
Lidt koder (der er en del gentagelser, så det er bare lidt uddrag):
En knap (her r1):
onclick="document.location.href='kingo3.php?<? if ($_r1 == "off"){ print "mode_r1=on"; } ?>&<? if ($_r2 == "on"){ print "mode_r2=on"; } ?>&<? if ($_r3 == "on"){ print "mode_r3=on"; } ?>&<? if ($_r4 == "on"){ print "mode_r4=on"; } ?>&<? if ($_g1 == "on"){ print "mode_g1=on"; } ?>&<? if ($_g2 == "on"){ print "mode_g2=on"; } ?>&<? if ($_g3 == "on"){ print "mode_g3=on"; } ?>&<? if ($_g4 == "on"){ print "mode_g4=on"; } ?>';"
Lidt omskrivninger (igen ved r1):
if (!isset($_GET['mode_r1'])){
$_r1 = 'off';
} elseif ($_GET['mode_r1'] == 'on'){
$_r1 = 'on';
} else {
$_r1 = 'off';
}
Lidt udregninger (for r1 til r4):
$r = 0;
if ($_r1 == "on") {
$r = $r + 1;
}
if ($_r2 == "on") {
$r = $r + 1;
}
if ($_r3 == "on") {
$r = $r + 1;
}
if ($_r4 == "on") {
$r = $r + 1;
}
Og lidt flere (det der bliver printet i tabellen til højre):
$ialt = $r+$g;
$rp = round($r/$ialt*100 , 2);
$gp = round($g/$ialt*100 , 2);
$rf = floor($rp*15/100);
$gf = floor($gp*15/100);
$graa = 15-$rf-$gf;
Jeg håber, at det er rimelig til at forstå ellers må I lige skrive, så skal jeg prøve at forklare lidt mere. I må unskylde, hvis det ikke er så forståeligt, jeg havde skrevet det hele en gang, men da jeg oprettede spørgesmålet forsvandt det hele bare. :( Så jeg skulle skrive det hele forfra, og jeg syntes ikke det er helt så godt denne gang som sidst (Sådan noget sker bare altid).
Håber at nogen kan/vil hjælpe.
-Dennis
Ps. Jeg ved godt, at noget af det kunne havde været skrevet nemmere/kortere, men første prioritet er at få det til at virke, så kan jeg skrive det om senere hvis jeg før tid (og lyst).