• 回答数

    7

  • 浏览数

    182

哈韩哈哈规格化
首页 > 毕业论文 > 基于java扫雷的毕业论文

7个回答 默认排序
  • 默认排序
  • 按时间排序

november1985

已采纳

你好, 计算机专业的毕设一般分为这两部分: 源码+论文

首先说选题, 毕设课题以javaweb居多, 框架可以选用ssm, ssh, 或者springboot, 可以选做一些管理系统, 下面是一些常见的命题

等等, 这些课题可以按照你自己的实力做, 如果技术好的化, 或者有一些成品, 可以做的复杂一些, 比如前端可以layui优化一下, 权限系统采用shiro来做等等

论文方面比较简单但是比较麻烦, 各种文库都有很多javaweb的论文,但是直接拷贝的化会过不了查重系统, 需要你自己认真的重构调整一下

165 评论

悦悦哥哥

*/

//清楚原来的方形

public void clearoldretangle(Graphics D gg int c int r)

{

if(hasclickbomb)

diamonds[r][c] clickshow(gg r c);

else

{

if(!diamonds[r][c] isOpened())

diamonds[r][c] draw(gg r c);

else

diamonds[r][c] clickshow(gg r c);

}

}

/*

//清除原来的圆形

public void clearOval(Graphics D gg int c int r)

{

if(c

{

for(int y=r ;y

{

if(y< )continue;

for(int x=c ;x

{

if(x>= )

{

if(hasclickbomb)

diamonds[y][x] clickshow(gg y x);

else

{

if(!diamonds[y][x] isOpened())

diamonds[y][x] draw(gg y x);

else

diamonds[y][x] clickshow(gg y x);

}

}

}

}

}

}

*/

//设置炸弹

public void buildBombInMap()

{

int x= y= ;

for(int i= ;i

{

x=(int)(Math random()*col);

y=(int)(Math random()*row);

if(!diamonds[y][x] i *** omb())

{

diamonds[y][x] setbomb();

i++;

}

}

countRoundBomb();//计算炸弹

}

//计算附近的炸弹

public void countRoundBomb()

{

for(int i= ;i

{

for(int j= ;j

{

if(diamonds[i][j] i *** omb())

continue;

else

{

//开始计算每个附近的炸弹

int count= ;

for(int k=i ;k

{

if(k< )continue;

for(int l=j ;l

{

if(l>= )

{

if(diamonds[k][l] i *** omb())

count++;

}

}

}

if(count!= )

diamonds[i][j] setShowByte(String valueOf(count));

}

}

}

}

//踩中地雷后全部显示

public void showAllDiamonds(int ro int co)

{

Graphics D gg=(Graphics D)this getGraphics();

gg setRenderingHint(RenderingHints KEY_ANTIALIASING RenderingHints VALUE_ANTIALIAS_ON);

for(int r= ;r

{

for(int c= ;c

{

if(!diamonds[r][c] i *** omb())

diamonds[r][c] setFillColor(Color white);

else if(diamonds[r][c] i *** omb())

diamonds[r][c] setFillColor(Color red);

diamonds[r][c] clickshow(gg r c);

}

}

}

//重载paint

public void paint(Graphics g)

{

Graphics D gg=(Graphics D)g;

gg setRenderingHint(RenderingHints KEY_ANTIALIASING RenderingHints VALUE_ANTIALIAS_ON);

for(int y= ;y

{

for(int x= ;x

{

if(hasclickbomb)

diamonds[y][x] clickshow(gg y x);

else

{

if(!diamonds[y][x] isOpened())

diamonds[y][x] draw(gg y x);

else

diamonds[y][x] clickshow(gg y x);

}

}

}

gg dispose();

}

}

Diamonds java文件

import java awt BasicStroke;

import java awt Color;

import java awt Graphics;

import java awt Graphics D;

import java awt RenderingHints;

/**

* 单元方格类

* @author dragon

*

*/

public class Diamonds

{

private Color fillcolor=Color darkGray;

private Color rimcolor=Color blue;

private boolean bomb=false;

private String showbyte= ;

private int diamondWidth= ;

private boolean opened=false;

private boolean signbomb=false;

public Diamonds(Color c int width)

{

this rimcolor=c;

this diamondWidth=width;

}

public Diamonds(int width)

{

this diamondWidth=width;

}

/**

* 设置是否被标记为炸弹

* dragon

*Sep

* @param b

*/

public void setSignBomb(boolean b)

{

this signbomb=b;

}

public boolean isSignBomb()

{

return this signbomb;

}

/**

* 设置方格的边长

* dragon

*Sep

* @param width

*/

public void setDiamondWidth(int width)

{

this diamondWidth=width;

}

/**

* 返回当前方格的字符串

* dragon

*Sep

* @return

*/

public String getShowByte()

{

return this showbyte;

}

/**

* 设置方格的字符串

* dragon

*Sep

* @param b

*/

public void setShowByte(String b)

{

showbyte=b;

}

/**

* 复位

*/

public void reset()

{

fillcolor=Color DARK_GRAY;

rimcolor=Color blue;

this signbomb=false;

bomb=false;

showbyte= ;

opened=false;

}

/**

* 判断方格是否已经被打开

*/

public boolean isOpened()

{

return this opened;

}

/**

* 打开该方格

*/

public void Opened()

{

this opened=true;

}

/**

* 判断是否是炸弹

*/

public boolean i *** omb()

{

return bomb;

}

/**

* 设置为炸弹

*/

public void setbomb()

{

this bomb=true;

}

/**

* 点击时的显示函数

*/

public void clickshow(Graphics D gg int r int c)

{

gg setStroke(new BasicStroke( f));

if(bomb)

{

if(opened)

this fillcolor=Color red;

gg setColor(this fillcolor);

gg fillRect(c*diamondWidth r*diamondWidth diamondWidth diamondWidth);

gg setColor(this rimcolor);

gg drawRect(c*diamondWidth r*diamondWidth diamondWidth diamondWidth);

gg setColor(Color black);

gg drawOval(c*diamondWidth+diamondWidth/ r*diamondWidth+diamondWidth/ diamondWidth/ diamondWidth/ );

}

else

{

gg setColor(this fillcolor);

gg fillRect(c*diamondWidth r*diamondWidth diamondWidth diamondWidth);

gg setColor(this rimcolor);

gg drawRect(c*diamondWidth r*diamondWidth diamondWidth diamondWidth);

gg setColor(Color black);

gg drawString(showbyte c*diamondWidth+diamondWidth/ r*diamondWidth+diamondWidth* / );

}

}

/**

* 绘画单元格

*/

public void draw(Graphics D gg int r int c)

{

gg setStroke(new BasicStroke( f));

gg setColor(this fillcolor);

gg fillRect(c*diamondWidth r*diamondWidth diamondWidth diamondWidth);

gg setColor(this rimcolor);

gg drawRect(c*diamondWidth r*diamondWidth diamondWidth diamondWidth);

}

/**

* 设置边框颜色

*/

public void setRimColor(Color c)

{

rimcolor=c;

}

/**

* 设置填充颜色

*/

public void setFillColor(Color c)

{

this fillcolor=c;

}

83 评论

喵喵咩咩喔喔

public int time=1000* 60; //60秒倒计时 public boolean running=true;//是否一直运行 JLabel label=new JLable();//显示时间的标签 //启动计时 public void startTimer(){ new (new Runnable(){ public void run(){ while(running){ try{ (1000);//睡一秒 }catch(Exception e){} time--; ((time)); ();// 把你的界面刷新一下if(time<0){//倒计时到零,满足条件 //your code: 游戏失败,做点处理 running=false;//记得置成false否则不退出 } } } }).start(); } 使用时,在你需要使用的时候 调用 startTimer()方法即可 你可以看到, startTimer方法里的线程在不断地改变time的值,每秒减一 所以你需要在你的GUI界面上安装一个 JLabel label,不断地改变label的内容为time就行了

253 评论

南宫style

第一个JAVA文件import .*;import .*;import .*;/** * 显示所有按钮的面板 * @author Administrator * */public class AllButtonPanel extends JPanel implements ActionListener{ private int row;//行数 private int col;//列数 private int mineCount;//地雷数 private MineButton[][] allButtons;//所有按钮public AllButtonPanel(int row,int col,int mineCount){ ; ; ; allButtons=new MineButton[row][col]; createButtons(); createMine(); init(); } private void init(){ (new GridLayout(row,col)); for(int i=0;i<;i++){ for(int j=0;j=0&&j-1>=0){ num+=(allButtons[i-1][j-1].getCountOfSurroundMines()==-1?1:0); } if(i-1>=0){ num+=(allButtons[i-1][j].getCountOfSurroundMines()==-1?1:0); } if(i-1>=0&&j+1=0){ num+=(allButtons[i][j-1].getCountOfSurroundMines()==-1?1:0); } if(j+1=0){ num+=(allButtons[i+1][j-1].getCountOfSurroundMines()==-1?1:0); } if(i+1<){ num+=(allButtons[i+1][j].getCountOfSurroundMines()==-1?1:0); } if(i+1<=0&&j-1>=0){ showEmpty(i-1,j-1); } if(i-1>=0){ showEmpty(i-1,j); } if(i-1>=0&&j+1=0){ showEmpty(i,j-1); } if(j+1=0){ showEmpty(i+1,j-1); } if(i+1<){ showEmpty(i+1,j); } if(i+1<0){ (allButtons[i][j].getCountOfSurroundMines()+""); (); (true); } }}第二个JAVA文件import .*;import .*;import .*;/** * 扫雷游戏主界面 * @author * */public class CleanMine extends JFrame implements ActionListener{ private JLabel text1,text2; public static JLabel remainMine;//剩余地雷数 private JLabel time;//消耗时间 private JButton reset;//重新开始 private JPanel center; private int row,col,mine;public CleanMine(){ text1=new JLabel("剩余地雷:"); text2=new JLabel("消耗时间:"); remainMine=new JLabel("10"); time=new JLabel("0"); reset=new JButton("重新开始"); (this); JMenuBar bar=new JMenuBar(); JMenu game=new JMenu("游戏"); JMenu help=new JMenu("帮助"); JMenuItem item; (item=new JMenuItem("开局"));(this); (); ButtonGroup bg=new ButtonGroup(); (item=new JCheckBoxMenuItem("初级",true));(item);(this); (item=new JCheckBoxMenuItem("中级"));(item);(this); (item=new JCheckBoxMenuItem("高级"));(item);(this); (item=new JCheckBoxMenuItem("自定义..."));(item);(this); (); (item=new JMenuItem("退出"));(this); (item=new JMenuItem("查看帮助"));(this); (item=new JMenuItem("关于扫雷..."));(this); (game); (help); (bar); init(); } private void init(){ JPanel north=new JPanel(); (text1); (remainMine); (reset); (text2); (time); (north,); ; ; ; restart(); (); new Thread(){ public void run(){ while((())>0){ try { (1000); } catch (InterruptedException e) { (); } (((())+1)+""); } } }.start(); }public void actionPerformed(ActionEvent e) { if(().equals("初级")){ ; ; ; restart(); return; } if(().equals("中级")){ ; ; ; restart(); return; } if(().equals("高级")){ ; ; ; restart(); return; } if(().equals("重新开始")){ restart(); return; } } private void restart(){ if(center!=null){ (center); } center=new AllButtonPanel(row,col,mine); (center,); (mine+""); ("0"); (col*30,row*30+10); (false); (true); } /** * @param args */ public static void main(String[] args) { new CleanMine(); }}第三个JAVA文件.import ;import .*;public class MineButton extends JButton { private int row; private int col; private boolean cleared=false; private int countOfSurroundMines;//周围地雷数,如果本按钮是雷,则为-1; public MineButton(int row,int col){ ; ; (new Insets(0,0,0,0)); } public int getCol() { return col; } public int getRow() { return row; } public boolean isCleared() { return cleared; } public void setCleared(boolean cleared) { = cleared; } public int getCountOfSurroundMines() { return countOfSurroundMines; } public void setCountOfSurroundMines(int countOfSurroundMines) { = countOfSurroundMines; }}全部编译以后就可以执行了

284 评论

大馋猫皮皮

你也太那个了吧,给你源代码,你还要论文!!那你还是到那种收费的网站上下一个好了,不然谁有空给你写论文啊!!!

98 评论

王小旭zx

可以做啊。你要做成什么样子的,需要提供素材?

326 评论

adamjackjason

呃,你应该是初学的吧?要多少变量,多少函数都是看自己的,程序这东西呢,你知道他的原理了只要你会程序语言 写代码就很简单的,思想才是最重要的,自己要学会思考,不然就只能停留在入口,你肯定玩过扫雷的吧,你先要搞清楚扫雷怎么玩,他的规则是什么,想要学好程序设计就要有思考并解决问题的能力。你也可以从网上找源代码来看一下。

97 评论

相关问答

  • 关于基于java的毕业论文题目

    jsp的的技术框架有很多, 我最近在给一些同学写代码大部分都是javaweb的, 大部分都是s2sh框架或者ssm框架可以做各类管理系统 电商系统 二手交易平台

    天天爱小狐狸 5人参与回答 2023-12-06
  • 基于贪吃蛇java毕业论文

    学生课程设计(论文)题 目: 贪吃蛇游戏程序设计指导学生姓名: 学 号:200910801001所在院(系): 计算机学院专

    肖小月半仔 3人参与回答 2023-12-10
  • 基于java拼图小游戏的毕业论文

    一切一切…网上搜搜…给我分吧…回答者: 不知道吧哈哈哈 - 高级魔法师 七级 5-11 08:53这个不知道吧哈哈哈就是垃圾厚脸皮跟人家要分

    米米狗狗 6人参与回答 2023-12-09
  • 基于java愤怒小鸟的毕业论文

    2011年6月的编程语言排行榜Lua语言一军突起,一举进入前十名。这与一年前苹果决定在iOS系统上使用Lua语言密不可分。但是,你了解如何用Lua语言在iOS上

    sunshieeos 2人参与回答 2023-12-10
  • 毕业论文基于java坦克大战

    就写写需求分析,可行性分析,概要设计,详细设计,程序结构,程序功能,重点技术,结论

    瞪样的胖子 5人参与回答 2023-12-06