Permalänk
Medlem

php hjälp.

Tja! Håller på med en Läxa som går ut på att man ska skapa ett "tärningsspel". Man väljer hur många spelare och hur många tärningar som ska användas (max 5spelare och max5 tärningar).
Och den som "slår" högst totalt vinner.

Men efter att ha skrivit ett tag så har jag fastnat, tror att jag ska kunna svaret men har lite "stop" atm
Det jag behöver hjälp med är att få ut värdena som alla spelare "slagit" så att jag kan få koden att automatiskt skriva ut den som fick högt till vinnare.
Såhär ser min kod ut atm:

<?php
$antal=$_GET['antal'];
$spelare=$_GET['spelare'];
$sp=1;
$o=0;

for ($s=1;$s<=$spelare;$s++){
echo "Spelare: ".$sp++;
echo " ";

for ($i=1;$i<=$antal;$i++){
$random=rand(1,6);
$o=$o+$random;
echo "<img src='pics/dice" .$random. ".png' alt='dice' />";
echo " ";
}
echo $o;

$o=0;
echo "<br />";
}

echo "<br /> <br/>";
echo "Vinnaren är: ";

?>

Som ni ser så behöver jag få ut värdet $o innan det resetas för att loopa om, kan man skriva en variabel som typ $1++=$0; så att man sedan kan räkna med $1 $2 $3 $4 och $5? nu går väl inte siffror att använda men jag ni förstår nog Jag är inte jätte bra på PHP
Tacksam för svar! MVH

Visa signatur

[ i7 8700k | MSI Z370 Krait | 16GB | MSI 3080 Ventus 3X OC ]

Permalänk
Medlem

PS. Mitt wamp har dampat så jag kan inte testa koden, ser ni något fel? xD

Visa signatur

[ i7 8700k | MSI Z370 Krait | 16GB | MSI 3080 Ventus 3X OC ]

Permalänk
Medlem

Ett tips till framtiden är att använda vettigare variabelnamn. Och ett tips, spara ner spelar"tärningarna" i en array, då blir det enkelt att jämföra sedan och se vem som "vann".

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.

Permalänk
Medlem
Skrivet av ToJa92:

Ett tips till framtiden är att använda vettigare variabelnamn. Och ett tips, spara ner spelar"tärningarna" i en array, då blir det enkelt att jämföra sedan och se vem som "vann".

Skrev lite random variabler xD brukar byta dem till "relevanta" när projektet är färdigt, sen kollade jag lite hur man gjorde Array på w3schools, men förstod inte riktigt enl deras instruktioner hur jag kunde använda dem här, ett tips kanske? ;P

Visa signatur

[ i7 8700k | MSI Z370 Krait | 16GB | MSI 3080 Ventus 3X OC ]

Permalänk
Medlem

Typ:

for(int i=0; i<$antal;i++){ $spelararray[i] = rand(1,6); }

Nu har du kastat tärningen för alla spelare. $spelararray[0] innehåller första spelarens tärning osv...
Lycka till

EDIT: Fixat.

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.

Permalänk
Medlem
Skrivet av ToJa92:

Typ:

for(int i=0; i<$antal;i++){ $spelararray[i] = rand(1,6); }

Nu har du kastat tärningen för alla spelare. $spelararray[0] innehåller första spelarens tärning osv...
Lycka till

Undrar bara, vad gör "int" framför i=0;?

Visa signatur

[ i7 8700k | MSI Z370 Krait | 16GB | MSI 3080 Ventus 3X OC ]

Permalänk
Medlem

antar att de gör int (om de fungerar som i C++) för att göra en variable för nummer och du gör han en int som hetter i med värdet 0 för att sedan räkna från 0 och uppet (i++ = i+1 dvs 0+1 osv.)
om jag kommer ihåg de rätt xD

Visa signatur

Maximus X Hero - 8700k @5.1GHz - H115i - 32GB LPX@3466MHz - MSI 980Ti Gaming - EVGA SuperNova 750 G2 - Asus vg248qe - FD R5

Permalänk
Medlem
Skrivet av elghinnarisa:

antar att de gör int (om de fungerar som i C++) för att göra en variable för nummer och du gör han en int som hetter i med värdet 0 för att sedan räkna från 0 och uppet (i++ = i+1 dvs 0+1 osv.)
om jag kommer ihåg de rätt xD

Mitt Wamp fungerar ju inte så kan någon visa hur man sätter in koden i min kod? ^^ Det är en okänd kod för mig och jag tror att jag kommer att göra fel ;D

Visa signatur

[ i7 8700k | MSI Z370 Krait | 16GB | MSI 3080 Ventus 3X OC ]

Permalänk
Medlem
Skrivet av SayZk:

Mitt Wamp fungerar ju inte så kan någon visa hur man sätter in koden i min kod? ^^ Det är en okänd kod för mig och jag tror att jag kommer att göra fel ;D

är tyvärr värdelös på php och polaren som kan sover xD sorry

Visa signatur

Maximus X Hero - 8700k @5.1GHz - H115i - 32GB LPX@3466MHz - MSI 980Ti Gaming - EVGA SuperNova 750 G2 - Asus vg248qe - FD R5

Permalänk
Medlem
Skrivet av elghinnarisa:

är tyvärr värdelös på php och polaren som kan sover xD sorry

aww >:

Visa signatur

[ i7 8700k | MSI Z370 Krait | 16GB | MSI 3080 Ventus 3X OC ]

Permalänk
Medlem

Men en array som plockar värdet från $o måste väl gå att skapa i min ursprungskod?

Visa signatur

[ i7 8700k | MSI Z370 Krait | 16GB | MSI 3080 Ventus 3X OC ]

Permalänk
Medlem

Skrev såhär:

<?php
$antal=$_GET['antal'];
$spelare=$_GET['spelare'];
$sp=1;
$o=0;

for ($s=1;$s<=$spelare;$s++){
echo "Spelare: ".$sp++;
echo " ";
for ($i=1;$i<=$antal;$i++){
$random=rand(1,6);
$o=$o+$random;
echo "<img src='pics/dice" .$random. ".png' alt='dice' />";
echo " ";
}
echo "Sum: " . $o;
$spelarray[] = $o;
$o=0;
echo "<br />";
}
echo "<br /> <br/>";
$spelare1 = $spelarray[0];
$spelare2 = $spelarray[1];
$spelare3 = $spelarray[2];
$spelare4 = $spelarray[3];
$spelare5 = $spelarray[4];

echo "The winner is: ";
echo $winner;
?>

Fungerar detta? Då måste jag komma på hur man räknar ut vilken som är högst

edit: Bytte det nuvarande:
$spelare1 = $spelarray[0];
$spelare2 = $spelarray[1];
$spelare3 = $spelarray[2];
$spelare4 = $spelarray[3];
$spelare5 = $spelarray[4];

till:
if (isset($spelarray[0])) {
$spelare1 = $spelarray[0];
}
if (isset($spelarray[1])) {
$spelare2 = $spelarray[1];
}
if (isset($spelarray[2])) {
$spelare3 = $spelarray[2];
}
if (isset($spelarray[3])){
$spelare4 = $spelarray[3];
}
if (isset($spelarray[4])) {
$spelare5 = $spelarray[4];
}

för att det inte ska dampa på "undefined index"

Visa signatur

[ i7 8700k | MSI Z370 Krait | 16GB | MSI 3080 Ventus 3X OC ]

Permalänk

Nedanstående kod borde fungera. För att kunna få in antal spelare och tärningar variabelt så behöver du skapa ett formulär som ropar på php-koden. Jag kollar också om det är två eller flera spelare som hamnar på samma resultat. Kan säkert presenteras på ett snyggare sätt.

<form action="dice.php" method="get">
Antal spelare: <input type="text" name="spelare" />
Antal tärningar: <input type="text" name="antal" />
<input type="submit" />
</form>

php-kod sparas som dice.php

<?php
$spelare = 5; //Antal spelare - ersätts med data från ett formulär mha $_GET
while ($spelare > 0){
$result[$spelare] = 0;
$antal = 5; //Antal tärningar - ersätts med data från ett formulär mha $_GET
while ($antal >0){
$result[$spelare] = $result[$spelare]+rand(1,6);
$antal--;
}
$spelare--;
}
ksort($result); // Sortera spelarna i nummerordning
foreach ($result as $key=>$value) {

echo "Spelare ".$key." fick totalt ".$value." prickar<br />";

}
arsort($result); // Sortera resultaten från högst till lägst
$oldvalue = 0;
foreach ($result as $key=>$value) {
if ($oldvalue <= $value ) { // Ta reda på om fler spelare har samma högst poäng
echo "<br />Spelare ".$key." vinner med ".$value." prickar";
$oldvalue = $value;
}
else {
exit;
}

}
?>

Permalänk
Medlem
Skrivet av hasseigransta:

Nedanstående kod borde fungera. För att kunna få in antal spelare och tärningar variabelt så behöver du skapa ett formulär som ropar på php-koden. Jag kollar också om det är två eller flera spelare som hamnar på samma resultat. Kan säkert presenteras på ett snyggare sätt.

<form action="dice.php" method="get">
Antal spelare: <input type="text" name="spelare" />
Antal tärningar: <input type="text" name="antal" />
<input type="submit" />
</form>

php-kod sparas som dice.php

<?php
$spelare = 5; //Antal spelare - ersätts med data från ett formulär mha $_GET
while ($spelare > 0){......

Tappade bort mig redan i din while loop... Du använder kod som jag aldrig sett förut Jag är nab på php.
Men då fungerar inte min kod ovan?

Visa signatur

[ i7 8700k | MSI Z370 Krait | 16GB | MSI 3080 Ventus 3X OC ]

Permalänk
Medlem
Skrivet av SayZk:

Tappade bort mig redan i din while loop... Du använder kod som jag aldrig sett förut Jag är nab på php.
Men då fungerar inte min kod ovan?

Nej den fungerar inte. Testade att köra den med WampServer, klagar på några undefined variable eller index.

Det främsta elller kanske enda direkta felet är att du aldrig get ett värde åt $winner. Du kan ju inte bara skriva ut en variable utan något värde. Du får hitta på ett sätt att gå igenom arrayen och kolla vilket tal som är högst. PHP har väldigt, väldigt bra exempel på sina sidor. Googla t.ex. "php loop array" så hittar du genast den funktion du behöver.

En annan kommentar, varför variabeln $sp? Använd istället den $s variable du definierat för for-loopen, den har ju automatiskt rätt värde vid varje loop.

Sist men inte minst - jag rekommenderar starkt att du tar en titt på den här tråden jag svarade i tidigare, det är så gott som samma sak: #10577221

Permalänk

Finns det inga lärare på skolorna längre?

Permalänk
Medlem
Skrivet av mel0dy:

Finns det inga lärare på skolorna längre?

Får lite samma uppfattning...

Permalänk
Medlem
Skrivet av mel0dy:

Finns det inga lärare på skolorna längre?

+1

Permalänk

Gjorde ett exempel på skoj, i princip är det koden som jag postade ovan. Titta på Gransta.se Enhörnawebben längst ner på sidan. Ange antal spelare och hur många tärningar du vill ha.

Pröva gärna med många spelare typ 1000 så får du koll på om slumpgeneratorn funkar bra. med fem tärningar så ska medelvärdet hamna på 17,5.

pröva också
Permalänk
Avstängd
Skrivet av mel0dy:

Finns det inga lärare på skolorna längre?

Det finns men våran lärare dvs min och sayzks (andras) lärare är inte bra, vi har knappt lärt oss något bara får uppgifter vi ska göra, som är skit dåligt när vi inte vet knappt om hur man gör.

Permalänk
Medlem
Skrivet av mel0dy:

Finns det inga lärare på skolorna längre?

När skolverket förra året inspekterade skolkedjan som jag går på, så valde skolledningen att avskeda alla "obehöriga" lärare, då avgick den enda bra programmerings läraren som skolan har, då fick våran nuvarande lärare ta hand om kursen istället, han må vara behörig att lära ut kursen (Programmering A) Men han kan inte något särskilt mycket om PHP, han berättade att han endast har lärt ut Basic innan...
Därför vänder jag mig till hjälp hos er på Sweclockers, och hoppades slippa tråkiga komentarer, har du inget att säga som tillför tråden något så gå till nästa tråd...

Visa signatur

[ i7 8700k | MSI Z370 Krait | 16GB | MSI 3080 Ventus 3X OC ]

Permalänk
Medlem
Skrivet av hasseigransta:

Gjorde ett exempel på skoj, i princip är det koden som jag postade ovan. Titta på Gransta.se Enhörnawebben längst ner på sidan. Ange antal spelare och hur många tärningar du vill ha.

Pröva gärna med många spelare typ 1000 så får du koll på om slumpgeneratorn funkar bra. med fem tärningar så ska medelvärdet hamna på 17,5.

Snyggt gjort Det fungerade som det skulle
Jag har dock redan lämnat in uppgiften nu ^^

Visa signatur

[ i7 8700k | MSI Z370 Krait | 16GB | MSI 3080 Ventus 3X OC ]

Permalänk
Medlem

Behöver hjälp med filmpalatset (php)

Tja
Jag skall skriva ett program till Filmpalatset. Man skall kunna välja film, fylla i sin ålder och hurvida man har sin målsman med sig eller inte. Är målsman med räcker det att vara 11 år för att gå på 15-års filmer och 7 år för att gå på filmer som har en gräns på 11 år. Samtliga filmer kostar 75 kronor att gå på. Man skall högst kunna köpa 4 biljetter.

På resultatsidan skall följande visas på ett tydligt sätt:
• Om personen får gå på den film han/hon valt eller ej. Om personen blir nekad att se filmen skall han/hon få reda på vad som krävs för att se filmen.
• Hur mycket det kommer att kosta.

Formuläret nedan
</head>

<form action= "resultat.php" method="POST">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

Bokningsformulär<br/><br/>

Förnamn<br/>

<input type="text" name="firstname" /><br />

Efternamn<br/>

<input type="text" name="lastname" /><br />

Ålder<br/>

<input type="text" name="Födelsedag">
<br/>

Email <br/>
<input type=text name=email><br>
<br/>

Film <br/>

<select name="film">

<option>Välj</option>

<option value="1">Inception, 11 år</option>

<option value="2">Red, 15 år</option>

<option value="3">The American, 15 år</option>

<option value="4">Harry Potter Dödsrelikerna del, 11 år</option>

<option value"5">Grown ups, 7 år</option>

<option value"6">Water on elephants, 11 år</option>

<option value "7">I rymden finns inga känslor, 7 år</option>

<option value "8">Machete, 15 år</option>

<option value"9">The expendables, 15 år</option> -->

</select><br/>

Antal biljetter <br/>

<select name="antal">

<option>Välj</option>

<option value="1">1 st (75 kr)</option>

<option value="2">2 st (150 kr)</option>

<option value="3">3 st (225 kr)</option>

<option value="4">4 st (300 kr)</option>

</select><br/>

Målsman <br/>

<input type="radio" name="sex" value="Ja" />Ja<br />

<input type="radio" name="sex" value="Nej" />Nej<br />

Allt stämmer<input type="checkbox" name="check" value="" /><br>

<input name="submit" type="submit" id="submit" value="Godkänn bokning!" onClick="javascript:return kolla();">

</form>

Resultatsidan men mängder med småfel
<!--"resultat.php"-->
<?php
$film = $_POST['film'];
$antal = $_POST['antal'];
$pris = '75';
$summa = $pris * $antal;
$firstname = $_POST['firstname'];

$lastname = $_POST['lastname'];
$alder = $_POST['alder'];

echo "hej " . $firstname . " " . $lastname . ", du har bekräftat att du";

if($film == '1')
{
echo "har valt filmen " . $film .".";
echo "<br>Du har köpt " . $antal ." biljetter. ";
echo "Biljetterna kostar: " . $summa ;
}
?>

<?php

if(($film =='2')&&($alder >= '15'))
{
echo "Du har valt filmen " . $film .".";
echo "<br>";
echo "Biljetterna kostar: " . $summa ;
}
if(($film =='2')&&($alder < '15'))
{
echo "Du har valt filmen " . $film .".";
echo "<br>";
echo "Du är för ung för filmen!";
}

?>

Permalänk
Inaktiv

Ser ut som du gillar enter knappen.
Sen är det här inte ett ställe där du bara kan beställa saker, vad vill du ha hjälp med?

Permalänk
Medlem
Skrivet av vaxor123:

<input type="radio" name="sex" value="Ja" />Ja<br />

<input type="radio" name="sex" value="Nej" />Nej<br />

Schysst biograf

Visa signatur

Ryzen 5600X, Gigabyte RTX 3070 GAMING OC, 32GB Ballistix (3600 CL16)
Fractal Design Meshify C Mini, MSI MAG B550M MORTAR, Kraken X53, WD Black SN850

Permalänk
Skrivet av Floot:

Schysst biograf

Speciellt med tanke på att det står under alternativet Målsman.