标题:java实现人机猜拳游戏的代码
只看楼主
smartice
Rank: 1
等 级:新手上路
帖 子:18
专家分:3
注 册:2011-7-23
结帖率:100%
 问题点数:0 回复次数:5 
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 对战 
2011-11-22 17:13
smartice
Rank: 1
等 级:新手上路
帖 子:18
专家分:3
注 册:2011-7-23
得分:0 
补充:在代码中加粗字体
  perFirst = person.showFirst();
            compFirst = computer.showFirst();
处出错。
2011-11-22 17:14
让我们飞
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:40
专家分:119
注 册:2011-1-9
得分:0 
没有错误信息不好判断

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

public void showFirst(){}
2011-11-23 10:36
心灵百合
Rank: 5Rank: 5
等 级:职业侠客
帖 子:215
专家分:367
注 册:2011-3-30
得分:0 
看不出错误,不过很有意思!我用C语言写一个
2011-11-23 21:23
smartice
Rank: 1
等 级:新手上路
帖 子:18
专家分:3
注 册:2011-7-23
得分:0 
回复 3楼 让我们飞
谢谢!
   前面的两个类Person和Computer的方法必须设置为有返回值的。
2011-11-24 16:31
java语言新手
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-8-17
得分:0 
加粗部分报错,求楼主解答
2020-08-18 14:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-355958-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.174736 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved