使用java循环和选择结构,实现人机猜拳

  • Person.java 玩家类
  • /**
     * @author Life_Ding
     * Time:
     */
    import java.util.Scanner;
    public class Person {
    //属性
    String P_name;//玩家名称
    int P_point;//玩家积分
    public int P_fist(){
    System.out.print("请出拳:1.剪刀 2.石头 3.布(输入相应数字):");
    int sum = new Scanner(System.in).nextInt();
    //等值选择 switch
    switch(sum){
    case 1:
    System.out.println("\n您出拳: 剪刀 ");
    break;
    case 2:
    System.out.println("\n您出拳: 石头");
    break;
    case 3:
    System.out.println("\n您出拳: 布");
    break;
    default:
    System.out.println("\n请输入正确选项!");
    break;
    }
    return sum;
    }
    /*
    * 测试
    */
    public static void main(String[] args) {
    Person p = new Person();
    p.P_fist();
    }
    }
  •  Computer.java 电脑类
  • /**
     * @author Life_Ding
     *计算机类
     */
    public class Computer {
    //属性
    String C_name;//NPC名称
    int C_point;//NPC积分
    /**
    * NPC的出拳方法
    */
    public int C_fist(){
    //生成随机数
    //0~1 乘以10之后 1-9 %3之后0 1 2 
    int show = (int)(Math.random()*10)%3+1;
    //等值选择 switch
    switch(show){
    case 1:
    System.out.println("\nNPC出拳: 剪刀 ");
    break;
    case 2:
    System.out.println("\nNPC: 石头");
    break;
    case 3:
    System.out.println("\nNPC出拳: 布");
    break;
    }
    return show;
    }
    /*
    * 测试类
    */
    public static void main(String[] args) {
    Computer c = new Computer();
    c.C_fist();
    }
    }
  • Game.java 游戏类
  • import java.util.Scanner;
    /**
     * 初始化 对象类
     * @author Life_Ding
     *
     */
    public class Game {
    int i=0;//新增计数器计算局数
    int name;
    Person p;//case 4 调用玩家对象名
    Computer c;//声明变量
    public void initial(){
    p = new Person();
    c = new Computer();
    }
    /*
    * 游戏的开始方法
    * startGame()
    */
    public void startGame(){
    //调用初始化方法
    initial();
    Scanner input=new Scanner(System.in);
    System.out.println("-----------------欢迎进入游戏世界---------------\n\n");
    System.out.println("\t\t**************");
    System.out.println("\t\t ** 猜拳.开始 **");
    System.out.println("\t\t**************");
    System.out.println("\n\n");
    System.out.println("出拳规则:1.剪刀 2.石头 3.布");
    System.out.print("请选择.对方角色(1.刘备2.孙权3.曹操):");
    int choice = new Scanner(System.in).nextInt();
    //选择结构
    switch(choice){
    case 1:
    //TODO 怎么给计算机NPC 游戏名赋值!+
    //创建对象 声明到类里 从初始化方法中提出去
    c.C_name="刘备";
    break;
    case 2:
    c.C_name="孙权";
    break;
    case 3:
    c.C_name="曹操";
    break;
    default:
    System.out.println("请输入正确的选项!");
    break;
    }
    //给玩家姓名赋值
    System.out.print("请输入您的姓名:");
    p.P_name=new Scanner(System.in).next();
    //NPC选择了哪个英雄对战!
    // System.out.println("您选择了"+p.P_name+"对战!\n");
    System.out.println(p.P_name+" VS "+c.C_name);
    System.out.print("\n要开始了吗?(y/n):");
    String anwer=input.next();
    while(anwer.equals("y")){
    //调用玩家的方法
    int person=p.P_fist();//变量换个位置即可作弊!!
    int computer=c.C_fist();
    //出拳
    //通过返回结果来判断输赢
    //1.平局
    if((person==1&&computer==1)||
    (person==2&&computer==2)||
    (person==3&&computer==3)){
    System.out.println("\n结果:平局!");
    //2.玩家赢
    }else if((person==1&&computer==3)||
    (person==2&&computer==1)||
    (person==3&&computer==2)){
    System.out.println("\n结果:^_^ ~ 不错哦!您赢了\n");
    //case 5:累计积分
    p.P_point++;//玩家积分
    System.out.println("玩家积分:"+p.P_point);
    //3.电脑赢
    }else{
    System.out.println("\n结果:@_@ ~ 运气不好哦!您输了!\n");
    c.C_point++;//NPC积分
    System.out.println("NPC积分:"+c.C_point);
    }
    System.out.print("\n要进行下一局吗?(y/n):");
    anwer=new Scanner(System.in).next();
    i++;
    }
    // case 6: 显示对战人和积分的比较
    showResult();
    }
    // 权限用public 或者 privte 都可以
    private void showResult() {
    // TODO 写相应的业务逻辑
    //比较积分大小
    System.out.println("-------------------------");
    System.out.println(p.P_name+" VS "+c.C_name);
    System.out.println("对战次数:"+i);
    if(p.P_point>c.C_point){
    System.out.println("您赢得了最终的胜利!!!\n");
    }else if(c.C_point==p.P_point){
    System.out.println("打了个平局!\n");
    }else{
    System.out.println("您输了!可真是个笨笨!\n");
    }
    //显示积分详细
    System.out.println("姓名\t"+"积分\n"+p.P_name+"\t"+p.P_point+
    "\n"+c.C_name+"\t"+c.C_point);
    System.out.println("-------------------------");
    }
    }
  • Test.java 测试类
  • public class Test {
    public static void main(String[] args) {
    Game g = new Game();
    g.startGame();
    }
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我可以帮你实现一个简单的人机猜拳游戏。首先,我们需要定义一个对象类来表示人和机器的玩家。下面是一个示例代码: ``` public class Player { private String name; private int score; private int choice; // 构造函数 public Player(String name) { this.name = name; this.score = 0; } // 获取玩家姓名 public String getName() { return this.name; } // 获取玩家分数 public int getScore() { return this.score; } // 玩家出拳 public void makeChoice(int choice) { this.choice = choice; } // 获取玩家出拳 public int getChoice() { return this.choice; } // 玩家得分 public void win() { this.score++; } } ``` 接下来,我们需要编写一个游戏类来控制游戏流程。下面是一个示例代码: ``` import java.util.Random; import java.util.Scanner; public class Game { private Player human; private Player computer; private Scanner scanner; private Random random; // 构造函数 public Game() { this.human = new Player("Human"); this.computer = new Player("Computer"); this.scanner = new Scanner(System.in); this.random = new Random(); } // 游戏开始 public void start() { System.out.println("Welcome to the Rock-Paper-Scissors game!"); while (true) { // 玩家出拳 System.out.print("Please choose (1-Rock, 2-Paper, 3-Scissors): "); int choice = scanner.nextInt(); human.makeChoice(choice); // 机器出拳 int computerChoice = random.nextInt(3) + 1; computer.makeChoice(computerChoice); System.out.println("Computer chooses " + computerChoice); // 判断胜负 int result = calculateResult(human.getChoice(), computer.getChoice()); if (result == 1) { System.out.println("You win!"); human.win(); } else if (result == -1) { System.out.println("You lose!"); computer.win(); } else { System.out.println("It's a tie!"); } // 显示分数 System.out.println("Score: " + human.getName() + " " + human.getScore() + " - " + computer.getName() + " " + computer.getScore()); // 询问是否继续 System.out.print("Do you want to continue? (Y/N) "); String answer = scanner.next(); if (answer.equalsIgnoreCase("N")) { break; } } System.out.println("Thanks for playing!"); } // 计算胜负 private int calculateResult(int humanChoice, int computerChoice) { if (humanChoice == computerChoice) { return 0; } else if (humanChoice == 1 && computerChoice == 3 || humanChoice == 2 && computerChoice == 1 || humanChoice == 3 && computerChoice == 2) { return 1; } else { return -1; } } } ``` 最后,我们可以在主函数中创建一个游戏对象并启动游戏: ``` public static void main(String[] args) { Game game = new Game(); game.start(); } ``` 这样就完成了一个简单的人机猜拳游戏的实现。 ### 回答2: 使用Java编程语言实现人机猜拳可以通过对象类来完成。首先,我们可以创建一个Player类来表示玩家对象,其中包括玩家的姓名和选择的手势。Player类可以具有以下属性和方法: 属性: - 姓名:表示玩家的姓名。 - 手势:表示玩家选择的手势(剪刀、石头、布)。 方法: - 获取姓名:用于获取玩家的姓名。 - 设置手势:用于设置玩家选择的手势。 - 获取手势:用于获取玩家选择的手势。 然后,我们可以创建一个Computer类来表示计算机对象,其中包括计算机的选择的手势。Computer类可以具有以下属性和方法: 属性: - 手势:表示计算机选择的手势(剪刀、石头、布)。 方法: - 设置手势:用于设置计算机选择的手势。 - 获取手势:用于获取计算机选择的手势。 接下来,我们可以创建一个Game类来处理玩家和计算机的猜拳游戏逻辑。Game类可以具有以下方法: 方法: - 开始游戏:用于开始猜拳游戏。 - 玩家出拳:用于让玩家输入手势。 - 计算机出拳:用于让计算机随机选择手势。 - 判断结果:用于判断玩家和计算机的手势,显示获胜者。 在Game类的开始游戏方法中,可以通过调用玩家出拳和计算机出拳的方法来让玩家和计算机进行选择手势,并通过判断结果的方法来判断获胜者。 以上就是使用Java对象类来完成人机猜拳的简要说明。具体实现的代码可以根据需要进行进一步编写和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值