Zitat von wahsaga
Beitrag anzeigen
php array in eine javascript function
Einklappen
X
-
-
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
-
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>
Günni
Kommentar
Kommentar