资源简介

用java写的对战版的俄罗斯方块,用到了网络编程,多线程,数据库,文件操作。用swing写的页面。

资源截图

代码片段和文件信息

package Controller;

import MySocket.ExchangeThread;
import dao.UserDaoImplements;
import entity.Rect;
import model.GameDao;
import user.UserInfo;
import view.LoginUI;
import view.OfflinePanel;
import view.OnlinePanel;

import javax.swing.*;

import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;

/**
 * 游戏整体控制器,比如命令方块移动,暂停游戏等
 * 
 */
public class GameController {
public UserInfo user= LoginUI.user;
public static GameController localController;

// 界面
private JPanel panel;
// 时间控制器,加载Gametask,每过一段时间,界面就变化一次
private Timer timer;

private boolean isRunning =false;

public GameDao getGamedao() {
return gamedao;
}

public Rect getCurRect() {
return curRect;
}

public Rect getNextRect() {
return nextRect;
}

// 游戏进程控制器,比如碰撞检测之类的
private GameDao gamedao;

// 当前图形与下一个图形
private Rect curRect;
private Rect nextRect;

// 远程通信用的线程
private ExchangeThread exchangeThread;

private class Gametask extends TimerTask {
private int speed = 5;
        public void run() {

if(!isRunning){
return ;
}

// speed来控制时间间隔。。
         if(speed <= 0){
if(gamedao.isput(curRect)){
if(gamedao.gameover()) {
System.out.println(“游戏结束!“);
// 先暂停游戏
isRunning = false;
//对战模式
if(exchangeThread!=null){
exchangeThread.sendMessage(“gameover“);
int myScore = gamedao.score;
int remoteScore = RemoteController.remoteController.getGameDao().score;

String str = Integer.toString(myScore) + “比“ + Integer.toString(remoteScore) + ““;
if (myScore > remoteScore) {
// WIN
JOptionPane.showMessageDialog(panel str + “你赢了“);
} else if (myScore < remoteScore) {
// LOSE
JOptionPane.showMessageDialog(panel str + “你输了“);
} else {
// pingju
JOptionPane.showMessageDialog(panel str + “这是一场平局“);
}
}else{
//单机模式
int myScore = gamedao.score;
System.out.println(“结束1“);
user.setScore(myScore);
new UserDaoImplements().writeScore(user);
System.out.println(“结束2“);
JOptionPane.showMessageDialog(panel “游戏结束.“+
“你的得分为:“+Integer.toString(myScore));
}
return;
}
Random random = new Random();
// 已经放下来了的意思
if(exchangeThread!=null){
exchangeThread.sendMessage(“isput“);
}
curRect.setColor(0);
int temp=random.nextInt(7)+1;
curRect = new Rect(nextRect.color);
nextRect = new Rect(temp);
if(exchangeThread!=null){
// 更新rect的命令只发送下一个的
exchangeThread.sendMessage(Integer.toString(temp));
}
if(gamedao.ispop()){
// 消去一行
if(exchangeThread!=null){
exchangeThread.sendMessage(“ispop“);
}
}
                }else{
curRect.down();
if(exchangeThread!=null)
exchangeThread.sendMessage(“down“);
}
// 如果没有放下来,就down
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        388  2017-12-25 15:04  final\.classpath

     文件        315  2017-12-20 20:31  final\.git\config

     文件         73  2017-12-20 20:31  final\.git\description

     文件        110  2017-12-20 20:31  final\.git\FETCH_HEAD

     文件         23  2017-12-20 20:31  final\.git\HEAD

     文件        177  2017-12-20 20:31  final\.git\hooks\README.sample

     文件       6112  2017-12-20 20:31  final\.git\index

     文件        113  2017-12-20 20:31  final\.git\info\exclude

     文件        387  2017-12-20 20:31  final\.git\logs\HEAD

     文件        387  2017-12-20 20:31  final\.git\logs\refs\heads\master

     文件        144  2017-12-20 20:31  final\.git\logs\refs\remotes\origin\master

     文件       1132  2017-12-20 20:31  final\.git\objects\02\ff1ae07e2d4e6d42527890c526e296a317c03b

     文件         83  2017-12-20 20:31  final\.git\objects\11\9591274ce4c1200bf568149028590221e4de6d

     文件       1217  2017-12-20 20:31  final\.git\objects\12\14e4cfb1a718b782a431e86415af46213f24f9

     文件        813  2017-12-20 20:31  final\.git\objects\12\aab59d70f648124ed1e2b22d9999ac6a5a4201

     文件        289  2017-12-20 20:31  final\.git\objects\15\70ffec28bdba3756ea7cc11156665ffaedcf66

     文件        168  2017-12-20 20:31  final\.git\objects\15\b3e777204395c052ae667bb8a5ecfeddd7d2a6

     文件        319  2017-12-20 20:31  final\.git\objects\18\87f7b8a1462bf1284c60fbfb4593bfbae68e88

     文件         89  2017-12-20 20:31  final\.git\objects\19\ce9d8ff1fccf510df82d99a65f48c649b7becd

     文件       2000  2017-12-20 20:31  final\.git\objects\19\ede81f9636c8abde6cb40ea9b66b9383e7df88

     文件        584  2017-12-20 20:31  final\.git\objects\1a\b4a4c47a0aa02b04cdec98318e0fd13a0a815f

     文件        863  2017-12-20 20:31  final\.git\objects\1d\f3a4ef01cc570d515f08d610a381a927baf143

     文件       4611  2017-12-20 20:31  final\.git\objects\27\55afb7b2409d822a3df3e0f0c9f59b6229286e

     文件     948926  2017-12-20 20:31  final\.git\objects\27\7266accdb9ff62563111100e9687f756764b18

     文件        480  2017-12-20 20:31  final\.git\objects\29\253d4b275d2e9d5a1837d93a5a42b1d4bd9703

     文件         57  2017-12-20 20:31  final\.git\objects\2b\c9457d1ac381c4d0f7d2da788001b9ebcc0d03

     文件        152  2017-12-20 20:31  final\.git\objects\2c\6842e6a308397dfdeef29eefc355cfac13c9f1

     文件        153  2017-12-20 20:31  final\.git\objects\2d\2d0202b9d415e6850ecdfb8659d3c02320bb2f

     文件        679  2017-12-20 20:31  final\.git\objects\32\2fa069a4b833e6dc0d844d3160823844b1021f

     文件        183  2017-12-20 20:31  final\.git\objects\32\8b8d94b3a875afb0eb33ed12ee1417c8c9ba08

............此处省略285个文件信息

评论

共有 条评论