java课程设计培训班_Java课程设计「建议收藏」

java课程设计培训班_Java课程设计「建议收藏」课程设计——博客作业五子棋(201521123009张晨晨)•团队课程设计博客链接•个人负责模块或任务说明五子棋的绘制棋盘的绘制重新开始功能的实现悔棋功能的实现•自己的代码提交记录截图•自己负责模块或任务详细说明(1)五子棋的绘制,棋盘的绘制publicvoidpaint(Graphicsg){setBackground(newColor(209,167,78));for(inti…

大家好,又见面了,我是你们的朋友全栈君。

课程设计——博客作业五子棋(201521123009 张晨晨)

•团队课程设计博客链接

•个人负责模块或任务说明

五子棋的绘制

棋盘的绘制

重新开始功能的实现

悔棋功能的实现

•自己的代码提交记录截图

7f53e0f31a34107e853d8cbd325dec6d.png

•自己负责模块或任务详细说明

(1)五子棋的绘制,棋盘的绘制

public void paint(Graphics g){

setBackground(new Color(209, 167, 78));

for(int i=0;i

g.setColor(Color.BLACK);

g.drawLine(20, 20+i*gap, 640-20, 20+i*gap);

}

for(int i=0;i

g.setColor(Color.BLACK);

g.drawLine(20+i*gap, 20, 20+i*gap, 640-20);

}

for(int i=0;i

for(int j=0;j

if(Chess[i][j]==’1′){

g.setColor(Color.WHITE);

g.fillOval(5+i*gap, 5+j*gap, 30, 30);

g.drawOval(5+i*gap, 5+j*gap, 30, 30);

//a++;

}

if(Chess[i][j]==’2′){

g.setColor(Color.BLACK);

g.fillOval(5+i*40, 5+j*40, 30, 30);

g.drawOval(5+i*40, 5+j*40, 30, 30);

//a++;

}

}

}

我们棋盘的绘制选择直接绘制,棋子就是通过setColor,fillOval,.drawOval直接在棋盘上画出对应大小的圆

不过由于是直接绘制的,棋子的效果看起来并不大美观,而且有点空缺。

38797d6729a81170aa8fe30a2941cc36.png

改进的话,希望可以把棋子改成棋子的图片,下棋的时候直接覆盖上去。

(2)重新开始功能的实现

public void restartGame(){

for(int i=0;i

for(int j=0;j

Chess[i][j]=’0′;

}

}

isBlack=true;

gameOver=false;

repaint();

}

要重新开始,则使棋子清空,使初始值为黑子,gameOver为false,并通知系统重新绘制

具体效果如下

e964a0952c51edfedcf260b43836c6d8.png

d6968d6afc80f4fe2d39cb664ab4667a.png

(3)悔棋功能的实现

public void goback(){

flag = true;

System.out.println(“清除”+click_x+click_y);

int chess_x = Math.round((float)(click_x-20)/gap);

int chess_y = Math.round((float)(click_y-20)/gap);

click_X = chess_x;

click_Y = chess_y;

repaint();

Chess[chess_x][chess_y] = ‘0’;

}

建立flag来判断是否在悔棋过程中。

具体效果如下:

fff4d16673d6caa4536642d2d6c8fc1c.png

46d7e30f38c45a0c83ce724d0e9570d0.png

•课程设计感想

这次课程设计对我来说是一次很大的挑战,因为我能力有限,以前也只是仅限于在eclipse的运行界面直接运行。第一次尝试用JAVA程序做出一个五子棋游戏来,并且努力把它做完了。是一次很大的挑战,同时对我来说收获也很多。

我们在做出简单的棋盘后就会想要去更丰富自己的功能,让自己完善。添加联机对战,人机对战,选择自己的执子方等等。并且实现对界面的优化,使界面美观。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157172.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • mysql varchar列转成integer然后获取最大值。[通俗易懂]

    mysql varchar列转成integer然后获取最大值。[通俗易懂]https://blog.csdn.net/c_henjinxing521/article/details/51788963上面的大神写的办法可以。selectMAX(CAST(userNoasSIGNEDINTEGER))fromuserInfo;或者selectMAX(CAST(userNoasUNSIGNEDINTEGER))fromus…

  • android开机动画多长时间_Android开机动画及黑屏[通俗易懂]

    android开机动画多长时间_Android开机动画及黑屏[通俗易懂]platform:RK3399OS:Android7.11.Android各阶段动画Android动画主要分为关机充电动画和开机动画;开机动画又分为三个阶段:uboot阶段动画、kernel阶段动画、Android阶段动画。1.1uboot开机动画Uboot阶段由于大部分环境和驱动没有准备好,所有此阶段显示直接采用的framebuffer;而且严格来说只是图片,并不是动画。要在uboot阶…

  • mac配置vscodec语言环境_vscodejava环境变量配置

    mac配置vscodec语言环境_vscodejava环境变量配置登陆终端输入java-version查看java的版本输入java-verbose查看java的安装环境路径没有的话,自己去搜一下怎么安装java的jdk,记得选1.18版本安装路径在这里安装完jdk后,输入/usr/libexec/java_home-V查看jdk版本复习什么是JDKJavaDevelopmentKit开发工具包包含Java开发工具和JREjava开发工具:编译工具javac.exe,jar.exe打包工具等。JRE=JVM+javaS

  • 关于HashMap扩容机制

    关于HashMap扩容机制HashMap的底层有数组+链表(红黑树)组成,数组的大小可以在构造方法时设置,默认大小为16,数组中每一个元素就是一个链表,jdk7之前链表中的元素采用头插法插入元素,jdk8之后采用尾插法插入元素,由于插入的元素越来越多,查找效率就变低了,所以满足某种条件时,链表会转换成红黑树。随着元素的增加,HashMap的数组会频繁扩容,如果构造时不赋予加载因子默认值,那么负载因子默认值为0.75,数组扩容的情况如下:1:当添加某个元素后,数组的总的添加元素数大于了数组长度*0.75(默认,也可自己设

  • 【iOS开发-图层】图层的获取与一些属性

    【iOS开发-图层】图层的获取与一些属性

  • 手把手教你上手Proteus(下载安装+仿真51单片机程序)

    手把手教你上手Proteus(下载安装+仿真51单片机程序)Proteus软件的功能很强大,它集合了电路仿真、PCB设计、虚拟模型仿真,不过本文只介绍Proteus的安装和它的电路仿真功能(单片机及外设)。本文介绍的Proteus版本为Proteus8.9SP2Pro(免破解版本)

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号