任务描述

完成人机猜拳互动游戏的开发,用户通过控制台输入实现出拳,电脑通过程序中的随机数实现出拳,每一局结束后都要输出结果。当用户输入n时停止游戏,并输出总结果。效果如图1-1所示。

图1-1人机猜拳游戏

实现思路

图1-2该项目的类图

(1) 创建出用户类。

定义用户类Customer,定义类的属性(name、score)和类的方法showFist()。

请思考getFist()中的switch语句该如何书写。

(2) 创建计算机类Computer,实现计算机出拳。

计算机出拳是根据产生的随机数来决定出拳的具体内容。这点的实现和用户类出拳类似,请自己完成。

(3) 创建游戏类,实现选择对战对手

Ø 创建游戏类Game,编写其属性。属性有:甲方玩家、乙方玩家和对战次数以及平手次数。

Ø 编写游戏类的开始游戏方法startGame(),实现的效果如下图1-3所示。

图1.3对战选手的选择

(4) 分别调用用户类和计算机类的出拳方法showFist(),接收返回值并比较,给出胜负结果,运行结果如下图1-4所示。

图1-4用户和电脑出拳对战

(5) 实现循环对战,效果如下图1-5所示。

图1-5实现循环对战

(6) 完善游戏类,显示对战结果,效果如下图1-6所示。

图1-6显示对战结果

(7) 建立测试类RunGame,调用Game类的startGame()方法。

代码实现

Your 类代码(用以表示你出的招式)

package chaiquan;

public class your {
    public static int quan(int i)
    {
        switch(i)
        {
        case 1:
            System.out.println("你出拳:剪刀");
            break;
        case 2:
            System.out.println("你出拳:石头");
            break;
        case 3:
            System.out.println("你出拳:布");
            break;
            default:
                System.out.println("输入错误,请重新输入");
                break;
        }
        return i;
        
    }
}

Customer 类(实现计算机随机出拳以及对胜负结果的判断)

package chaiquan;

public class Customer {
    static int scor=0;
    static int scor1=0;
    static int scor2=0;
    static int chuzhao;
    public static int showFist()
    {
        chuzhao= (int) (Math.random() * 3) + 1;
        return chuzhao;
    }

public static int getFist()
    {
        switch(chuzhao)
        {
        case 1:
            System.out.println("剪刀");
            break;            
        case 2:
            System.out.println("石头");
            break;
        case 3:
            System.out.println("布");
            break;
        }
        return chuzhao;
    }
    public static int play(int i)
    {    
        if(i==chuzhao)
        {
            System.out.println("此局:和局,嘿嘿,等着瞧吧!");
            scor++;
        }
        else if(i==1&&chuzhao==2)
        {
            System.out.println("此局:很遗憾,你输了");
            scor1++;
        }
        else if(i==1&&chuzhao==3){
            System.out.println("此局:恭喜,你赢了");
            scor2++;
        }
        else if(i==2&&chuzhao==1)
        {
            System.out.println("此局:恭喜,你赢了");
            scor2++;
        }
        else if(i==2&&chuzhao==3)
        {
            System.out.println("此局:很遗憾,你输了");
            scor1++;
        }
        else if(i==3&&chuzhao==1)
        {
            System.out.println("此局:很遗憾,你输了");
            scor1++;
        }
        else if(i==3&&chuzhao==2){
            System.out.println("此局:恭喜,你赢了");
            scor2++;
        }
        return i;
    }
    }

Game 类(开始游戏)

package chaiquan;
public class Game {
    public static void main(String[] args) {
        GameGame.startGame();
    }
    }

GameGame类(游戏真正的执行进程)

package chaiquan;

import java.util.Scanner;

public class GameGame {

public static void startGame(){
        int iii=1;
        System.out.println("---------------欢迎进入游戏世界---------------\n\n\n\t\t********************\n\t\t****猜拳,开始****\n\t\t********************");
        System.out.print("请选择你想和谁对战(1:刘备 2:孙权 3:曹操):");
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        while(true){
        System.out.print("要开始吗?(y/n):");
        String b=sc.next();
        if(b.equals("n")){
            System.out.println("结束");
            return;
        }
        else if(b.equals("y")){
        while(true)
        {
            System.out.print("请出拳:1.剪刀 2.石头 3.布(输入相应数字):");
            int c=sc.nextInt();
            Computer.quan(c);
            System.out.print(Qwe.getName1(a)+"出拳:");
            Customer.showFist();
            Customer.getFist();
            Customer.play(c);
            System.out.print("是否开始下一轮(y/n):");
            String m=sc.next();
            if(m.equals("y"))
            {
                iii++;
            }
            else if(m.equals("n"))
            {
                System.out.println("------------------------------------------");
                System.out.println(Qwe.getName1(a)+"VS玩家");
                System.out.println("对战次数:"+iii+"出拳一样的情况有"+Customer.scor+"次");
                if(Customer.scor1<Customer.scor2)
                {
                    System.out.println("结果:恭喜恭喜,你赢了");
                    break;
                }
                else if(Customer.scor1==Customer.scor2){
                    System.out.println("平局!");
                    break;
                }
                else
                {
                    System.out.println("很遗憾你输了!");
                    break;
                }
            }
            else
            {
                System.out.println("输入错误,请重新输入;");
                break;
            }
    }
    }
        else{
            System.out.println("输入错误,请重新输入");
            continue;
            
        }
    
        }
}}

User 类(选择游戏玩家)

package chaiquan;

public class user {
        static String name;
        public static String getName1(int i)
        {
            switch(i)
            {
            case 1:
                name="刘备";
                break;
            case 2:
                name="孙权";
                break;
            case 3:
                name="曹操";
                break;
            }
            return name;
        }
    }

基于java的人机猜拳游戏相关推荐

  1. java刘备猜拳游戏类_基于java实现人机猜拳游戏

    本文实例为大家分享了java实现人机猜拳游戏的具体代码,供大家参考,具体内容如下 完成人机猜拳互动游戏的开发,用户通过控制台输入实现出拳,电脑通过程序中的随机数实现出拳,每一局结束后都要输出结果.当用 ...

  2. 用java写猜拳游戏,Java写人机猜拳游戏(可扩展其他游戏或其他参与者)

    初学Java,写一个控制台输入输出的小游戏,模拟人机猜拳.为了扩展性稍微强一些,这个小游戏代码有些复杂,但确实可以扩展其他游戏或者其他参与者的. 代码还有一些小问题,后面贴出来... /******* ...

  3. java编写电脑猜拳_Java开发实现人机猜拳游戏

    本文实例为大家分享了Java开发实现人机猜拳游戏的具体代码,供大家参考,具体内容如下 猜拳游戏 游戏规则:人和电分别出剪刀.石头.布,直到人战胜电脑,游戏结束. 整体分析: 1.总体是一个循环 -&g ...

  4. java中人机猜拳_Java实现人机猜拳游戏

    本文实例为大家分享了Java实现人机猜拳游戏的具体代码,供大家参考,具体内容如下 实现: User类 public class User { private String name; private ...

  5. 【机器学习实验五】基于多分类线性SVM实现简易人机猜拳游戏

    文章目录 基于多分类线性SVM&mediapipe手势关键点实现简易人机猜拳游戏 基于SMO优化的SVM分类算法完整实现版本 SVM决策结果与数据集可视化 多分类SVM实战:基于mediapi ...

  6. Java初学之人机猜拳游戏

    Java初学之人机猜拳游戏 1.要求 11. 任务 a) 完成人机猜拳互动游戏的开发 1.2. 主要功能 a) 选取对战角色 b) 猜拳 c) 记录分数 1.3. 需求说明 a) 分析业务 b) 抽象 ...

  7. 【Java语言】项目实践:人机猜拳游戏(源码)(面向对象方法)

    package com.njwbhz.part0217.Mora;import java.util.Scanner;public class PersonPlayer {//属性//人类玩家的名字St ...

  8. Java人机猜拳游戏

    Java人机猜拳游戏 欢迎进入游戏 请输入你的姓名: 神挡杀神 请选择你的对手(1马云2马化腾): 1 要开始码?(y/n) y 出拳规则:1.剪刀2.石头3.布 神挡杀神请出拳: 1 神挡杀神出拳: ...

  9. 人机都行这个你不行?Java控制台实现“猜拳游戏”

    本文实例为大家分享了Java控制台实现猜拳游戏的具体代码,供大家参考,具体内容如下 1.目标 通过控制台实现一个人机对战的猜拳游戏,用户通过输入(1.剪刀 2.石头 3.布),机器随机生成(1.剪刀 ...

最新文章

  1. 《android基于andFix的热修复方案》实战篇
  2. C++ 内连接与外连接 (转)
  3. 打开word或者office程序报错:Microsoft Visual C++ Runtime Library. Runtime Error!
  4. android之frame动画详解
  5. 项目管理基础:软件开发的方法介绍
  6. ASP.NET Core的配置(1):读取配置信息
  7. 1043 输出PATest(PAT乙级 C++)
  8. Python 获取md5值(hashlib)
  9. 11.4. String 字符串处理
  10. 万恶的C++ 【1】:类型及运算
  11. DB2计划三招“破甲” IBM在华能否得偿所愿
  12. TensorFlow基础篇(五)——tf.constant()
  13. java性能检测工具_老李分享:JAVA性能监控工具
  14. HyperAttentionDTI: improving drug–protein interaction prediction by sequence-based deep learning wit
  15. 微信公众平台模拟登录自动群发图文消息工具包
  16. Uipath的下载与使用教程
  17. 为什么电脑浏览器显示时钟快了_xp打开网页提示“你的时钟慢了”的原因及解决方法...
  18. windows服务与计划任务
  19. 设计师计算机配置,超全面!写给设计师的电脑配置攻略之PS篇
  20. 华南理工大学“三七互娱杯”程序设计竞赛 A (dp)

热门文章

  1. 1月书单 2月新书预告 | 百万册畅销书全新续作来啦
  2. mysql数据写入磁盘的原理_WAL(Write Ahead Log)机制解析
  3. 子网掩码计算软件+通配符掩码检测器+十进制IP计算器
  4. 10步搞定App内测发布(蒲公英内测平台)
  5. 数据可视化——坐标轴的定制
  6. 将数据表的纵向数据横向显示
  7. python利器app可以运行python嘛_python利器app_python利器安卓版v3.0
  8. 没有打不了的补丁切不了的面
  9. 花样16流水灯c语言程序,8个花样流水灯c程序
  10. 智能运动鞋方案/案列/APP/小程序/网站