100行左右的java动物类型大作业_求一个100行左右的java编程
展开全部
import java.awt.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class MainClass extends JFrame {
ControlSnake control;
Toolkit kit;
Dimension dimen;
public static void main(String[] args) {
new MainClass("my snake");
}
public MainClass(String s) {
super(s);
control = new ControlSnake();
control.setFocusable(true);
kit = Toolkit.getDefaultToolkit();
dimen = kit.getScreenSize();
add(control);
setLayout(new BorderLayout());
setLocation(dimen.width / 3, dimen.height / 3);// dimen.width/3,dimen.height/3
setSize(FWIDTH, FHEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setVisible(true);
}
public static final int FWIDTH = 315;
public static final int FHEIGHT = 380;
}
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
import java.util.Random;
@SuppressWarnings("serial")
public class ControlSnake extends JPanel implements ActionListener {
Random rand;
ArrayList list, listBody;
String str, str1;
static boolean key;
int x, y, dx, dy, fx, fy, flag;
int snakeBody;
int speed;
public ControlSnake() {
snakeBody = 1;
str = "上下左右方向键控制 P键暂停...";
str1 = "现在的长度为:" + snakeBody;
key = true;
flag = 1;
speed = 700;
rand = new Random();
list = new ArrayList();
listBody = new ArrayList();
x = 5;
y = 5;
list.add(new Point(x, y));
listBody.add(list.get(0));
dx = 10;
dy = 0;
fx = rand.nextInt(30) * 10 + 5;// 2
fy = rand.nextInt(30) * 10 + 5;// 2
setBackground(Color.WHITE);
setSize(new Dimension(318, 380));
final Timer time = new Timer(speed, this);
time.start();
addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == 37) {
dx = -10;
dy = 0;
} else if (e.getKeyCode() == 38) {
dx = 0;
dy = -10;
} else if (e.getKeyCode() == 39) {
dx = 10;
dy = 0;
} else if (e.getKeyCode() == 40) {
dx = 0;
dy = 10;
} else if (e.getKeyCode() == 80) {
if (flag % 2 == 1) {
time.stop();
}
if (flag % 2 == 0) {
time.start();
}
flag++;
}
}
});
}
public void paint(Graphics g) {
g.setColor(Color.WHITE);
g.fillRect(0, 0, 400, 400);
g.setColor(Color.DARK_GRAY);
g.drawLine(3, 3, 305, 3);
g.drawLine(3, 3, 3, 305);
g.drawLine(305, 3, 305, 305);
g.drawLine(3, 305, 305, 305);
g.setColor(Color.PINK);
for (int i = 0; i
g.fillRect(listBody.get(i).x, listBody.get(i).y, 9, 9);
}
g.fillRect(x, y, 9, 9);
g.setColor(Color.ORANGE);
g.fillRect(fx, fy, 9, 9);
g.setColor(Color.DARK_GRAY);
str1 = "现在的长度为:" + snakeBody;
g.drawString(str, 10, 320);
g.drawString(str1, 10, 335);
}
public void actionPerformed(ActionEvent e) {
x += dx;
y += dy;
if (makeOut() == false) {
JOptionPane.showMessageDialog(null, "重新开始......");
speed = 700;
snakeBody = 1;
x = 5;
y = 5;
list.clear();
list.add(new Point(x, y));
listBody.clear();
listBody.add(list.get(0));
dx = 10;
dy = 0;
}
addPoint(x, y);
if (x == fx && y == fy) {
speed = (int) (speed * 0.8);//速度增加参数e68a8462616964757a686964616f31333361326366
if (speed
speed = 100;
}
fx = rand.nextInt(30) * 10 + 5;// 2
fy = rand.nextInt(30) * 10 + 5;// 2
snakeBody++;// 2
} // 2
repaint();
}
public void addPoint(int xx, int yy) {
// 动态的记录最新发生的50步以内的移动过的坐标
// 并画出最新的snakeBody
if (list.size()
list.add(new Point(xx, yy));
} else {
list.remove(0);
list.add(new Point(xx, yy));
}
if (snakeBody == 1) {
listBody.remove(0);
listBody.add(0, list.get(list.size() - 1));
} else {
listBody.clear();
if (list.size()
for (int i = list.size() - 1; i > 0; i--) {
listBody.add(list.get(i));
}
} else {
for (int i = list.size() - 1; listBody.size()
listBody.add(list.get(i));
}
}
}
}
public boolean makeOut() {
if ((x 305 || y > 305)) {
return false;
}
for (int i = 0; i
for (int j = i + 1; j
if (listBody.get(i).equals(listBody.get(j))) {
return false;
}
}
}
return true;
}
}
100行左右的java动物类型大作业_求一个100行左右的java编程相关推荐
- Java课程设计大作业学生管理系统的设计与开发(Java+Mysql)
文章目录 项目目标 项目截图展示 项目Java源程序 项目数据库文件信息 项目结构图设计 系统功能结构图: 软件架构设计 项目目标 这篇文章是Java语言得课程设计大作业记录. 项目由 ...
- java语言程序设计在线作业_中石油北京2018秋 《Java语言程序设计》第二次在线作业...
1 老虎奥鹏 www.aopengzuoye.com 1 对象使用时,下面描述错误的是 A.通过"."运算符调用成员变量和方法 B.通过成员变量的访问权限设定限制自身对这些变量 ...
- java银行管理系统大作业_银行管理系统项目 《JAVA程序设计》课件.doc
银行管理系统 第一部分 案例描述 案例目的 学习面向对象的主要特征和基本概念,包括类.对象.继承.接口.封装.继承.多态.方法的重载和重写.Java的访问修饰符与其它关键字等. 案例难度 ★★★★ 案 ...
- java正则不能输入汉字_求一个正则表达式只输入字母或数字或汉字,要过滤特殊字符...
正则表达式:只能有数字或中文或字母组成 chenzhe_n16292018-09-06 一个正则表达式测试(只可输入中文.字母和数字) u0129242379192015-10-05 js正则表达式限 ...
- Java代码生成同一色系颜色_求大侠帮忙给这段JAVA代码 设置个背景颜色!
换个颜色就成!importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;publicclassInque ...
- java计算长方形面积代码小数_求一个计算正方形面积的Java程序
满意答案 xumei_xumei 2013.09.07 采纳率:51% 等级:12 已帮助:5929人 第一个要求的第(4),是计算圆形面积还是计算正方形面积? 我按计算正方形面积给你做的-- ...
- 打怪游戏Java课程设计_java 课程设计大作业 写的一个RPG游戏(代码+文档)
[实例简介] java 课程设计大作业 写的一个RPG游戏(代码+文档) java 课程设计大作业 写的一个RPG游戏(代码+文档) [实例截图] [核心代码] Rebellion-master ├─ ...
- Java大作业-考试管理系统(GUI)无数据库-Java课程设计
Java课程设计-Java大作业-考试管理系统(GUI)无数据库 题目要求 开发环境 : 程序总功能模块 程序详细设计 使用情况 第一次写这东西有不少错误的地方,题目要求的功能也没有完全实现,以上内容 ...
- 简易抽奖系统(Java课程设计/大作业)
简易抽奖系统(Java课程设计/大作业) package 简易抽奖系统; import java.awt.*; import java.awt.event.ActionEvent; import ja ...
最新文章
- Zookeeper工作原理
- [Linux网络编程学习笔记]套接字地址结构
- 开启MyBatis日志Sql打印
- cocos2d-x 2x 菜鸟编塔防 02 添加敌人
- SQL Server 2008 : 基于策略的管理(Policy-Based Management)
- 数据分析与挖掘理论-常用算法对比(纯理论较枯燥)
- 团队行为心理学读书笔记(1)
- HazelCast的Spring-Boot和Cache抽象
- web靶机:kali linux 2.0下搭建DVWA渗透测试演练平台
- 征稿 | 计算机视觉与数据挖掘-EI会议 ICCVDM2020
- 阿里问题定位神器 Arthas 操作实践,定位线上BUG,超给力
- Python解析access数据库(mdb文件或者accdb文件)
- .net weka ikvm java
- mysql 双主复制 centos7
- linux查看网卡光强,LINUX OV5640驱动
- ffmpeg 为取经而来_取经路上的妖魔鬼怪,傻傻分不清楚
- 三角脉冲信号的表达式_脉冲发生器产生一个单三角脉冲,其波形如图所示,例1写出电压U 与.pdf...
- spacy教程--基础
- 【马红“名师+”】赛前磨课促提升,勤教群研共成长——马红“名师+”研修共同体开展教学能手培训活动
- 数据挖掘总结之消极学习与积极学习