展开全部

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编程相关推荐

  1. Java课程设计大作业学生管理系统的设计与开发(Java+Mysql)

    文章目录 项目目标 项目截图展示 项目Java源程序 项目数据库文件信息 项目结构图设计 系统功能结构图: 软件架构设计 项目目标     这篇文章是Java语言得课程设计大作业记录.     项目由 ...

  2. java语言程序设计在线作业_中石油北京2018秋 《Java语言程序设计》第二次在线作业...

    1   老虎奥鹏 www.aopengzuoye.com 1 对象使用时,下面描述错误的是 A.通过"."运算符调用成员变量和方法 B.通过成员变量的访问权限设定限制自身对这些变量 ...

  3. java银行管理系统大作业_银行管理系统项目 《JAVA程序设计》课件.doc

    银行管理系统 第一部分 案例描述 案例目的 学习面向对象的主要特征和基本概念,包括类.对象.继承.接口.封装.继承.多态.方法的重载和重写.Java的访问修饰符与其它关键字等. 案例难度 ★★★★ 案 ...

  4. java正则不能输入汉字_求一个正则表达式只输入字母或数字或汉字,要过滤特殊字符...

    正则表达式:只能有数字或中文或字母组成 chenzhe_n16292018-09-06 一个正则表达式测试(只可输入中文.字母和数字) u0129242379192015-10-05 js正则表达式限 ...

  5. Java代码生成同一色系颜色_求大侠帮忙给这段JAVA代码 设置个背景颜色!

    换个颜色就成!importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;publicclassInque ...

  6. java计算长方形面积代码小数_求一个计算正方形面积的Java程序

    满意答案 xumei_xumei 2013.09.07 采纳率:51%    等级:12 已帮助:5929人 第一个要求的第(4),是计算圆形面积还是计算正方形面积? 我按计算正方形面积给你做的-- ...

  7. 打怪游戏Java课程设计_java 课程设计大作业 写的一个RPG游戏(代码+文档)

    [实例简介] java 课程设计大作业 写的一个RPG游戏(代码+文档) java 课程设计大作业 写的一个RPG游戏(代码+文档) [实例截图] [核心代码] Rebellion-master ├─ ...

  8. Java大作业-考试管理系统(GUI)无数据库-Java课程设计

    Java课程设计-Java大作业-考试管理系统(GUI)无数据库 题目要求 开发环境 : 程序总功能模块 程序详细设计 使用情况 第一次写这东西有不少错误的地方,题目要求的功能也没有完全实现,以上内容 ...

  9. 简易抽奖系统(Java课程设计/大作业)

    简易抽奖系统(Java课程设计/大作业) package 简易抽奖系统; import java.awt.*; import java.awt.event.ActionEvent; import ja ...

最新文章

  1. Zookeeper工作原理
  2. [Linux网络编程学习笔记]套接字地址结构
  3. 开启MyBatis日志Sql打印
  4. cocos2d-x 2x 菜鸟编塔防 02 添加敌人
  5. SQL Server 2008 : 基于策略的管理(Policy-Based Management)
  6. 数据分析与挖掘理论-常用算法对比(纯理论较枯燥)
  7. 团队行为心理学读书笔记(1)
  8. HazelCast的Spring-Boot和Cache抽象
  9. web靶机:kali linux 2.0下搭建DVWA渗透测试演练平台
  10. 征稿 | 计算机视觉与数据挖掘-EI会议 ICCVDM2020
  11. 阿里问题定位神器 Arthas 操作实践,定位线上BUG,超给力
  12. Python解析access数据库(mdb文件或者accdb文件)
  13. .net weka ikvm java
  14. mysql 双主复制 centos7
  15. linux查看网卡光强,LINUX OV5640驱动
  16. ffmpeg 为取经而来_取经路上的妖魔鬼怪,傻傻分不清楚
  17. 三角脉冲信号的表达式_脉冲发生器产生一个单三角脉冲,其波形如图所示,例1写出电压U 与.pdf...
  18. spacy教程--基础
  19. 【马红“名师+”】赛前磨课促提升,勤教群研共成长——马红“名师+”研修共同体开展教学能手培训活动
  20. 数据挖掘总结之消极学习与积极学习

热门文章

  1. 电脑运行速度慢优化电脑
  2. 关于服装穿搭 你知道这些吗?
  3. 物联网常见通信类型介绍
  4. 分享一款开源的百度云网盘下载工具,轻量,方便~
  5. VUE获取上月、当月、前几月等等问题
  6. 学习笔记:上网认证5 设置wifi(AP)通过FreeRadius认证
  7. 前端开发之闭包、继承、原型链
  8. 任务2 学生成绩信息管理系统
  9. 用蒙特卡罗方法求自然数e
  10. 命名空间中不存在类型或命名空间名称。是否缺少程序集引用?