JavaScript

语言:

JaveScriptBabelCoffeeScript

确定

// Alert box using SweetAlert2 - https://limonte.github.io/sweetalert2

$(document).ready(function() {

// Variables

var holding = [],

moves,

disksNum = 7,

$canves = $('#canves'),

$restart = $canves.find('.restart'),

$tower = $canves.find('.tower'),

$scorePanel = $canves.find('#score-panel'),

$movesCount = $scorePanel.find('#moves-num'),

$ratingStars = $scorePanel.find('i');

// Init Game

function initGame(tower) {

$tower.html('');

moves = 0;

$movesCount.html(0);

holding = [];

for (var i = 1; i <= disksNum; i++) {

tower.prepend($('

'));

}

$ratingStars.each(function() {

$(this).removeClass('fa-star-o').addClass('fa-star');

});

}

initGame($tower.eq(0));

// Game Logic

function countMove() {

moves++;

$movesCount.html(moves);

if (moves > 126) {

if ($tower.eq(1).children().length === disksNum || $tower.eq(2).children().length === disksNum) {

swal({

allowEscapeKey: false,

allowOutsideClick: false,

title: 'Congratulations! You Won!',

text: "Boom Shaka Lak",

type: 'success',

confirmButtonColor: '#8bc34a',

confirmButtonText: 'Play again!'

}).then(function(isConfirm) {

if (isConfirm) {

initGame($tower.eq(0));

}

})

}

}

if (moves > 127) {

$ratingStars.eq(2).removeClass('fa-star').addClass('fa-star-o')

}

if (moves > 255) {

$ratingStars.eq(1).removeClass('fa-star').addClass('fa-star-o')

}

if (moves > 256) {

$ratingStars.eq(0).removeClass('fa-star').addClass('fa-star-o')

}

}

function tower(tower) {

var $disks = tower.children(),

$topDisk = tower.find(':last-child'),

topDiskValue = $topDisk.data('value'),

$holdingDisk = $canves.find('.hold');

if ($holdingDisk.length !== 0) {

if (topDiskValue === holding[0]) {

$holdingDisk.removeClass('hold');

} else if (topDiskValue === undefined || topDiskValue > holding[0]) {

$holdingDisk.remove();

tower.append($('

'));

countMove();

}

} else if ($topDisk.length !== 0) {

$topDisk.addClass('hold');

holding[0] = topDiskValue;

}

}

// Event Handlers

$canves.on('click', '.tower', function() {

var $this = $(this);

tower($this);

});

$restart.on('click', function() {

swal({

title: 'Are you sure?',

text: "Your progress will be Lost!",

type: 'warning',

showCancelButton: true,

confirmButtonColor: '#8bc34a',

cancelButtonColor: '#e91e63',

confirmButtonText: 'Yes, Restart Game!'

}).then(function(isConfirm) {

if (isConfirm) {

initGame($tower.eq(0));

}

})

});

});

java overflow 汉诺塔_用JS和CSS实现的汉诺塔游戏相关推荐

  1. java 9宫格抽奖_前端js实现九宫格模式抽奖(多宫格抽奖)

    介绍: 前端九宫格是一种常见的抽奖方式,js实现如下,掌握其原理,不论多少宫格,都可以轻松应对.(代码可复制直接运行看效果). 该案例以四宫格入门,可扩展多宫格,奖品模块的布局可自由设置. 四宫格抽奖 ...

  2. Java接受blob类型图片_原生JS上传图片接收服务器端图片并且显示图片(主要描述blob类型)...

    1.了解后端处理图像的方式 一:图片以独立文件的形式存储在服务器的指定文件夹中,再将路径存入数据库字段中 二:将图片转换成blob,直接存储到数据库的 Image 类型字段中(这种方式负担很大不建议使 ...

  3. java 打印 排序 数字塔_求助,用循环方法输出以下数字塔

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package com.bift; import java.io.*; //杨辉三角 public class Test { public static ...

  4. java 9宫格抽奖_原生JS实现九宫格抽奖

    本文实例为大家分享了JS实现九宫格抽奖的具体代码,供大家参考,具体内容如下 上代码: 谢谢惠顾 十万元现金 谢谢惠顾 iphone11 抽奖 美的冰箱 谢谢惠顾 50元红包 谢谢惠顾 CSS样式代码: ...

  5. java利用监听器制作红绿灯_利用js实现简易红绿灯

    HTML代码: 在一个div容器内,设置3个span CSS代码: .red_light { width: 200px; height: 200px; border-radius: 50%; marg ...

  6. [JS 分析] 汽_车_之_家 JS 生成 CSS 伪元素 hs_kw44_configUS::before

    0.参考 https://developer.mozilla.org/zh-CN/docs/Web/CSS/Pseudo-elements https://developer.mozilla.org/ ...

  7. java代码鸟飞_180行原生js代码实现简易版飞行的小鸟游戏

    /**原理简单,(简单碰撞判断,定时器运用)复制代码直接运行即可,如果没有声音文件,则去除几处调用游戏声效的代码即可**/ *{ margin: 0; padding: 0; list-style: ...

  8. java永远的冒险岛珍藏版_求些像冒险岛那样的横版单机游戏

    方法如下: 第一步:卸载Java虚拟机组件 以卸载Windows XP中已安装的MSJVM虚拟机为例.点击"开始→运行",在运行对话框中输入"RunDll32 advpa ...

  9. 怎么用java做全民飞机大战_基于VC++和OpenCV实现的全民飞机大战游戏

    摘要 功能:利用C++语言完成了一个小游戏项目-全民飞机大战,该游戏首先能够给用户提供注册,登录功能:提供了菜单栏及两种游戏模式,一种是无尽模式,另一种是一般模式:一般模式中用户通过控制玩家飞机攻击敌 ...

最新文章

  1. 彻底解决SQL SERVER 2008无法远程连接的问题
  2. 【Java Web开发指南】Spring一些基础问题整理
  3. python读什么英文-django的英文读法是什么
  4. linux 安装sysstat使用iostat、mpstat、sar、sa
  5. 自动驾驶车辆转向控制(通过扭矩控制实现方向盘转角控制)
  6. Java并发编程 - 显示锁Lock和ReentrantLock
  7. 涂抹果酱_如何玩果酱
  8. 云原生 CI/CD 框架 Tekton 初体验
  9. ARMv8体系结构基础04:算术和移位指令
  10. [转]netstat 输出内容详解,TCP链接握手对应state
  11. layer弹出相册层
  12. matlab 符号函数 syms
  13. Linux开发板无法连接ssh
  14. excel转置怎么操作_直接理解转置卷积(Transposed convolution)的各种情况 - 颀周
  15. 惠普计算机图标不在桌面,惠普笔记本电脑桌面图标显示图标不正常如何还原 惠普笔记本电脑桌面图标显示图标不正常还原的方法...
  16. 日本房产泡沫的崩塌,虽然很长,希望80后仔细阅读
  17. SEO优化技巧:如何提升流量,提高网站点击率
  18. 用四阶RungeKutta方程解二阶常微分方程,并计算船舶在规则波中的横摇角(附Matlab代码)
  19. VC API常用函数简单例子大全(1-89)
  20. 构建module遇到pom报错Parent 'Unkown:Unkown:Unkown' has problems

热门文章

  1. 技术主管和项目经理一定要读的 6本书!
  2. 益和VA助力指纹认证仪构建异地考勤方案
  3. 挑战(二)的一些补充
  4. c语言x的n次方怎么写_写这么sao的代码,不怕被揍么?
  5. 轻量版 markdown博客_最新Mac文本处理软件中文激活版|mac|文本文件|管理器|剪贴板...
  6. 从运维角度看中大型网站架构的演变之路
  7. 写给一个外汇女交易员的信(连载四)
  8. python怎么提交作业_coursera怎么提交编程作业
  9. 调节pycharm字体大_钢管钢板大字符喷码机手持式@钢管钢板大字符喷码机手持式最大字符...
  10. 数字PI调节器_位置式/增量式_区别原理