问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求一javascript小游戏代码。【注:不要叫我去下载,你直接给我复制过来就可以了】。thank!!

发布网友 发布时间:2022-07-24 21:32

我来回答

1个回答

热心网友 时间:2023-10-10 01:36

  代码比较长 没有注释

  脚本说明:

  把如下代码加入<body>区域中
  <style>

  .bigcell {

  background-color:#aa9966;

  border:4px solid #aa9966;

  text-align:center;

  }

  .cell {

  width:40px;

  height:40px;

  font-family:Verdana, Arial;

  font-size:10pt;

  font-weight:bold;

  background-color:#996633;

  color:#ffff33;

  border-top:2px solid #aa9966;

  border-left:2px solid #aa9966;

  border-right:2px solid #663300;

  border-bottom:2px solid #663300;

  text-align:center;

  }

  .hole {

  width:40px;

  height:40px;

  background-color:#aa9966;

  text-align:center;

  }

  body,h1,h2,h3,.msg,capt1,capt2 {font-family:Verdana,Comic Sans MS,Arial;}

  body {margin:0px;}

  h1 {font-size:28pt; font-weight:bold; margin-bottom:0px;}

  h2 {font-size:16pt; margin:0px; font-weight:bold;}

  h3 {font-size:8pt; margin:0px; font-weight:bold;}

  .msg {font-size:8pt; font-weight:bold;}

  .tab {cursor:hand;}

  .capt1 {font-size:10pt; font-weight:bold;}

  .capt2 {font-size:9pt; font-weight:bold;}

  .capt3 {font-size:14pt; font-weight:bold; color:yellow;}

  .capt4 {font-size:10pt; font-weight:bold; color:yellow;}

  .but {font-size:9pt; font-weight:bold; height:30px;background-color:#aaaa99;}

  </style>
  <BODY onLoad="loadBoard(4)">
  <script>

  var gsize, ghrow, ghcol, gtime, gmoves, gintervalid=-1, gshuffling;

  function toggleHelp()

  {

  if (butHelp.value == "Hide Help")

  {

  help.style.display = "none";

  butHelp.value = "Show Help";

  }

  else

  {

  help.style.display = "";

  butHelp.value = "Hide Help";

  }

  }

  //random number between low and hi

  function r(low,hi)

  {

  return Math.floor((hi-low)*Math.random()+low);

  }

  //random number between 1 and hi

  function r1(hi)

  {

  return Math.floor((hi-1)*Math.random()+1);

  }

  //random number between 0 and hi

  function r0(hi)

  {

  return Math.floor((hi)*Math.random());

  }

  function startGame()

  {

  shuffle();

  gtime = 0;

  gmoves = 0;

  tickTime();

  gintervalid = setInterval("tickTime()",1000);

  }

  function stopGame()

  {

  if (gintervalid==-1) return;

  clearInterval(gintervalid);

  fldStatus.innerHTML = "";

  gintervalid=-1;

  }

  function tickTime()

  {

  showStatus();

  gtime++;

  }

  function checkWin()

  {

  var i, j, s;

  if (gintervalid==-1) return; //game not started!

  if (!isHole(gsize-1,gsize-1)) return;

  for (i=0;i<gsize;i++)

  for (j=0;j<gsize;j++)

  {

  if (!(i==gsize-1 && j==gsize-1)) //ignore last block (ideally a hole)

  {

  if (getValue(i,j)!=(i*gsize+j+1).toString()) return;

  }

  }

  stopGame();

  s = "<table cellpadding=4>";

  s += "<tr><td align=center class=capt3>!! CONGRATS !!</td></tr>";

  s += "<tr class=capt4><td align=center>You have done it in " + gtime + " secs ";

  s += "with " + gmoves + " moves!</td></tr>";

  s += "<tr><td align=center class=capt4>Your speed is " + Math.round(1000*gmoves/gtime)/1000 + " moves/sec</td></tr>";

  s += "</table>";

  fldStatus.innerHTML = s;

  // shuffle();

  }

  function showStatus()

  {

  fldStatus.innerHTML = "Time: " + gtime + " secs Moves: " + gmoves

  }

  function showTable()

  {

  var i, j, s;

  stopGame();

  s = "<table border=3 cellpadding=0 cellspacing=0 bgcolor='#666655'><tr><td class=bigcell>";

  s = s + "<table border=0 cellpadding=0 cellspacing=0>";

  for (i=0; i<gsize; i++)

  {

  s = s + "<tr>";

  for (j=0; j<gsize; j++)

  {

  s = s + "<td id=a_" + i + "_" + j + " onclick='move(this)' class=cell>" + (i*gsize+j+1) + "</td>";

  }

  s = s + "</tr>";

  }

  s = s + "</table>";

  s = s + "</td></tr></table>";

  return s;

  }

  function getCell(row, col)

  {

  return eval("a_" + row + "_" + col);

  }

  function setValue(row,col,val)

  {

  var v = getCell(row, col);

  v.innerHTML = val;

  v.className = "cell";

  }

  function getValue(row,col)

  {

  // alert(row + "," + col);

  var v = getCell(row, col);

  return v.innerHTML;

  }

  function setHole(row,col)

  {

  var v = getCell(row, col);

  v.innerHTML = "";

  v.className = "hole";

  ghrow = row;

  ghcol = col;

  }

  function getRow(obj)

  {

  var a = obj.id.split("_");

  return a[1];

  }

  function getCol(obj)

  {

  var a = obj.id.split("_");

  return a[2];

  }

  function isHole(row, col)

  {

  return (row==ghrow && col==ghcol) ? true : false;

  }

  function getHoleInRow(row)

  {

  var i;

  return (row==ghrow) ? ghcol : -1;

  }

  function getHoleInCol(col)

  {

  var i;

  return (col==ghcol) ? ghrow : -1;

  }

  function shiftHoleRow(src,dest,row)

  {

  var i;

  //conversion to integer needed in some cases!

  src = parseInt(src);

  dest = parseInt(dest);

  if (src < dest)

  {

  for (i=src;i<dest;i++)

  {

  setValue(row,i,getValue(row,i+1));

  setHole(row,i+1);

  }

  }

  if (dest < src)

  {

  for (i=src;i>dest;i--)

  {

  setValue(row,i,getValue(row,i-1));

  setHole(row,i-1);

  }

  }

  }

  function shiftHoleCol(src,dest,col)

  {

  var i;

  //conversion to integer needed in some cases!

  src = parseInt(src);

  dest = parseInt(dest);

  if (src < dest)

  {//alert("src=" + src +" dest=" + dest + " col=" + col);

  for (i=src;i<dest;i++)

  {//alert(parseInt(i)+1);

  setValue(i,col,getValue(i+1,col));

  setHole(i+1,col);

  }

  }

  if (dest < src)

  {

  for (i=src;i>dest;i--)

  {

  setValue(i,col,getValue(i-1,col));

  setHole(i-1,col);

  }

  }

  }

  function move(obj)

  {

  var r, c, hr, hc;

  if (gintervalid==-1 && !gshuffling)

  {

  alert('请点击"开始游戏"按钮')

  return;

  }

  r = getRow(obj);

  c = getCol(obj);

  if (isHole(r,c)) return;

  hc = getHoleInRow(r);

  if (hc != -1)

  {

  shiftHoleRow(hc,c,r);

  gmoves++;

  checkWin();

  return;

  }

  hr = getHoleInCol(c);

  if (hr != -1)

  {

  shiftHoleCol(hr,r,c);

  gmoves++;

  checkWin();

  return;

  }

  }

  function shuffle()

  {

  var t,i,j,s,frac;

  gshuffling = true;

  frac = 100.0/(gsize*(gsize+10));

  s = "% ";

  for (i=0;i<gsize;i++)

  {

  s += "|";

  for (j=0;j<gsize+10;j++)

  {

  window.status = "Loading " + Math.round((i*(gsize+10) + j)*frac) + s

  if (j%2==0)

  {

  t = r0(gsize);

  while (t == ghrow) t = r0(gsize); //skip holes

  getCell(t,ghcol).click();

  }

  else

  {

  t = r0(gsize);

  while (t == ghcol) t = r0(gsize); //skip holes

  getCell(ghrow,t).click();

  }

  }

  }

  window.status = "";

  gshuffling = false;

  }

  function loadBoard(size)

  {

  gsize = size;

  board.innerHTML = showTable(gsize);

  setHole(gsize-1,gsize-1);

  //shuffle();

  }

  </script>
  <div id=test></div>

  <table cellpadding=4>

  <tr><td align=center>

  <b>请选择难度: </B>

  <select id=level onchange="loadBoard(parseInt(level.value))">

  <option value='3'>3</option>

  <option value='4' selected>4</option>

  <script>

  for (var i=5;i<=10;i++)

  {

  document.write("<option value='" + i + "'>" + i + "</option>");

  }

  </script>

  </select>

  </td></tr>

  <tr><td align=center>

  <input type=button class=but value="开始游戏" onclick="startGame();">

  <tr><td align=center id=fldStatus class=capt2>

  </td></tr>

  </table>

  <div id=board></div>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 唐朝诗人杜牧的名作《清明》,诗中“杏花村”到底在哪里? 杜牧《清明》诗中的杏花村在哪里? 真正的杏花村是哪里? 梦见自己生日,蛋糕是天蓝色的。是什么意思?我生日在明年。 生日蛋糕里的蓝色蜡烛代表10岁, 蛋糕用蓝色的用意是什么 蓝玫瑰代表什么意思?昨天我喜欢的女孩过生日,有人送她很大一捧蓝色玫瑰,后来我送了一个生日蛋糕给她 梦见仙鹤在水里我用竹竿打它头 梦见一大片仙鹤在水中 象是公园那种反正湖里面有仙鹤船那些湖里满满的都是仙鹤 之后划木船 孔雀鱼得肠炎肚子会变黑吗 加盟德佑,不开了,那加盟费能要回来吗? 家长鼓励中学生月考的一段话 月考寄语或鼓励的话 孩子月考鼓励的话 月考家长鼓励孩子的话 月考鼓励孩子的话语 咳嗽咳出痰块是什么症状? 我儿子今年冬天老是干咳,喉咙有痰难吼出来,这几天感冒了,咳上来的痰是一块硬的,颜色还发绿,是怎么了 咳出来硬痰块怎么回事 27层的房子多少层比较好? JavaScript代码设计一个骰子游戏 在电脑上弄过安卓模拟器的大神进 我的没成功,就差一步了,怎么也弄不好,电脑提示我找不到文件 新买的洗衣机有甲醛吗- 问一问 我的世界服务器,就差一步!求解!重赏! 祭车需要什么供品图片 营运车开业摆什么贡品 比如 鸡 鱼 是活的还是杀好的 水果 有那几样 买车如何到庙烧香,需要什么贡品 大明第一狂士沈渊当皇帝了吗 求乙肝二对半化验单解释 请专家详解二对半化验单数据,谢谢 乙肝表面抗体大于250严重吗 请帮我看下两对半和肝功化验单 狗狗生孩子先出来一只脚怎么办? 狗生小狗腿先出来怎么办 狗狗生孩子先出来一只脚怎么办 狗狗生产脚先出来怎么办 狗下崽,先出来一个脚,下不出来怎么办啊!!! 朋友们快点帮帮忙怎么办,母狗生小狗脚先出来了,头还在里面卡着出不来,母狗已经没有力气生了,怎么办, 小狗下崽为什么腿脚先出来,为什么? 泰迪狗生产是先出脚,或是头