打字游戏
来源:互联网 发布:游戏编程从零开始 编辑:程序博客网 时间:2024/04/30 06:00
package quickkitdamo;
import java.util.Scanner;
/**
* 游戏类
* @author wzq
* 1.0 2009/3/27
*/
public class Game {
private Player player;//玩家
private static Scanner input = new Scanner(System.in);
public Game()
{
this.player = new Player(1,0,0,0);
}
public Player getPlayer() {
return player;
}
public void setPlayer(Player player) {
this.player = player;
}
/*游戏登陆界面*/
public void login()
{
System.out.println("======================欢迎来到ww打字游戏====================");
System.out.print("请按任意键开始游戏!");
String answer= input.next();
if(answer!= null)
{
playGame();
}
}
/*输出要玩家要打印的字符串*/
public String strPrint()
{
StringBuffer word = new StringBuffer("");
int strLength = 0;//每次答应字符串的长度
for(int k = 0;k<LevelParam.levels.length;k++)
{
if(player.getLevelNo()==LevelParam.levels[k].getLevelNo())
{
strLength = LevelParam.levels[k].getStrLength();
break;
}
}
for(int i = 0;i<strLength ;i++)
{
int num = 1+(int)(Math.random()*10)%9;
switch(num)
{
case 1:
word.append(">");
break;
case 2:
word.append("<");
break;
case 3:
word.append(",");
break;
case 4:
word.append("!");
break;
case 5:
word.append("abcD");
break;
case 6:
word.append("+-*%");
break;
case 7:
word.append("529");
break;
default:
word.append("skdk");
break;
}
}
String wordOut = word.toString();
System.out.println(wordOut);
return wordOut;
}
/*比较游戏输出与玩家输入的字符串输出相应的结果*/
public boolean printResult(String wordInput)
{
boolean isContinue = true;
String answer = input.next();
long currentTime = System.currentTimeMillis();
if( answer.equals(wordInput))
{
if((currentTime-player.getStartTime())/1000<=LevelParam.levels[player.getLevelNo()-1].getTimeLimit())
{
player.setCurScore(player.getCurScore()+LevelParam.levels[player.getLevelNo()-1].getPerScore());
System.out.println("输入正确,你的积分是"+player.getCurScore()+",你的级别"+player.getLevelNo()+",已用时间"+((currentTime-player.getStartTime())/1000));
isContinue = true;
}
else
{
System.out.println("你输入太慢,已经超时,游戏结束!");
isContinue = false;
}
}
else
{
System.out.println("输入错误,游戏结束!");
isContinue = false;
}
return isContinue;
}
/*开始游戏*/
public void playGame()
{
boolean isOver = true;
do
{
player.setStartTime(System.currentTimeMillis());
int i;
for( i=1 ;i<=LevelParam.levels[player.getLevelNo()-1].getStrTime();i++)
{
String outword = strPrint();
boolean isContinue =printResult(outword);
if(!isContinue)
{
isOver = false;
break;
}
}
if((i-1)==LevelParam.levels[player.getLevelNo()-1].getStrTime())
{
player.setLevelNo(player.getLevelNo()+1);
if(player.getLevelNo()==6)
{
System.out.println("恭喜你游戏被你打爆了!");
break;
}
player.setStartTime(0);
player.setCurScore(0);
}
}while(player.getLevelNo()!=6&&isOver);
}
}
package quickkitdamo;
/**
* 游戏等级类,记录每个等级相应的信息
* @author wzq
*1.0 2009/3/27
*/
public class Level {
private int levelNo;//游戏等级
private int strLength;//每个等级对应输出的字符串长度
private int strTime;//每个级别输出字符串的次数
private int timeLimit;//每个级别闯关的时间限制
private int perScore;//各级别正确输入一次的得分
public Level()
{
this.levelNo =1;
this.perScore = 0;
this.strLength =0;
this.strTime = 0;
this.timeLimit = 0;
this.perScore = 0;
}
public Level(int levelNo,int strLength,int strTime,int timeLimit,int perScore )
{
setLevelNo( levelNo);
setPerScore( perScore);
setStrLength(strLength);
setStrTime( strTime);
setTimeLimit( timeLimit);
}
public int getLevelNo() {
return levelNo;
}
public void setLevelNo(int levelNo) {
this.levelNo = levelNo;
}
public int getPerScore() {
return perScore;
}
public void setPerScore(int perScore) {
this.perScore = perScore;
}
public int getStrLength() {
return strLength;
}
public void setStrLength(int strLength) {
this.strLength = strLength;
}
public int getStrTime() {
return strTime;
}
public void setStrTime(int strTime) {
this.strTime = strTime;
}
public int getTimeLimit() {
return timeLimit;
}
public void setTimeLimit(int timeLimit) {
this.timeLimit = timeLimit;
}
}
package quickkitdamo;
/**
* 储存游戏等级信息库类
* @author wzq
*1.0 2009/3/27
*/
public class LevelParam {
public final static Level[] levels = new Level[6];//游戏每个等级的信息
static {
levels[0]=new Level(1, 2, 10, 30,1);
levels[1]=new Level(2, 3, 9, 26,2);
levels[2]=new Level(3, 4, 8, 22,5);
levels[3]=new Level(4, 5, 7, 18,8);
levels[4]=new Level(5, 6, 6, 15,10);
levels[5]=new Level(6, 7, 5, 12,15);
}
}
package quickkitdamo;
/**
* 玩家类
* @author wzq
*1.0 2009/03/25
*/
public class Player {
private int levelNo;//当前等级
private int curScore;//当前积分
private long startTime;//当前级别开始的时间
private int elapsedTime;//当前级别已用时间
public Player()
{
this.levelNo = 1;
this.curScore = 0;
this.startTime = 0;
this.elapsedTime = 0;
}
public Player(int levelNo,int curScore, int startTime,int elapsedTime)
{
setLevelNo(levelNo);
setCurScore(curScore);
setStartTime(startTime);
setElapsedTime(elapsedTime);
}
public int getCurScore() {
return curScore;
}
public void setCurScore(int curScore) {
this.curScore = curScore;
}
public int getElapsedTime() {
return elapsedTime;
}
public void setElapsedTime(int elapsedTime) {
this.elapsedTime = elapsedTime;
}
public int getLevelNo() {
return levelNo;
}
public void setLevelNo(int levelNo) {
this.levelNo = levelNo;
}
public long getStartTime() {
return startTime;
}
public void setStartTime(long startTime) {
this.startTime = startTime;
}
/*玩家玩游戏*/
public void play(Game game)
{
}
}
package quickkitdamo;
import java.util.Scanner;
public class Test {
public static void main(String[]wzq)
{
// long currentTime1 = (System.currentTimeMillis());
// System.out.println(currentTime1);
// Scanner input = new Scanner(System.in);
// String ss = input.next();
// long currentTime2 = (System.currentTimeMillis());
// System.out.println((currentTime2-currentTime1)/1000);
Game game = new Game();
game.login();
//game.printResult("dd");
}
}
import java.util.Scanner;
/**
* 游戏类
* @author wzq
* 1.0 2009/3/27
*/
public class Game {
private Player player;//玩家
private static Scanner input = new Scanner(System.in);
public Game()
{
this.player = new Player(1,0,0,0);
}
public Player getPlayer() {
return player;
}
public void setPlayer(Player player) {
this.player = player;
}
/*游戏登陆界面*/
public void login()
{
System.out.println("======================欢迎来到ww打字游戏====================");
System.out.print("请按任意键开始游戏!");
String answer= input.next();
if(answer!= null)
{
playGame();
}
}
/*输出要玩家要打印的字符串*/
public String strPrint()
{
StringBuffer word = new StringBuffer("");
int strLength = 0;//每次答应字符串的长度
for(int k = 0;k<LevelParam.levels.length;k++)
{
if(player.getLevelNo()==LevelParam.levels[k].getLevelNo())
{
strLength = LevelParam.levels[k].getStrLength();
break;
}
}
for(int i = 0;i<strLength ;i++)
{
int num = 1+(int)(Math.random()*10)%9;
switch(num)
{
case 1:
word.append(">");
break;
case 2:
word.append("<");
break;
case 3:
word.append(",");
break;
case 4:
word.append("!");
break;
case 5:
word.append("abcD");
break;
case 6:
word.append("+-*%");
break;
case 7:
word.append("529");
break;
default:
word.append("skdk");
break;
}
}
String wordOut = word.toString();
System.out.println(wordOut);
return wordOut;
}
/*比较游戏输出与玩家输入的字符串输出相应的结果*/
public boolean printResult(String wordInput)
{
boolean isContinue = true;
String answer = input.next();
long currentTime = System.currentTimeMillis();
if( answer.equals(wordInput))
{
if((currentTime-player.getStartTime())/1000<=LevelParam.levels[player.getLevelNo()-1].getTimeLimit())
{
player.setCurScore(player.getCurScore()+LevelParam.levels[player.getLevelNo()-1].getPerScore());
System.out.println("输入正确,你的积分是"+player.getCurScore()+",你的级别"+player.getLevelNo()+",已用时间"+((currentTime-player.getStartTime())/1000));
isContinue = true;
}
else
{
System.out.println("你输入太慢,已经超时,游戏结束!");
isContinue = false;
}
}
else
{
System.out.println("输入错误,游戏结束!");
isContinue = false;
}
return isContinue;
}
/*开始游戏*/
public void playGame()
{
boolean isOver = true;
do
{
player.setStartTime(System.currentTimeMillis());
int i;
for( i=1 ;i<=LevelParam.levels[player.getLevelNo()-1].getStrTime();i++)
{
String outword = strPrint();
boolean isContinue =printResult(outword);
if(!isContinue)
{
isOver = false;
break;
}
}
if((i-1)==LevelParam.levels[player.getLevelNo()-1].getStrTime())
{
player.setLevelNo(player.getLevelNo()+1);
if(player.getLevelNo()==6)
{
System.out.println("恭喜你游戏被你打爆了!");
break;
}
player.setStartTime(0);
player.setCurScore(0);
}
}while(player.getLevelNo()!=6&&isOver);
}
}
package quickkitdamo;
/**
* 游戏等级类,记录每个等级相应的信息
* @author wzq
*1.0 2009/3/27
*/
public class Level {
private int levelNo;//游戏等级
private int strLength;//每个等级对应输出的字符串长度
private int strTime;//每个级别输出字符串的次数
private int timeLimit;//每个级别闯关的时间限制
private int perScore;//各级别正确输入一次的得分
public Level()
{
this.levelNo =1;
this.perScore = 0;
this.strLength =0;
this.strTime = 0;
this.timeLimit = 0;
this.perScore = 0;
}
public Level(int levelNo,int strLength,int strTime,int timeLimit,int perScore )
{
setLevelNo( levelNo);
setPerScore( perScore);
setStrLength(strLength);
setStrTime( strTime);
setTimeLimit( timeLimit);
}
public int getLevelNo() {
return levelNo;
}
public void setLevelNo(int levelNo) {
this.levelNo = levelNo;
}
public int getPerScore() {
return perScore;
}
public void setPerScore(int perScore) {
this.perScore = perScore;
}
public int getStrLength() {
return strLength;
}
public void setStrLength(int strLength) {
this.strLength = strLength;
}
public int getStrTime() {
return strTime;
}
public void setStrTime(int strTime) {
this.strTime = strTime;
}
public int getTimeLimit() {
return timeLimit;
}
public void setTimeLimit(int timeLimit) {
this.timeLimit = timeLimit;
}
}
package quickkitdamo;
/**
* 储存游戏等级信息库类
* @author wzq
*1.0 2009/3/27
*/
public class LevelParam {
public final static Level[] levels = new Level[6];//游戏每个等级的信息
static {
levels[0]=new Level(1, 2, 10, 30,1);
levels[1]=new Level(2, 3, 9, 26,2);
levels[2]=new Level(3, 4, 8, 22,5);
levels[3]=new Level(4, 5, 7, 18,8);
levels[4]=new Level(5, 6, 6, 15,10);
levels[5]=new Level(6, 7, 5, 12,15);
}
}
package quickkitdamo;
/**
* 玩家类
* @author wzq
*1.0 2009/03/25
*/
public class Player {
private int levelNo;//当前等级
private int curScore;//当前积分
private long startTime;//当前级别开始的时间
private int elapsedTime;//当前级别已用时间
public Player()
{
this.levelNo = 1;
this.curScore = 0;
this.startTime = 0;
this.elapsedTime = 0;
}
public Player(int levelNo,int curScore, int startTime,int elapsedTime)
{
setLevelNo(levelNo);
setCurScore(curScore);
setStartTime(startTime);
setElapsedTime(elapsedTime);
}
public int getCurScore() {
return curScore;
}
public void setCurScore(int curScore) {
this.curScore = curScore;
}
public int getElapsedTime() {
return elapsedTime;
}
public void setElapsedTime(int elapsedTime) {
this.elapsedTime = elapsedTime;
}
public int getLevelNo() {
return levelNo;
}
public void setLevelNo(int levelNo) {
this.levelNo = levelNo;
}
public long getStartTime() {
return startTime;
}
public void setStartTime(long startTime) {
this.startTime = startTime;
}
/*玩家玩游戏*/
public void play(Game game)
{
}
}
package quickkitdamo;
import java.util.Scanner;
public class Test {
public static void main(String[]wzq)
{
// long currentTime1 = (System.currentTimeMillis());
// System.out.println(currentTime1);
// Scanner input = new Scanner(System.in);
// String ss = input.next();
// long currentTime2 = (System.currentTimeMillis());
// System.out.println((currentTime2-currentTime1)/1000);
Game game = new Game();
game.login();
//game.printResult("dd");
}
}
- 打字游戏
- 打字游戏
- 打字游戏
- 打字游戏
- 打字游戏
- 打字游戏
- flash打字游戏
- C#打字游戏
- 汇编打字游戏
- 打字游戏代码
- VB,打字游戏
- 打字游戏(2)
- [Win32] 打字游戏
- 打字游戏课程设计
- 打字游戏(摘)
- gui 打字游戏
- Java打字游戏
- 打字游戏c语言
- 关于回车和换行的历史
- 计算整数的二进制中包含1的数量
- 数据库
- Linux 的随机数
- ubuntu网络配置
- 打字游戏
- 对vector等STL标准容器进行排序操作
- uboot阅读笔记之cpu工作模式(SVC32)
- C++引用的作用和用法
- 备忘录模式(Memento Pattern)
- Oracle常用SQL命令
- 视频监控的发展趋势
- 学习C++过程中有问题的作业,记下以便日后修改完善
- 黑马第一天