Mehrere Würfel auf einmal

  • Hallo,


    ich besuche derzeit einen Informatik Kurs an meiner Schule in dem die Entwicklung von Webseiten thematisiert wird.


    Nun geht es ausschließlich um die Gestaltung, also HTML, CSS und ein wenig Bildbearbeitung, jedoch zeigte ich von Anfang an auch mehr Interesse für PHP.


    Jetzt kam ich mit meinem Lehrer kürzlich ins Gespräch darüber und er stellte mir eine Aufgabe die ich wenn möglich ohne fremde Hilfe lösen sollte.


    Er meinte ich soll ein Programm schreiben das mit einer variablen Anzahl an Würfeln arbeiten sollte. Es sollten die einzelnen Würfelergebnisse und die Summe ausgegeben werden.
    Ich habe das ganze jetzt so gelöst:


    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br />  function wuerfel</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$anzahlWuerfel</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    $ergebnisGesamt </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    for</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$i </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> $anzahlWuerfel</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i</span><span class="syntaxkeyword">++)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">      $wuerfelErgebnis</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$i</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> rand</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">6</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">      $ergebnisGesamt</span><span class="syntaxkeyword">+=</span><span class="syntaxdefault">$wuerfelErgebnis</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$i</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    $text </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Die gesamte Augenzahl betr&auml;gt $ergebnisGesamt,<br />             die einzelnen Ergebnisse lauten: "</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    for</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$i </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> $anzahlWuerfel</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i</span><span class="syntaxkeyword">++)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">      $text </span><span class="syntaxkeyword">.=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"$wuerfelErgebnis[$i], "</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    return substr_replace</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$text</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'.'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">-</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">  print wuerfel</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">4</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">?><br /></span></span>


    Zitat von &quot;Mein Code&quot;


    Die gesamte Augenzahl beträgt 14, die einzelnen Ergebnisse lauten: 4, 3, 2, 5.
    Die gesamte Augenzahl beträgt 19, die einzelnen Ergebnisse lauten: 5, 5, 6, 3.
    Die gesamte Augenzahl beträgt 18, die einzelnen Ergebnisse lauten: 4, 6, 5, 3.


    Es funktionierte und so habe ich das Ganze auf meinen USB Stick gepackt und ihm in der Schule gezeigt.


    Ich habe nicht schlecht geguckt als er mir sagte das es sich bei meinem Code ja wohl um völligen Blödsinn handele.


    Als ich ihn dann fragte was ich anders machen sollte meinte er nur noch er habe jetzt keine Zeit mehr für mich.


    Seit dem zerbreche ich mir den Kopf darüber was ich verbessern könnte.. halt! Es ist ja angeblich sogar völliger Blödsinn, also muss ich ja überlegen wie ich es sonst lösen könnte.


    Jetzt baue ich auf euch und bin einmal gespannt was ihr dazu sagt. :wink:

  • Hi,


    Zitat

    Er meinte ich soll ein Programm schreiben das mit einer variablen Anzahl an Würfeln arbeiten sollte. Es sollten die einzelnen Würfelergebnisse und die Summe ausgegeben werden.


    Vielleicht meinte er eine Webseite mit einem Formular wo man die Anzahl der Würfel eingeben kann ?!?!?
    Wenn etwas Blödsinn ist, dann ist es die Aufgabenstellung die unpräzise ist.


    Zitat


    Seit dem zerbreche ich mir den Kopf darüber was ich verbessern könnte


    - man könnte es objektorientiert machen. Eine Klasse für den Würfel und eine Klasse Würfelbecher.
    - man könnte den Wert des Würfels als Grafik ausgeben


    LG

  • Wobei meiner Meinung nach OOP für den Anfang doch schon etwas unangebracht wäre :/
    Was man in deinem Code ansonsten noch verbessern könnte wäre, dass man mit nur einer for-Schleife arbeitet.


    Ansonsten fällt mir spontan für diese (unpräzise?) Aufgabenstellung auch nicht mehr ein, als eben geschrieben + die Antwort von CyberGirl.

  • Okay also ich hab jetzt mal ein bisschen nachgedacht und mit einer Schleife würde ich das so regeln:


    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br />  </span><span class="syntaxkeyword">function </span><span class="syntaxdefault">wuerfel</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$anzahlWuerfel</span><span class="syntaxkeyword">)<br />  {<br />    </span><span class="syntaxdefault">$ergebnisGesamt </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">0</span><span class="syntaxkeyword">;<br />    </span><span class="syntaxdefault">$ergebnisseEinzeln </span><span class="syntaxkeyword">= </span><span class="syntaxstring">""</span><span class="syntaxkeyword">;<br />    for(</span><span class="syntaxdefault">$i </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">0</span><span class="syntaxkeyword">; </span><span class="syntaxdefault">$i </span><span class="syntaxkeyword">< </span><span class="syntaxdefault">$anzahlWuerfel</span><span class="syntaxkeyword">; </span><span class="syntaxdefault">$i</span><span class="syntaxkeyword">++)<br />    {<br />      </span><span class="syntaxdefault">$wuerfelErgebnis</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$i</span><span class="syntaxkeyword">] = </span><span class="syntaxdefault">rand</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">6</span><span class="syntaxkeyword">);<br />      </span><span class="syntaxdefault">$ergebnisseEinzeln </span><span class="syntaxkeyword">.= </span><span class="syntaxstring">"$wuerfelErgebnis[$i], "</span><span class="syntaxkeyword">;<br />      </span><span class="syntaxdefault">$ergebnisGesamt</span><span class="syntaxkeyword">+=</span><span class="syntaxdefault">$wuerfelErgebnis</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$i</span><span class="syntaxkeyword">];<br />    }<br />    </span><span class="syntaxdefault">$text </span><span class="syntaxkeyword">= </span><span class="syntaxstring">"Die gesamte Augenzahl betr&auml;gt $ergebnisGesamt,<br />             die einzelnen Ergebnisse lauten: "</span><span class="syntaxkeyword">;<br /><br />    return </span><span class="syntaxdefault">substr_replace</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$text </span><span class="syntaxkeyword">. </span><span class="syntaxdefault">$ergebnisseEinzeln</span><span class="syntaxkeyword">, </span><span class="syntaxstring">'.'</span><span class="syntaxkeyword">, -</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">);<br />  }<br /><br />  print </span><span class="syntaxdefault">wuerfel</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">4</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">?><br /></span></span>


    Durch die Objektorientierung steige ich leider absolut nicht durch, das er das meinte kann ich mir aber kaum vorstellen, er fragte mich ja auch allen ernstes was das return in der Funktion zu suchen hat und wofür das ist. :roll:


    Gut wenn ihr jedoch der Meinung seid das dies eine korrekte Lösung ist dann bin ich ja beruhigt.


    Ich bin ja eigentlich schon lange der Überzeugung das er keine Ahnung hat.. *hust* (Aber psssst! :wink: )

  • Zitat von &quot;Flow Snow&quot;

    Durch die Objektorientierung steige ich leider absolut nicht durch, das er das meinte kann ich mir aber kaum vorstellen, er fragte mich ja auch allen ernstes was das return in der Funktion zu suchen hat und wofür das ist.
    [...]
    Ich bin ja eigentlich schon lange der Überzeugung das er keine Ahnung hat.. *hust* (Aber psssst! :wink: )


    Achja, stimmt :D
    Wir haben hier ja über einen Informatiklehrer geredet :D
    Irgendwie hab ich noch keinen Info-Lehrer gesehen, der Ahnung hat :/
    Arbetitet ihr den schon mit CSS oder macht ihr eure Webseiten über Tabellenlayout? xDD

  • Also das was wir machen basiert auf Frames mit einem Tabellenlayout, finde ich persönlich ja inkorrekt aber wenn er meint das ist richtig muss er so unterrichten.

  • Dann hör ihm bitte nicht zu sehr zu! >-<
    Also so, dass du noch gute Noten bekommst, aber nicht so, dass du das später jemals einsetzten wirst, oke? >-<


    das ist in Zeiten von Web2.0 eigentlich (meiner Meinung nach) ein absolutes No-Go.. -.-

  • Zitat von &quot;Sarkkan&quot;


    Achja, stimmt :D
    Wir haben hier ja über einen Informatiklehrer geredet :D
    Irgendwie hab ich noch keinen Info-Lehrer gesehen, der Ahnung hat :/
    Arbetitet ihr den schon mit CSS oder macht ihr eure Webseiten über Tabellenlayout? xDD


    Wieso ist das eigentlich so?
    Wir haben an einer Schule mit 1800 Schülern gerade mal 1 Informatiklehrer, der Ahnung hat, der Rest, ..
    naja.
    DerWaldschrat

  • Das ist wirklich eine gute Frage :/
    Denke mal liegt daran, dass das Studium doch meistens schon einige Jahre her ist.. und das das nun mal damals das aktuellste war, was man gelernt hat :/


    Hab ich jetzt auch in meiner Agentur gesehen (Hab seit kurzem mein Hobby übrigens zum Beruf gemacht :D Fürs Programmieren bezahlt werden, yay! =D)
    Habe dort mal frischen Wind rein gebracht, weil man sich scheinbar nach einigen Jahren festfährt und einfach nicht mehr schaut, was gerade aktuell ist :/
    Was eigneentlich wirklich schade ist :/

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!