Kartenspiel Mau-Mau

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Kartenspiel Mau-Mau

    Hallo!

    Ich wollte mal versuchen ein Kartenspiel zu programmieren (bin ziemlicher Anfänger).
    Gespielt wird unter menschlichen Gegner (2-4), also einer "erstellt" ein Spiel und die anderen öffnen danach die Seite. Dann stellt sich das Problem, wie mische ich die Karten und wie aktualisiere ich das Spiel im Verlauf

    Wäre nett wenn ihr mir ein paar tipps/scripts geben könnt.

    MFG

    Chris

  • #2
    mhh aktualisieren ist nicht unbedingt nötig, sobald du eine aktion durchführs wird ja aktualisiert, das andere wäre das mit javascript zue rstellen.
    Für mische die karten würde ich PHP verwenden, und ein Script basteln, was die zufallswärte für den kompletten stapel setzt, dieses zufallsscript wird dann ejdes mal neu gestertet, in variablen gepackt, die dann nach und nach immer weiter aufgerufen werden.
    www.schattenbaum.net - php da wird das mit dem zufallssystem erklärt.
    Webdesign und Webentwicklung - Plunix.de

    Kommentar


    • #3
      Ok... danke erstmal

      Kommentar


      • #4
        wenn ich mich recht erinnere, ist das spiel sehr simpel.
        kümmere dich deswegen in erster linie um die organisation eines spiels - für einen anfänger ist es gar nicht mal so wenig - du brauchst eine vorstellung vom htt-protokoll, dem server/client-modell, den sessions, evtl. js (stichwort ajax).

        Kommentar


        • #5
          So... ich bin jetzt beim Kartenmischen angelangt. Es stellt sich folgendes Problem:
          Ich habe die Karten (1-32) in einer zufälligen Reihenfolge in einem Array gespeichert. Das mischen ohne doppelte klappt auch, nur weiß ich nicht wie man die Karten jetzt so austeilen kann, dass dann auch keine doppelten ausgeteilt bzw. im Stapel bleiben

          Bitte um Hilfe/Lösungsversuche

          MFG

          Chris

          Kommentar


          • #6
            Du hast 32 Karten mit "Werten" abgebildet,
            den Kartenstapel hast du mit einem Array nachgebaut. Soweit so prima.

            Nun halt dich einfach weitere an die Realität: Was passiert, wenn man Karten verteilt?
            Man nimmt eine vom Stapel und gibt sie einem Spieler. Der nimmt sie in seine Hand auf.

            Dein Script hat keine Hand? Dann bilde sie nach: Ein Array für jeden Spieler.

            Nun kannst du austeilen:
            Du nimmst einen Wert aus dem Array der gemischten Karten und legst ihn im Array des Spielers ab.

            Kommentar


            • #7
              So ein weiters Problem:

              Beim Kartenmischen weiß ich nicht wie ich die Namen "generieren" kann. Also erstmal der code:

              PHP-Code:
              while($s <= $spieler){
              $sp = array();
               while(
              $i 5){
               
              $sp[] = $karten[$i]; //hier dann $sp1, $sp2,...
               
              unset($karten[$i]);
               
              $i++;
               } 
              // while für ausgeteilte Karten
              $s++;
              // while für Spieler 
              Die Namen sollen dann einfach $sp1, $sp2 heißen nur kann ich ja schlecht $sp$s schreiben. Gibts da eine Funktion oder so womit man das machen kann?

              MFG

              Chris

              Kommentar


              • #8
                warum soll das array irgendeinen namen tragen? nummeriere die spieler einfach durch.

                Kommentar


                • #9
                  1. sind auch variable variablen möglich,
                  2. gibt es arrays: $sp[$i]

                  Kommentar


                  • #10
                    Wieder ein Problem:

                    Die Karten werden jetzt als serialisierten array in der datenbank gespeichert (hab gelesen das man so keine arrays in die datenbank schreiben kann und hab dann die Funktion serialize() genommen). In der Datenbank sieht das dann so aus:

                    a:5i:0;i:30;i:1;i:27;i:2;i:7;i:3;i:15;i:4;i:28;}

                    Das Problem ist, wenn ich die jetzt wieder aus der Datenbank hole und die Funktion unserialize() anwende und dann über eine Schleife ausgebe bekomm ich einen Fehler:

                    Passed variable is not an array or object

                    Hab ich hier was falsch verstanden oder geht das nicht

                    Kommentar


                    • #11
                      du hast etwas falsch gemacht.

                      Kommentar


                      • #12
                        ... kann mir auch einer sagen wie ich es richtig machen kann??

                        Kommentar


                        • #13
                          wenn du mir verrätst, wie du es versucht hast.

                          Kommentar


                          • #14
                            PHP-Code:
                            //Bitte nicht krank lachen^^
                            $karten mysql_query("SELECT `karten_sp` FROM `kartenspiel` WHERE id='$id'") or die(mysql_error());
                            $karten unserialize($karten);

                            for (
                            $x 0$x sizeof($karten); ++$x)
                            {
                                 echo 
                            "".current($karten)."-";
                                 
                            next($karten);

                            Kommentar


                            • #15
                              du benutzst mysql_query() falsch.
                              http://tut.php-q.net/mysql-select.html#u1
                              http://tut.php-q.net/mysql-select-php.html#u2

                              Kommentar

                              Lädt...
                              X