Java Applet实现五子棋游戏
从谷歌的AlphaGo到腾讯的绝艺,从人脸识别到无人驾驶,从谷歌眼镜到VR的兴起,人工智能领域在不断的向前迈进,也在不断深入的探索。但背后错综复杂的技术和利益成本也是很多企业亟待解决的难题。对于人工智能,我们可能还帮不上什么忙,但我相信以后的人工智能技术会越来越开源,也会提供给我们便捷开发的接口。由围棋大战引发的思考才是我们今天的主题,我们今天是利用Java Applet窗口应用程序来实现五子棋的一个小游戏,最基础的一个版本,主要回顾一下Applet的应用以及Graphics画图技术。
首先,我们先来看一下运行结果的预览图:
第一眼看上去是不是觉得很多元素,不太好下手,其实右边的按钮和和其他的文字都是背景图片自带的,只有中间的纵横线和棋子是我们画上去的,而且托朋友@郑宇轩多做了几张图,点击右上角的换肤按钮可以实现换肤效果,游戏设置可以设置游戏时间,下方有分别针对黑方和白方的计时器,哪一方的规定时间一到如果还没落子就算输。顶部有本轮该谁的信息提醒。
一、需求分析
要想实现这样一个功能其实也不难,其实就是一张背景图,上面有各种按钮,我们可以通过获取鼠标坐标来设置点击事件,至于棋盘的格子,我们可以采用Graphics画图就是了,包括棋子也是,时间的计算就以落子开始以秒为单位向下递减。5子连一线有多种情况,横连,竖连,左45度斜连,右45度斜连,同样可以根据坐标位置来判断,我们开始就可以定义一个数组,分别记录每一次黑白落子的坐标位置。基本的功能也就这些,我们这里就不考虑国际规定的禁手规则了。
二、开发
1.首先定义一个类OperatorPane,这个类用来布置整个布局,包括画棋盘棋子什么的,判断几种连法,时间的设置等。如下图:
我们需要建一个存放背景图片的文件夹,如下图:
接下来,我们写个测试类GomokuGrame,导入我们刚刚定义的布局类。
三、测试
接下来我们就开始运行程序,如下:
好玩吗?今天就到这里了,主要是关于Applet窗体应用程序和Graphics画图的一些技术的使用,都是一些基础的东西,主要是先理清这里面的逻辑思维,明白了需求再下手,一切就都变的很清晰,很明朗。
如果您对本文观点有什么异议,欢迎您的留言,我们一起交流!
Java Applet实现五子棋游戏的更多相关文章
- JAVA课程设计+五子棋游戏
1. 团队课程设计博客链接 http://www.cnblogs.com/yzb123/p/7063424.html 2. 个人负责模块或任务说明 1.在同伴构建好初始框图的情况下,编写一个继承JPa ...
- 关于五子棋游戏java版
一 题目简介:关于五子棋游戏 二 源码的github链接 https://github.com/marry1234/test/blob/master/五子棋游戏 三.所设计的模块测试用例.测试结果 ...
- java 五子棋游戏
五子棋游戏 一,1.五子棋的基本常识 与任何一种竞技棋一样,五子棋的每一局棋也分为三个阶段:开局,中局和残局. 五子棋的开始阶段称为开局,或称布局.其开局阶段是十分短暂的,大约在七着与十几着之间.在这 ...
- java swing 双人五子棋源代码
import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Toolkit; impo ...
- 自定义View实现五子棋游戏
成功的路上一点也不拥挤,因为坚持的人太少了. ---简书上看到的一句话 未来请假三天顺带加上十一回家结婚,不得不说真是太坑了,去年婚假还有10天,今年一下子缩水到了3天,只能赶着十一办事了. 最近还在 ...
- Java—Applet
1 Applet的定义 Applet是Java语言编写的,无法独立运行,但可以嵌入到网页中执行.它扩展了传统的编程结构和方法,可以通过互联网发布到任何具有Java编译环境浏览器的个体计算机上. 如下 ...
- The differences between Java application and Java applet
在Java语言中,能够独立运行的程序称为Java应用程序(Application).Java语言还有另外一种程序--Applet程序.Applet程序(也称Java小程序)是运行于各种网页文件中,用于 ...
- Java Applet与Java Application的区别
转自:http://www.educity.cn/java/500609.html 在Java语言中,能够独立运行的程序称为Java应用程序(Application).Java语言还有另外一种程序-- ...
- Java Applet使用
问题描述: Java Applet使用 参考资料: http://docs.oracle.com/javase/tutorial/deployment/applet/depl ...
随机推荐
- Codeforces Round #396.D
D. Mahmoud and a Dictionary time limit per test 4 seconds memory limit per test 256 megabytes input ...
- Spring应用上下文中Bean的生命周期
Bean装载到Spring应用上下文的生命周期,如图: Bean在Spring容器中从创建到销毁经历了若干个阶段,每一阶段都可以对Spring如何管理Bean进行个性化定制,以下我们通过代码去验证生命 ...
- 《汇编语言程序设计》——仿windows计算器
<汇编语言程序设计> ——计算器程序设计 目录 一. 题目与目标 1. 题目 2. 学习目的 二. 分析与设计 1. 系统分析 2. ...
- VSCode从非根目录编译golang程序
1.问题提出 "习惯在项目目录里建src放源码文件,根目录里放配置文件或者别的什么,在交付时直接忽视掉src目录就行了,但vscode好像不能这样愉快的玩耍..."??? 要实现把 ...
- .Net Standard扩展支持实例分享
上篇(.Net基础体系和跨框架开发普及)介绍了.Net当前生态下的大概情况,也分享了简单实现的过程,这篇文章就是讲解我的OSS.Common项目扩展.Net Standard 支持的过程,主要集中在: ...
- JDBC链接mysql数据库
Unit_1 首先:JDBC:java database connectivity SUN公司提供的一套操作数据库的标准规范. JDBC与数据库驱动的关系是接口与实现的关系. JDBC涉及到四个核心的 ...
- 关于Mysql的索引
索引是指把你设置为索引的字段A的内容储存在一个独立区间S里,里面只有这个字段的内容.在找查这个与这个字段A的内容时会直接从这个独立区间里查找,而不是去到数据表里查找.找到的这些符合条件的字段后再读取字 ...
- 利用nginx concat模块合并js css
前言: nginx-http-concat模块是由淘宝网开发的,现在淘宝网合并js和css正是用这个模块,如链接http://a.tbcdn.cn/??s/kissy/1.2.0/kissy-min. ...
- 编程思想之——"人是活的,程序是死的"
"人是活的,程序是死的"这句话我时常提起,可能很多人不是很理解我为什么会这样说,下面我就简单来谈谈我对这句话的理解. 1.不要因为技术而技术,技术选型的初衷是需求. 现在很多人在做 ...
- 关于java socket
1. 关于new Socket()中参数的理解 Server端: 调用ServerSocket serverSocket = new ServerSocket(1287,2);后Server端打开了指 ...