A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 鲁柯 高级黑马   /  2013-1-25 15:25  /  2936 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

      根据毕老师的HTML+CSS+JavaScript教程和下载的一些文档介绍自己在手机上写出来的一个简单五子棋,很简单的功能,许多功能都没有实现,写的过程中也遇到很多问题,现在的代码中也存在一些问题,但每一个字符都是自己敲出来的,清楚他们的功能,还是很有成就感的!先看下概貌吧!老鸟勿笑,凑着上网的机会贴上来希望能挣到点分。

已实现的功能:
      根据指定位置落子
      电脑玩家随即落子,与玩家实现简单对战
      显示电脑随即挑选位置的过程
      ……自己发现吧,问题也有很多
比如电脑下棋时没有下到最右边和最下边,改来改去也还没试出电脑下最右边和最下边一排的情况……
代码:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

  2. <html>

  3. <head><!--头部标签开始-->

  4. <title> New Document </title>

  5. <meta name="Generator" content="EditPlus">
  6. <meta name="Author" content="">
  7. <meta name="Keywords" content="">
  8. <meta name="Description" content="">

  9. <style type="text/css">
  10. /*CSS区域*/
  11. table{
  12. border: red 2px solid;
  13. border-collapse: collapse;
  14. text-align: center;
  15. }
  16. td,th{
  17. border: red 1px solid;
  18. padding: 5, 10, 5, 10;
  19. }
  20. </style>

  21. <script type="text/javascript">
  22. /*javascript区域*/
  23. var BOARD_SIZE = 9;
  24. var board = new Array();
  25. var s = "";

  26. function play()
  27. {
  28. if (board.length != 0)
  29. {
  30. alert("游戏已经开始了,点击“重新开始”开始新游戏");
  31. return;
  32. }
  33. init();
  34. show();
  35. }

  36. function init()
  37. {
  38. // s = "";
  39. board = new Array()
  40. for (var i=0; i<BOARD_SIZE; i++)
  41. {
  42. // s += ((i+1)+' ');
  43. board[i] = new Array();
  44. for (var j=0; j<BOARD_SIZE; j++)
  45. {
  46. board[i][j] = "┼";
  47. // s += board[i][j];
  48. }
  49. // s += "
  50. ";
  51. }
  52. // s += " ";
  53. // for (var k=1; k<10; k++)
  54. {
  55. // s += " "+k;
  56. }
  57. //alert(s);
  58. }

  59. function getBoard()
  60. {
  61. return board;
  62. }

  63. //var flag = false; //电脑没下呢 电脑调用setChess又执行了computerDo

  64. function setChess(pos, chessMan)
  65. {
  66. if (!pos)
  67. {
  68. return;
  69. }
  70. board[pos[0]][pos[1]] = chessMan;
  71. show();

  72. if (chessMan=='●')
  73. {
  74. computerDo();
  75. }
  76. /*
  77. if (flag)
  78. {
  79. return;
  80. }
  81. flag = false;
  82. if (!flag)
  83. {
  84. computerDo();
  85. }
  86. else
  87. flag = false;
  88. */
  89. }

  90. function computerDo()
  91. {
  92. var x = parseInt(Math.random()*(BOARD_SIZE));
  93. var y = parseInt(Math.random()*(BOARD_SIZE));
  94. alert("Computer:"+x+"---"+y);
  95. while (!checkPos(x+"", y+"") || hasChess(x-1,y-1))
  96. {
  97. x = parseInt(Math.random()*(BOARD_SIZE));
  98. y = parseInt(Math.random()*(BOARD_SIZE));
  99. alert("Computer:"+x+"---"+y);
  100. }
  101. var pos = [x-1, y-1];
  102. setChess(pos, "○");
  103. }

  104. function show()
  105. {
  106. s = "";
  107. var node = document.getElementById("boardspan");
  108. for (var i=0; i<BOARD_SIZE; i++)
  109. {
  110. s += ((i+1)+' ');
  111. for (var j=0; j<BOARD_SIZE; j++)
  112. {
  113. s += board[i][j];
  114. }
  115. s += "
  116. ";
  117. }
  118. s += " ";
  119. for (var k=1; k<10; k++)
  120. {
  121. s += " "+k;
  122. }
  123. node.innerHTML = s;
  124. }

  125. function rePlay()
  126. {
  127. init();
  128. show();
  129. }


  130. function getPos()
  131. {
  132. var pos = new Array();
  133. var x = document.getElementById("posx").value;
  134. var y = document.getElementById("posy").value;

  135. if (!checkPos(x, y))
  136. {
  137. alert("输入位置有误,请重新输入!");
  138. return;
  139. }

  140. pos[0] = x - 1;
  141. pos[1] = y - 1;

  142. if (hasChess(pos[0], pos[1]))
  143. {
  144. alert("该位置已有棋子,请重新输入!");
  145. return;
  146. }
  147. /*/防止电脑调用setChess时自动调用
  148. document.getElementById("posx").value = "";
  149. document.getElementById("posy").value = "";
  150. */
  151. //alert(pos[0] + "::" + pos[1]);
  152. return pos;
  153. }

  154. function hasChess(x, y)
  155. {
  156. return (board[x][y]!='┼')?true:false;
  157. }

  158. function checkPos(x, y)
  159. {
  160. var reg = "^[1-9]{1}$";
  161. return (x.match(reg)&&y.match(reg))?true:false;
  162. }
  163. </script>

  164. </head><!--头部标签结束-->

  165. <body><!--主体标签开始-->
  166. <!--注释区域-->
  167. <table>
  168. <th colspan=3 style="font-size:24; color:green">五子棋</th>
  169. <tr>
  170. <td colspan=3>
  171. <span id="boardspan">
  172. 棋盘显示区
  173. </span>
  174. </td>
  175. </tr>
  176. <tr>
  177. <td rowspan=2>落子位置</td>
  178. <td>横向:<input type="text" id="posx" size=4 /></td>
  179. <td rowspan=2><input type="button" value="确定" onclick="setChess(getPos(), '●')"</td>
  180. <tr>
  181. <td>竖向:<input type="text" id="posy" size=4 /></td>
  182. </tr>
  183. </tr>
  184. <tr>
  185. <th><input type="button" value="开始游戏" onclick="play()" /></th>
  186. <th colspan=2><input type="button" value="重新开始" onclick="rePlay()" /></th>
  187. </tr>

  188. </table>


  189. </body><!--主体标签结束-->

  190. </html>
复制代码

7 个回复

倒序浏览
电脑随机落子?,那不是没有一点智能了......
回复 使用道具 举报
五子棋,要设计到一些算法问题
回复 使用道具 举报
支持一下!
回复 使用道具 举报
点开没有棋盘,不能下
回复 使用道具 举报
鲁柯 来自手机 高级黑马 2013-1-26 20:37:27
地板
黑马唐贤来 发表于 2013-1-25 18:10电脑随机落子?,那不是没有一点智能了......

实现智能电脑涉及到算法问题,目前还没研究呢
回复 使用道具 举报
鲁柯 来自手机 高级黑马 2013-1-26 20:39:11
7#
黄锦成 发表于 2013-1-25 18:39五子棋,要设计到一些算法问题

这个只是实现简单功能,还有许多不足
回复 使用道具 举报
鲁柯 来自手机 高级黑马 2013-1-26 20:40:59
8#
郭孟涛 发表于 2013-1-25 22:06点开没有棋盘,不能下

要点击开始游戏显示棋盘
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马