首頁 > 後端開發 > php教程 > php實作的簡易掃雷遊戲實例

php實作的簡易掃雷遊戲實例

WBOY
發布: 2016-07-25 08:44:55
原創
818 人瀏覽過

本文實例講述了php實現的簡易掃雷遊戲。分享給大家供大家參考。具體如下:

  1. $init = $_POST["init"];//遊戲重新啟動
  2. $clickvalue = $_POST["clickvalue"] ;//掃雷
  3. $checkflag = 0;//勝利或失敗
  4. $click_count = 0;//點擊次數
  5. if($init == null && $clickvalue == null){//初始化
  6. $_POST = array();//用陣列設定POST
  7. $_POST["rows"] = 9;//設定行
  8. $_POST["cols"] = 9;//設定cols
  9. $_POST["num"] = 10;//設定num
  10. $_POST["timeshow"] = "00:00"; //設定開始時間
  11. $init = true;//設定初始化
  12. }
  13. $rows = $_POST["rows"];//取得行
  14. $cols = $_POST["cols" ];//取得欄位
  15. $num = $_POST[ "num"];//取得num
  16. $starttime = $_POST["starttime"];//取得開始時間
  17. if($init) {// 是初始化
  18. $timeshow = "00: 00";//設定開始時間
  19. $data = array();//資料初始化
  20. for($i=0;$i for ($j=0;$j $data["data".$i."_ ".$j] = 0;//將我的節點設為null
  21. $data["open".$i."_".$j] = 0;//將節點設為close
  22. }
  23. }
  24. $i=0;//重設索引,並設定地雷(隨機設定)
  25. while($i $r = rand(0 ,$rows - 1);//行索引
  26. $c = rand(0,$cols - 1);//列索引
  27. if($data["data".$r."_". $c] == 0){//如果不是礦井
  28. $data["data".$r."_".$c] = 100;//設定有礦井的節點
  29. $i ;
  30. }
  31. }
  32. for($i =0;$i for($j=0;$j if($data[" data".$i."_".$j] == 100)continue;
  33. //不是地雷,設定相鄰的個數地雷
  34. $cnt = 0;
  35. if($i - 1 >= 0 && $j - 1 >= 0 && $data["data".($i - 1)."_".($j - 1)] == 100)$cnt ;//左上角
  36. if($i - 1 >= 0 && $data["data".($i - 1)."_".$j] == 100)$cnt ;//左
  37. if($i - 1 >= 0 && $j 1 if($j - 1 >= 0 && $data["data".$i."_".($j - 1)] == 100) $cnt ;//上
  38. if($j 1 if($i 1 = 0 && $data["data".($i 1)."_".($j - 1)] == 100)$ cnt ;//右上
  39. if($i 1 if($i 1 $data["data".$i."_".$ j] = $cnt;//設定數字
  40. }
  41. }
  42. }else{
  43. $ data = $_POST;//取得資料
  44. if($data["data".$ clickvalue] == 100){
  45. //檢查使用者點擊值
  46. $checkflag = 2;//如果點擊一個地雷,遊戲結束
  47. for($i=0;$i for($j=0;$j $data["open".$i."_".$j ] = 1;
  48. //設定所有節點開啟
  49. }
  50. }
  51. }else{
  52. $node =explode("_", $clickvalue);//取得點擊的節點
  53. openNode($node[0],$node[1]);//設定節點為open
  54. for($i=0;$i for($j=0;$j if($data["open".$i."_".$j] == 1)$click_count ;
  55. //取得opennode數量
  56. }
  57. }
  58. if($rows*$cols - $click_count == $num)$checkflag = 1;
  59. //如果所有節點都打開,則遊戲清除
  60. }
  61. }
  62. if($checkflag == 0 && $click_count == 1){
  63. //如果遊戲開始,則時間開始
  64. $starttime = date(" H:i:s");
  65. }
  66. if($starttime){//計算時間並顯示
  67. $now = date("H:i:s");
  68. $nowlist = explode(":",$now);
  69. $starttimelist =explode(":",$starttime);
  70. $time_count = $nowlist[0]*3600 $nowlist[1]*60 $nowlist[2 ] - ($starttimelist[0]*3600 $starttimelist[1]*60 $starttimelist[2]);
  71. $min = 樓層($time_count / 60);
  72. $sec = $time_count % 60;
  73. $timeshow = ($min>9?$min:"0".$min).":".($sec>9?$sec:"0".$sec);
  74. }else{
  75. $timeshow = "00:00";//如果遊戲停止,時間停止
  76. }
  77. function openNode($i,$j){//設定要開啟的節點,如果是則可以開啟
  78. global $rows;//取得行
  79. global $cols;//取得列
  80. global $data;//取得資料
  81. if($i = $rows || $j = $cols || $data ["open".$ i."_".$j])return;
  82. //不是節點,或已經被打開
  83. $data["open".$i."_" .$j] = 1;//打開節點
  84. if($data["data".$i."_".$j] > 0)return;//需要繼續嗎?
  85. openNode($i - 1,$j - 1);
  86. openNode($i - 1,$j);
  87. openNode($i - 1,$j 1);
  88. openNode( $i,$j - 1);
  89. openNode($i,$j 1);
  90. openNode($i 1,$j - 1);
  91. openNode($i 1,$j);
  92. openNode($i 1,$j 1);
  93. }
  94. ? >
  95. >
  96. 掃雷遊戲
  97. 頭>
  98. 表>
  99. 表>
  100. 行數:
    雷數:
  101. if($checkflag == 1)ech​​o "恭喜,雷全部清掉了!
    ";
  102. else if($checkflag == 2)echo "太挫了,又被雷炸死了
    ";
  103. ?>
  104. ;
  105. ;
  106. ;
  107. 表>
  108. 表格>
  109. function clickNum(value){//點擊一個節點
  110. 0)echo 'return;';//如果遊戲已清除或遊戲結束?>
  111. document.forms[0].clickvalue.value = value;
  112. document.forms[0].submit( );
  113. }
  114. 0)echo 'setTimeout("timerun()",1000);';//運行時間?>
  115. function timerun(){//時間運行
  116. var timelist = document.forms[0].timeshow.value.split( ":");
  117. var sec = parseInt(timelist[1],10) 1;
  118. var min = sec document.forms[0].timeshow.value = (min>9?min:"0" min) ":" (sec > 9?sec:"0" sec);
  119. setTimeout("timerun()",1000);
  120. }
  121. 腳本>
  122. 身體>
  123. 複製程式碼

    希望這篇文章對大家的php程式設計有幫助。

  124. " value="">
  125. " value="">
  126. ;
  127. ')" style="width:20px;height:20px;">
  128. php


來源:php.cn
上一篇:php鍊錶用法實例分析 下一篇:PHP實作多檔案上傳的方法
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
相關專題
更多>
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板