• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > HTML5实现斯诺克桌球俱乐部的示例代码(图)

HTML5实现斯诺克桌球俱乐部的示例代码(图)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含HTML5,斯诺克,桌球俱乐部等相关知识,匿名希望在学习及工作中可以帮助到您
简介

毫无疑问,我们已经目睹了HTML5背后的那场伟大的Web开发革命。经过那么多年HTML4的统治,一场全新的运动即将完全改变现在的Web世界。正是他释放出来的现代化气息和丰富的用户体验,让它很快地成为了一个独特的插件运行在类似Flash和Silverlight的框架之上。

如果你是一个非常年轻的开发者,也许你是刚刚在开始学习HTML5,所以可能你并没有注意到他有太大的变化。在任何时候,我希望这篇文章能够帮助到你,当然,也希望像我一样的老手能从中学到一些新的花样。

你的点评对我来说非常重要,所以我很期待你的来信。当然能让我更兴奋的是当你在那个游戏画面上右击时暗暗地说一句“Hey,这居然不是Flash!也不是Silverlight!”

系统要求

想要使用本文提供的HTML5桌球应用,你必须安装下面的这些浏览器:Chrome 12, Internet Explorer 9 or Fire Fox 5

image

游戏规则

image

也许你已经知道这是一个什么样的游戏了,是的,这是“英式斯诺克”,实际上更确切的说是“简易版英式斯诺克”,因为没有实现所有的斯诺克游戏规则。你的目标是按顺序将目标球灌入袋中,从而比其他选手得到更多的分数。轮到你的时候,你就要出杆了:根据提示,你必须先打进一个红色球得到1分,如果打进了,你就可以继续打其他的球 - 但是这次你只能打彩色球了(也就是除红色球以外的球)。如果成功打进,你将会得到各自彩球对应的分数。然后被打进的彩球会回到球桌上,你可以继续击打其他的红球。这样周而复始,直到你失败为止。当你把所有的红球都打完以后,球桌上就只剩下6个彩球了,你的目标是将这6个彩球按以下顺序依次打入袋中:黄(2 分)、绿(3分)、棕(4分)、蓝(5分)、粉(6分)、黑(7分)。如果一个球不是按上面顺序打进的,那它将会回到球桌上,否则,它最终会留在袋里。当所有球都打完后,游戏结束,得分最多的人胜出。

犯规处理

为了处罚你的犯规,其他选手将会得到你的罚分:

  • 白球掉入袋中罚4分

  • 白球第一次击中的球是错误的话罚第一个球的分值

  • 第一个错误的球掉入袋中罚第一个球的分值

  • 处罚的分数至少是4

下面的这段代码展示了我是如何来计算犯规的:

Code    var strokenBallsCount = 0;
console.log('strokenBalls.length: ' + strokenBalls.length);    
for (var i = 0; i < strokenBalls.length; i++) {        
var ball = strokenBalls[i];        
//causing the cue ball to first hit a ball other than the ball on
        if (strokenBallsCount == 0) {            
        if (ball.Points != teams[playingTeamID - 1].BallOn.Points) {                
        if (ball.Points == 1 || teams[playingTeamID - 1].BallOn.Points == 1 ||
                fallenRedCount == redCount) {                   
                 if (teams[playingTeamID - 1].BallOn.Points < 4) {
                        teams[playingTeamID - 1].FoulList[teams[playingTeamID - 1]
                        .FoulList.length] = 4;
                        $('#gameEvents').append('
Foul 4 points :  Expected ' +
                         teams[playingTeamID - 1].BallOn.Points + ', but hit ' + ball.Points);
                    }                    else {
                        teams[playingTeamID - 1].FoulList[teams[playingTeamID - 1]
                        .FoulList.length] = teams[playingTeamID - 1].BallOn.Points;
                        $('#gameEvents').append('
Foul ' + teams[playingTeamID - 1]
                        .BallOn.Points + ' points :  Expected ' + teams[playingTeamID - 1]
                        .BallOn.Points + ', but hit ' + ball.Points);
                    }                    break;
                }
            }
        }
 
        strokenBallsCount++;
    } 
    //Foul: causing the cue ball to miss all object balls
    if (strokenBallsCount == 0) {
        teams[playingTeamID - 1].FoulList[teams[playingTeamID - 1].FoulList.length] = 4;
        $('#gameEvents').append('
Foul 4 points :  causing the cue ball
        to miss all object balls');
    } 
    for (var i = 0; i < pottedBalls.length; i++) {        
    var ball = pottedBalls[i];        
    //causing the cue ball to enter a pocket
        if (ball.Points == 0) {
            teams[playingTeamID - 1].FoulList[teams[playingTeamID - 1].FoulList.length] = 4;
            $('#gameEvents').append('
Foul 4 points :  causing the cue ball
             to enter a pocket');
        }        else {            
        //causing a ball different than the target ball to enter a pocket
            if (ball.Points != teams[playingTeamID - 1].BallOn.Points) {                
            if (ball.Points == 1 || teams[playingTeamID - 1].BallOn.Points == 1
                 || fallenRedCount == redCount) {                    
                 if (teams[playingTeamID - 1].BallOn.Points < 4) {
                        teams[playingTeamID - 1].FoulList[teams[playingTeamID - 1]
                        .FoulList.length] = 4;
                        $('#gameEvents').append('
Foul 4 points : '
                         + ball.Points + ' was potted, while ' + teams[playingTeamID - 1]
                         .BallOn.Points + ' was expected');
                        $('#gameEvents').append('
ball.Points: ' + ball.Points);
                        $('#gameEvents').append('
teams[playingTeamID - 1]
                        .BallOn.Points: ' + teams[playingTeamID - 1].BallOn.Points);
                        $('#gameEvents').append('
fallenRedCount: ' + fallenRedCount);
                        $('#gameEvents').append('
redCount: ' + redCount);
                    }                    else {
                        teams[playingTeamID - 1].FoulList[teams[playingTeamID - 1]
                        .FoulList.length] = teams[playingTeamID - 1].BallOn.Points;
                        $('#gameEvents').append('
Foul ' + teams[playingTeamID - 1]
                        .BallOn.Points + ' points : ' + ball.Points + ' was potted, while '
                         + teams[playingTeamID - 1].BallOn.Points + ' was expected');
                    }
                }
            }
        }
    }

得分

我们根据下面的规则来计算得分:红(1分)、黄(2分)、绿(3分)、棕(4分)、蓝(5分)、粉(6分)、黑(7分)。代码如下:

Code       
if (teams[playingTeamID - 1].FoulList.length == 0) {           
for (var i = 0; i < pottedBalls.length; i++) {              
 var ball = pottedBalls[i];               
 //legally potting reds or colors
               wonPoints += ball.Points;
               $('#gameEvents').append('
Potted +' + ball.Points + ' points.');
           }
       }       else {
           teams[playingTeamID - 1].FoulList.sort();
           lostPoints = teams[playingTeamID - 1].FoulList[teams[playingTeamID - 1].FoulList.length - 1];
           $('#gameEvents').append('
Lost ' + lostPoints + ' points.');
       }
       teams[playingTeamID - 1].Points += wonPoints;
       teams[awaitingTeamID - 1].Points += lostPoints;

选手的闪动动画头像

image

游戏是有两位选手参与的,每一位选手都有自己的昵称和头像,选手的昵称我们就简单

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2018-12-03HTML5 自动聚焦(autofocus)属性使用介绍_html5教程技巧
  • 2017-08-06HTML5 新事件 小结
  • 2018-12-03作为一个刚入门的前端爱好者,以后立志成为前端攻城狮的我,应该要学习哪些方面的知识?
  • 2018-12-03Html5游戏开发之乒乓Ping Pong游戏示例(三)_html5教程技巧
  • 2018-12-03一个超炫的htm5效果.超炫
  • 2018-12-03使用jQuery控制HTML5视频播放/暂停
  • 2018-12-03HTML5 的 hidden="hidden" 和CSS的 display:none有什么区别?
  • 2018-12-03HTML5声音录制和播放功能的实现
  • 2018-12-03怎样让vue更改计算属性但是不更改select的选中值
  • 2018-12-03HTML5第一人称射击游戏实现的代码分享

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 关于Canvas与Image的互相转换
    • 关于印刷的10篇文章推荐
    • 使用HTML5的Notification API制作web通知的教程_html5教程技巧
    • Html5 Canvas初探学习笔记(14) -简单动画实现
    • HTML5实践-使用css创建三角形和使用CSS3创建3d四面体的代码详解
    • 如何设置H5的表单验证失败提示语
    • HTML5注册页面示例代码
    • 求HTML发音怎么读最专业!在线等…?
    • 举例详解HTML5中使用JSON格式提交表单_html5教程技巧
    • 《css权威指南》与《html5与css3权威指南》那个更权威更先进?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有