HeyWeGo第五周项目总结

HeyWeGo第五周项目总结

项目内容

使用java程序开发一款扫雷游戏

游戏项目规划:

  1. 确定游戏中方块格子的个数
  2. 确定游戏中地雷的个数(初始10个),完成布雷
  3. 计算每个方块周围的雷数,在方块周围本身没有地雷的情况下,统计周围地雷的个数
  4. 若周围没有地雷则翻开周围的空白方格,直到周围有附近地雷的格子
  5. 设计一个检测是否挖完所有的雷的方法
  6. 设定左键点击为翻开
  7. 设定右键点开为标记

项目进展

整合并调试修改各队员分段编写的代码,游戏已实现,已经修补上周不能右键标记部分。

完整代码

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class frame1
extends JFrame {
JTextField text;
JLabel nowBomb, setBomb;
int BombNum, BlockNum; // 当前雷数,当前方块数
int rightBomb, restBomb, restBlock; // 找到的地雷数,剩余雷数,剩余方块数

JButton start = new JButton(" 开始 ");
JPanel MenuPanel = new JPanel();
JPanel bombPanel = new JPanel();
Bomb[][] bombButton;

JPanel c;
BorderLayout borderLayout1 = new BorderLayout();
GridLayout gridLayout1 = new GridLayout();
public frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
}

private void jbInit() throws Exception {
c = (JPanel) getContentPane();
setTitle("扫雷");
c.setBackground(Color.WHITE);
MenuPanel.setBackground(Color.GRAY);
c.setLayout(borderLayout1);
setSize(new Dimension(700, 700));
setResizable(false);

BlockNum = 144;
BombNum = 10;
text = new JTextField("10 ", 3);
nowBomb = new JLabel("当前雷数" + ":" + BombNum);
setBomb = new JLabel("设置地雷数");

MenuPanel.add(setBomb);
MenuPanel.add(text);
MenuPanel.add(start);
MenuPanel.add(nowBomb);
c.add(MenuPanel, java.awt.BorderLayout.SOUTH);

bombPanel.setLayout(gridLayout1);
gridLayout1.setColumns( (int) Math.sqrt(BlockNum));
gridLayout1.setRows( (int) Math.sqrt(BlockNum));
bombButton = new Bomb[ (int) Math.sqrt(BlockNum)][ (int) Math.sqrt(BlockNum)];
for (int i = 0; i < (int) Math.sqrt(BlockNum); i++) {
for (int j = 0; j < (int) Math.sqrt(BlockNum); j++) {
bombButton[i][j] = new Bomb(i, j);
//bombButton[i][j].setSize(10, 10);
bombButton[i][j].setFont(new Font("", Font.PLAIN, 14));//设置字体大小

bombButton[i][j].setForeground(Color.white);

bombPanel.add(bombButton[i][j]);
}
}
c.add(bombPanel, java.awt.BorderLayout.CENTER);

}
}

程序截图

成员贡献

2014336张子扬

整理游戏思路,搜集资料,编写自己负责部分的代码并进行分析。

20145237方浩南

对项目现状提出建议和意见,编写自己负责部分的代码并分析。

20145321曾子誉

编写自己负责部分的代码,汇总整理各代码段并负责更新本周的博客。

20145225唐振远

编写自己负责部分的代码并分析,对目前整理后的总代码修正和改进。

时间: 2024-10-14 20:12:16

HeyWeGo第五周项目总结的相关文章

十五周 项目1 工资数据的输入

/* 输入员工工资1000-10000之间,并按从大到小输出*/ #include <iostream> using namespace std; int main( ) { double salarys[500]; int n=0; double t; while(cin>>salarys[n]) { n++; //从cin流读取数据 } //将n名职工的工资排序后输出 for(int i=0; i<n; i++) for(int j=0; j<n-1; j++) {

第五周项目四 静态成员应用

[项目4-静态成员应用] 设计含有静态数据成员和成员函数的Time类.静态数据成员是类中所有的对象共有的数据,在下面的设计中,时钟要采用12小时制,还是要使用24小时制,显示时,不足两位的数字前是否前导0,都是"影响全局"的设置,适合作为类中的静态数据成员. [cpp] view plaincopyprint? class Time{ public: Time(int=0,int=0,int=0); void show_time( ); //根据is_24和from0,输出适合形式-2

第五周项目四 -静态成员应用 由老师版本的完善版

[项目4-静态成员应用] 设计含有静态数据成员和成员函数的Time类.静态数据成员是类中所有的对象共有的数据,在下面的设计中,时钟要采用12小时制,还是要使用24小时制,显示时,不足两位的数字前是否前导0,都是"影响全局"的设置,适合作为类中的静态数据成员. [cpp] view plaincopyprint? class Time{ public: Time(int=0,int=0,int=0); void show_time( ); //根据is_24和from0,输出适合形式-2

第五周项目2-对象作为数据成员

回想Engineer类的数据成员,有眼镜.背包等.某Engineer的眼镜.背包,是Glass.Bag类的对象.类中的数据成员,其类型可以是简单类型,也可以是类.通过这种方式,将某些类组合到另外的类中,当作其中的一个"部件"使用. 本项目设计一个三角形类,其数据成员不再是三角形三条边的边长,而是三角形的三个顶点.利用设计的三角形类,输入三角形的三个顶点,求出其面积.周长,并判断其是否为直角三角形和等腰三角形. 提示:(1)这个问题需要用到两个类,顶点类参照项目1中的CPoint类:(2

第五周项目3-用多文件组织多个类的程序

将项目2用"一个项目多个文件"的方式实现,其中两个类的声明放在同一个.h文件中,每个类的成员函数分别放一个文件,main()函数用一个文件.体会这样安排的优点. class.h #ifndef CLASS_H_INCLUDED #define CLASS_H_INCLUDED class CPoint { private: double x; // 横坐标 double y; // 纵坐标 public: CPoint(double xx=0,double yy=0); double

第五周 项目二-对象作为数据成员

问题 回想Engineer类的数据成员,有眼镜.背包等.某Engineer的眼镜.背包,是Glass.Bag类的对象.类中的数据成员,其类型可以是简单类型,也可以是类.通过这种方式,将某些类组合到另外的类中,当作其中的一个"部件"使用. 本项目设计一个三角形类,其数据成员不再是三角形三条边的边长,而是三角形的三个顶点.利用设计的三角形类,输入三角形的三个顶点,求出其面积.周长,并判断其是否为直角三角形和等腰三角形. 提示:(1)这个问题需要用到两个类,顶点类参照项目1中的CPoint类

第五周项目1-体验常成员函数

设计平面坐标点类,计算两点之间距离.到原点距离.关于坐标轴和原点的对称点等.在设计中,由于求距离.求对称点等操作对原对象不能造成任何改变,所以,将这些函数设计为常成员函数是合适的,能够避免数据成员被无意更改. /* * Copyright (c) 2015,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:Demo.cpp * 完成时间:2015年04月08日 * 版本号:v1.0 */ #include <iostream> #include <

第五周项目4-静态成员应用

设计含有静态数据成员和成员函数的Time类.静态数据成员是类中所有的对象共有的数据,在下面的设计中,时钟要采用12小时制,还是要使用24小时制,显示时,不足两位的数字前是否前导0,都是"影响全局"的设置,适合作为类中的静态数据成员. /* * Copyright (c) 2015,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:Demo.cpp * 完成时间:2015年04月08日 * 版本号:v1.0 */ #include <iost

第五周 项目四-静态成员应用

问题 设计含有静态数据成员和成员函数的Time类.静态数据成员是类中所有的对象共有的数据,在下面的设计中,时钟要采用12小时制,还是要使用24小时制,显示时,不足两位的数字前是否前导0,都是"影响全局"的设置,适合作为类中的静态数据成员. 代码: #include <iostream> using namespace std; class Time{ public: Time(int h=0,int m=0,int s=0):hour(h),minute(m),second