import java.util.Scanner;
public class Caiquan {
public void A(){
System.out.println("--------------------------欢迎进入游戏世界--------------------------\n\n");
System.out.println("\t\t\t\t*****************************");
System.out.println("\t\t\t\t**\t猜拳,开始\t**");
System.out.println("\t\t\t\t*****************************");
Scanner s = new Scanner(System.in);
System.out.println("出拳规则:1.剪刀 2.石头 3.布");
System.out.print("请选择角色(1:刘备 2:孙权 3:曹操)");
    int a=s.nextInt();
    System.out.print("要开始吗?(y/n)");
    String answer = s.next();
    while(answer.equals("y")){
     switch(a){
case 1:
System.out.println("刘备");
break;
case 2:
System.out.println("孙权");
break;
case 3:
System.out.println("曹操");
}
     System.out.print("请出拳:1:剪刀 2:石头 3:布 (输入相应的数字):");
int b = s.nextInt();
switch(b){
case 1:
System.out.println("你出:剪刀");
break;
case 2:
System.out.println("你出:石头");
break;
case 3:
System.out.println("你出:布");
}
int random = (int)(Math.random()*3+1);
switch(random)
{
case 1:
System.out.println("电脑出:剪刀");
break;
case 2:
System.out.println("电脑出:石头");
break;
case 3:
System.out.println("电脑出:布");
break;
}
if(1==random||2==random||3==random){
System.out.println("结果:和棋!");
}else if(1>random||2>random||3>random){
System.out.println("结果:你赢了!");
}else{
System.out.println("结果:你是猪,电脑都干不过!");
}
System.out.print("是否继续(y/n)\n");
answer = s.next();
    }
    System.out.println("-------------------------------------");
    System.out.println(a+"vs匿名");
    System.out.println("对战次数:"+answer);
    System.out.println("结果:");
}
}

解决方案 »

  1.   

    输赢规则没写好,你复杂化了,这样写就好了:
    if(b - random == 0){
    System.out.println("结果:和棋!");
    }else if(b > random){
    System.out.println("结果:你赢了!");
    }else{
    System.out.println("结果:你是猪,电脑都干不过!");
    }
      

  2.   


    if(b - random == 0){
    System.out.println("结果:和棋!");
    }else if(random - b == 1 || b - random == -2){
    System.out.println("结果:你是猪,电脑都干不过!");
    }else{
    System.out.println("结果:你赢了!");
    }
      

  3.   

    你的main函数呢
    import java.util.Scanner;
    public class Caiquan {
    public void A(){
    System.out.println("--------------------------欢迎进入游戏世界--------------------------\n\n");
    System.out.println("\t\t\t\t*****************************");
    System.out.println("\t\t\t\t**\t猜拳,开始\t**");
    System.out.println("\t\t\t\t*****************************");
    Scanner s = new Scanner(System.in);
    System.out.println("出拳规则:1.剪刀 2.石头 3.布");
    System.out.print("请选择角色(1:刘备 2:孙权 3:曹操)");
      int a=s.nextInt();
      System.out.print("要开始吗?(y/n)");
      String answer = s.next();
      while(answer.equals("y")){
      switch(a){
    case 1:
    System.out.println("刘备");
    break;
    case 2:
    System.out.println("孙权");
    break;
    case 3:
    System.out.println("曹操");
    }
      System.out.print("请出拳:1:剪刀 2:石头 3:布 (输入相应的数字):");
    int b = s.nextInt();
    switch(b){
    case 1:
    System.out.println("你出:剪刀");
    break;
    case 2:
    System.out.println("你出:石头");
    break;
    case 3:
    System.out.println("你出:布");
    }
    int random = (int)(Math.random()*3+1);
    switch(random)
    {
    case 1:
    System.out.println("电脑出:剪刀");
    break;
    case 2:
    System.out.println("电脑出:石头");
    break;
    case 3:
    System.out.println("电脑出:布");
    break;
    }
    if(b==random||b==random||b==random){
    System.out.println("结果:和棋!");
    }else if(b>random||b>random||b
    >random){
    System.out.println("结果:你赢了!");
    }else{
    System.out.println("结果:你是猪,电脑都干不过!");
    }
    System.out.print("是否继续(y/n)\n");
    answer = s.next();
      }
      System.out.println("-------------------------------------");
      System.out.println(a+"vs匿名");
      System.out.println("对战次数:"+answer);
      System.out.println("结果:");
    }
    public static void main(String[] args) {
    Caiquan c = new Caiquan();
    c.A();
    }
    }
      

  4.   

    Holy Shit !晕头转向的。。package csdn.javase.other.ex1;
    import java.util.Scanner;
    class Caiquan {

    public void A(){
    System.out.println("--------------------------欢迎进入游戏世界--------------------------\n\n");
    System.out.println("\t\t\t\t*****************************");
    System.out.println("\t\t\t\t**\t猜拳,开始\t**");
    System.out.println("\t\t\t\t*****************************");

    Scanner s = new Scanner(System.in);

    System.out.println("出拳规则:1.剪刀 2.石头 3.布");
    System.out.print("请选择角色(1:刘备 2:孙权 3:曹操)");
    int a=s.nextInt();
    System.out.print("要开始吗?(y/n)");
    String answer = s.next();

    while(answer.equals("y")){
    switch(a){
    case 1:
    System.out.println("刘备");
    break;
    case 2:
    System.out.println("孙权");
    break;
    case 3:
    System.out.println("曹操");
    }

    System.out.print("请出拳:1:剪刀 2:石头 3:布 (输入相应的数字):");
    int b = s.nextInt();

    switch(b){
    case 1:
    System.out.println("你出:剪刀");
    break;
    case 2:
    System.out.println("你出:石头");
    break;
    case 3:
    System.out.println("你出:布");
    }

    int random = (int)(Math.random()*3+1);


    switch(random)
    {
    case 1:
    System.out.println("电脑出:剪刀");
    break;
    case 2:
    System.out.println("电脑出:石头");
    break;
    case 3:
    System.out.println("电脑出:布");
    break;
    }

    if(b - random == 0){
    System.out.println("结果:和棋!");
    }else if(random - b == 1 || random - b == -2){
    System.out.println("结果:你是猪,电脑都干不过!");
    }else{
    System.out.println("结果:你赢了!");
    }
    System.out.print("是否继续(y/n)\n");
    answer = s.next();
    }

    System.out.println("-------------------------------------");
    System.out.println(a+"vs匿名");
    System.out.println("对战次数:"+answer);
    System.out.println("结果:");
    }
    }主函数:
    package csdn.javase.other.ex1;public class TestCaiQuan {
    public static void main (String[] args){
    Caiquan cq = new Caiquan();
    cq.A();
    }
    }/**部分输出:
    是否继续(y/n)
    y
    曹操
    请出拳:1:剪刀 2:石头 3:布 (输入相应的数字):3
    你出:布
    电脑出:剪刀
    结果:你是猪,电脑都干不过!
    是否继续(y/n)
    y
    曹操
    请出拳:1:剪刀 2:石头 3:布 (输入相应的数字):2
    你出:石头
    电脑出:布
    结果:你是猪,电脑都干不过!
    是否继续(y/n)
    y
    曹操
    请出拳:1:剪刀 2:石头 3:布 (输入相应的数字):3
    你出:布
    电脑出:石头
    结果:你赢了!
    是否继续(y/n)*/
      

  5.   

    对战次数写的有问题啊,干嘛不在while里面用个变量,每次都加一,你这次数answer=s.next()是什么意思
      

  6.   

    发现你的对战的统计次数写得也有问题。。再改了一下(主函数见14楼):
    package csdn.javase.other.ex1;
    import java.util.Scanner;class Caiquan {
    private int nums ;
    private int wins ;
    private int lose ;
    private int  dogfall;

    public void A(){
    System.out.println("--------------------------欢迎进入游戏世界--------------------------\n\n");
    System.out.println("\t\t\t\t*****************************");
    System.out.println("\t\t\t\t**\t猜拳,开始\t**");
    System.out.println("\t\t\t\t*****************************");

    Scanner s = new Scanner(System.in);

    System.out.println("出拳规则:1.剪刀 2.石头 3.布");
    System.out.print("请选择角色(1:刘备 2:孙权 3:曹操)");
    int a=s.nextInt();
    System.out.print("要开始吗?(y/n)");
    String answer = s.next();

    while(answer.equals("y")){
    nums ++;
    switch(a){
    case 1:
    System.out.println("刘备");
    break;
    case 2:
    System.out.println("孙权");
    break;
    case 3:
    System.out.println("曹操");
    }

    System.out.print("请出拳:1:剪刀 2:石头 3:布 (输入相应的数字):");
    int b = s.nextInt();

    switch(b){
    case 1:
    System.out.println("你出:剪刀");
    break;
    case 2:
    System.out.println("你出:石头");
    break;
    case 3:
    System.out.println("你出:布");
    }

    int random = (int)(Math.random()*3+1);


    switch(random)
    {
    case 1:
    System.out.println("电脑出:剪刀");
    break;
    case 2:
    System.out.println("电脑出:石头");
    break;
    case 3:
    System.out.println("电脑出:布");
    break;
    }

    if(b - random == 0){
    System.out.println("结果:和棋!");
    dogfall++;
    }else if(random - b == 1 || random - b == -2){
    System.out.println("结果:你是猪,电脑都干不过!");
    lose++;
    }else{
    System.out.println("结果:你赢了!");
    wins ++;
    }
    System.out.print("是否继续(y/n)\n");
    answer = s.next();
    }

    System.out.println("-------------------------------------");
    System.out.println(a+"vs匿名");
    System.out.println("对战次数:"+nums);
    System.out.println("结果:赢:"+wins+"输:"+lose+"平局:"+dogfall);
    }
    }
      

  7.   

    谢谢楼上的指点 
    但是还有个问题 输入对战时 a "vs匿名"  a可以改别的么?
      

  8.   

    else if(1>random||2>random||3>random){
    System.out.println("结果:你赢了!");这里的问题吧 剪刀是1 布是3 1怎么可能大于三呢
      

  9.   

    还有你的answer变量也有问题 问的是几次 你打印一个是否继续的N做什么呢 楼主加油
      

  10.   

    关键我做的时候是自己摸索的 可能很多地方有错的 请大家帮我指正下
       努力学习中 学习ing