Javascript版五子棋
Javascript版五子棋,无禁手。欢迎提出算法的改进意见。
2. [代码]HTML
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="stylesheet" type="text/css" href="./main.css?v=12" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript" src="./locale.js"></script>
<script type="text/javascript" src="./gomoku.js?v=2.2"></script>
<script type="text/javascript">
var turn = 1, role = ['AI', 'human'];
$(function() {
var gomoku = new Gomoku();
gomoku.init(role[turn]);
//turn = turn === 0 ? 1 : 0;
$('#restart').click(function() {
gomoku.restart.call(gomoku, role[turn]);
// turn = turn === 0 ? 1 : 0;
});
$('#regret').click(function() {
gomoku.regret.call(gomoku);
});
});
</script>
</head>
<body>
<div id="toolbar">
<div class="top">
<span class="switch-lang">
<a href="javascript:;" id="zh-cn">简体中文</a>
<a href="javascript:;" id="en">English</a>
</span>
<span class="copy">
©<a href="http://lovebing.org">lovebing</a>
</span>jQuery特效
</div>
You: Black, AI: White, Round: <span id="round">0</span>
<button id="restart">Restart</button>
<button id="regret">Regret</button>
</div>http://www.huiyi8.com/jiaoben/
<div id="output"></div>
<div id="main"></div>
</body>
</html>
3. [代码]gomoku.js部分代码
/**
* Javascript 版五子棋(无禁手)
* Author: lovebing
* Depends: jquery.js
* Created: 2013-06
* Last updated: 2013-12-18
* Copyright 2013 lovebing.org
*/
function Gomoku() {
this.chessboardSize = 15;// 棋盘大小
this.chessState = [];// 保存落子情况,二维数组,i表示行,j表示列
this.gameover = false;
this.round = 0;
this.chessCount = 0;
this.gameResult = '';
this.operationLog = [];
this.chess = ['', 'black', 'white'];
this.role = {
human: 1, // 'black'
AI: 2 //'white'
};
this.turn = this.role.human;
this.chessClass = {
white: 'white-chess',
black: 'black-chess',
last: 'last-chess'
};
this.locale = {};
}
4. [代码]locale.js
var locale = [];
locale['en'] = {
gomoku: 'Gomoku Powered by Lovebing',
restart: 'Restart',
regret: 'Regret',
staleBrowser: 'Your browser\'s version is stale! Please use the browser supported HTML5 like Google chrome.',
youLose: 'You lose!',
youWin: 'You win!',
whiteChess: 'White',
blackChess: 'Black'
};
locale['zh-cn'] = {
gomoku: '五子棋 Powered by Lovebing',
restart: '重新开始',
regret: '悔棋',
staleBrowser: '你的浏览器版本过旧,请使用支持HTML5的浏览器,如Google Chrome。',
youLose: '你输了!',
youWin: '你赢了!',
whiteChess: '白棋',
blackChess: '黑棋'
};
Javascript版五子棋的更多相关文章
- JavaScript版拼图小游戏
慕课网上准备开个新的jQuery教程,花了3天空闲时间写了一个Javascript版的拼图小游戏,作为新教程配套的分析案例 拼图游戏网上有不少的实现案例了,但是此源码是我自己的实现,所以不做太多的比较 ...
- 前端优秀作品展示,JavaScript 版水果忍者
<水果忍者>是一款非常受喜欢的手机游戏,刚看到新闻说<水果忍者>四周年新版要上线了.网页版的切水果游戏由百度 JS 小组开发,采用 vml + svg 绘图,使用了 Rapha ...
- javascript日历控件——纯javascript版
平时只有下班时间能code,闲来写了个纯javascript版.引用该calendar.js文件,然后给要设置成日历控件的input的id设置成calendar,该input就会变成日历控件. < ...
- 在线聊天室的实现(1)--websocket协议和javascript版的api
前言: 大家刚学socket编程的时候, 往往以聊天室作为学习DEMO, 实现简单且上手容易. 该Demo被不同语言实现和演绎, 网上相关资料亦不胜枚举. 以至于很多技术书籍在讲解网络相关的编程时, ...
- JavaScript版几种常见排序算法
今天发现一篇文章讲“JavaScript版几种常见排序算法”,看着不错,推荐一下原文:http://www.w3cfuns.com/blog-5456021-5404137.html 算法描述: * ...
- Javascript版选择下拉菜单互移且排序
效果图如下: 代码如下: <html> <head> <title>Javascript版选择下拉菜单互移且排序</title> <meta ht ...
- javascript版QQ在线聊天挂件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JavaScript版排序算法
JavaScript版排序算法:冒泡排序.快速排序.插入排序.希尔排序(小数据时,希尔排序会比快排快哦) //排序算法 window.onload = function(){ var array = ...
- JavaScript 版数据结构与算法(二)队列
今天,我们要讲的是数据结构与算法中的队列. 队列简介 队列是什么?队列是一种先进先出(FIFO)的数据结构.队列有什么用呢?队列通常用来描述算法或生活中的一些先进先出的场景,比如: 在图的广度优先遍历 ...
随机推荐
- 对Netflix Ribbon的Loadbalancer类源码设计合理性的一点质疑
首先,这只是我个人的一点质疑,可能是因为我自己菜没有领悟到作者的意思,也正因此,想发出来跟大家一起探讨. 在昨晚,我因为在编写自己的开源项目的负载均衡模块(这是我开源项目的介绍:https://www ...
- ElasticSearch API 之 GET
GET API是Elasticsearch中常用的操作,一般用于验证文档是否存在:或者执行CURD中的文档查询.与检索不同的是,GET查询是实时查询,可以实时查询到索引结果.而检索则是需要经过处理才能 ...
- ElasticSearch聚合入门(续)
主要理解聚合中的terms. 参考:http://www.cnblogs.com/xing901022/p/4947436.html Terms聚合 记录有多少F,多少M { "size&q ...
- HUNAN 11569 Just Another Knapsack Problem(AC自动机+dp)
http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11569&courseid=0 给出目标串,每个子串和 ...
- 从Java看数据结构之——树和他的操作集
写在前面 树这种数据结构在计算机世界中有广泛的应用,比如操作系统中用到了红黑树,数据库用到了B+树,编译器中的语法树,内存管理用到了堆(本质上也是树),信息论中的哈夫曼编码等等等等.而树的实现和他的操 ...
- MACBOOK 忘记密码
如果没有系统安装盘,可以采用下面的几种方法:首先,启动机器,启动时按住Apple和S键,以单用户模式(single user mode)进入系统.输入:mount -uv / 然后回车.接下来可以采用 ...
- Dubbo和Spring集成Demo
Zookeeper安装和启动 http://mirrors.hust.edu.cn/apache/zookeeper/下载,我的版本是 3.4.5. 解压到 D:\zookeeper-3.4.5 配置 ...
- docker下用keepalived+Haproxy实现高可用负载均衡集群
启动keepalived后宿主机无法ping通用keepalived,报错: [root@localhost ~]# ping 172.18.0.15 PING () bytes of data. F ...
- booth乘法器原理
在微处理器芯片中,乘法器是进行数字信号处理的核心,同一时候也是微处理器中进行数据处理的wd=%E5%85%B3%E9%94%AE%E9%83%A8%E4%BB%B6&hl_tag=textli ...
- 系统重装 如何转换GPT的磁盘格式为MBR或者反过来
使用分区助手专业版可以让磁盘在GPT和MBR之间进行转换 一般把磁盘全部格式化并清除分区,剩下的都会是可用空间,还是需要重建MBR来把磁盘转换成MBR格式的 转换会设置操作系统类型