Ergebnis 1 bis 15 von 15

Thema: Memory Spiel

  1. #1
    hoppi ist offline Jungspund
    registriert
    11-08-2009
    Beiträge
    12

    Memory Spiel

    Hallo,

    habe folgendes Probelm
    ich versuche ein Memory in JAVA-script zu programmieren.
    Das Programm funktioniert auch schon ganz gut.
    Allerdings klappt die zufällige Bilderanordnung noch nicht. Es werden einige Bilder öfter als 2 mal angezeigt und andere gar nicht

    Ich hab keine Ahnung voran das liegen könnte. Kann mir da vielleicht jemand helfen?

    Die Bilderanordnung funktioniert über eine math.random funktion

    Hier mein Quelcode wo die Bilder angeordnet werden

    PHP-Code:

    <script type="text/javascript">
     
    var 
    bilder = new Array(
                            
    "100 Jahre Pfadfinder.jpg",         "Stamm Hohenlimburg.JPG",
                            
    "Baden Powell.jpg",                 "60 Jahre Stamm Hohenlimburg.JPG",
                            
    "dpsg_banner.jpg",                  "dpsg-banner.jpg",
                            
    "DPSG-Lilie.jpg",                   "wbk09_2.jpg",
                            
    "Friedenslicht2008.jpg",            "stufen.jpg",
                            
    "jurte_mit_feuer.jpg",              "lilieGruen2.jpg",
                            
    "Pfadfindergruss.jpg",              "Lilie_gelb.jpg",
                            
    "woodbadgekltzchen.jpg",            "WOSM.jpg",
                            
    "Lilie_Kornfeld.jpg",               "woe_neu.jpg",
                            
    "72stunden.jpg",                    "Westernohe.jpg",
                            
    "80JahreDPSG_logo.jpg",             "wbk.jpg",
                            
    "dpsg_juffis.jpg",                  "rüthen.jpg",
                            
    "dpsg_logo.jpg",                    "rover.jpg",
                            
    "feuer.jpg",                        "Kluft.jpg",            
                            
    "friedenslicht-2007.jpg",           "Jurtenburg_Weltjugendtag.jpg",
                            
    "friedenslicht2006.jpg",            "friedenslicht2006.jpg",
                            
    "Jurte.JPG",                        "Jurte.JPG",
                            
    "Jurtenburg_Weltjugendtag.jpg",     "friedenslicht-2007.jpg",
                            
    "Kluft.jpg",                        "feuer.jpg",
                            
    "rover.jpg",                        "dpsg_logo.jpg",
                            
    "rüthen.jpg",                       "dpsg_juffis.jpg",
                            
    "wbk.jpg",                          "80JahreDPSG_logo.jpg",
                            
    "Westernohe.jpg",                   "72stunden.jpg",
                            
    "woe_neu.jpg",                      "Lilie_Kornfeld.jpg",
                            
    "WOSM.jpg",                         "woodbadgekltzchen.jpg",
                            
    "Lilie_gelb.jpg",                   "Pfadfindergruss.jpg",
                            
    "lilieGruen2.jpg",                  "jurte_mit_feuer.jpg",
                            
    "stufen.jpg",                       "Friedenslicht2008.jpg",
                            
    "wbk09_2.jpg",                      "DPSG-Lilie.jpg",
                            
    "dpsg-banner.jpg",                  "dpsg_banner.jpg",
                            
    "60 Jahre Stamm Hohenlimburg.JPG",  "Baden Powell.jpg",
                            
    "Stamm Hohenlimburg.JPG",           "100 Jahre Pfadfinder.jpg"
                            
    );
     
    document.writeln('<table width="1200" height="750" border="1" cellspacing="0" cellpadding="0" align="center">');                    
     
    for(
    i=0i<=63i++) {
        var 
    tr_anfang '';
        var 
    tr_ende false;
        if ((
    i==0)||(i==8)||(i==16)||(i==24)||(i==32)||(i==40)||(i==48)||(i==56)){
            
    tr_anfang "<tr>";
        } else {
            
    tr_anfang '';
        }
        if ((
    i==7)||(i==15)||(i==23)||(i==31)||(i==39)||(i==47)||(i==55)||(i==63)){
            
    tr_ende "</tr>"
        
    } else {
            
    tr_ende '';
        }
           
            
    zufall Math.round(Math.random()*(i+1));

    var 
    string tr_anfang;
        
    string string '<td width="150" height="93.75"><p align="center"><img id="'+i+'" onClick="javascript:bildwechsel(\''+i+'\',\''+bilder[zufall]+'\');" src="Bilder/Fragezeichen.jpg" width="150" height="93.75"></p></td>';
        
    string string+tr_ende;
        
    document.writeln(string);
        
    }
    document.writeln('</table>');
    </script> 
    Geändert von hoppi (11-08-2009 um 13:43 Uhr)

  2. #2
    Ava-chan ist offline Tripel-As
    registriert
    24-03-2009
    Beiträge
    192

    AW: Memory Spiel

    Hmmm in dem snipplet den du gesendet hast steht nix drin über deine zufalls variable, außer wie sie erstellt wird : )

    du kannst außerdem die anfangs und endtags kürzer schreiben
    if (i%8 == 0)
    ist true bei 0,8,16,24,...

    und if ((i+1)%8 == 0)
    ist true bei -1,7,15, ...

    wenn du dann anfang und ende noch std. auf ' ' setzt kannst du noch die else sachen rausfallen lassen.

    Zu deiner eigentlichen frage, es fehlt irgendwie quelltext der sich auf die frage bezieht.
    Deine math.random Funktion kann beliebige Bilder belibig oft wählen. Weil du natürlich jedes Bild durch einen Teiler der Zahl ansprechen kannst. Also kann bild 22 auch bei bild 2 mit rand 11 angesprochen werden.

  3. #3
    hoppi ist offline Jungspund
    registriert
    11-08-2009
    Beiträge
    12

    AW: Memory Spiel

    Sorry hab ne Teil des Quellcodes vergessen.
    Habe ich grade ergänzt.

    Hast du (Ava-chan) auch einen Lösungsansatz zu dem Probelm was du angesprochen hast

  4. #4
    ToM80 ist offline Foren-Gott
    registriert
    27-03-2006
    Ort
    Neuss
    Beiträge
    2.729

    AW: Memory Spiel

    nur als tipp: du solltest es partout nicht memory nennen. ravensburger kann da sehr empfindlich sein:

    http://de.wikipedia.org/wiki/Memory_%28Spiel%29
    http://www.ulrich-willmes.de/Memory-Abmahnung.html

  5. #5
    Avatar von ZeitGeist
    ZeitGeist ist offline Lounge-Member
    registriert
    26-04-2003
    Ort
    Outa Space
    Beiträge
    4.125

    AW: Memory Spiel

    Da du die Bilder ja bereits doppelt in dem Array drin hast, würde es reichen das Bild einfach aus dem Array zu entfernen wenn es einmal eingefügt wurde.
    http://de.selfhtml.org/javascript/ob...ray.htm#splice

    Deine Zufallsvariable müßtest du dann aus aber aus der Länge des Arrays generieren und nicht aus i.

  6. #6
    hoppi ist offline Jungspund
    registriert
    11-08-2009
    Beiträge
    12

    AW: Memory Spiel

    Zitat Zitat von ZeitGeist Beitrag anzeigen
    Da du die Bilder ja bereits doppelt in dem Array drin hast, würde es reichen das Bild einfach aus dem Array zu entfernen wenn es einmal eingefügt wurde.
    http://de.selfhtml.org/javascript/ob...ray.htm#splice

    Deine Zufallsvariable müßtest du dann aus aber aus der Länge des Arrays generieren und nicht aus i.


    Wie müsste das denn dann aussehen??

    Bin noch relativ neu auf dem Gebet und weiß grad nicht wie ich das umsetzt soll

    Kann jemand vielleicht einen Quelltext dazu schreiben

  7. #7
    hoppi ist offline Jungspund
    registriert
    11-08-2009
    Beiträge
    12

    AW: Memory Spiel

    Habe das jetzt eingebaut.
    allerdings habe ich jetzt das Problem, dass an einigen Stellen gar keine bilder mehr angezeigt werden

    k.A. vodran das liegen könnte

  8. #8
    Ava-chan ist offline Tripel-As
    registriert
    24-03-2009
    Beiträge
    192

    AW: Memory Spiel

    Das liegt daran, das du die bilder rausnimmst, sie aber dadurch das du die bilder rausnimmst lücken entstehen, welche er warscheinlich mit deiner RandomFunktion immer noch anspringt : )

    Da du alles schon in deinem Array hast was du in deinem Array brauchst also jede Karte 2 mal und so, solltest du vieleicht diese Funktion nutzen

    PHP-Code:
    function arrayShuffle(){
      var 
    tmprand;
      for(var 
    =0this.lengthi++){
        
    rand Math.floor(Math.random() * this.length);
        
    tmp this[i]; 
        
    this[i] = this[rand]; 
        
    this[rand] =tmp;
      }
    }

    Array.
    prototype.shuffle =arrayShuffle
    Quelle http://www.brain4.de/programmierecke...rayShuffle.php

    Sollte dann eigentlich funktionieren : )

    MfG,
    Ava-chan

    PS: Wenn noch Fehler auftreten poste bitte noch mal den aktuellen Code mit, damit man gucken kann, bzw. geänderte Codeausschnitte.

  9. #9
    Avatar von ZeitGeist
    ZeitGeist ist offline Lounge-Member
    registriert
    26-04-2003
    Ort
    Outa Space
    Beiträge
    4.125

    AW: Memory Spiel

    Zitat Zitat von Ava-chan Beitrag anzeigen
    Das liegt daran, das du die bilder rausnimmst, sie aber dadurch das du die bilder rausnimmst lücken entstehen, welche er warscheinlich mit deiner RandomFunktion immer noch anspringt : )
    Meinem Verständnis von splice nach, sollten da keine Lücken entstehen. Zeig doch mal bitte den Code, der die Lücken entstehen lässt.

  10. #10
    hoppi ist offline Jungspund
    registriert
    11-08-2009
    Beiträge
    12

    AW: Memory Spiel

    Habe das Problem jetzt so gelöst.

    PHP-Code:
    function arrayShuffle(){
      var 
    tmprand;
      for(var 
    =0this.lengthi++){
        
    rand Math.floor(Math.random() * this.length);
        
    tmp this[i]; 
        
    this[i] = this[rand]; 
        
    this[rand] =tmp;
      }
    }

    Array.
    prototype.shuffle =arrayShuffle;

    Spieler1 prompt("Spieler 1 gib bitte deinen Namen ein""")
    if (
    Spieler1 == null) {
            
    Spieler1 'Spieler 1'
            
    }
        else if (
    Spieler1 == '') {
            
    Spieler1 'Spieler 1'
            
    }
    Spieler2 prompt("Spieler 2 gib bitte deinen Namen ein""")
    if (
    Spieler2 == null) {
            
    Spieler2 'Spieler 2'
            
    }
        else if (
    Spieler2 == '') {
            
    Spieler2 'Spieler 2'
            
    }

    document.getElementById('spieler1').innerHTML 'Anzahl der gefundenen Paare 'Spieler1': 0';
    document.getElementById('spieler2').innerHTML 'Anzahl der gefundenen Paare 'Spieler2': 0';

    var 
    spieler 0
    var zahl 0

    zahl 
    = (Math.random())

    if (
    zahl <0.50) {
        
    alert (''+Spieler1 ' fängt an!');
        
    spieler 1
    }
    else if (
    zahl >0.50) {
        
    alert (''+Spieler2 ' fängt an!');
        
    spieler 0
    }

    var 
    bilder = new Array(
                            
    "100 Jahre Pfadfinder.jpg",         "Stamm Hohenlimburg.JPG",
                            
    "Baden Powell.jpg",                 "60 Jahre Stamm Hohenlimburg.JPG",
                            
    "dpsg_banner.jpg",                     "dpsg-banner.jpg",
                            
    "DPSG-Lilie.jpg",                     "wbk09_2.jpg",
                            
    "Friedenslicht2008.jpg",             "stufen.jpg",
                            
    "jurte_mit_feuer.jpg",                 "lilieGruen2.jpg",
                            
    "Pfadfindergruss.jpg",                 "Lilie_gelb.jpg",
                            
    "woodbadgekltzchen.jpg",             "WOSM.jpg",
                            
    "Lilie_Kornfeld.jpg",                 "woe_neu.jpg",
                            
    "72stunden.jpg",                     "Westernohe.jpg",
                            
    "80JahreDPSG_logo.jpg",             "wbk.jpg",
                            
    "dpsg_juffis.jpg",                     "ruethen.jpg",
                            
    "dpsg_logo.jpg",                     "rover.jpg",
                            
    "feuer.jpg",                         "Kluft.jpg",             
                            
    "friedenslicht-2007.jpg",            "Jurtenburg_Weltjugendtag.jpg",
                            
    "friedenslicht2006.jpg",             "friedenslicht2006.jpg",
                            
    "Jurte.JPG",                         "Jurte.JPG",
                            
    "Jurtenburg_Weltjugendtag.jpg",        "friedenslicht-2007.jpg",
                            
    "Kluft.jpg",                         "feuer.jpg",
                            
    "rover.jpg",                         "dpsg_logo.jpg",
                            
    "ruethen.jpg",                         "dpsg_juffis.jpg",
                            
    "wbk.jpg",                             "80JahreDPSG_logo.jpg",
                            
    "Westernohe.jpg",                     "72stunden.jpg",
                            
    "woe_neu.jpg",                         "Lilie_Kornfeld.jpg",
                            
    "WOSM.jpg",                         "woodbadgekltzchen.jpg",
                            
    "Lilie_gelb.jpg",                     "Pfadfindergruss.jpg",
                            
    "lilieGruen2.jpg",                     "jurte_mit_feuer.jpg",
                            
    "stufen.jpg",                         "Friedenslicht2008.jpg",
                            
    "wbk09_2.jpg",                         "DPSG-Lilie.jpg",
                            
    "dpsg-banner.jpg",                     "dpsg_banner.jpg",
                            
    "60 Jahre Stamm Hohenlimburg.JPG",     "Baden Powell.jpg",
                            
    "Stamm Hohenlimburg.JPG",             "100 Jahre Pfadfinder.jpg"
                            
    );
                            
    bilder.shuffle();

    document.writeln('<table width="1200" height="750" border="1" cellspacing="0" cellpadding="0">');                    

    for(
    i=0i<=63i++) {
        var 
    tr_anfang '';
        var 
    tr_ende false;
        if ((
    i==0)||(i==8)||(i==16)||(i==24)||(i==32)||(i==40)||(i==48)||(i==56)){
            
    tr_anfang "<tr>";
        } else {
            
    tr_anfang '';
        }
        if ((
    i==7)||(i==15)||(i==23)||(i==31)||(i==39)||(i==47)||(i==55)||(i==63)){
            
    tr_ende "</tr>"
        
    } else {
            
    tr_ende '';
        }
          
        var 
    string tr_anfang;
        
    string string '<td width="150" height="93.75"><p align="center"><img id="'+i+'" onClick="javascript:bildwechsel(\''+i+'\',\''+bilder[i]+'\');" src="Bilder/Fragezeichen.jpg" width="150" height="93.75"></p></td>';
        
    string string+tr_ende;
        
    document.writeln(string);
        
    }
    document.writeln('</table>'); 
    Danke für eure Hilfe

  11. #11
    hoppi ist offline Jungspund
    registriert
    11-08-2009
    Beiträge
    12

    AW: Memory Spiel

    Habe aber jetzt noch eine weitere Frage.

    Gibt es eine möglichkeit ein Fenster ähnlich wie ein alert fenster zu öffnen, wo zwei buttons mit ja und nein zur auswahl stehen??
    Habe das bis jetzt mit nem confirm gelöst
    aber ok und abbrechen ist nicht das was ich haben möchte

    PHP-Code:
    neustart confirm("Lust auf eine neue Runde?");
                    if (
    neustart == false) {
                    
    window.open ("Ende.html",target="_self");
                    }
                    else {
                    
    window.location.reload(); 

  12. #12
    ToM80 ist offline Foren-Gott
    registriert
    27-03-2006
    Ort
    Neuss
    Beiträge
    2.729

    AW: Memory Spiel

    Du kannst ein DIV entwerfen welches sich über deine Seite legt und diesem 2 Buttons (Ja/Nein) mit geben. Wird Ja geklickt, schließt sich das DIV und das Spiel startet neu. Bei Nein schließt sich das DIV und sonst passiert weiter nix.

  13. #13
    hoppi ist offline Jungspund
    registriert
    11-08-2009
    Beiträge
    12

    AW: Memory Spiel

    Wie müsste sowas in etwa aussehen??

    Könntest du vllt eine kurz Hilfestellung mit einem quelltext geben??

  14. #14
    ToM80 ist offline Foren-Gott
    registriert
    27-03-2006
    Ort
    Neuss
    Beiträge
    2.729

    AW: Memory Spiel

    Ein Div kennst du doch bestimmt oder?
    Code:
    <div id="divWeiter">
    Möchten Sie nochmal spielen?<br />
    <button id="btnJa" onclick="gameDes(1);">Ja</button>&nbsp;
    <button id="btnNein" onclick="gameDes(0);">Nein</button>
    </div>
    Den Div kannst du dir über Styles dann entsprechen Designen und positionieren.
    Dann brauchst du halt noch die angesprochen JS Funktionen.
    Ungefähr so:
    PHP-Code:
    <script type="text/JavaScript">
    function 
    gameDes(i) {
      if (
    i==0) {
        
    //SPIEL WIRD NICHT WIEDERHOLT
       
    document.getElementById('divWeiter').style.display="none";
      } else {
        
    //SPIEL WIRD WIEDERHOLT
        
    document.getElementById('divWeiter').style.display="none";
        
    /***************************************************************
        * HIER MUSS DER FUNKTIONSAUFRUF ZUM NEUAUFBAU DES SPIELS REIN  *
        ***************************************************************/
      
    }


  15. #15
    hoppi ist offline Jungspund
    registriert
    11-08-2009
    Beiträge
    12

    AW: Memory Spiel

    ok danke für die Hilfe

    Problem gelöst

Ähnliche Themen

  1. Memory Spiel vom Urschleim an
    Von lachgummi09 im Forum JavaScript
    Antworten: 10
    Letzter Beitrag: 19-07-2009, 21:03
  2. Javascript Memory Spiel
    Von Maurizio im Forum JavaScript
    Antworten: 24
    Letzter Beitrag: 26-05-2007, 13:21
  3. memory spiel in javascript
    Von cliff im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 06-10-2000, 19:39
  4. Memory - spiel
    Von wudmx im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 17-06-2000, 21:30

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •