php array in eine javascript function

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

  • #16
    Zitat von wahsaga Beitrag anzeigen
    OffTopic:

    Yeah, Minesweeper server-side umgesetzt, da mach das Spielen Spaß, wenn jeder Klick erst mal neu laden der Seite erfordert
    Es geht um den Lerneffekt. Offenbar ist er ja mit der Kombination aus PHP und JavaScript überfordert. Warum also nicht erstmal einen Teil zum Laufen bringen (auch wenns nicht performant läuft) und wenn mal ein Standbein da ist sich an unbekannte Gefilde wagen?

    Kommentar


    • #17
      Soooo.... habe es jetzt nur mit PHP geschrieben. Also das Prinzip. Es wird nicht gesagt ob man gewonnen oder verloren hat. Bomben sind mit dem x gekennzeichnet und der Rest halt mit Zahlen. Hier mein Quellcode (Falls mir jetzt jemand helfen könnte ich den nächsten Schritt in Richtung dynamisch gehe, kann er mich gerne irgendwohin verweisen, ich habe grade Semesterferien und möchte einfach ein bisschen Programmieren üben):
      Code:
      <?php
      /*if(isset($_POST['feld'])){
      	echo "Feld<br>";
      	print_r($_POST['feld']);
      	echo "<br>";
      }
      if(isset($_POST['clicked'])){
      	echo "Clicked<br>";
      	print_r($_POST['clicked']);
      	echo "<br>";
      }
      if(isset($_POST['button'])){
      	echo "Button<br>";
      	print_r($_POST['button']);
      }*/
      $x=10;
      $y=10;
      $minen=10;
      function feld_erstellen($x,$y){
      	$feld=array(array($y+2),array($x+2));
      	for($i=0;$i<=$y+1;$i++){
      		for($j=0;$j<=$x+1;$j++){
      			$feld[$j][$i]=0;
      		}
      	}
      	
      	return $feld;
      }
      
      function minen_erstellen($feld,$x,$y,$minen){
      	for($i=1;$i<=$minen;$i++){
      		$random_x=rand(1,$x);
      		$random_y=rand(1,$y);
      		if($feld[$random_x][$random_y] == 0){
      			$feld[$random_x][$random_y]='x';
      			
      			
      		}
      		else{
      			$i--;
      			//echo $random_x." ".$random_y."  ";
      			//echo $feld[$random_x][$random_y]."<br>";
      			
      		}
      	}
      	return $feld;
      }
      
      function minen_aufsuchen($feld,$x,$y){
      	for($i=1;$i<=10;$i++){
      		for($j=1;$j<=10;$j++){
      			$value=0;						//value gibt die Minen um die Zelle herum an
      			$string="";						//tests
      			if($feld[$j][$i]!=='x'){			//checken ob die Zelle keine Mine ist
      				if($feld[$j-1][$i]==='x'){	//Links daneben
      					$value++;
      					$string=$string."L";
      				}
      				if($feld[$j-1][$i-1]==='x'){	//Links-unten daneben
      					$value++;
      					$string=$string."Lu";
      				}
      				if($feld[$j][$i-1]==='x'){	//Unten daneben
      					$value++;
      					$string=$string."U";
      				}
      				if($feld[$j+1][$i-1]==='x'){	//Rechts-unten daneben
      					$value++;
      					$string=$string."Ru";
      				}
      				if($feld[$j+1][$i]==='x'){	//Rechts daneben
      					$value++;
      					$string=$string."R";
      				}
      				if($feld[$j+1][$i+1]==='x'){	//Rechts-oben daneben
      					$value++;
      					$string=$string."Ro";
      				}
      				if($feld[$j][$i+1]==='x'){	//Oben daneben
      					$value++;
      					$string=$string."O";
      				}
      				if($feld[$j-1][$i+1]==='x'){	//Links-oben daneben
      					$value++;
      					$string=$string."Lo";
      				}
      				$feld[$j][$i]=$value;				//Wert der Zelle zuordnen
      				//echo $j." ".$i."=".$value." und ".$string."<br>";
      				//echo "<br> in function ".$feld[2][2];
      			}
      		}
      	}
      	//echo "<br> in function ".$feld[2][2];
      	return $feld;
      }
      
      function feld_ausgeben($feld,$x,$y,$clicked){
      	echo "<table border='1'>";
      	echo "<form method='POST' name='press'>";
      	$counter=0;
      	//echo $_POST['feld'][12];
      	for($i=$y;$i>0;$i--){
      		echo "<tr>";
      		for($j=1;$j<=$x;$j++){
      			if(isset($_POST['button'][$counter]) || $clicked[$counter]==1){
      				echo "<td><input type='submit' name='button[".$counter."]' value='".$feld[$j][$i]."'></td>";
      				//echo "works";
      				echo "<input type='hidden' name='clicked[".$counter."]' value='1'>";
      				//echo $_POST['clicked'][$counter];
      			}
      			else{
      				echo "<td><input type='submit' name='button[".$counter."]' value='  '></td>";
      				echo "<input type='hidden' name='clicked[".$counter."]' value='0'>";
      			}
      			$counter++;
      		}
      		echo "</tr>";
      	}
      	echo "</table>";
      		
      	for($i=0;$i<=$y+1;$i++){
      		echo "<tr>";
      		for($j=0;$j<=$x+1;$j++){
      			echo "<input type='hidden' name='feld[]' value='".$feld[$j][$i]."'>";
      			
      		}
      	}
      	echo "</form>";
      
      }
      if(empty($_POST['feld'])){
      	$feld=feld_erstellen($x,$y);
      	$feld=minen_erstellen($feld,$x,$y,$minen);
      	$feld=minen_aufsuchen($feld,$x,$y);
      	echo "<form method='POST' name='Starten'>";
      	$i=0;
      	for($i=0;$i<=$x+1;$i++){
      		//$j=0;						Ausgabetests
      		foreach($feld[$i] as $value){
      			echo "<input type='hidden' name='feld[]' value='".$value."'>";
      			
      			//$j++;
      		}
      		//echo $j."j<br>";
      	}
      	for($i=1;$i<=100;$i++){
      		echo "<input type='hidden' name='clicked[]' value='0'>";
      	}
      	
      	
      	echo "<input type='submit' value='Starten'>";
      	echo '</form>';
      	//echo "works";
      	
      }
      else{
      	$feld=array(array(),array());
      	$clicked=array();
      	$i=0;
      	foreach($_POST['feld'] as $key){
      		$new_x=$i%($x+2);
      		$new_y=floor($i/($x+2));
      		$feld[$new_x][$new_y]=$key;
      		//echo "<br>".$new_x.",".$new_y."=".$key;
      		$i++;
      	}
      	$i=0;
      	foreach($_POST['clicked'] as $key){
      		$clicked[$i]=$key;
      		$i++;
      	}
      	//echo "works";
      	//echo $feld[9][8];		//test
      	//$feld=minen_aufsuchen($feld,$x,$y);
      	feld_ausgeben($feld,$x,$y,$clicked);
      }
      	//echo $feld[1][1];
      
      
      
      
      
      ?>

      Kommentar


      • #18
        Hi Simbo,

        so müsste es doch via JavaScript gehen:

        PHP-Code:
        <?php
        $minen 
        = array("O","O","X","X","X","O");
        ?>
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
        <html>
        <head>
        <title>Untitled</title>
        <script type="text/javascript">
        <!--
        //PHP-Array übergeben
        var minen = <?php echo json_encode($minen);?>
        //Funktion weist Button einen Wert aus minen zu
        function discover_button(para){
         var button = para;
          button.value = minen[button.id - 1];// Array fängt bei 0 an, deshalb -1
        }
        // -->
        </script>
        </head>
        <body>
        <?php
        $feld_groesse 
        144;
        for(
        $i 1;$i <= $feld_groesse;$i++){
         echo 
        '<input type="button" style="width:40px;height:40px" id="'.$i.'" onclick="discover_button(this)">';
         if(
        $i%12 == 0) echo '<br>';
        }
        ?>
        </body>
        </html>
        Gruss
        Günni

        Kommentar


        • #19
          Hey Günni,
          das hilft mir ungemein! Vielen dank.

          Kommentar

          Lädt...
          X