我写了个文字游戏:商店类老出错。
package WenziGame;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Vector;import WenziGame.Role; /**主测试类
* @param <vector>*/
public class MainTest<vector> {
//游戏状态: ——定义个 变量
/*0=游戏帮助 1=主角属性 2=商店 3=怪物*/
static int gameState=-1;
//判断游戏是否继续 ——定义个 布尔值
static boolean isRun=true;
/**初始化---------------*/
static Role role =null;
public static void main(String[] args) {
/**赋值-------------------*/
role = new Role(100,100,0,1,20,5,0.0);
/**背包*/
//游戏反复运行——死循环——while
while(isRun){
//切换游戏状态——用变量——switch
String g= getInput(); // 变量 @
setGameState(g); /**需要一个变量控制switch(也就是gameState)*/
/**需要玩家输入,所以需建一个变量 @ 控制setGameState*/
switch(gameState){
case 0: //显示帮助
showHelp();
break;
case 1: //主角属性
showZJ();
break;
case 2: //道具菜单
showProp();
break;
case 3: //怪物列表
break;
}
}
} /*方法*/
/**按键操作,玩家输入(控制setGameState)*/
public static String getInput(){
InputStream in = System.in;
InputStreamReader ir =new InputStreamReader(in);
BufferedReader br=new BufferedReader(ir);
String s="";
try{
s=br.readLine();
}catch(IOException ie){
ie.printStackTrace();
}
return s;
}
/**切换游戏状态*/
public static void setGameState(String s){
for(int i=0;i<4;i++){
if(s.equals(""+i)){
gameState =i;
return;
}
}
}
/**显示帮助*/
static void showHelp(){
System.out.println("按0键:查看帮助文档");
System.out.println("按1键:查看主角属性");
System.out.println("按2键:查看道具信息");
System.out.println("按3键:查看怪物信息");
}
/**显示主角属性*/
static void showZJ(){
System.out.println(""); //武器
System.out.println(""); //道具
//升级 血+3; 魔+2 伤害+2
System.out.println("血量= "+role.hp);
System.out.println("魔法= "+role.mp);
System.out.println("等级= "+role.lv);
System.out.println("伤害= "+role.hv);
System.out.println("防御= "+role.ac);
System.out.println("经验= "+role.exp);
System.out.println("暴击率= "+role.crt);
}
/**背包*/
static void showProp(){
Vector []ar=new Vector[10];//定义数组最大容器
for(int i=0;i<ar.length;i++){ //对数组中的每个元素实例化
ar[i]=new Vector();
}
Prop p1=new Prop("金创药",15);
ar[0].addElement(p1);
ar[0].addElement(p1);
ar[0].addElement(p1);
Prop p2=new Prop("万年雪霜",30);
ar[1].addElement(p2);
ar[1].addElement(p2);
Prop p3=new Prop("魔法药",15);
ar[2].addElement(p3);
Prop p4=new Prop("天山雪莲",30);
ar[2].addElement(p4);
for(int i=0;i<ar.length;i++){
if(ar[i].size()==0){
continue;
}
Prop pp=(Prop) ar[i].elementAt(0);
System.out.println("物品: "+pp.type+" 物品价钱 :"+pp.price);
System.out.println("持有数目 :"+ar[i].size());
}
}
}package WenziGame;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**商店类*/public class Shangdian {
/*金创药0,万年雪霜1;魔法药2,天山雪莲3;铜剑4,刚剑5;铜盾6,钢盾7;银戒指8,金戒指9*/
String type; //物品类型
int price; //价钱
public Shangdian(String type,int price) {
this.type=type;
this.price=price;
}
// 买东西
public static int buyProp=-1;
public static void jinCuang(){
System.out.println("金创药+ MP50");
switch(buyProp){ //******出错行
String s= getInput();
setGameState(s);
case 0: //金创药0
break;
case 1: //万年雪霜1
break;
case 2: //魔法药2
break;
case 3: //天山雪莲3
break;
}
}
/**按键操作,玩家输入*/ //要买几好东西
public static String getInput(){
InputStream in = System.in;
InputStreamReader ir =new InputStreamReader(in);
BufferedReader br=new BufferedReader(ir);
String s="";
try{
s=br.readLine();
}catch(IOException ie){
ie.printStackTrace();
}
return s;
}
/**切换游戏状态*/
public static void setbuyProp(String s){
for(int i=0;i<10;i++){
if(s.equals(""+i)){
buyProp =i;
return ;
}
}
}
}
package WenziGame;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Vector;import WenziGame.Role; /**主测试类
* @param <vector>*/
public class MainTest<vector> {
//游戏状态: ——定义个 变量
/*0=游戏帮助 1=主角属性 2=商店 3=怪物*/
static int gameState=-1;
//判断游戏是否继续 ——定义个 布尔值
static boolean isRun=true;
/**初始化---------------*/
static Role role =null;
public static void main(String[] args) {
/**赋值-------------------*/
role = new Role(100,100,0,1,20,5,0.0);
/**背包*/
//游戏反复运行——死循环——while
while(isRun){
//切换游戏状态——用变量——switch
String g= getInput(); // 变量 @
setGameState(g); /**需要一个变量控制switch(也就是gameState)*/
/**需要玩家输入,所以需建一个变量 @ 控制setGameState*/
switch(gameState){
case 0: //显示帮助
showHelp();
break;
case 1: //主角属性
showZJ();
break;
case 2: //道具菜单
showProp();
break;
case 3: //怪物列表
break;
}
}
} /*方法*/
/**按键操作,玩家输入(控制setGameState)*/
public static String getInput(){
InputStream in = System.in;
InputStreamReader ir =new InputStreamReader(in);
BufferedReader br=new BufferedReader(ir);
String s="";
try{
s=br.readLine();
}catch(IOException ie){
ie.printStackTrace();
}
return s;
}
/**切换游戏状态*/
public static void setGameState(String s){
for(int i=0;i<4;i++){
if(s.equals(""+i)){
gameState =i;
return;
}
}
}
/**显示帮助*/
static void showHelp(){
System.out.println("按0键:查看帮助文档");
System.out.println("按1键:查看主角属性");
System.out.println("按2键:查看道具信息");
System.out.println("按3键:查看怪物信息");
}
/**显示主角属性*/
static void showZJ(){
System.out.println(""); //武器
System.out.println(""); //道具
//升级 血+3; 魔+2 伤害+2
System.out.println("血量= "+role.hp);
System.out.println("魔法= "+role.mp);
System.out.println("等级= "+role.lv);
System.out.println("伤害= "+role.hv);
System.out.println("防御= "+role.ac);
System.out.println("经验= "+role.exp);
System.out.println("暴击率= "+role.crt);
}
/**背包*/
static void showProp(){
Vector []ar=new Vector[10];//定义数组最大容器
for(int i=0;i<ar.length;i++){ //对数组中的每个元素实例化
ar[i]=new Vector();
}
Prop p1=new Prop("金创药",15);
ar[0].addElement(p1);
ar[0].addElement(p1);
ar[0].addElement(p1);
Prop p2=new Prop("万年雪霜",30);
ar[1].addElement(p2);
ar[1].addElement(p2);
Prop p3=new Prop("魔法药",15);
ar[2].addElement(p3);
Prop p4=new Prop("天山雪莲",30);
ar[2].addElement(p4);
for(int i=0;i<ar.length;i++){
if(ar[i].size()==0){
continue;
}
Prop pp=(Prop) ar[i].elementAt(0);
System.out.println("物品: "+pp.type+" 物品价钱 :"+pp.price);
System.out.println("持有数目 :"+ar[i].size());
}
}
}package WenziGame;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**商店类*/public class Shangdian {
/*金创药0,万年雪霜1;魔法药2,天山雪莲3;铜剑4,刚剑5;铜盾6,钢盾7;银戒指8,金戒指9*/
String type; //物品类型
int price; //价钱
public Shangdian(String type,int price) {
this.type=type;
this.price=price;
}
// 买东西
public static int buyProp=-1;
public static void jinCuang(){
System.out.println("金创药+ MP50");
switch(buyProp){ //******出错行
String s= getInput();
setGameState(s);
case 0: //金创药0
break;
case 1: //万年雪霜1
break;
case 2: //魔法药2
break;
case 3: //天山雪莲3
break;
}
}
/**按键操作,玩家输入*/ //要买几好东西
public static String getInput(){
InputStream in = System.in;
InputStreamReader ir =new InputStreamReader(in);
BufferedReader br=new BufferedReader(ir);
String s="";
try{
s=br.readLine();
}catch(IOException ie){
ie.printStackTrace();
}
return s;
}
/**切换游戏状态*/
public static void setbuyProp(String s){
for(int i=0;i<10;i++){
if(s.equals(""+i)){
buyProp =i;
return ;
}
}
}
}
String s= getInput();
setGameState(s);
case 0: //金创药0
break;
case 1: //万年雪霜1
break;
case 2: //魔法药2
break;
case 3: //天山雪莲3
break;
}
String s= getInput();
setGameState(s);
这两句写在switch里干什么?case前不应该有语句吧