This commit is contained in:
gnieark 2015-12-14 08:04:32 +01:00
parent d273c2a5cb
commit 5fcecd8f27

View File

@ -1,4 +1,7 @@
<?php <?php
function place_ship_on_map($x1,$y1,$x2,$y2,$map){
}
switch($_POST['act']){ switch($_POST['act']){
case "init": case "init":
$wantedVars=array( $wantedVars=array(
@ -30,15 +33,104 @@ switch($_POST['act']){
} }
} }
$shipsCoords=array();
//pour toutes les tailles de bateau //pour toutes les tailles de bateau
for($shipWidth = 6; $shipWidth >= 0; $shipWidth--){ for($shipWidth = 6; $shipWidth >= 0; $shipWidth--){
//nombre de bateau à placer de cette taille //nombre de bateau à placer de cette taille
$shipCount=$('ship'.$shipWidth); // #trollface $shipCount=$('ship'.$shipWidth); // #trollface
for( $sh = 0; $sh < $shipCount; $sh++){ for( $sh = 0; $sh < $shipCount; $sh++){
$xtest=rand($width); $directions=array();
while( count($directions) == 0){
do{
$xtest=rand(0,$width -1);
$ytest=rand(0,$height -1);
}while($map[$ytest][$xtest] == 1);
//Y a t'il la place pour le bateau vers le haut?
if($ytest < $shipWidth){
$top=false;
}else{
$top=true;
for($i = $ytest; $i > $ytest - $shipWidth; $i--){
if($map[$i][$xtest] == 1){
$top=false;
break;
}
}
}
//vers le bas
if($ytest + $shipWidth > $height){
$bottom=false;
}else{
$bottom=true;
for($y=$ytest; $i < $ytest + $shipWidth; $i++){
if($map[$i][$xtest] == 1){
$bottom=false;
break;
}
}
}
//droite
if($xtest + $shipWidth > $width){
$rigth=false;
}else{
$right=true;
for($i=$xtest; $i < $xtest + $shipWidth, $i++){
if($map[$ytest][$y] == 1){
$right= false;
break;
}
}
}
//gauche
if($xtest < $shipWidth){
$left=false;
}else{
$left=true;
for($i = $xtest; $i > $xtest - $shipWidth; $i--){
if($map[$ytest][$y] == 1){
$left= false;
break;
}
}
}
$directions=array();
if($top){
$directions[]='top';
}
if($bottom){
$directions[]='bottom';
}
if($left){
$directions[]='left';
}
if($right){
$directions[]='right';
}
}
shuffle($directions);
switch($directions[0]){
case 'top':
$shipsCoords[]=$xtest.",".$ytest."-".$ytest.",".$ytest - $shipWidth;
break;
case 'bottom':
break;
case 'left':
break;
case 'right':
break;
}
} }
} }