Java SE 实训——五子棋游戏Java编程设计

实训目的:

本实训开设于《Java程序设计》后,是一门工程性和实践性很强的集中实践环节课程,主要培养学生深入理解面向对象分析与设计的方法,运用JAVA语言编写程序掌握JAVA的事件处理机制多线程技术,巩固和强化理论教学内容,使学生能够灵活运用JAVA编写基于网络、图形用户界面和事件处理的程序,培养和提高学生的编程能力及分析问题和解决问题的实际能力,初步具有开发小型软件的能力。

  • 项目概述

本游戏项目采用750*433像素大小的窗体,550*430像素大小的背景图,“开始”和“认输”按钮,一个游戏信息栏,先有黑棋先行,同色的棋子在棋盘上形成横,竖,斜形成“五子相连”时,该色棋获胜,若一方在游戏过程中认输,则另一方获胜。

  • 开发工具及相关技术

开发工具:Eclipse/IDEA

 

相关技术:Java图形界面设计(JFrame类,MouseListener接口,字符输入、输出流、事件处理,类的继承与接口的实现,方法的重写,条件、循环结构

下面是我的五子棋项目的代码截图和相关介绍:

首先我的项目创建了两个类:MyJFrame类和Test类,在MyJFrame类定义了窗体方法myJFrame();绘制方法paint();判断输赢的方法WinLose();初始化游戏的方法Initialize();

  1. 首先创建一个公开类MyFrame,同时继承JFrame类,实现MousaListener接口,利用

MouseListener接口中的五个方法,重写这五个方法:其中在“鼠标按下”这个方法里,具体控制和“监听”了鼠标点击的位置,游戏是否开始,键盘上是否有棋子,以及判断“开始”和“认输”按钮的开与关。

 

 2.进行五子棋游戏项目相关参数值的初始化:主要是设置合理的棋盘的位置和宽高,以及

“开始”和“认输”按钮的位置与宽高,同时声明一个15*15的二维数组用于存储黑白棋子,并设置两个标志变量:qc(用于后续代码对黑白棋子的判断以及棋盘上是否有棋),qn

用于判断棋盘上同一个位置的棋子是否重复。

3.创建一个窗体方法myJFrame(),在这个方法中,根据张弦老师给定的背景图片的大小(550*430像素),设置窗体的大小为750*433像素,将图片放在窗体的左边,右边用于制作游戏的“开始”和“认输”两个按钮,接着根据创建一个窗体的基本思路,设定窗体的标题“五子棋,设置窗体的大小不可调控,设置窗口关闭方式为关闭窗口同时结束程序,设置窗体出现的默认位置相对于屏幕居中,设置窗体在屏幕上显示,同时获取屏幕的宽度和高度。

4.将自定义背景图片导入窗体

5.在窗体的右边绘制“开始游戏”按钮、“认输”按钮和游戏信息栏(用于显示当前归黑/白出棋,在g2画笔中,调用setColor()设置画笔颜色为白色,调用fillRect()绘制一个实心的矩形,调用setFont()设置画笔字体,同时更换画笔颜色为黑色,调用drawString()在矩形中绘制“开始游戏”的字样;同样的方法,调用四个方法setColor()、fillRect()、setFont()、drawString(),绘制出“认输”按钮和“游戏信息栏”的区域。

绘制棋盘上的格线和标记点 

绘制横线: 如上图中,在初始化参数值时,最左上方点的坐标是(30,40),在第一个for循环中,调用drawLine()方法,当x=0时画笔从(30,40)——(490+30,40)之间绘制第一条黑色横线,同时变量x每次增加35个像素,关于变量x的最大值385像素,我们有这样的规定:当x自加到385像素,也就是第11次画横线时,如上图,最左下方点的坐标为(30,385+40)——(490+30,385+40),由于整体窗体的高度为433像素(>385+40),使得每条横线绘制在整个窗体的内部。

绘制竖线:同理,如上图中,在初始化参数值时,最左上方点的坐标是(30,40),在第二个for循环中,再调用draw()方法,当x=0时,画笔从(30,40)——(30,385+40)之间绘制第一条黑色竖线,同时变量x,也是每次增加35个像素,当x=最大值qw=490像素时,此时也就是第14条竖线时,此时画笔从(490+30,40)——(490+30,385+40)之间画最后一条黑色竖线,由于(490+30)<整个窗体的宽度750像素,满足每条竖线都绘制在整体窗体的内部。

下面是游戏的运行截图:

 

五子棋游戏项目参考代码:(MyJFrame类、Test类)

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值