Advertisement
6_2008-2009 Games #201282

PHP Mine

PHP version of famous "Minesweeper" game by Microsoft by Mathias Daval

AI

Podsumowanie AI: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

Kod źródłowy
original-source
<? 
/*/////// PHPMINE v1.0 
///////// 
// Copyright 2000, Kidou / PHPVault (http://www.phpvault.com) 
////////////////////////////////////////////////////////////////////////// 
// Ce script est un freeware. Vous pouvez l'utiliser et le modifier librement, mais vous devez laisser le copyright. Merci de me faire savoir si vous trouvez ce script utile. ([email protected]) 
// PHPMine est une version PHP du célèbre jeu "Démineur" de Mirosoft. 
///////////////////////////////////////////////////////////////////////// 
// This script is a freeware. You can use it and modify it freely as long as you leave the copyright. Please tell me if you find this script useful ([email protected]) 
// PHPMine is a PHP version of famous game "Minesweeper" by Microsoft. 
/////////////////////////////////////////////////////////////////////////*/ 
print "<html>"; 
print "<head>"; 
print "<title>PHPVault's PHPMine v1.0</title>"; 
print "</head>"; 
print "<body><center>"; 
print "<font size=4 face=Verdana><b>PHPMine v1.0</b>"; 
if ($submit=="") { 
   $NumMine=4; 
   $RowSize=5; 
   $ColSize=5; 
   $generer=1; 
} 
if ($generer==1) { 
   srand((double)microtime()*100000000); 
   $time_start=time(); 
   if (($RowSize<=1) || ($ColSize<=1) || ($NumMine==0)) { 
     print "<p><br><font size=-1 color=red>Wrong number for Rows, Cols or Mines!</font>"; 
     exit; 
   } 
   if ($NumMine > $RowSize*$ColSize) { 
     print "<p><br><font size=-1 color=red>Too many mines!</font>"; 
     exit; 
   } 
   
   for ($Row=1;$Row<=$RowSize;$Row++) { 
     for ($Col=1;$Col<=$ColSize;$Col++) { 
       $Mine[$Row][$Col]="0"; 
       $Decouv[$Row][$Col]="0"; 
     } 
   } 
   $index=0; 
   while ($index<$NumMine) { 
     $Row=rand(1,$RowSize); 
     $Col=rand(1,$ColSize); 
     if ($Mine[$Row][$Col]=="0") { 
       $Mine[$Row][$Col]="1"; 
       $index++; 
     } 
   } 
} else { 
   $perdu=0; 
   $reste=$RowSize*$ColSize; 
   for ($Row=1;$Row<=$RowSize;$Row++) { 
     for ($Col=1;$Col<=$ColSize;$Col++) { 
       $temp="Mine".($Row*($ColSize+1)+$Col); 
       $Mine[$Row][$Col]=$$temp; 
       $temp="Decouv".($Row*($ColSize+1)+$Col); 
       $Decouv[$Row][$Col]=$$temp; 
     if ($Decouv[$Row][$Col]=="1") {$reste=$reste-1;} 
       $temp="submit".($Row*($ColSize+1)+$Col); 
       if ($$temp=="ok") { 
         $reste=$reste-1; 
         if ($Mine[$Row][$Col]=="0") { 
           $Decouv[$Row][$Col]="1"; 
         } else { 
           $perdu=1; 
         } 
       } 
     } 
   } 
   if ($perdu==1) { 
     print "<h2>You Lose!</h2>"; 
     for ($i=1;$i<=$RowSize;$i++) { 
       for ($j=1;$j<=$ColSize;$j++) { 
         $Decouv[$i][$j]="1"; 
       } 
     } 
   } 
   if (($reste==$NumMine)&&($perdu!=1)) { 
     print "<h2>You Win!</h2>"; 
     $time_stop=time(); 
     $time=$time_stop-$time_start; 
     print "<p><font size=-1><i>Your score: $time</i></font>"; 
     
     for ($i=1;$i<=$RowSize;$i++) { 
       for ($j=1;$j<=$ColSize;$j++) { 
         $Decouv[$i][$j]="1"; 
       } 
     } 
   } 
} 
print "<form method=get action=\"$PHP_SELF\">"; 
print "<input type=hidden name=time_start value=$time_start>"; 
print "<input type=hidden name=NumMine value=$NumMine>"; 
print "<input type=hidden name=RowSize value=$RowSize>"; 
print "<input type=hidden name=ColSize value=$ColSize>"; 
print "<input type=hidden name=generer value=0>"; 
print "<p><table border=1 cellpadding=8>"; 
for ($Row=1; $Row<=$RowSize; $Row++) { 
   print "<tr>"; 
   for ($Col=1; $Col<=$ColSize; $Col++) { 
     $nb=0; 
     for ($i=-1; $i<=1; $i++) { 
       for ($j=-1; $j<=1; $j++) { 
         if ($Mine[$Row+$i][$Col+$j] == "1") { 
           $nb++; 
         } 
       } 
     } 
     print "<td width=15 height=15 align=center valign=middle>"; 
     if ($Decouv[$Row][$Col]=="1") { 
       if ($nb==0) { 
         print "&nbsp;"; 
       } else { 
         if ($Mine[$Row][$Col]=="1") { 
           print "*"; 
         } else { 
           print "$nb"; 
         } 
       } 
     } else { 
       print "<input type=hidden name=submit value=ok>"; 
       print "<input type=submit name=submit".($Row*($ColSize+1)+$Col)." value=ok>"; 
     } 
     print "<input type=hidden name=Mine".($Row*($ColSize+1)+$Col)." value=".$Mine[$Row][$Col].">"; 
     print "<input type=hidden name=Decouv".($Row*($ColSize+1)+$Col)." value=".$Decouv[$Row][$Col].">"; 
     print "</td>"; 
   } 
   print "</tr>"; 
} 
print "</table>"; 
print "</form>"; 
?> 
<hr> 
<form method=post> 
Rows : &nbsp;<input type=text name=RowSize value=5 size=2> 
<br>Cols : &nbsp;<input type=text name=ColSize value=5 size=2> 
<br>Mines : &nbsp;<input type=text name=NumMine value=4 size=2> 
<p><input type=submit name=submit value=Generate> 
<input type=hidden name=generer value=1> 
</form> 
<p> 
<center><font size=-2>(c) 2000, <a href="http://www.phpvault.com">PHPVault</a> - All rights reserved<br>Script by <a href="mailto:[email protected]">Kidou</a> 
</font> 
</center> 
</body> 
</html>
Upload
Oryginalne komentarze (3)
Odzyskane z Wayback Machine