Bingo游戏简介

Bingo卡片是5×5的正方形,五个列上标着B-I-N-G-O,美国的Bingo游戏格子中的数字通常在70以内随机抽取,英国和澳大利亚的是在90以内。正中间通常是一个空的格子,常常印着单词free。每列可以包含的数字范围如下:

B列包含着数字1~15

I列包含着数字16~30

N列包含着数字31~45

G列包含着数字46~60

O列包含着数字61~75

游戏规则:参与游戏的人没人拿一张Bingo,又另外一个人或专业人士叫号或随机抽取号码,就像拍卖会一样,游戏者根据叫号,迅速标出卡片上的这些数字,若有一个游戏者中奖,那么这一轮游戏就算结束。中奖样式有多种多样,BINGO可以是垂直、水平、或对角线分布的。美国的Bingo中奖方式有12种,即5横行,5纵列再加两个对角线。如下图是一种中奖方式:

现在,利用HTML+CSS+Javascript来制作一个bingo卡片,来进行宾果游戏。

如下是HTML代码:

  1. <body>
  2. <center>
  3. <h1>Create A Bingo Card</h1>
  4. <table>
  5. <tr>
  6. <th>B</th>
  7. <th>I</th>
  8. <th>N</th>
  9. <th>G</th>
  10. <th>O</th>
  11. </tr>
  12. <tr>
  13. <td id="square0">&nbsp;</td>
  14. <td id="square5">&nbsp;</td>
  15. <td id="square10">&nbsp;</td>
  16. <td id="square14">&nbsp;</td>
  17. <td id="square19">&nbsp;</td>
  18. </tr>
  19. <tr>
  20. <td id="square1">&nbsp;</td>
  21. <td id="square6">&nbsp;</td>
  22. <td id="square11">&nbsp;</td>
  23. <td id="square15">&nbsp;</td>
  24. <td id="square20">&nbsp;</td>
  25. </tr>
  26. <tr>
  27. <td id="square2">&nbsp;</td>
  28. <td id="square7">&nbsp;</td>
  29. <td id="free">Free</td>
  30. <td id="square16">&nbsp;</td>
  31. <td id="square21">&nbsp;</td>
  32. </tr>
  33. <tr>
  34. <td id="square3">&nbsp;</td>
  35. <td id="square8">&nbsp;</td>
  36. <td id="square12">&nbsp;</td>
  37. <td id="square17">&nbsp;</td>
  38. <td id="square22">&nbsp;</td>
  39. </tr>
  40. <tr>
  41. <td id="square4">&nbsp;</td>
  42. <td id="square9">&nbsp;</td>
  43. <td id="square13">&nbsp;</td>
  44. <td id="square18">&nbsp;</td>
  45. <td id="square23">&nbsp;</td>
  46. </tr>
  47. </table>
  48. <p><a href="./3.1.html" id="reload">Click here</a>to create a new card</p>
  49. </center>
  50. </body>

以下是CSS代码:

  1. <style type="text/css">
  2. body {
  3. background-color:#FFF;
  4. color:black;
  5. font-size:20px;
  6. font-family:"Lucida Grande",Verdana,Arial,Helvetica,sans-serif;
  7. }
  8. h1,th {
  9. font-family:Georgia, "Times New Roman", Times, serif;
  10. }
  11. h1{
  12. font-size:28px;
  13. }
  14. table {
  15. border-collapse:collapse;
  16. }
  17. th , td {
  18. padding:10px;
  19. border:2px solid #666;
  20. text-align:center;
  21. width:20%
  22. }
  23. #free, .pickedBG { <!--中间的空格和点击后表格的样式-->
  24. background-color: #f66;
  25. }
  26. .winningBG {
  27. background-p_w_picpath: url(p_w_picpaths/redFlash.gif);
  28. }
  29. </style>

以下是Javascript代码:

  1. <script type="text/javascript">
  2. window.onload = initAll;
  3. var usedNums = new Array(76);<!--设置标记数组,一个数字对应一个元素-->
  4. function initAll(){
  5. document.getElementById("reload").onclick = anotherCard;
  6. newCard();
  7. }
  8. function newCard(){
  9. for(var i=0;i<24;i++){
  10. setSquare(i);
  11. }
  12. }
  13. function setSquare(thisSquare){ <!--向表格填充数字,形参为表格序号-->
  14. var currSquare = "square" + thisSquare; <!--获得方格的id名-->
  15. var colPlace = new Array(0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4);
  16. var colBasis = colPlace[thisSquare] * 15;
  17. var newNum;
  18. do{
  19. newNum = colBasis + getNewNum()+1;
  20. }while(usedNums[newNum]); <!--找出没被标记的元素,防止出现重复数字-->
  21. usedNums[newNum] = true;
  22. document.getElementById(currSquare).innerHTML = newNum;
  23. document.getElementById(currSquare).className = "";
  24. document.getElementById(currSquare).onmousedown = toggleColor;
  25. }<!--end of setSquare-->
  26. function toggleColor(evt){ <!--鼠标按下事件处理函数-->
  27. if(evt){<!--W3c标准-->
  28. var thisSquare = evt.target;
  29. }
  30. else{<!--Microsoft标准-->
  31. var thisSquare = window.event.srcElement;
  32. }
  33. if(thisSquare.className == ""){ <!--如果没有定义类,那么为格子添加类-->
  34. thisSquare.className = "pickedBG";
  35. }
  36. else{ <!--如果按错再按一下便能恢复-->
  37. thisSquare.className = "";
  38. }
  39. checkWin();
  40. }<!--end of toggleColor-->
  41. function getNewNum(){ <!--获取15以内的随机数字,并取整-->
  42. return Math.floor(Math.random()*15);
  43. }
  44. function anotherCard(){
  45. for(var i=1;i<usedNums.length;i++){
  46. usedNums[i]=false;
  47. }
  48. newCard();
  49. return false;<!--停止对用户单击的处理,这样就不会加载href指向的页面-->
  50. }
  51. function checkWin(){ <!--检验是否获胜>
  52. var winningOption = -1;
  53. var setSquares = 0;<!---->
  54. var winners = new Array(31,992,15360,507904,541729,557328,1083458,2162820,4329736,8519745,8659472,16252928);
  55. for(var i=0;i<24;i++){
  56. var currSquare = "square"+i;
  57. if(document.getElementById(currSquare).className != ""){
  58. document.getElementById(currSquare).className = "pickedBG";
  59. setSquaressetSquares = setSquares | Math.pow(2,i);
  60. }
  61. }
  62. for(var i=0;i<winners.length;i++){
  63. if((winners[i] & setSquares) == winners[i]){
  64. winningOption = i;
  65. }
  66. }
  67. if(winningOption > -1){
  68. for(var i=0;i<24;i++){
  69. if(winners[winningOption] & Math.pow(2,i)){
  70. currSquare = "square" + i;
  71. document.getElementById(currSquare).className = "winningBG";
  72. }
  73. }
  74. }
  75. }
  76. </script>

转载于:https://blog.51cto.com/kaixinbocai/1081627

利用Javascript制作宾果(BINGO)游戏相关推荐

  1. 利用JavaScript制作倒计时牌(转)

    利用JavaScript制作倒计时牌 五一劳动节很快就到了.哈哈,到时可以出去好好玩一玩了.是不是在掐指计算了.下面教你一种方法在网页上面制作倒计时牌,这样就方便多了. 把下面的JavaScript代 ...

  2. android打地鼠设计报告,android开发中利用handler制作一个打地鼠小游戏

    android开发中利用handler制作一个打地鼠小游戏 发布时间:2020-11-25 15:21:11 来源:亿速云 阅读:136 作者:Leah 这期内容当中小编将会给大家带来有关androi ...

  3. python制作阴阳师脚本_利用python制作一个阴阳师小游戏

    利用python制作一个阴阳师小游戏 发布时间:2020-11-27 13:59:49 来源:亿速云 阅读:84 这期内容当中小编将会给大家带来有关利用python制作一个阴阳师小游戏,文章内容丰富且 ...

  4. java中的纸牌游戏_Java中的宾果纸牌游戏

    我为Java中的宾果游戏创建了两种方法.一种方法创建一个新的板,根据宾果规则(1-75)用宾果板填充宾果板.我的第二种方法生成范围为1-75的随机数. public static int drawNu ...

  5. python连连看小游戏_利用Python制作一个连连看小游戏,边学边玩!

    导语 今天我们将制作一个连连看小游戏,让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 环境搭建 安装Python并添加到环 ...

  6. 利用JavaScript写猜数字小游戏

    要求:  在页面中写一个猜数字的游戏:  要求:   1)生成0~100之间的随机数,让用户猜   2)输入错误需要提示,并让用户重新输入   3)输入正确,提示正确,并询问是否继续游戏 结果如下: ...

  7. 利用python制作自己的小游戏,超简教程

    懒得客套,直接步入主题 首先,利用python来做游戏需要用到python中的pygame模块,这个我们在终端cmd中安装 输入:pip install pygame 安装好后我们进入pycharm查 ...

  8. JavaScript制作贪吃蛇小游戏

    目录 效果展示 原理分析 Game.js文档 Snake.js文档 Food.js文档 附上源代码 写了这么久的代码 是否你和我一样感到枯燥乏味了呢? 是否没有前进的动力了呢? 别忘了当时的你踌躇满志 ...

  9. 用canvas,javascript制作“坦克大战“小游戏

    游戏截图 这个是游戏做出来的效果: 用到的图片资源: 这里把所有的坦克动画所需的图片,地形图片等放在了一张图中,使用的时候就可以通过截取一部分来使用. 游戏代码 下面就是整个游戏目前的代码,有什么建议 ...

最新文章

  1. 字符流Reader对象创建子类及方法
  2. sqlite 使用 cte 及 递归的实现示例
  3. 区块链BaaS云服务(35)亦笔科技ODRChain使用场景
  4. 【AI学院】新手如何学CV?老司机带学有三书籍《深度学习之图像识别》,赠书8本...
  5. CodeForces - 1252G Performance Review(线段树+思维)
  6. 史上最全的thymleaf标签
  7. Shell awk 求标准差
  8. Mysql控制流语句
  9. elasticsearch 实体类日期类型_SpringBoot2.x系列教程55--SpringBoot整合ElasticSearch方式二...
  10. Mysql表编码查看修改
  11. winform datagridview 打印预览
  12. 微信小程序 加载 fbx 模型
  13. 服务器系统管理维护,服务器操作系统的管理维护
  14. Lambda表达式的几种简化形式
  15. k8s查看集群信息及基本命令
  16. Leetcode 838. 推多米诺 C++
  17. allegro 进行outline倒角
  18. 第19章 Linux电源管理的系统架构和驱动之CPUFreq驱动
  19. Mysql 查询数据库中哪个表的字段个数最多
  20. 多测师肖sir_高级讲师_第2个月第35讲解monkey

热门文章

  1. Linux内核原理之通用块设备层
  2. 厦门大学437社会工作实务考研参考书目
  3. 企业邮箱09年的十大新闻
  4. Windows SUS
  5. 步骤条的实现原理及AliceUI中步骤条Step的应用
  6. java生成不可修改的pdf_好記性不如爛筆頭4-JAVA生成PDF文件
  7. 上海滩第一代炒股大户沉浮录
  8. 静态资源部署分析和实验
  9. java爬虫之下载txt小说
  10. win7字体大小怎么设置_怎么设置 win7系统excel2010定时保存和数据恢复的方案 -win7系统使用教程...