-
java 挡板_java小程序挡板接小球
2021-03-07 05:26:25packageball;importjavax.swing.JFrame;publicclassBallFrame{publicstaticvoidmain(String[]args){JFramef=newJFrame();BallPanelp=newBallPanel();...f.setTitle("挡板接小球");f.setSize(800,600...package ball;
import javax.swing.JFrame;
public class BallFrame {
public static void main(String[] args) {
JFrame f=new JFrame();
BallPanel p=new BallPanel();
f.add(p);
f.setTitle("挡板接小球");
f.setSize(800, 600);
f.setLocationRelativeTo(null);//居中
f.setDefaultCloseOperation(3);
f.setVisible(true);
f.addMouseMotionListener(p);
f.addMouseListener(p);
p.move();
}
}package ball;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
/*
* 状态:1.就绪 2.运行 3.暂停 4.结束 5.重新开始
* 就绪--->运行 点击鼠标
* 运行--->暂停 移出鼠标
* 运行--->结束
* 暂停---.>运行 移入鼠标
* 结束----> 重新开始 点击鼠标
* 重新开始---. >运行
*/
import javax.swing.JOptionPane;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class BallPanel extends JPanel implements MouseMotionListener,MouseListener {
int state=1;
public static final int START=1;
public static final int RUNNING=2;
public static final int PAUSE=3;
public static final int OVER=4;
public static final int RESTART=5;
int px = 200;
int bx = 300, by = 100;
int score=0,pw=200;
boolean flag=true;//游戏没结束
// 定义变量表示小球的路径
int dir = (int) (Math.random() * 4) + 1;
int sleep=30;
Color c=Color.RED;
@Override
public void paint(Graphics g) {
// TODO 自动生成的方法存根
super.paint(g);
// int c=getRandColorCode();
g.setColor(c);
g.fillOval(bx, by, 50, 50);
g.setColor(Color.BLACK);
g.fillRect(px, 500, pw, 10);
g.setColor(Color.BLUE);
g.setFont(new Font("宋体",Font.BOLD,24));
g.drawString("游戏得分:"+score, 20,50);
if(state==PAUSE){
g.drawString("游戏暂停", 300, 200);
}
}
public void move() {
new Thread() {
public void run() {
while (true) {
if(state==RUNNING){
if (dir == 1) {
bx += 10;
by += 10;
}
if (dir == 2) {
bx -= 10;
by += 10;
}
if (dir == 3) {
bx -= 10;
by -= 10;
}
if (dir == 4) {
bx += 10;
by -= 10;
}
if (bx > 700) {
if (dir == 1) {
dir = 2;
}
if (dir == 4) {
dir = 3;
}
}
if (bx
if (dir == 2) {
dir = 1;
}
if (dir == 3) {
dir = 4;
}
}
if (by > 450) {
if (px-50
if (dir == 1) {
dir = 4;
}
if (dir == 2) {
dir = 3;}
score+=5;
//长度
if(score%20==0){
if(pw>200){
pw-=20; } }
c=new Color ((int)(Math.random()*256),
(int)(Math.random()*256),
(int)(Math.random()*256));}
else
{
by = 450;
state=OVER;
//JOptionPane.showMessageDialog(null,"游戏结束,你得了"+score+"分","GAMEOVER",JOptionPane.INFORMATION_MESSAGE);
}
}
if (by
if (dir == 4) {
dir = 1;
}
if (dir == 3) {
dir = 2;
}
}
repaint();
try {
Thread.sleep(sleep-score/20);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}}
}.start();
}
@Override
public void mouseDragged(MouseEvent e) {
// TODO 自动生成的方法存根
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO 自动生成的方法存根
px = e.getX() - 200;
// 把鼠标的坐标给挡板
repaint();
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO 自动生成的方法存根
if(state==START){
state=RUNNING;}
else if (state==PAUSE){
state=RUNNING;}
else if(state==OVER){
score=0;
bx=400;
by=100;
state=RUNNING;
}
repaint();
}
@Override
public void mousePressed(MouseEvent e) {
// TODO 自动生成的方法存根
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO 自动生成的方法存根
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO 自动生成的方法存根
if(state==PAUSE){
state=RUNNING;
}
}
@Override
public void mouseExited(MouseEvent e) {
// TODO 自动生成的方法存根
if(state==RUNNING){
state=PAUSE;}
}
}
-
挡板java_java小程序挡板接小球
2021-03-05 18:32:10packageball;importjavax.swing.JFrame;publicclassBallFrame{publicstaticvoidmain(String[]args){JFramef=newJFrame();BallPanelp=newBallPanel();...f.setTitle("挡板接小球");f.setSize(800,600...package ball;
import javax.swing.JFrame;
public class BallFrame {
public static void main(String[] args) {
JFrame f=new JFrame();
BallPanel p=new BallPanel();
f.add(p);
f.setTitle("挡板接小球");
f.setSize(800, 600);
f.setLocationRelativeTo(null);//居中
f.setDefaultCloseOperation(3);
f.setVisible(true);
f.addMouseMotionListener(p);
f.addMouseListener(p);
p.move();
}
}package ball;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
/*
* 状态:1.就绪 2.运行 3.暂停 4.结束 5.重新开始
* 就绪--->运行 点击鼠标
* 运行--->暂停 移出鼠标
* 运行--->结束
* 暂停---.>运行 移入鼠标
* 结束----> 重新开始 点击鼠标
* 重新开始---. >运行
*/
import javax.swing.JOptionPane;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class BallPanel extends JPanel implements MouseMotionListener,MouseListener {
int state=1;
public static final int START=1;
public static final int RUNNING=2;
public static final int PAUSE=3;
public static final int OVER=4;
public static final int RESTART=5;
int px = 200;
int bx = 300, by = 100;
int score=0,pw=200;
boolean flag=true;//游戏没结束
// 定义变量表示小球的路径
int dir = (int) (Math.random() * 4) + 1;
int sleep=30;
Color c=Color.RED;
@Override
public void paint(Graphics g) {
// TODO 自动生成的方法存根
super.paint(g);
// int c=getRandColorCode();
g.setColor(c);
g.fillOval(bx, by, 50, 50);
g.setColor(Color.BLACK);
g.fillRect(px, 500, pw, 10);
g.setColor(Color.BLUE);
g.setFont(new Font("宋体",Font.BOLD,24));
g.drawString("游戏得分:"+score, 20,50);
if(state==PAUSE){
g.drawString("游戏暂停", 300, 200);
}
}
public void move() {
new Thread() {
public void run() {
while (true) {
if(state==RUNNING){
if (dir == 1) {
bx += 10;
by += 10;
}
if (dir == 2) {
bx -= 10;
by += 10;
}
if (dir == 3) {
bx -= 10;
by -= 10;
}
if (dir == 4) {
bx += 10;
by -= 10;
}
if (bx > 700) {
if (dir == 1) {
dir = 2;
}
if (dir == 4) {
dir = 3;
}
}
if (bx
if (dir == 2) {
dir = 1;
}
if (dir == 3) {
dir = 4;
}
}
if (by > 450) {
if (px-50
if (dir == 1) {
dir = 4;
}
if (dir == 2) {
dir = 3;}
score+=5;
//长度
if(score%20==0){
if(pw>200){
pw-=20; } }
c=new Color ((int)(Math.random()*256),
(int)(Math.random()*256),
(int)(Math.random()*256));}
else
{
by = 450;
state=OVER;
//JOptionPane.showMessageDialog(null,"游戏结束,你得了"+score+"分","GAMEOVER",JOptionPane.INFORMATION_MESSAGE);
}
}
if (by
if (dir == 4) {
dir = 1;
}
if (dir == 3) {
dir = 2;
}
}
repaint();
try {
Thread.sleep(sleep-score/20);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}}
}.start();
}
@Override
public void mouseDragged(MouseEvent e) {
// TODO 自动生成的方法存根
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO 自动生成的方法存根
px = e.getX() - 200;
// 把鼠标的坐标给挡板
repaint();
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO 自动生成的方法存根
if(state==START){
state=RUNNING;}
else if (state==PAUSE){
state=RUNNING;}
else if(state==OVER){
score=0;
bx=400;
by=100;
state=RUNNING;
}
repaint();
}
@Override
public void mousePressed(MouseEvent e) {
// TODO 自动生成的方法存根
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO 自动生成的方法存根
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO 自动生成的方法存根
if(state==PAUSE){
state=RUNNING;
}
}
@Override
public void mouseExited(MouseEvent e) {
// TODO 自动生成的方法存根
if(state==RUNNING){
state=PAUSE;}
}
}
-
java挡板怎么写_Socket挡板之Java开发
2021-03-08 07:05:52我就尝试用java语言写了一个关于Socket挡板程序,该程序还用了log4j的日志函数。简单说一下代码,首先开启一个端口,这里的端口可以自己定义,如果没有定义,就默认23011端口,用LR建立一个socket连接,发送任意数据...看云层的《性能测试进阶指南II》,看到有一章节是关于挡板测试的,书中的挡板程序是用Python写的,这对于我来说是一个新的语言,我就开始想,能不能用我熟悉的语言实现呢?我就尝试用java语言写了一个关于Socket挡板程序,该程序还用了log4j的日志函数。
简单说一下代码,首先开启一个端口,这里的端口可以自己定义,如果没有定义,就默认23011端口,用LR建立一个socket连接,发送任意数据,挡板程序就会返回固定的报文。
目录树:
SocketService.java源码如下:
public class SocketService {
ServerSocket serverSocket;
int thread=1;
Logger logger = Logger.getLogger(SocketService.class);
public SocketService(){
try {
serverSocket=new ServerSocket(23011,500);
System.out.println("无参数,采用默认端口。端口23011已打开");
while(true){
Socket socket=serverSocket.accept();
SocketAddress clientAdress = socket.getRemoteSocketAddress();//获取连接到服务器的ip
System.out.println("客户端:"+clientAdress);
logger.info("开启线程"+thread);
SocketServiceThread sst=new SocketServiceThread(socket,clientAdress);
sst.start();
thread++;
}
} catch (IOException e) {
e.printStackTrace();
}finally
{
System.out.println("dddddddddddd"+thread);
}
}
public SocketService(int port){
try {
serverSocket=new ServerSocket(port,500);
System.out.println("端口"+port+"已打开");
while(true){
Socket socket=serverSocket.accept();
SocketAddress clientAdress = socket.getRemoteSocketAddress();//获取连接到服务器的ip
System.out.println("客户端:"+clientAdress);
logger.info("开启线程"+thread);
SocketServiceThread sst=new SocketServiceThread(socket,clientAdress);
sst.start();
thread++;
}
} catch (IOException e) {
e.printStackTrace();
}finally
{
System.out.println("dddddddddddd"+thread);
}
}
......
(本文收录于《51测试天地》电子杂志第37期)
-
使用java构建一个挡板程序-1-总章
2020-08-29 23:05:15为什么我们需要挡板程序? 在应用开发过程中难免会有发送短信验证码、调用人脸识别、压力测试等需要调用外部接口的情况。大多数外部接口都会有调用限制或者需要收费等。如果我们需要进行压力测试、目的接口实际未...为什么我们需要挡板程序?
在应用开发过程中难免会有发送短信验证码、调用人脸识别、压力测试等需要调用外部接口的情况。大多数外部接口都会有调用限制或者需要收费等。如果我们需要进行压力测试、目的接口实际未完成开发或者对方不支持在当前开发环境测试就会有诸多不便。
因此一个挡板应该满足如下要求:
- 接入简单、灵活
- 挡板高性能、高可用,能横向扩展
- 部署简单,支持热部署
- 能够实现简单的业务逻辑
- 响应可控、可灵活切换。或特定情况响应特定内容。
实现方式
依赖组件列表:
- spring-boot-starter-web : 构建Web服务端。
- beetl[http://ibeetl.com]: 灵活构建响应报文,并支持简单业务逻辑,热更新且性能高。
- mongoDb: 存储挡板配置信息。
- spring-boot-starter-actuator: 监控,配合其他应用系统做链路追踪。【可选】
- spring-cloud-starter-alibaba-nacos-discovery: 注册中心、配置中心【可选,提供微服务用】
- ognl:用于动态获取请求数据。
功能块
百分比控制响应
按字段控制响应
MongoDb与Beetl集成
-
使用java构建一个挡板程序-5-使用webFilter实现挡板服务URL配置化
2021-01-31 19:42:26实现方式 存在URL配置 不存在URL配置 请求 WebFilter 获取Url对应的ApiId 挡板服务 响应 执行Filter 服务 package cn.twh.wall.filter; import cn.twh.wall.config.WallConfig; import ... -
挡板java_Socket挡板之Java开发
2021-03-04 00:36:53我就尝试用java语言写了一个关于Socket挡板程序,该程序还用了log4j的日志函数。简单说一下代码,首先开启一个端口,这里的端口可以自己定义,如果没有定义,就默认23011端口,用LR建立一个socket连接,发送任意数据... -
使用java构建一个挡板程序-2-简单权重算法
2020-09-05 18:57:07计算响应下标方法 总体思路:传入 N个int值,计算其和。获取一个int随机数,并判断当前随机值是否在该下标中。 例如传入: 1,5,9则 sum=15。随机【0-15】假设得到8则: if(8<大于1) 返回 下标0 ,if(8<... -
挡板接小球(Java小程序)
2018-12-31 21:29:05"挡板接小球" ) ; f . setSize ( 800 , 600 ) ; f . setLocationRelativeTo ( null ) ; //居中 f . setDefaultCloseOperation ( 3 ) ; f . setVisible ( true ) ; f . addMouseMotionListener ( p ) ; ... -
使用java构建一个挡板程序-3-mongoDb与beetl联动
2020-09-12 18:51:05// 通过挡板配置构建映射关系,形成最终的appInfo集合 templateInfoList.forEach(item -> { Map apis = Optional.ofNullable(appInfoHashMap.get(item.getAppId())) .orElseGet(() -> { AppInfo appInfo = new ... -
使用java构建一个挡板程序-6-使用beetl模板扩展include方法实现默认模板
2021-02-07 21:13:30java扩展函数实现 package cn.twh.wall.beetl.tag; import org.beetl.core.exception.BeetlException; import org.beetl.ext.tag.IncludeTag; /** * include 某个文件,如果模板存在则引入,不存在 -
使用java构建一个挡板程序-4-include方法扩展,实现默认加载。
2020-09-19 18:24:28在使用include方法的时候,如果使用不当,进场会出现对应模板无法找到的问题。有些情况,我们也想在没有指定模板的情况下能有个默认返回。 这个使用扩展include方法是一个很不错的选择。实现beetl扩展需要做以下... -
挡板游戏 java
2013-01-10 15:25:27挡板游戏的一个小程序,用的是java语言,可以初学者分享一下 -
java挡板接小球游戏_Python tkinter Canvas 桌面弹球游戏
2021-01-21 12:14:33Python tkinter Canvas其实前面程序中的高亮显示已经是动画效果了。程序会用红色、黄色交替显示几何图形的边框,这样看上去就是动画效果了。实现其他动画效果也是这个原理,程序只要增加一个定时器,周期性地改变... -
java 句柄泄露_JAVA程序一次句柄泄露问题分析
2021-02-28 13:41:59在我们的性能测试中或多或少的都要参与些开发的工作,例如最常见的就是挡板的开发,因为在压测中往往不是单一系统会有一些关联系统,而这些关联系统不是我们测试的重点,为了最大...本次压测中发现挡板程序会执行... -
java弹球小程序
2013-11-28 16:38:16java弹球小程序桌面弹球是游戏中常见的游戏,从以前的掌上游戏机到如今的手机游戏,都是一个十分经典的游戏。 玩家控制一个可以左右移动的挡板去改变运动中小球的移动方向,目的是用小球消除游戏屏幕中的所有 障碍物... -
JAVA程序一次句柄泄露问题分析
2020-08-07 15:08:35在我们的性能测试中或多或少的都要参与些开发的工作,例如最常见的就是挡板的开发,因为在压测中往往不是单一系统会有一些关联系统,而这些关联系统不是我们测试的重点,为了最大...本次压测中发现挡板程序会执行... -
弹力弹珠java_Java趣味小程序:打弹珠
2021-02-12 02:26:26分享一个最近做的一个用swing做的小程序,类似于打砖块。单击开始,单击暂停,再次单击继续游戏,鼠标离开窗口暂停。鼠标移动控制挡板,小球落到挡板上反弹,落到底部生命值扣一,每击中一个成绩加一。初学者可以写... -
Java趣味小程序:打弹珠
2017-07-13 18:49:05分享一个最近做的一个用swing做的小程序,类似于打砖块。单击开始,单击暂停,再次单击继续游戏,鼠标离开窗口暂停。鼠标移动控制挡板,小球落到挡板上反弹,落到底部生命值扣一,每击中一个成绩加一。初学者可以写... -
ui分离的进程 如何查找窗口句柄_JAVA程序一次句柄泄露问题分析
2020-12-13 11:42:46在我们的性能测试中或多或少的都...而本次的问题就发生在挡板开发程序中,由于要最大限度得到被测系统性能,因此挡板性能要得到保证,一般我会将本地开发的java代码打包然后在Linux服务器上运行。本次压测中发现挡板... -
实战java高并发程序设计之CyclicBarrier源码分析
2018-10-12 00:23:14前面一篇博客介绍了CountDownLatch...栅栏可以理解为挡住多个线程运行的挡板,即声明一个CyclicBarrier对象表示栅栏,把栅栏放到每个线程内部,线程调用栅栏方法的时刻就是线程等待的时刻。具体过程如下: CyclicBa... -
用JAVA实现一个简易的打砖块小游戏
2021-02-03 17:13:30利用java实现打砖块小游戏,游戏界面包括以下元素 顶部的各色砖块 底部的挡板 小球 游戏信息展示面板 玩法包括 使用鼠标或者键盘移动挡板 打掉砖块,得分 每一局有3次机会,挡板没有接到小球,机会减1 打掉黑色... -
Java编写打砖块 经典游戏设计
2014-04-07 14:45:01游戏开始时,小球会停在挡板正中间,且此时挡板可左右自 由移动,当按下空格键后小球会弹出,并在程序设定的区域内不 停的碰撞反弹。当小球碰到墙壁、挡板和砖块时,均会以相反的 速度反弹,并且砖块被碰撞后会... -
JAVA版 是男人就下100层
2009-05-08 22:00:07本程序共分3个类 主类 角色类 和挡板类 源程序里已经包含相关说明 不过,实现的代码部分,我个人不是很满意,封装做的不够好,希望大家不要介意 PS:希望能有意思的美工朋友一起写些游戏玩玩。。。。互相提高 -
moco-runner-0.12.0-standalone.jar.7z
2020-03-31 14:45:22Moco是一个简单搭建模拟服务器的程序库/工具,这个基于 Java 开发的开源项目,可做简单挡板程序,性能压测挡板程序,支持时间延迟设置 -
手机自动化
2019-10-04 10:08:07手机自动化 学selenium 也最好Java方向,Python掌握也...挡板程序会返回这个打赏数据,你的档板程序代替了微信支付而已 另位同学说的支付1分也是大家常用的办法 写mock 转载于:https://www.cnblogs.com/ITniu/p/63...