当前位置: 代码迷 >> Java相关 >> java实现人机猜拳游戏的代码
  详细解决方案

java实现人机猜拳游戏的代码

热度:645   发布时间:2011-11-22 17:13:52.0
java实现人机猜拳游戏的代码
需求说明:
创建游戏类
       属性:甲方玩家(用户)、乙方玩家(计算机)、对战次数
编写游戏类方法1――初始化
编写游戏类方法2――计算并返回对战结果
编写游戏类方法3――显示对战结果  
代码如下:

import java.util.*;
//建一个Person类
public class Person {
    Scanner input = new Scanner(System.in);
    /**
     * 定义属性
     */
    String name ;
    int score;
    /**
     * 人的出拳方法
     */
    public void showFirst(){
        System.out.print("请出拳:1.剪刀 2.石头 3.布(请输入相应数字:)");
        int num = input.nextInt();
        switch(num){
        case 1:
            System.out.println("你出拳: 剪刀");
            break;
        case 2:
            System.out.println("你出拳: 石头");
            break;
        case 3:
            System.out.println("你出拳: 布");
            break;
        default:
            System.out.println("输入有误,请重新输入:");
        }
    }
}

建一个Computer类
import java.util.*;
public class Computer {
    Scanner input = new Scanner(System.in);
    /**
     * 类的属性
     */
    String name;
    int score;
    /**
     * 计算机出拳方法
     */
    public void showFirst(){
        int num = (int)(Math.random() * 10 % 3 + 1);
        switch(num){
            case 1 :
                System.out.println("电脑出拳:剪刀");
                break;
            case 2 :
                System.out.println("电脑出拳:石头");
                break;
            case 3 :
                System.out.println("电脑出拳:布");
                break;
            default:
                System.out.print("输入有误,请重新输入:");
        }
    }

}
最后是游戏类
import java.util.*;
public class Game {
    Scanner input = new Scanner(System.in);
    /**
     * 定义属性
     */
    Person person;//甲方
    Computer computer;//乙方
    int count;//对战次数
    /**
     * 初始化方法
     */
    public void Initial(){
         person = new Person();
         computer = new Computer();
         count = 0;
    }
    /**
     * 游戏头及规则、选择对手
     */
    public void Show(){
        System.out.println("-----------欢迎进入游戏世界-----------");
        System.out.println("\t******************");
        System.out.println("\t**    猜拳,开始    **");
        System.out.println("\t******************");
        System.out.println("\n出拳规则:1.剪刀 2.石头 3.布");
        System.out.print("请选择对方角色:(1.刘备 2.孙权 3.曹操):");//选择对方角色
        int num = input.nextInt();
        switch(num){
            case 1:
                System.out.println("你选择了  刘备对战");
                break;
            case 2:
                System.out.println("你选择了  孙权对战");
                break;
            case 3:
                System.out.println("你选择了  曹操对战");
                break;
        }

    }
    /**
     * 开始游戏
     */
    public void Start(){
        System.out.print("要开始吗?(y/n)");
        String answer = input.next();
        int perFirst;//用户出拳
        int compFirst;//计算机出拳
        while(answer.equals("y")){//出拳
            perFirst = person.showFirst();
            compFirst = computer.showFirst();

        if((perFirst == 1 && compFirst == 1)||(perFirst == 2 && compFirst == 2)||(perFirst == 3 && compFirst == 3)){
            System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧 !\n");//平局
        }else if((perFirst == 1 && compFirst == 3) || (perFirst == 2  && compFirst == 1) || (perFirst == 3 && compFirst == 2)){
             System.out.println("结果: 恭喜, 你赢了!");  //用户赢
             person.score++;
        }else{
            System.out.println("结果说:^_^,你输了,真笨!\n");  //计算机赢
            computer.score++;
        }
        count++;
          System.out.print("\n是否开始下一轮(y/n):  ");
           answer = input.next();
        }
    }
   
    }
在Game代码中红色字体部分出错,求解答。
搜索更多相关的解决方案: 游戏  计算机  public  import  对战  

----------------解决方案--------------------------------------------------------
补充:在代码中加粗字体
  perFirst = person.showFirst();
            compFirst = computer.showFirst();
处出错。
----------------解决方案--------------------------------------------------------
没有错误信息不好判断

perFirst = person.showFirst();
你的showFirst()没有返回值

public void showFirst(){}

----------------解决方案--------------------------------------------------------
看不出错误,不过很有意思!我用C语言写一个
----------------解决方案--------------------------------------------------------
回复 3楼 让我们飞
谢谢!
   前面的两个类Person和Computer的方法必须设置为有返回值的。
----------------解决方案--------------------------------------------------------
  相关解决方案