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">
                  &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版五子棋的更多相关文章

  1. JavaScript版拼图小游戏

    慕课网上准备开个新的jQuery教程,花了3天空闲时间写了一个Javascript版的拼图小游戏,作为新教程配套的分析案例 拼图游戏网上有不少的实现案例了,但是此源码是我自己的实现,所以不做太多的比较 ...

  2. 前端优秀作品展示,JavaScript 版水果忍者

    <水果忍者>是一款非常受喜欢的手机游戏,刚看到新闻说<水果忍者>四周年新版要上线了.网页版的切水果游戏由百度 JS 小组开发,采用 vml + svg 绘图,使用了 Rapha ...

  3. javascript日历控件——纯javascript版

    平时只有下班时间能code,闲来写了个纯javascript版.引用该calendar.js文件,然后给要设置成日历控件的input的id设置成calendar,该input就会变成日历控件. < ...

  4. 在线聊天室的实现(1)--websocket协议和javascript版的api

    前言: 大家刚学socket编程的时候, 往往以聊天室作为学习DEMO, 实现简单且上手容易. 该Demo被不同语言实现和演绎, 网上相关资料亦不胜枚举. 以至于很多技术书籍在讲解网络相关的编程时, ...

  5. JavaScript版几种常见排序算法

    今天发现一篇文章讲“JavaScript版几种常见排序算法”,看着不错,推荐一下原文:http://www.w3cfuns.com/blog-5456021-5404137.html 算法描述: * ...

  6. Javascript版选择下拉菜单互移且排序

    效果图如下: 代码如下: <html> <head> <title>Javascript版选择下拉菜单互移且排序</title> <meta ht ...

  7. javascript版QQ在线聊天挂件

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. JavaScript版排序算法

    JavaScript版排序算法:冒泡排序.快速排序.插入排序.希尔排序(小数据时,希尔排序会比快排快哦) //排序算法 window.onload = function(){ var array = ...

  9. JavaScript 版数据结构与算法(二)队列

    今天,我们要讲的是数据结构与算法中的队列. 队列简介 队列是什么?队列是一种先进先出(FIFO)的数据结构.队列有什么用呢?队列通常用来描述算法或生活中的一些先进先出的场景,比如: 在图的广度优先遍历 ...

随机推荐

  1. Vxlan简介

    1.为什么需要Vxlan 1.什么是VXLAN VXLAN(Virtual eXtensible LAN可扩展虚拟局域网),是一种mac in UDP技术.传统的二层帧被封装到了UDP的报文中,通过U ...

  2. 星球大战 BZOJ 1015

    星球大战 [问题描述] 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这些星球通过 ...

  3. 【shell】shell编程(三)-if,select,case语句

    通过前两篇文章,我们掌握了shell的一些基本写法和变量的使用,以及基本数据类型的运算.那么,本次就将要学习shell的结构化命令了,也就是我们其它编程语言中的条件选择语句及循环语句. 不过,在学习s ...

  4. 关于内存 转载自http://blog.csdn.net/xluren/article/details/8150723

    首先感谢下原作者,写的真的非常明白,非常详细 1.预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局 ...

  5. ls 不是内部或外部命令

    在C:\windows目录下新建一个文件 命名为 ls.bat 打开编辑这个文件 输入: @echo off dir 这两句保存即可.

  6. 深入V8引擎-Time核心方法之mac篇

    由于底层逻辑实现不同操作系统区别很大,所以干脆分篇来说. 主要讲一下Time.TimeTicks两个类里面对于时间戳的实现,其余的运算符重载.边缘工具方法就不看了,先是Time. Time 类本身的说 ...

  7. sql 添加自定义排序

    Mysql : SELECT (@i:=@i+1) AS ind ,字段 FROM 表名 别名, (SELECT @i:=0) t WHERE `IsDeleted` = 0; Oracle: 本就有 ...

  8. VS2015 当前不会命中断点,还没有为该文档加载任何符号

    这种小问题,我想只需要清理解决方案重新生成就好啦,结果...2个小时过去后.. 最后问了昨天做过修改的同事,修改了什么.. 设置成生成调试信息,仅以此文纪念我那逝去的青春

  9. R12: How to add Microsoft Excel as Type to the Create Template List of Values in BI Publisher (Doc ID 1343225.1)

    Modified: 27-Oct-2013 Type: HOWTO In this Document Goal Solution References APPLIES TO: BI Publisher ...

  10. jquery提示消息,简单通用

    jquery提示消息.简单通用 function showTips(txt,time,status) { var htmlCon = ''; if(txt != ''){ if(status != 0 ...