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 ...
随机推荐
- 手动加支付宝遇到的错误--iOS
前言 之前调通了支付宝demo,开始往自己工程拖东西吧,我为什么觉得我可能把所以的问题都遇到了呢+_+,赶紧把问题记录下来 不然下次弄还费劲,加一句,要不真的用ping++吧
- wamp修改空密码以及设置虚拟站点
近来重装了一下wamp,索性记录一下,wamp安装完后,我的常用配置.首先,肯定要修改默认的空密码:其次,便要配置虚拟站点,因为当项目多的时候,每个项目分配成一个站点,对于开发来说,很方便管理.其实网 ...
- Hadoop1.0.3环境搭建流程
0x00 大数据平台相关链接 官网:http://hadoop.apache.org/ 主要参考教程:http://www.cnblogs.com/xia520pi/archive/2012/05/1 ...
- [Hadoop] - Win7下提交job到集群上去
一般我们采用win开发+linux hadoop集群的方式进行开发,使用插件:hadoop-***-eclipse-plugin. 运行程序的时候,我们一般采用run as application或者 ...
- JavaScript中国象棋程序(3) - 电脑自动走棋
"JavaScript中国象棋程序" 这一系列教程将带你从头使用JavaScript编写一个中国象棋程序.这是教程的第3节. 这一系列共有9个部分: 0.JavaScript中国象 ...
- C语言——选择排序
---恢复内容开始--- 算法思想: n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果: ①初始状态:无序区为R[1..n],有序区为空. ②第1趟排序 在无序区R[1..n]中选出 ...
- 学习笔记——Java类和对象
今天学习了Java的类和对象的相关知识,由于Java面向对象的编程的思想和C++几乎一样,所以需要更多的关注Java的一些不同之处. 1.类 1.1 在类这一块,除了基本的成员变量,成员方法,构造函数 ...
- linux-网络数据包抓取-tcpdump
用法格式: tcpdump [-i 网卡] [选项] '表达式' 选项说明如下: -i:interface 监听的网卡. -nn:表示以ip和port的方式显示来源主机和目的主机,而不是用主机名和 ...
- Spark集群搭建_Standalone
2017年3月1日, 星期三 Spark集群搭建_Standalone Driver: node1 Worker: node2 Worker: node3 1.下载安装 下载地址 ...
- Flume-ng源码解析之启动流程
今天我们通过阅读Flume-NG的源码来看看Flume的整个启动流程,废话不多说,翠花,上源码!! 1 主类也是启动类 在这里我贴出Application中跟启动有关的方法,其他你们可以自己看源码,毕 ...