用java设计一个类似石头剪刀布的游戏,因为要求代码具有高的可移植性,所以我把程序改成了用户自定义游戏规则,但是运行的时候一直报错:
然后代码里面可能还有其他问题,刚刚才学java,老师就让写这个,哎。
package java练习;
import java.util.Random;
import java.util.Scanner;
public class java练习
{
public static class choose //保存游戏各角色的优先级
{
int n; //角色数
int m; //游戏局数
int[][] anArray; //各角色的优先级
}
public static class grades //保存游戏结果
{
int win; //胜局数
int lose; //败局数
int equal; //平局数
}
public static void setprority(choose A) //为游戏制定规则
{
int i,j;
int p=0,q=0;
for(i=0;i<A.n;i++) //初始化各角色优先级数组
for(j=0;j<A.n;j++)
{
A.anArray[i][j]=0;
}
System.out.println("创建游戏优先级");
Scanner reader=new Scanner(System.in);
System.out.println("请输入游戏角色的个数:");
A.n=reader.nextInt();
for(i=1;i<=A.n;i++)
{
System.out.println("第"+i+"个角色是:");
String s=reader.next();
}
System.out.println("请输入游戏的局数:");
A.m=reader.nextInt();
System.out.println("请为所有元素制定优先级");
System.out.println("大于请输入1,小于请输入-1,等于输入0");
for(i=0;i<A.n;i++) //根据用户输入创建角色优先级
for(j=0;j<A.n;j++)
{
p=i+1;
q=j+1;
System.out.println("("+p+","+q+"):");
A.anArray[i][j]=reader.nextInt();
}
System.out.println("规则制定完成!");
System.out.println("规则显示如下:");
for(i=0;i<A.n;i++) //显示角色优先级
{ for(j=0;j<A.n;j++)
{
System.out.print(A.anArray[i][j]+" ");
}
System.out.println(" ");
}
}
public static void PlaytheGame(choose A,grades B) //执行游戏
{
int i;
Scanner sc = new Scanner(System.in);
for(i=1;i<=A.m;i++) //控制局数
{
System.out.println("游戏开始!");
System.out.println("第"+i+"局:");
System.out.println("请输入技能(0-"+A.n+")");
int player=sc.nextInt();
Random ran = new Random(); //电脑产生随机数
int computer = ran.nextInt(A.n)+1 ;
switch(A.anArray[player][computer]) //比较大小
{
case -1:
System.out.println("You lose!");
B.lose++;
break;
case 0:
System.out.println("Eqaul!");
B.equal++;
break;
case 1:
System.out.println("You win!");
B.win++;
break;
}
}
System.out.println("游戏结束!");
}
public static void calculate(grades B) //输出游戏结果
{
if(B.win>B.lose)
{
System.out.println("You beat the computer!Congratulation!");
}
else if(B.win<B.lose)
{
System.out.println("What a pity!You failed!");
}
else
{
System.out.println("Equal...");
}
System.out.println("胜"+B.win+"局,败"+B.lose+"局,平"+B.equal+"局");
}
public static void main(String[] args)
{
choose a=new choose();
grades b=new grades();
setprority(a);
PlaytheGame(a,b);
calculate(b);
}
}