Sitzplan mit Zufallsgenerator

  • geschlossen
  • PHP

  • pizza hotel
  • 3858 Aufrufe 6 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Sitzplan mit Zufallsgenerator

    Hi,

    wir sollen in Informatik einen Sitzplan erstellen, den man mit einem Klick mit Namen aus einer Liste Zufällig belegen kann. Leider steh ich voll auf dem Schlauch und muss das ganze bis Dienstag fertig haben. Es wäre echt hammer wenn mir jemand helfen würde... Gerne auch mit TS oder Teamviewer. Ich will nicht dass mir das jemand hinrotzt sondern dass mir jemand dabei hilft ;) Achja das ganze soll Objektorientiert sein...


    Hier mal das was ich schon habe: Es werden 16 Tische gezeichnet. Allerdings bin ich mir nicht sicher, ob das noch Objektorientiert ist bzw ob man das mit dem Zufallsgenerator da jetzt noch ordentlich hinbringt...

    Als erstes die "Grafische Oberfläche"

    HTML-Quellcode

    1. <html>
    2. <head>
    3. <title>
    4. Sitzplan
    5. </title>
    6. </head>
    7. <body>
    8. <form name="zeichnen" action="new 3.php">
    9. <input type="submit" value="Rechteck Zeichnen" name="send">
    10. </form>
    11. <br />
    12. <br />
    13. <!-- <div style='width: 60px; height = 30px; border-style: solid; position: absolute; left: 30px; top: 60px;'>Hallo</div> -->
    14. </body>
    15. </html>
    Alles anzeigen


    Dann die new 3.php wo die Funktion nachher aufgerufen werden soll.

    PHP-Quellcode

    1. <?php
    2. include ("tisch_klasse.php");
    3. $box1 = new tisch_klasse;
    4. $box1->zeige();
    5. ?>


    Und zuletzt noch die tisch_klasse.php

    PHP-Quellcode

    1. <?php
    2. class tisch_klasse{
    3. var $breite = 200;
    4. var $hoehe = 100;
    5. var $x_pos = 50;
    6. var $y_pos = 50;
    7. function zeige(){
    8. for ($i=0; $i<4; $i++){
    9. for ($j=0; $j<4; $j++){
    10. $this->x_pos= $i * 250 ;
    11. $this->y_pos= $j * 150 ;
    12. echo "<div style='width: ".$this->breite."px; height: ".$this->hoehe."px; border-style:solid; position: absolute; left: ".$this->x_pos."px; top: ".$this->y_pos."px;'>";
    13. //echo "Test!";
    14. echo "</div>";
    15. }
    16. }
    17. }
    18. }
    19. ?>
    Alles anzeigen


    MfG pizza hotel
    Waffen töten keine Menschen! Menschen töten Menschen. Waffen schützen Menschen vor Menschen mit kleineren Waffen!

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von pizza hotel ()

  • ich hab dir mal deine
    die klasse setzt jetzt zufällig aus der personenliste eine zufälligen aus "setzt" sie an den gerade aufgestellten platz

    PHP-Quellcode

    1. <?php
    2. class tisch_klasse{
    3. var $breite = 200;
    4. var $hoehe = 100;
    5. var $x_pos = 50;
    6. var $y_pos = 50;
    7. function zeige(){
    8. //liste der personen
    9. $personen = array('p1','p2','p3','p4','p5','p6','p7','p8','p9','p10','p11','p12','p13','p14','p15','p16');
    10. $res = '';
    11. for ($i=0; $i<4; $i++){
    12. for ($j=0; $j<4; $j++){
    13. $p = rand(0,count($personen)-1);//zufallsperson
    14. $this->x_pos= $i * 250 ;
    15. $this->y_pos= $j * 150 ;
    16. $res.= "<div style='width: ".$this->breite."px; height: ".$this->hoehe."px; border-style:solid; position: absolute; left: ".$this->x_pos."px; top: ".$this->y_pos."px;'>";
    17. $res.= $personen[$p];//person in div einfügen
    18. $res.= "</div>";
    19. unset($personen[$p]);//zufallsperson aus liste entfernen
    20. $personen = array_values($personen);//liste neu ordnen
    21. }
    22. }
    23. echo $res;
    24. }
    25. }
    26. ?>
    Alles anzeigen
  • ziemlich cool vielen dank schonmal ;)

    bin grad noch am fummeln dass ich in die großen Tische nochmal 2 Divboxen rein kireg. Das sind ja immer Doppeltische deshalb.

    EDIT: Habs anders gemacht, jetzt gibt es nur noch kleine Einzeltische. ;)

    So ist alles fertig. Danke corema für deine hilfe. Hab noch ein Javascript mit reingepackt dass man die Tische beliebig verschieben kann. Hier mal noch alle Dateien zum Download falls jemand mal was ähnliches machen muss.

    Link auf Anfrage!

    Falls jemand noch verbesserungs oder Korrekturvorschläge hat kann er die gerne noch posten ;)

    MfG pizza hotel

    EDIT: Sorry für den Doppelpost, nicht mehr drangedacht eben...
    Waffen töten keine Menschen! Menschen töten Menschen. Waffen schützen Menschen vor Menschen mit kleineren Waffen!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Broken Sword () aus folgendem Grund: Doppelpost

  • sieht doch schon ganz gut :)

    ein vorschlag hab ich aber noch:
    die index.html scheint mir doch stark überflüssig. aus sitzplan.php könnte man die index.php machen.

    man könnte noch jede menge spielkram hinzufügen^^:
    bei tische verschieben wäre das glaub ich voll cool wenn die lücke automatisch geschlossen wird, so dass man keine tische übernander stapelt

    aber das sind wirklich nur spielerein, die mehr arbeit machen, als nutzen bringen ;)

    lustiges tool hast du da jetzt^^
  • ja aber ich kannte javascript vorher überhaupt nicht und bin echt erstaunt dass ich das innerhalb von 2 minuten zum laufen gebracht hab ;) falls du mir sgane kannst wie man sowas programmiert bin ich gerne für mehr arbeit ^^ schreib grad noch einen SQL Connect, damit man die namen direkt aus der datenbank laden kann. Dann will ich noch ein auswhlfenster machen wo man lehrer und klasse auswählen kann, damit jeder lehrer seinen eigenen sitzplan erstellen kann.


    EDIT: Ich häng jetzt grad daran, da wo die Namen ins Array geschrieben werden, das $_GET einzufügen... gibts da irgend ne besodere Syntax die man einhalten muss oder wie sieht das aus?
    Waffen töten keine Menschen! Menschen töten Menschen. Waffen schützen Menschen vor Menschen mit kleineren Waffen!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von pizza hotel ()

  • beschreib doch mal grob was du mit dem $_get vorhast
    prinzipiell musst du aus einem string ein array machen.
    das gehts vorzugsweise mit explode()

    die sache mit dem tische tauschen....
    das automatisch füllen ist viel schreibarbeit
    einfacher wäre es, wenn du den einen anclickst und dann einen weiteren und diese dann tauschen

    warte ein moment ich versuch dir mal so was zu schreiben
    ...
    ...
    so nun hab ichs
    einmal java-script:

    HTML-Quellcode

    1. t1 = '-1';
    2. t2 = '-1';
    3. function tauschen(t){
    4. if(t1 == '-1'){
    5. t1 = t;
    6. document.getElementById(t1).style.backgroundColor = '#FF0000';
    7. }
    8. else if(t2 == '-1'){
    9. t2 = t;
    10. i1 = document.getElementById(t1).innerHTML;
    11. document.getElementById(t1).innerHTML = document.getElementById(t2).innerHTML;
    12. document.getElementById(t2).innerHTML = i1;
    13. document.getElementById(t2).style.backgroundColor = '#FFFFFF';
    14. document.getElementById(t1).style.backgroundColor = '#FFFFFF';
    15. t1 = '-1';
    16. t2 = '-1';
    17. }
    18. }
    Alles anzeigen

    on-click beim div:

    PHP-Quellcode

    1. ....
    2. $res.= "<div id='".$this->id."'; style='width: ".$this->breite."px; height: ".$this->hoehe."px; border-style:solid; position: absolute; left: ".$this->x_pos."px; top: ".$this->y_pos."px; text-align: center; vertical-align: middle;' onclick=\"tauschen(this.id)\">";
    3. ....

    bin in javascript nich allzu bewander, daher kanns gut sein, dass man den code besser hätte machen können

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von corema ()

  • Hammer so ists glaub echt besser. Also vielen Dank nochmal ;)
    Mit dem $_GET war ich mit dem Kopf woanders...

    Hab jetzt noch einen Button mit dem man zwischen den beiden Tausch Methoden wechseln kann...
    Waffen töten keine Menschen! Menschen töten Menschen. Waffen schützen Menschen vor Menschen mit kleineren Waffen!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von pizza hotel ()