java设计一个类似石头剪刀布的游戏

菜鸟sunny 2017-03-19 07:30:56
用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);
}
}
...全文
615 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜鸟sunny 2017-03-20
  • 打赏
  • 举报
回复
麻烦指出具体是哪里错了
water_javadog 2017-03-20
  • 打赏
  • 举报
回复
空指针,没有对象
菜鸟sunny 2017-03-19
  • 打赏
  • 举报
回复
可以再具体一点吗?不是很懂,java里面不是没有指针吗?
我爱娃哈哈 2017-03-19
  • 打赏
  • 举报
回复
第五十行空指针

58,452

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧