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程序做出一个五子棋游戏来,并且努力把它做完了。是一次很大的挑战,同时对我来说收获也很多。

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 托马斯微积分什么时候学_普林斯顿微积分好在哪

    托马斯微积分什么时候学_普林斯顿微积分好在哪托马斯微积分和微积分学教程Samewithlinearalgebra,calculusisalsocloselyrelatedtoprogramming.与线性代数一样,微积分也与编程紧密相关。Youmightknowthefirsttwocoursesinthefirstgradeofcomputerscienceandengineerin…

    2025年7月29日
    4
  • 圆柱体积计算公式是_锥形体积公式

    圆柱体积计算公式是_锥形体积公式圆柱体积计算公式有哪些π是圆周率,一般取3.14r是圆柱底面半径h为圆柱的高圆柱体体积=底面积×高V=πr2h=V=sh还可以是v=1/2ch×r侧面积的一半×半径2圆柱体积相关公式圆柱的侧面积=底面圆的周长×高圆柱的表面积=上下底面面积+侧面积圆柱的体积=底面积×高3圆柱的体积怎么计算求圆柱体积先要求圆基的半径。两个圆都会做,因为它们大小相同。如果你已经知道半径,你可以继续前进。如果你不知道半径…

    2022年9月19日
    1
  • Linux下mysql数据库安装教程

    Linux下mysql数据库安装教程

    2021年8月23日
    66
  • AcceptEx浅析

    AcceptEx浅析AcceptEx函数的定义如下:BOOLAcceptEx(  SOCKETsListenSocket,       SOCKETsAcceptSocket,       PVOIDlpOutputBuffer,       DWORDdwReceiveDataLength,   DWORDdwLocalAddressLength,   DW

    2022年9月29日
    3
  • matplotlib 中的subplot的用法「建议收藏」

    matplotlib 中的subplot的用法「建议收藏」一个figure对象包含了多个子图,可以使用subplot()函数来绘制子图:(首先我没有想明白为啥会有这么多的内容来介绍这一个函数,后来知道了原来这个函数还真的挺多的内容)言简意赅:首先,它的

    2022年8月1日
    10
  • Java内存管理-掌握虚拟机类加载器(五)「建议收藏」

    勿在流沙筑高台,出来混迟早要还的。做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!上一篇介绍虚拟机类加载机制,讲解了类加载机制中的三个阶段,分别是:加载、连接(验证、准备、解析)、初始化 ,知道了类加载的机制。下面我们就要知道类到底是通过什么方式加载到内存中的,也就是本文要介绍的类加载器,类加载器就是加载类的信息到内存中。本文地图 : 一、什么是类加载器(…

    2022年2月28日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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