人机猜拳.

/**
 * 计算机类
 */
public class Computer {
       String name = "电脑"; // 名字
       int score = 0;;       // 积分

       /**
        * 出拳
        * @return 出拳结果:1.剪刀 2.石头 3.布
        */
       public int showFist(){
           // 产生随机数
           int show = (int)(Math.random()*10)%3 + 1;  //产生随机数,表示电脑出拳

           // 输出出拳结果并返回
           switch(show){
              case 1:
                  System.out.println(name+"出拳: 剪刀");
                  break;
              case 2:
                  System.out.println(name+"出拳: 石头");
                  break;
              case 3:
                  System.out.println(name+"出拳: 布");
                  break;
           }
           return show;
       }
}
/**
 * 用户类
 */
public class Person {
      String name = "匿名";  // 名字
      int score = 0;         // 积分  

      /**
       * 出拳
       * @return 出拳结果:1.剪刀 2.石头 3.布
       */
      public int showFist(){
          // 接收用户的选择
          Scanner input = new Scanner(System.in);
          System.out.print("\n请出拳:1.剪刀 2.石头 3.布 (输入相应数字) :");
          int show = input.nextInt();

          // 输出出拳结果,并返回
          switch(show){
              case 1:
                  System.out.println("你出拳: 剪刀");
                  break;
              case 2:
                  System.out.println("你出拳: 石头");
                  break;
              case 3:
                  System.out.println("你出拳: 布");
                  break;
          }
          return show;
      }
}
/**
 * 游戏类
 */
public class Game {
    Person person;       //甲方
    Computer computer;   //乙方
    int count;           //对战次数

    /**
     * 初始化
     */
    public void initial(){
        person = new Person();
        computer = new Computer();
        count = 0;
    }

    /**
     * 开始游戏
     */
    public void startGame() {

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

        System.out.println("\n出拳规则:1.剪刀 2.石头 3.布");

        Scanner input = new Scanner(System.in);
        String exit = "n";  // 退出系统

        do{
            initial();  // 初始化
            /*选择对方角色*/
            System.out.print("请选择对方角色(1:刘备 2:孙权 3:曹操): ");

            int role = input.nextInt();
            if(role == 1){
                computer.name = "刘备";
            }else if(role == 2){
                computer.name = "孙权";
            }else if(role == 3){
                computer.name = "曹操";
            }   

            // 扩展功能1:输入用户姓名
            /*输入用户姓名*/
            System.out.print("请输入你的姓名:");
            person.name = input.next();

            System.out.println(person.name+"  VS  "+computer.name+"  对战\n");
            // 扩展功能1结束

            System.out.print("要开始吗?(y/n) ");
            String start = input.next();  // 开始每一局游戏

            int perFist;   //用户出的拳
            int compFist;  //计算机出的拳

            while(start.equals("y")){
                /*出拳*/
                perFist = person.showFist();
                compFist = computer.showFist();
                /*裁决*/
                if((perFist == 1 && compFist == 1) || (perFist == 2 && compFist == 2) || (perFist == 3 && compFist == 3)){
                    System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧 !\n");  //平局
                }else if((perFist == 1 && compFist == 3) || (perFist == 2  && compFist == 1) || (perFist == 3 && compFist == 2)){
                    System.out.println("结果: 恭喜, 你赢了!");  //用户赢
                    person.score++;
                }else{
                    System.out.println("结果说:^_^,你输了,真笨!\n");  //计算机赢
                    computer.score++;
                }
                count++;
                System.out.print("\n是否开始下一轮(y/n):  ");
                start = input.next();
            }
            /*显示结果*/
            showResult();            

            // 扩展功能3:循环游戏,直到退出系统
            System.out.print("\n要开始下一局吗?(y/n):");
            exit = input.next();
            System.out.println();
            // 扩展功能3结束
        }while(!exit.equals("n"));    

        System.out.println("系统退出!");
    }

    /**
     * 显示比赛结果
     */
    public void showResult(){
        /*显示对战次数*/
        System.out.println("---------------------------------------------------");
        System.out.println(computer.name + "  VS  " + person.name);
        System.out.println("对战次数:"+ count);

        // 扩展功能2:显示最终的得分
        System.out.println("\n姓名\t得分");
        System.out.println(person.name+"\t"+person.score);
        System.out.println(computer.name+"\t"+computer.score+"\n");
        // 扩展功能2结束

        /*显示对战结果*/
        int result = calcResult();
        if(result == 1){
            System.out.println("结果:打成平手,下次再和你一分高下!");
        }else if(result == 2){
            System.out.println("结果:恭喜恭喜!");   //用户获胜
        }else{
            System.out.println("结果:呵呵,笨笨,下次加油啊!");   //计算机获胜
        }
        System.out.println("---------------------------------------------------");
    }

    /**
     * 计算比赛结果
     * @return 1:战平;2:用户赢;3:电脑赢
     */
    public int calcResult(){
        if(person.score == computer.score){
              return 1; // 战平
        }else if(person.score > computer.score){
              return 2; // 用户赢
        }else{
              return 3; // 电脑赢
        }

    }
}
/**
 * 人机互动版猜拳游戏
 * 程序入口
 */
public class Test {
    public static void main(String[] args) {
        Game game = new Game();
        game.startGame();
    }
}

完!

时间: 2024-10-21 08:51:05

人机猜拳.的相关文章

人机猜拳小游戏

朋友做的小案例,结构很清晰 void Main() { Game gmr = new Game(); gmr.Init(); gmr.Playing(); gmr.ShowResult(); Console.WriteLine ("程序结束"); } //玩家类 class Player { //玩家昵称 public string Name { get; set; } //积分 public int Score { get; set; } //出拳方法 public int Show

项目 人机猜拳

人机猜拳 public class bdqn1 { /** * @param args */ public static void main(String[] args) { Scanner input = new Scanner(System.in); String m = ""; int juese = 1; bdqn2 c = new bdqn2(); bdqn3 b = new bdqn3(); do { System.out.println("***********

1.人机猜拳

package zuoYe; import java.util.Scanner; public class 人机猜拳 { boolean can = true; Scanner input = new Scanner(System.in); String name1; int i = 0; int j=0; int o=0; String name; public void show() { System.out.println("**********欢迎进入游戏世界**********&quo

java人机猜拳游戏002user

package java_人机猜拳001; import java.util.Scanner; public class User { static String userName; static int userIntegral; public void setUserName (String userName) { this.userName = userName; } public String getUserName() { return userName; } public void

Java 实现简单的人机猜拳游戏

1 import java.util.Scanner; 2 3 import java.util.Random; 4 5 public class TestGuess{ 6 7 public static void main(String[] args){ 8 9 Scanner yc = new Scanner(System.in); 10 Random cy = new Random(); 11 12 System.out.println("=========================

第十三章 指导学习:人机猜拳

一.难点突破 1 知识梳理 二.综合练习 1 阶段1:练习--分析业务,创建用户类 1.1 需求说明 分析业务,抽象出类.类的特征和行为 创建用户类 1.2 分析 1.3 代码 创建用户:定义用户类Person,定义类的属性(name.score)和类的方法(showFirst()) /** * * @author wangshaohua * */ public class Person { String name = "匿名"; // 名字 int score = 0; // 积分

人机猜拳项目

package cn.bdqn.demo; import java.util.Scanner; public class Text { String name; // 你的名字 String name02; // 电脑名字 int chuquan; int count01; // 综合 int count02; // 电脑赢 int count03; // 你赢 int ramdom; // 电脑出牌 public void showone() { Scanner input = new Sca

02_人机猜拳

package com.renjicaiquan.entity; public class Computer { private String name; private int score; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setSc

JAVA基础代码分享--模拟人机猜拳系统

问题描述: 一.主要功能: 1.电脑与人互动,实现“剪刀.石头.布”的游戏: 1.1 角色登陆: ******************** ***欢迎进入猜拳游戏*** ******************** 请选择一个角色: 1.安培晋三 2.奥巴马 3.普京 1.2 角色选定后,游戏开始: 角色已选定,欢迎您,奥巴马!游戏开始! 请出拳: 1.石头 2.剪刀 3.布 奥巴马出拳:石头 匿名出拳:石头 此局双方平手! 是否继续?1/0 2.比赛结束时,给出比赛结果: 比赛结束,本场比赛共进行