JAVA课程设计——团队博客


1. 团队名称、团队成员介绍(需要有照片)

团队名称:“小羊吃蓝莓”小游戏
团队成员介绍:
成员 班级 学号
廖怡洁 网络1513 201521123067
黄晓杨 网络1513 201521123071

2. 项目git地址

https://git.oschina.net/yjliao/javakechengsheji.git

3. 项目git提交记录截图(要体现出每个人的提交记录、提交说明),老师将点击进去重点考核。

4. 项目功能架构图与主要功能流程图

项目功能架构图

主要功能流程图

5. 项目运行截图

5.1 游戏主界面

5.2 游戏规则界面

5.3 游戏历史记录界面

5.4 游戏运行界面

6. 项目关键代码(不能太多)

public void actionPerformed(ActionEvent e) {
if(e.getSource() == exit){
System.exit(0); //退出的监听事件
}
if(e.getSource() == begin){
SheepFrame s=new SheepFrame();//点“开始”后,出现一个新界面,作为游戏界面
s.setFrame();
}
if(e.getSource() == record){
TxtFrame t = new TxtFrame();
}
if(e.getSource() == rule){
RuleFrame r = new RuleFrame(); //点击“规则”后,出现一个新界面
r.setFrame();
}
} class TxtFrame extends JFrame {
TextArea text = new TextArea();
public TxtFrame() {
super("历史记录");
add(text);
readFile();
}
public void readFile() {
try {
File file = new File(fileName);
FileReader readIn = new FileReader(file);
char[] content = readIn.read();
readIn.close();
text.setText(new String(content));
}
catch (IOException e) {
System.out.println("Error Opening file");
}
}
} public void init() {
for (int i = 0; i < 3; i++) {
int x = rand.nextInt(30) + 2;//随机产生横坐标
int y = rand.nextInt(30) + 2;//随机产生纵坐标
if (i == 0) {
this.food1 = new Coordinate(x * 20, y * 20, SheepFrame.S_STOP);
} else if (i == 1) {
this.food2 = new Coordinate(x * 20, y * 20, SheepFrame.S_STOP);
} else {
this.food3 = new Coordinate(x * 20, y * 20, SheepFrame.S_STOP);
}
}
} public int calculateScore() {// 计算分数并将分数存进文件
if (count < 10) score += 10;
else if (count < 20) score += 15;
else score += 20;
try {
FileWriter fw=new FileWriter(filepath,true);
PrintWriter pw=new PrintWriter(fw);
pw.println(score);
} catch (IOException e) {
e.printStackTrace();
}
return score;
} public void ChangeLevel(int num) { // 改变等级
level = num / 100;
if (oldlevel != level) {
speed -= (level * 5);
oldlevel = level;
}
} public void moveAll(){ // 移动整只小羊
Iterator<Coordinate> Sheep = all.iterator();
int step = sheep.nextstep;
while (Sheep.hasNext()) {
Coordinate newsheep = Sheep.next();
switch (newsheep.nextstep) {
case SheepFrame.S_UP: newsheep.y -= 20; break;
case SheepFrame.S_DOWN: newsheep.y += 20; break;
case SheepFrame.S_LEFT: newsheep.x -= 20; break;
case SheepFrame.S_RIGHT: newsheep.x += 20; break;
}
tmp = newsheep.nextstep;
newsheep.nextstep = step;
step = tmp;
}
} public boolean checkEatFood(Coordinate node) { // 判断是否吃到食物
if ((node.x == food1.x) && (node.y == food1.y)) {
int x = rand.nextInt(30) + 2;
int y = rand.nextInt(30) + 2;
this.food1 = new Coordinate(x * 20, y * 20, SheepFrame.S_STOP);
count++;
return true;
}
if ((node.x == food2.x) && (node.y == food2.y)) {
int x = rand.nextInt(30) + 2;
int y = rand.nextInt(30) + 2;
this.food2 = new Coordinate(x * 20, y * 20, SheepFrame.S_STOP);
count++;
return true;
}
if ((node.x == food3.x) && (node.y == food3.y)) {
int x = rand.nextInt(30) + 2;
int y = rand.nextInt(30) + 2;
this.food3 = new Coordinate(x * 20, y * 20, SheepFrame.S_STOP);
count++;
return true;
}
return false;
} public boolean checkEatBody(Coordinate head) {//判断是否咬到自己
Iterator<Coordinate> Sheep = all.iterator();
while (Sheep.hasNext()) {
Coordinate newsheep = Sheep.next();
if (head.x == newsheep.x && head.y == newsheep.y)
return true;
}
return false;
} public boolean checkGround(Coordinate head) {//判断是否撞墙
for (int x = 0; x < 35; x++)
if (head.x == x * 20 && (head.y == 0 || head.y == 34 * 20))
return true;
for (int y = 0; y < 35; y++)
if ((head.x == 0 || head.x == 35 * 20) && head.y == y * 20)
return true;
return false;
}

7. 尚待改进或者新的想法

我们感觉整个游戏的完整度还是挺高的,改进的话我们会考虑增加一个排行榜的功能,使玩家可以方便快捷地看到最佳记录和最差分数,并且使界面以及小羊和蓝莓的形象更加精致些。

8. 团队成员任务分配,团队成员课程设计博客链接(以表格形式呈现),标明组长。

成员 任务分配 博客链接
廖怡洁(组长) 游戏算法编程 链接地址
黄晓杨 游戏界面设计 链接地址

JAVA课程设计——团队博客的更多相关文章

  1. java课程设计团队博客

    java课程设计 本组主题:Calculator(简易计算器) 功能要求:基本实现计算器的功能,可运行加.减.乘.除.求倒数.求平方根.求百分号运算.正负数运算等 一.团队介绍 团队名称:熬夜做不出随 ...

  2. java课程设计团队博客《基于学院的搜索引擎》

    JAVA课程设计 基于学院网站的搜索引擎 对学院网站用爬虫进行抓取.建索(需要中文分词).排序(可选).搜索.数据摘要高亮.分页显示.Web界面. 一.团队介绍 学号 班级 姓名 简介 2016211 ...

  3. Java课程设计---团队博客

    课设题目:购物车系统 题目要求: 1.先建立一个文本文件,定义出自己想要的商品.//也可用数据库以商品编号:商品名称:商品品牌:价格作为文件的内容,中间要求用分号或者分割 2.编写程序,定义一个商品类 ...

  4. JAVA课程设计个人博客 学生成绩管理 201521123023 戴建钊

    1. 团队课程设计博客链接 http://www.cnblogs.com/kawajiang/p/7062407.html 2.个人负责模块或任务说明 我主要负责实现随机生成10万个学生及其姓名.学号 ...

  5. JAVA课程设计个人博客 学生成绩管理 201521123001 张陈东芳

    1. 团队课程设计博客链接 http://www.cnblogs.com/kawajiang/p/7062407.html 2.个人负责模块或任务说明 我主要负责实现学生信息的添加功能.学生成绩的录入 ...

  6. JAVA课程设计个人博客 学生成绩管理 201521145048 林健

    1. 团队课程设计博客链接 http://www.cnblogs.com/kawajiang/p/7062407.html 2.个人负责模块或任务说明 本人主要负责支持用户登录.验证操作,显示设计界面 ...

  7. JAVA课程设计个人博客 学生基本信息管理 201521123117 李心宇

    1. 团队课程设计博客链接 http://www.cnblogs.com/ll321/p/7067598.html 2.个人负责模块或任务说明 ①主要有三个界面的设计,包括:登录界面,功能选择界面还有 ...

  8. JAVA课程设计个人博客 学生成绩管理 201521123014 黄绍桦

    1. 团队课程设计博客链接 http://www.cnblogs.com/kawajiang/p/7062407.html 2.个人负责模块或任务说明 本人主要负责DAO模式.添加和修改学生的信息功能 ...

  9. JAVA课程设计——团队(&个人)博客

    JAVA课程设计--团队(&个人)博客 1. 团队名称.团队成员介绍(需要有照片) 团队名称:是独立小分队啦 团队成员介绍:包梦榕 网络1513 201521123068 2. 项目git地址 ...

随机推荐

  1. python伪装浏览器爬虫

    待完善 import urllib2,urllib,cookielib urllib.getproxies_registry=lambda:{} request=urllib2.Request(&qu ...

  2. python编程基础—正则表达式

    正则表达式 正则表达式就是描述字符串排列的一套规则.利用正则表达式可以做很多事情,主要用于字符串的匹配 在实际项目中,我们经常需要找到某一类符合某种格式的信息,此时,我们可以观察这些数据的规律,然后将 ...

  3. kali linux 2.0下搭建DVWA渗透测试演练平台

    DVWA (Dam Vulnerable Web Application)DVWA是用PHP+MySQL编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序.包含了SQL注入.XSS.盲注等常 ...

  4. Go语言结构体(struct)

    Go 语言结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型. 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合. 结构体表示一项记录,比如保存图 ...

  5. Spring框架解析

    在生活中我们会有很多依赖关系,我要写一个笔记,就要有本子,笔,两种物品,还有当事人我,一共三个对象. 1.本子:可以再上面写字,这是他是属性,可被书画: 2.笔:可以在很多东西上写写画画:这也是他的属 ...

  6. Netty SSL安全配置

    Netty SSL安全配置 [TOC] 摘要 在研发蜂鸟部署平台的过程中,涉及到平台网关和前置agent的通信加密,虽然目前软件在内网中,但是由于蜂鸟平台和agent的特殊性,一旦被控制,部署的软件就 ...

  7. 一个想法照进现实-《IT连》创业项目:聊聊最近两三事

    今天打算写一篇断流水式的作文,哈,不按常规的写格式文了. 话说创业到现在,也快近半年了,时间那是飘的一个字:快! 从设想的很多很远,到被人不断告知要单点突破:从美好的远景,到现实艰难的执行:创业更像是 ...

  8. Brackets 1.8 开源+免费的Web前端网页文本编辑工具

    Brackets 1.8 开源+免费的Web网页文本编辑工具   -------------->> ---------------------- A modern, open source ...

  9. 读书笔记--C陷阱与缺陷(二)

    第二章 1. 理解函数声明 书中分析了复杂的类型声明方式,也说明了使用typedef声明会更好理解,推荐大家使用typedef进行函数声明. 书中类型分析一层一层挖掘,让读者可以理解多层嵌套的类型含义 ...

  10. jeecg 3.7.1 新版功能,集群定时任务动态发布模块 使用规则

    jeecg 3.7.1  集群定时任务动态发布模块 使用规则   新版特性:    支持集群定时任务,支持分布式. 菜单路径: 系统监控-->定时任务 字段说明: 任务ID.任务说明:自定义即可 ...