问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

高分悬赏Java程序,急!!!

发布网友 发布时间:2022-05-29 17:43

我来回答

5个回答

热心网友 时间:2023-10-29 22:13

import java.awt.*;
import java.awt.event.*;
//俄罗斯方块类
public class ERS_Block extends Frame{
public static boolean isPlay=false;
public static int level=1,score=0;
public static TextField scoreField,levelField;

public static MyTimer timer;
GameCanvas gameScr;

public static void main(String[] argus){
ERS_Block ers = new ERS_Block("俄罗斯方块游戏 V1.0 Author:Vincent");
WindowListener win_listener = new WinListener();
ers.addWindowListener(win_listener);
}

//俄罗斯方块类的构造方法
ERS_Block(String title){
super(title);

setSize(600,480);
setLayout(new GridLayout(1,2));

gameScr = new GameCanvas();
gameScr.addKeyListener(gameScr);

timer = new MyTimer(gameScr);
timer.setDaemon(true);
timer.start();
timer.suspend();

add(gameScr);

Panel rightScr = new Panel();
rightScr.setLayout(new GridLayout(2,1,0,30));
rightScr.setSize(120,500);
add(rightScr);

//右边信息窗体的布局
MyPanel infoScr = new MyPanel();
infoScr.setLayout(new GridLayout(4,1,0,5));
infoScr.setSize(120,300);
rightScr.add(infoScr);

//定义标签和初始值
Label scorep = new Label("分数:",Label.LEFT);
Label levelp = new Label("级数:",Label.LEFT);
Label namep = new Label("姓名:张三",Label.LEFT);
Label nump = new Label("学号:110821332",Label.LEFT);
scoreField = new TextField(8);
levelField = new TextField(8);
scoreField.setEditable(false);
levelField.setEditable(false);
infoScr.add(namep);
infoScr.add(nump);
infoScr.add(scorep);
infoScr.add(scoreField);
infoScr.add(levelp);
infoScr.add(levelField);
scorep.setSize(new Dimension(20,60));
scoreField.setSize(new Dimension(20,60));
levelp.setSize(new Dimension(20,60));
levelField.setSize(new Dimension(20,60));
scoreField.setText("0");
levelField.setText("1");

//右边控制按钮窗体的布局
MyPanel controlScr = new MyPanel();
controlScr.setLayout(new GridLayout(5,1,0,5));
rightScr.add(controlScr);

//定义按钮play
Button play_b = new Button("开始游戏");
play_b.setSize(new Dimension(50,200));
play_b.addActionListener(new Command(Command.button_play,gameScr));

//定义按钮Level UP
Button level_up_b = new Button("提高级数");
level_up_b.setSize(new Dimension(50,200));
level_up_b.addActionListener(new Command(Command.button_levelup,gameScr));

//定义按钮Level Down
Button level_down_b =new Button("降低级数");
level_down_b.setSize(new Dimension(50,200));
level_down_b.addActionListener(new Command(Command.button_leveldown,gameScr));

//定义按钮Level Pause
Button pause_b =new Button("游戏暂停");
pause_b.setSize(new Dimension(50,200));
pause_b.addActionListener(new Command(Command.button_pause,gameScr));

//定义按钮Quit
Button quit_b = new Button("退出游戏");
quit_b.setSize(new Dimension(50,200));
quit_b.addActionListener(new Command(Command.button_quit,gameScr));

controlScr.add(play_b);
controlScr.add(level_up_b);
controlScr.add(level_down_b);
controlScr.add(pause_b);
controlScr.add(quit_b);
setVisible(true);
gameScr.requestFocus();
}
}

//重写MyPanel类,使Panel的四周留空间
class MyPanel extends Panel{
public Insets getInsets(){
return new Insets(30,50,30,50);
}
}

//游戏画布类
class GameCanvas extends Canvas implements KeyListener{
final int unitSize = 30; //小方块边长
int rowNum; //正方格的行数
int columnNum; //正方格的列数
int maxAllowRowNum; //允许有多少行未削
int blockInitRow; //新出现块的起始行坐标
int blockInitCol; //新出现块的起始列坐标
int [][] scrArr; //屏幕数组
Block b; //对方快的引用

//画布类的构造方法
GameCanvas(){
rowNum = 15;
columnNum = 10;
maxAllowRowNum = rowNum - 2;
b = new Block(this);
blockInitRow = rowNum - 1;
blockInitCol = columnNum/2 - 2;
scrArr = new int [32][32];
}

//初始化屏幕,并将屏幕数组清零的方法
void initScr(){
for(int i=0;i<rowNum;i++)
for (int j=0; j<columnNum;j++)
scrArr[i][j]=0;
b.reset();
repaint();
}

//重新刷新画布方法
public void paint(Graphics g){
for(int i = 0; i < rowNum; i++)
for(int j = 0; j < columnNum; j++)
drawUnit(i,j,scrArr[i][j]);
}

//画方块的方法
public void drawUnit(int row,int col,int type){
scrArr[row][col] = type;
Graphics g = getGraphics();
switch(type){ //表示画方快的方法
case 0: g.setColor(Color.black);break; //以背景为颜色画
case 1: g.setColor(Color.blue);break; //画正在下落的方块
case 2: g.setColor(Color.magenta);break; //画已经落下的方法
}
g.fill3DRect(col*unitSize,getSize().height-(row+1)*unitSize,unitSize,unitSize,true);
g.dispose();
}

public Block getBlock(){
return b; //返回block实例的引用
}

//返回屏幕数组中(row,col)位置的属性值
public int getScrArrXY(int row,int col){
if (row < 0 || row >= rowNum || col < 0 || col >= columnNum)
return(-1);
else
return(scrArr[row][col]);
}

//返回新块的初始行坐标方法
public int getInitRow(){
return(blockInitRow); //返回新块的初始行坐标
}

//返回新块的初始列坐标方法
public int getInitCol(){
return(blockInitCol); //返回新块的初始列坐标
}

//满行删除方法
void deleteFullLine(){
int full_line_num = 0;
int k = 0;
for (int i=0;i<rowNum;i++){
boolean isfull = true;

L1:for(int j=0;j<columnNum;j++)
if(scrArr[i][j] == 0){
k++;
isfull = false;
break L1;
}
if(isfull) full_line_num++;
if(k!=0 && k-1!=i && !isfull)
for(int j = 0; j < columnNum; j++){
if (scrArr[i][j] == 0)
drawUnit(k-1,j,0);
else
drawUnit(k-1,j,2);
scrArr[k-1][j] = scrArr[i][j];
}
}
for(int i = k-1 ;i < rowNum; i++){
for(int j = 0; j < columnNum; j++){
drawUnit(i,j,0);
scrArr[i][j]=0;
}
}
ERS_Block.score += full_line_num;
ERS_Block.scoreField.setText(""+ERS_Block.score);
}

//判断游戏是否结束方法
boolean isGameEnd(){
for (int col = 0 ; col <columnNum; col ++){
if(scrArr[maxAllowRowNum][col] !=0)
return true;
}
return false;
}

public void keyTyped(KeyEvent e){
}

public void keyReleased(KeyEvent e){
}

//处理键盘输入的方法
public void keyPressed(KeyEvent e){
if(!ERS_Block.isPlay)
return;
switch(e.getKeyCode()){
case KeyEvent.VK_DOWN:b.fallDown();break;
case KeyEvent.VK_LEFT:b.leftMove();break;
case KeyEvent.VK_RIGHT:b.rightMove();break;
case KeyEvent.VK_SPACE:b.leftTurn();break;
}
}
}

//处理控制类
class Command implements ActionListener{
static final int button_play = 1; //给按钮分配编号
static final int button_levelup = 2;
static final int button_leveldown = 3;
static final int button_quit = 4;
static final int button_pause = 5;
static boolean pause_resume = true;

int curButton; //当前按钮
GameCanvas scr;

//控制按钮类的构造方法
Command(int button,GameCanvas scr){
curButton = button;
this.scr=scr;
}

//按钮执行方法
public void actionPerformed (ActionEvent e){
switch(curButton){
case button_play:if(!ERS_Block.isPlay){
scr.initScr();
ERS_Block.isPlay = true;
ERS_Block.score = 0;
ERS_Block.scoreField.setText("0");
ERS_Block.timer.resume();
}
scr.requestFocus();
break;
case button_levelup:if(ERS_Block.level < 10){
ERS_Block.level++;
ERS_Block.levelField.setText(""+ERS_Block.level);
ERS_Block.score = 0;
ERS_Block.scoreField.setText(""+ERS_Block.score);
}
scr.requestFocus();
break;
case button_leveldown:if(ERS_Block.level > 1){
ERS_Block.level--;
ERS_Block.levelField.setText(""+ERS_Block.level);
ERS_Block.score = 0;
ERS_Block.scoreField.setText(""+ERS_Block.score);
}
scr.requestFocus();
break;
case button_pause:if(pause_resume){
ERS_Block.timer.suspend();
pause_resume = false;
}else{
ERS_Block.timer.resume();
pause_resume = true;
}
scr.requestFocus();
break;
case button_quit:System.exit(0);
}
}
}

//方块类
class Block {
static int[][] pattern = {
{0x0f00,0x4444,0x0f00,0x4444},//用十六进至表示,本行表示长条四种状态
{0x04e0,0x0464,0x00e4,0x04c4},
{0x4620,0x6c00,0x4620,0x6c00},
{0x2640,0xc600,0x2640,0xc600},
{0x6220,0x1700,0x2230,0x0740},
{0x6440,0x0e20,0x44c0,0x8e00},
{0x0660,0x0660,0x0660,0x0660}
};
int blockType; //块的模式号(0-6)
int turnState; //块的翻转状态(0-3)
int blockState; //快的下落状态
int row,col; //块在画布上的坐标
GameCanvas scr;

//块类的构造方法
Block(GameCanvas scr){
this.scr = scr;
blockType = (int)(Math.random() * 1000)%7;
turnState = (int)(Math.random() * 1000)%4;
blockState = 1;
row = scr.getInitRow();
col = scr.getInitCol();
}

//重新初始化块,并显示新块
public void reset(){
blockType = (int)(Math.random() * 1000)%7;
turnState = (int)(Math.random() * 1000)%4;
blockState = 1;
row = scr.getInitRow();
col = scr.getInitCol();
dispBlock(1);
}

//实现“块”翻转的方法
public void leftTurn(){
if(assertValid(blockType,(turnState + 1)%4,row,col)){
dispBlock(0);
turnState = (turnState + 1)%4;
dispBlock(1);
}
}

//实现“块”的左移的方法
public void leftMove(){
if(assertValid(blockType,turnState,row,col-1)){
dispBlock(0);
col--;
dispBlock(1);
}
}

//实现块的右移
public void rightMove(){
if(assertValid(blockType,turnState,row,col+1)){
dispBlock(0);
col++;
dispBlock(1);
}
}

//实现块落下的操作的方法
public boolean fallDown(){
if(blockState == 2)
return(false);
if(assertValid(blockType,turnState,row-1,col)){
dispBlock(0);
row--;
dispBlock(1);
return(true);
}else{
blockState = 2;
dispBlock(2);
return(false);
}
}

//判断是否正确的方法
boolean assertValid(int t,int s,int row,int col){
int k = 0x8000;
for(int i = 0; i < 4; i++){
for(int j = 0; j < 4; j++){
if((int)(pattern[t][s]&k) != 0){
int temp = scr.getScrArrXY(row-i,col+j);
if (temp<0||temp==2)
return false;
}
k = k >> 1;
}
}
return true;
}

//同步显示的方法
public synchronized void dispBlock(int s){
int k = 0x8000;
for (int i = 0; i < 4; i++){
for(int j = 0; j < 4; j++){
if(((int)pattern[blockType][turnState]&k) != 0){
scr.drawUnit(row-i,col+j,s);
}
k=k>>1;
}
}
}
}

//定时线程
class MyTimer extends Thread{
GameCanvas scr;

public MyTimer(GameCanvas scr){
this.scr = scr;
}

public void run(){
while(true){
try{
sleep((10-ERS_Block.level + 1)*100);
}
catch(InterruptedException e){}
if(!scr.getBlock().fallDown()){
scr.deleteFullLine();
if(scr.isGameEnd()){
ERS_Block.isPlay = false;
suspend();
}else
scr.getBlock().reset();
}
}
}
}

class WinListener extends WindowAdapter{
public void windowClosing (WindowEvent l){
System.exit(0);
}
}

热心网友 时间:2023-10-29 22:13

你这个太多了,要花不少时间,估计没人给你做。

热心网友 时间:2023-10-29 22:14

不好意思 说难听点 给钱 给你做

热心网友 时间:2023-10-29 22:14

只看不答...

热心网友 时间:2023-10-29 22:15

单个程序都值400分的,太低了
高分悬赏Java程序,急!!!

参考题目:1.做一个写字板,要求本软件用户必须注册方可运行(注册后下次启动无需在注册,第一次使用必须注册)。2.五子棋双人对弈程序。要求:•按开始按钮双方开始下棋,当在已... 参考题目:1.做一个写字板,要求本软件用户必须注册方可运行(注册后下次启动无需在注册,第一次使用必须注册)。 2.五子棋双人对弈程序...

java快速开发平台有哪些推荐呢?

福建引迈信息技术有限公司JNPF快速开发平台立即使用JNPF快速开发平台是java和.net双语言低代码开发平台,它可以以极少量代码或无代码的方式开发各种企业级管理系统,因其高效快捷、省时、省力、省人工、省成本的特点,而被冠以“快速开发”的行...

java编程,高手请进,高分悬赏,答对追加200

class TestClass{ double[] d = {1.0, 2.0, 3.0};//1.编写一个类TestClass,为TestClass添加一个double类型的数组,并给数组赋初值。public double dSum(){//2.为TestClass添加一个方法,该方法实现对数组的求和。double sum = 0;for(int i=0; i&lt;d.length; i++){ sum += d[i...

【高分悬赏】一道JAVA题,求解~~

public static void main(String[] args) { String[] 一组等长的英文单词 = "watch match noise risky stock".split(" "),数字字母的对应 = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};System.out.print("请输入一个数字:");String 输入 = new java.util....

【高分悬赏】Java实现一个方法计算一个只有加减法运算的表达式的值...

这个问题很简单,只有加减运算,没有运算优先级,不需要用到堆栈就可以。下面是代码:public class App {public static int A(String ex) throws Exception {int result = 0;String str = "";for (int i = 0; i &lt; ex.length(); i++) {char ch = ex.charAt(i);if (ch &gt;= '0' &amp;&amp;...

java图形高分悬赏!!!

1.首先画同心圆 ,圆心坐标设置为x1,y1;半径设置为 h1,h2,(画法就不多说了)2.那么先根据算数的 (知道两点的坐标,求两点间的距离.)这个公式来进行逆运算.就是知道长度来求另外一点坐标.获得 你ABCD4点的坐标.3.在根据 ABCD四点分别画线.这样这个等腰梯形就画好了.4.下面就是颜色填充,因为等腰...

高分悬赏VF设计程序!!!

clear set talk off use 表1 zap for i=1 to 10 input "请输入数据:" to a append blank replace data with a endfor index on data tag rq ascen go top ?"最小数",data go bottom ?"最大数",data set talk on return use 表1 中的表1 可以随便改 是我建的表的名字 ...

java问题,高分悬赏!!!

或者你也可以试试以下的程序准备工作: 1、jar包放在C:\Program Files\Java\jdk1.5.0_09\jre\lib\ext中 2、在eclipse中:项目名-属性-java构建路径-添加外部jar包 /* *本示例代码详细说明了如何在Java中利用JDBC直接连接到SQL Server 2000数据库,包括使用SQl 2000驱动(三个jar包), *以及使用SQL 2005包(一个...

Java课程设计!急!!!(高分)

要实现接下去的功能其实也真的不难的,但是真的很麻烦、很浪费时间……我就帮你做到这里了,你自己添加一下代码就可以(或者提高悬赏的话可以考虑考虑啊!哈哈……)代码如下:import java.awt.BorderLayout;import javax.swing.JPanel;import javax.swing.JFrame;import java.awt.Dimension;import javax...

恶意程序!可恶至极!高分悬赏!敬请帮助!

然后开始-运行-msconfig 进入后进入启动项,把那个rundl132的勾去掉,然后问你是否重新启动,先不启动 接着开始-运行-regedit 进入注册表后 编辑-查找 查找目标里填local page 然后你会看到被修改的键直 数值数据里输入你要输的主页 然后在IE图标上右击- internet属性,设置你的主页,然后把所有的...

求一个会做Java的人~高分悬赏!!

给你一些思路:添加音乐无非是在加分的同时放声音,在相应的事件处理的时候加山声音处理就好了,破记录对话框:记录最高成绩,同时记录玩家的本次成绩,每次结束游戏,都要把本次成绩和最高成绩比较,当玩家的本次成绩高于最高成绩,弹出对话款,说明破纪录 ...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
通胀对哪些股票有利 solidworks如何添加焊接件 这是手链还是脚链? 我有一串首饰,既不是项链,又不是手链请问这是什么首饰 脚链是什么意思 这个是什么?是手链吗?还是什么东东,怎么用的? 硬盘录像机开机画面NETWOK VIDEO RECODER谁知道这是什么牌子,我忘记密 ... 是不是所有的网络摄像头都可以用硬盘录像机做本地存储~~~包括网络... 四个不同地方硬盘录像机画面如何远程同时显示在一台显示器上?(每个地 ... 在oppoa31t手机上的锁定屏幕上怎样修改个人信息 vb编程:汉诺塔 残月之肃在adc的胜率中,大概可以排到多少位呢? 请问一下lol新英雄残月之肃厄斐琉斯厉不厉害呢?怎么玩?出装与符文怎么... 本人有汉诺塔的 程序,麻烦大家调试一下发几张运行图片过来! 残月之肃怎么玩? 英雄联盟残月之肃怎么玩 孟可以组什么成语 各个合资券商之间有哪些区别 合资的券商在国内券商中是怎样的地位 为什么现在都把杏仁叫巴坦木 北京火车站到首都机场要多久 北京火车站到机场需要多长时间 巴旦木为什么有农药味 北京西站到首都机场要多长时间? 北京站到首都机场的大巴要多长时间 北京站到首都机场要多长时间,怎么坐车? 早上从北京站到首都机场打车需要多长时间,多少钱? 观枝干形的植物 观叶形的植物 观花形的植物 观果形的植物 各列出十种 冬季观果植物都有哪些 室内观果植物有哪些种类 LOL残月之肃和虚空之女哪个好? LOL所有服当前版本残月之肃在使用任何武器下大招都是不变的吗? 新英雄残月之肃好玩吗? 数据结构汉诺塔问题 题目: 汉诺塔 功能:编程序显示n(n&lt;=9)层汉诺塔的调整过程。用c++编程, lol残月之肃与元素女皇哪个好? lol残月之肃选不到来玩我买了? 具体数学--2007. 英雄联盟厄斐琉斯怎么玩 汉诺塔 经典Hanio算法数组形式实现程序。看不懂程序高分悬赏。。 lol残月之肃折镜的Q为什么不打人了? c++可视化 程序代码 数据结构课程设计的图书目录 《英雄联盟》厄斐琉斯台词有哪些? C语言课程设计答案 难道网易邮箱用户不能给QQ邮箱发邮件吗 哪些胶水适用于半自动、全自动礼盒机? 胶水机的维护保养 符合中国封建正统文艺观的诗词散文有哪些? 谁能介绍几个中国优美的诗歌或散文?
  • 焦点

最新推荐

猜你喜欢

热门推荐