Java项目:贪吃蛇游戏(java+swing)
源码获取:博客首页 "资源" 里下载!
功能简介:
贪吃蛇游戏
大嘴鱼洁面类。完成大嘴鱼的界面的绘制:
/*** 大嘴鱼洁面类。完成大嘴鱼的界面的绘制。*/
public class BigMouthFishFrame extends JFrame{private FishPool pool = null;public static int width = 800;public static int height = 600;private JLabel lblInfo = new JLabel("欢迎进入大嘴鱼!V1.0");private JLabel lblFishSize = new JLabel("鱼 的 大 小:");private JLabel lblFishSpeed = new JLabel("鱼 的 速 度:");private JLabel lblFishScore = new JLabel("现 在 得 分:");public static JLabel lblSize = new JLabel("50");public static JLabel lblSpeed = new JLabel("4");public static JLabel lblScore = new JLabel("0");private JTextArea txtInfo = new JTextArea();public BigMouthFishFrame() {pool = new FishPool();pool.setBorder(new EtchedBorder(EtchedBorder.RAISED));setTitle("大嘴鱼游戏");setSize(width+180,height+50);setResizable(false);Toolkit tk=Toolkit.getDefaultToolkit();setLocation((tk.getScreenSize().width-getSize().width)/2,(tk.getScreenSize().height-getSize().height)/2);lblInfo.setSize(150,20);lblInfo.setLocation(width+25,240);String str = " 大嘴鱼游戏的简单使用说明:使用键盘上的上、下、左、右控制大嘴鱼的方向,每吃1条小鱼,得分加1分。每吃10条小鱼,大嘴鱼将升级:大小加1,速度加2。\n\n";str += " 研发部总监:artisan。\n 分 析 设 计 :artisan。\n 程 序 编 写 :artisan。";txtInfo.append(str);txtInfo.setBackground(getBackground());txtInfo.setEditable(false);txtInfo.setLineWrap(true);txtInfo.setSize(150,240);txtInfo.setLocation(width+15,370);txtInfo.setBorder(new TitledBorder(new LineBorder(Color.GRAY),"游戏说明"));JPanel pan = new JPanel();pan.setSize(150,100);pan.setLocation(width+15,265);pan.setLayout(new FlowLayout(FlowLayout.CENTER,5,5));pan.setBorder(new TitledBorder(new LineBorder(Color.GRAY),"游戏积分"));pan.add(lblFishSize);pan.add(lblSize);pan.add(lblFishSpeed);pan.add(lblSpeed);pan.add(lblFishScore);pan.add(lblScore);setLayout(null);add(pool);add(lblInfo);add(pan);add(txtInfo);setDefaultCloseOperation(EXIT_ON_CLOSE);setVisible(true);}/*** @param args*/public static void main(String[] args) {new BigMouthFishFrame();}}
大嘴鱼类:
/*** 大嘴鱼类<br>* 此类继承AcitonListener,实现AcitonPerformed方法,练习ActionListener的另一种实现方法<br>*/
public class BigMouthFish implements ActionListener{/** 大嘴鱼嘴的方向:0-上 */public static int UP = 0;/** 大嘴鱼嘴的方向:1-右 */public static int RIGHT = 1;/** 大嘴鱼嘴的方向:2-下 */public static int DOWN = 2;/** 大嘴鱼嘴的方向:3-左 */public static int LEFT = 3;/** 大嘴鱼的身体大小,以size为半径画圆 */public int size = 50;/** 大嘴鱼现在的方向(以嘴的方向为基准) */public int direction = RIGHT;/** 大嘴鱼身体的颜色 */private Color color = Color.CYAN;/** 大嘴鱼的位置x */public int posx = 80;/** 大嘴鱼的位置y */public int posy = 80;/** 大嘴鱼的速度,鱼每次前进的像素 */public int speed = 4;/** 大嘴鱼眼睛的大小 */private int eyesize = size/5;/** 大嘴鱼眼睛的位置x */private int eyeposx = posx+size/2;/** 大嘴鱼眼睛的位置y */private int eyeposy = posy+size/5;/** 大嘴鱼眼睛的颜色 */private Color eyecolor = Color.RED;/** 大嘴鱼嘴的最大角度的一半 */private int maxMonth = 30;/** 大嘴鱼现在嘴角的角度 */private int monthsize = 30;/** 大嘴鱼的嘴是否张开 */private boolean isOpen = true;private Timer time = null;/*** 大嘴鱼缺省构造函数.<br>* 创建一个位置为(200,200),大小为50,方向为右,颜色为Color.CYAN,速度为10的大嘴鱼*/public BigMouthFish() {//this的使用。this(200,200,50,RIGHT,Color.CYAN,4);}/*** 根据位置、大小、方向、颜色、速度构造一个大嘴鱼。* @param posx 大嘴鱼的位置x。* @param posy 大嘴鱼的位置y。* @param size 大嘴鱼的大小。* @param direction 大嘴鱼的方向:0-上;1-右;2-下;3-左。出入错误时,默认改为1。* @param color 大嘴鱼的颜色。* @param speed 大嘴鱼的速度。*/public BigMouthFish(int posx,int posy,int size,int direction,Color color,int speed) {this.posx = posx;this.posy = posy;this.size = size;if(direction==1 || direction==2 || direction==3 || direction==4)this.direction = direction;this.color = color;this.speed = speed;eyesize = size/7;initEye();time = new Timer(FishPool.reTime,this);time.start();} /*** 大嘴鱼移动。根据鱼的方向移动鱼。*/public void move(){switch (direction) {case 0:posy--;break;case 1:posx++;break;case 2:posy++;break;case 3:posx--;break;default:break;}}/*** 改变大嘴鱼身体的颜色。* @param color 欲改变大嘴鱼身体的颜色*/public void changeColor(Color color){this.color = color;}/*** 改变大嘴鱼的方向* @param direction 欲改变大嘴鱼的方向*/public void changeDir(int direction){this.direction = direction;}/*** 使用画笔绘画大嘴鱼.大嘴鱼的头像:一个扇形的是鱼脸,上面有一个小圆是眼睛<br>* 1.保存画笔颜色<br>* 2.绘制大嘴鱼的脸<br>* 3.绘制大嘴鱼的眼睛<br>* 4.恢复画笔颜色<br>* @param g 画笔*/public void paint(Graphics g){//保存画笔的颜色Color c = g.getColor();//绘制鱼脸g.setColor(color);//从(posx,posy)点开始,绘制宽为size,高为size,开始角度为(direction%2==0?(direction+1):(direction-1))*90+monthsize,弧度为360-2*maxMonth的弧形g.fillArc(posx, posy, size, size, (direction%2==0?(direction+1):(direction-1))*90+monthsize, 360-2*monthsize);//绘制鱼眼initEye();g.setColor(eyecolor);g.fillOval(eyeposx, eyeposy, eyesize, eyesize);//恢复画笔颜色g.setColor(c);}/*** 大嘴鱼张嘴闭嘴事件<br>* 此处只负责鱼的角度的变化,不负责鱼的重绘。* 重绘在鱼池中实现。<br>* 这样的好处:保证鱼的绘制和步伐分开。显示层和逻辑层单独处理。(面向对象的责任问题)。* @param e 事件对象*/public void actionPerformed(ActionEvent e) {if(isOpen){monthsize -= 2;if(monthsize<=0)isOpen = false;}else{monthsize += 2;if(monthsize>=maxMonth)isOpen = true;}}/*** 方向改变时,眼睛的改变。*/private void initEye(){switch (direction) {case 0:eyeposx = posx+size/7;eyeposy = posy+size/2-eyesize;break;case 1:eyeposx = posx+size/2;eyeposy = posy+size/7;break;case 2:eyeposx = posx+size*5/7;eyeposy = posy+size/2;break;case 3:eyeposx = posx+size/2-eyesize;eyeposy = posy+size/7;break;default:break;}}
}
数学类-随机数生成类:
/*** 数学类-随机数生成类*/
public class RandomUtil {/*** 生成a-b的随机数* @param a 整数a* @param b 整数b* @return a-b的随机数*/public static int randomInt(int a,int b){int t,n=0;if(a>b){t=a;a=b;b=t;}t=(int)(Math.ceil(Math.log10(b)));//对b向上取整while(true){n=(int)(Math.random()*Math.pow(10,t));//随机数*10的t次方if(n>=a && n<=b)break;}//System.out.println("生成的随机数如下:"+n);return n;}/*** 返回0-a的随机数。* @param a 整数a。* @return 返回0-a的随机数。*/public static int randomInt(int a){return new Random().nextInt(a);}
}
源码获取:博客首页 "资源" 里下载!
相关文章:

使用Ext Form自动绑定Html中的Form元素
2019独角兽企业重金招聘Python工程师标准>>> Java代码 //把ext 对象绑定在Html Form元素时的ext属性中 Ext.override(Ext.Component, { initComponent :function(){ this.on(render, function(){ if(this.el) Ext.getDom(this.el).ext this; …

Directx11 教程(2) 基本的windows应用程序框架(2)
Directx11 教程(2) 基本的windows应用程序框架(2) 原文:Directx11 教程(2) 基本的windows应用程序框架(2)在本教程中,我们把前面一个教程的代码,进行封装。把初始化函数,Run函数,窗口回调函数,ShutdownWindows函数等封…

Rocksdb的事务(二):完整事务体系的 详细实现
文章目录1. 基本事务操作1.1 TransactionDB -- Pessimistic1.2 OptimisticTransactionDB1.3 Read Uncommitted1.4 SavePoint 回滚部分事务操作1.5 SetSnapshot1.6 GetForUpdate1.7 RepeatableRead2. 实现2.1 WBWI(write batch with index) & WB(write batch)2.2 Pessimisti…

关于学习编程的一些看法
1、看书,书上的代码一串一串的对吧?是不是很不好记?是不是觉得如果自己把这些代码都敲一遍很浪费时间?其实对于一些完全没有任何基础的人来说,全部敲一遍不失为一种简单的入门方法。对于有一点基础的人来说,…

Java项目:日历万年历(java+swing)
源码获取:博客首页 "资源" 里下载! 功能简介: 万年历 启动类: public class CalendarMainClass { public static void main(String args[]) { try { UIManager.setLookAndFeel("com.sun.java.swing.pl…

求大神给解释一下H3C ospf 双塔奇兵
转载于:https://blog.51cto.com/2807200/1364566

活着是为了什么?
活着是为了死亡,死亡才是完美,才是永恒。 死亡时将一无所有,所以活着不是为了能带走什么,而应该是能留下什么,这才是人活着的意义,多少人能想明白呢? 胡建龙转载于:https://www.cnblogs.com/hjl…

XFS 文件系统 (一) :设计概览
文章目录0 前言1 设计背景2. 需要解决的问题2.1 异常恢复太慢2.2 不支持大文件系统2.3 不支持大型稀疏文件2.4 不支持大型连续文件2.5 不支持大目录2.6 不支持过多文件个数3 XFS 架构4 痛点解决4.1 Allocation Groups4.2 Manging Free Space4.3 大文件的支持5 总结0 前言 虽然…

WebApi2官网学习记录---异常处理
HttpResponseException 当WebAPI的控制器抛出一个未捕获的异常时,默认情况下,大多数异常被转为status code为500的http response即服务端错误。 HttpResonseException是一个特别的情况,这个异常可以返回任意指定的http status code࿰…

Java项目:资源下载工具(java+swing)
源码获取:博客首页 "资源" 里下载! 功能简介: 下载地址、保存位置、下载设置、下载进度 文件仓库控制器: /*** ClassName: FileStoreController* Description: 文件仓库控制器**/ Controller public class FileStoreC…

江南Style之---西湖
西湖古称“钱塘湖”,又名“西子湖”,古代诗人苏轼就对它评价道:“欲把西湖比西子,淡妆浓抹总相宜。西湖,是一首诗,一幅天然图画,一个美丽动人的故事,不论是多年居住在这里的人还是匆…

mimikatz
下载后,在目标机直接运行 常用命令: 提升权限:privilege::debug 获取用户登录明文账号密码:sekurlsa::logonPasswords 获取用户密码hash值:lsadump::sam 转载于:https://www.cnblogs.com/xiaoqiyue/p/10824169.html

通过 RDTSC 指令从 CPU 寄存器中直接获取系统时钟
很多时候我们使用函数 gettimeofday 以及 clock_gettime 作为我们获取 wall lock的时钟函数。 因为这两种函数是 glibc 提供的用户封装,简单易用,而且能够精确到 ns,对于大多数的时钟需求场景都已经够用了。 但是如果 我们的应用 调用时钟频…

Java项目:星际争霸游戏(java+swing+awt界面编程+IO输入输出流+socket+udp网络通信)
源码获取:博客首页 "资源" 里下载! 功能简介: 星际争霸游戏项目,该项目实现了单人模式和多人合作模式,可记录游戏进度,新建游戏,载入历史记录等功能,多人模式下可以创建一…

GTONE清理维护建议方案
1、日志清理/home/gtone/AppGov/analyzer/log//home/gtone/AppGov/analyzer/SRC/temp//home/gtone/AppGov/WAS/logs/ 2、扩容现有磁盘空间至200GB转载于:https://www.cnblogs.com/arcer/p/4461018.html

[C#]委托和事件(讲解的非常不错)
引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉…

BZOJ1460: Pku2114 Boatherds
题目链接:点这里 题目描述:给你一棵n个点的带权有根树,有p个询问,每次询问树中是否存在一条长度为Len的路径,如果是,输出Yes否输出No. 数据范围:\(n\le1e5\,,p\le100\,,长度\le1e5\) Solution: …

centos 自定义内核模块 编译运行
简单记录一下 centos 自定义内核模块的一些编译运行记录,代码如下: 主要功能是通过rdtsc 指令直接从 CPU MSR 寄存器中获取时钟,尝试获取两次,两次之间会做一些赋值操作什么的,并记录一下时差。 #include <linux/…

os.system() 和 os.popen()
1.os.popen(command[, mode[, bufsize]]) os.system(command)2.os.popen() 功能强于os.system() , os.popen() 可以返回回显的内容,以文件描述符返回。eg:t_f os.popen ("ping 192.168.1.1")print t_f.read()或者:for line in os.popen("dir"…

Java项目:医院管理系统(java+Springboot+Maven+Mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载! 一、项目简述本系统功能包括:医院挂号,退号,缴费,退费,检查申请单开立,科室管理,医生开单,挂号级别,…

任意阶幻方..
1 /*coder Gxjun*/2 #include<stdio.h>3 #include<string.h>4 #include<stdlib.h>5 #define maxn 1006 int map[maxn][maxn] ;7 void creat_magic(int n,int x,int y ,int sn) //奇阶幻方构造8 {9 int i,j,k;10 i0;11 jn/2;12 for(kn;k<…

UML与软件建模 第三次作业
1.单元测试的任务有哪些? 单元测试是对软件基本组成单元进行的测试,而且软件单元是与程序的其他部分相隔离的情况下进行独立的测试. 任务主要包括对单元功能、逻辑控制、数据和安全性等各方面进行必要的测试。具体地说,包括单元中所有独立执行路径、数据…

Pliops XDP(Extreme Data Processor)数据库存储设计的新型加速硬件
文章目录0 前言1 核心问题1.1 引擎的各方面性能受限于数据结构的选择1.2 压缩功能 导致的CPU瓶颈1.3 Crash-safe 崩溃异常的无奈选择1.4 当前主流 加速硬件 较难满足存储性能提升的要求2 XDP 设计原则2.1 数据结构上的优化2.2 解决 压缩引入的CPU消耗2.3 异常恢复的设计2.4 易于…

Java项目:潜艇大战项目(java+swing)
源码获取:博客首页 "资源" 里下载! 功能简介: Java swing实现的一款小游戏潜艇大战的项目源码 游戏界面: SuppressWarnings({ "unused", "serial" }) public class GameGUI extends JPanel {//卡…

可以发张图片做链接用吗
转载于:https://www.cnblogs.com/wasss/p/4466492.html

更改显示器的分辨率
1.桌面右击,如图1-1所示。2.点击屏幕分辩率,选择分辨率调大小,确定,如图1-2所示。转载于:https://blog.51cto.com/qikai/1367734

Java 处理0x00特殊字符
Java 处理0x00特殊字符 一、0x00字符 1,0x00是ascii码的0值:NUL 2,0x00在windows系统中显示: 3,0x00在Linux中显示: ctrlV ctrl可以打出此字符 二、Java解决0x00字符 str.replaceAll("\\u0000",&…

关于 并查集(union find) 算法基本原理 以及 其 在分布式图场景的应用
二月的最后一篇水文…想写一些有意思的东西。 文章目录环检测在图数据结构中的应用深度/广度优先 检测环并查集数据结构 (Union-Find)基本概念初始化合并 union查找祖先优化1: 合并过程 利用 rank 优化路径优化2: 路径压缩(Path Compression)并查集 解决图中检测环问题环检测在…

Java项目:智能制造生产管理平台(java+SSM+mysql+Maven+Easyui+JSP)
源码获取:博客首页 "资源" 里下载! 运行环境:jdk1.8、tomcat7.0/8.5、Mysql5.7/5.1、Maven3.6/3.5、 eclipse/STS 功能简介:计划进度、设备管理、工艺监控、物料监控、质量监控、人员监控等 访问注册控制层:…

JAVA-Eclipse快捷键
Ctrl1:快速修复。CtrlD:快速删除行。ShiftEnter:快速调到下一行。CtrlF11:快速运行。Alt上下方向键:快速移动。CtrlM:光标所在视图最大化。Alt/:智能补全。Ctrl/:快速注释代码。 转载于:https://www.cnblogs.com/bluewhy/p/44669…