问题描述:

一、主要功能:
.电脑与人互动,实现“剪刀、石头、布”的游戏;
1.1 角色登陆:
********************
***欢迎进入猜拳游戏***
********************
请选择一个角色:
.安培晋三 .奥巴马 .普京
1.2 角色选定后,游戏开始:
角色已选定,欢迎您,奥巴马!游戏开始!
请出拳:
.石头 .剪刀 .布
奥巴马出拳:石头
匿名出拳:石头
此局双方平手!
是否继续?/0
.比赛结束时,给出比赛结果:
比赛结束,本场比赛共进行了6局!
奥巴马胜利了0局!
匿名胜利了4局!
双方平手:2局!
太臭了!回家卖红薯吧! . 可根据现实生活逻辑进行适当调整。

代码实现:

/**
* 用户选择类
*/
public class Progress { private static int n = 1;//用户选择角色
private static int m = 1;//用户出拳
private static int nm = 0;//比赛总场数
private static String [] str = {"安培晋三 ","奥巴马","普京"};//角色
private static int i;//是否继续
private static BiSai bs;//结果处理类 public static void main(String[] args) { System.out.println("********************\n***欢迎进入猜拳游戏***\n********************");
System.out.println("请选择一个角色:\n1.安培晋三\t 2.奥巴马\t 3.普京");
System.out.print("请输入:");
Scanner in = new Scanner(System.in);
//用户选择角色
do {
if(n<=0||n>=4){
System.out.print("输入的字符非法,请从新输入:");
}
n = in.nextInt();
} while (n<=0||n>=4);
System.out.println("角色选定,欢迎您,"+str[n-1]+"!游戏开始!");
System.out.println("出拳规则:1:石头\t 2:剪刀\t 3:布"); //用户开始进行比赛
bs = new BiSai();
do {
nm +=1;
System.out.println("猜拳大赛,第"+nm+"回合");
System.out.print("请出拳:");
m = in.nextInt();
if(m<=0||m>=4){
do {
System.out.print("输入的字符非法,请从新输入:");
m = in.nextInt();
} while (m<=0||m>=4);
}
String s = bs.getQuan(m);
System.out.println(str[n-1]+"出拳:"+s);
int t = bs.getPrograme(m);
switch (t) {
case 1:
System.out.println("此局平手");
break;
case 2:
System.out.println(str[n-1]+"胜利");
break;
case 3:
System.out.println("匿名获胜");
break; default:
break;
}
System.out.print("是否继续?1/0:");
i = in.nextInt();
do {
if(i!=1&&i!=0){
System.out.print("输入的字符非法,请从新输入:");
i = in.nextInt();
}
} while (i!=0&&i!=1);
} while (i==1);
bs.getJiGuo(str[n-1], nm);//比赛结果
} }
/**
* 结果评定类
*/
public class BiSai { private static int n = 0;//机器获胜次数
private static int m = 0;//机器平的次数
private static int nm = 0;//机器败的次数
private static int mn = 0;//机器出的拳 public int getPrograme(int i){
int flag = 0;
Random r = new Random();
mn = r.nextInt(3);
System.out.println("匿名出拳:"+ getQuan(mn+1));
if(i==mn+1){
m +=1;
flag = 1;
}else{
if((i==1&&mn+1==2)||(i==2&&mn+1==3)||(i==3&&mn+1==1)){
nm +=1;
flag = 2;
}else{
n +=1;
flag = 3;
}
}
return flag;
} public void getJiGuo(String s, int j){
System.out.println("比赛结束,本场比赛共进行"+j+"局!");
System.out.println(s+"胜利了"+nm+"局");
System.out.println("匿名胜利了"+n+"局");
System.out.println("双方平手了"+m+"局");
if(nm>n){
System.out.println("手气太棒了,可以去买彩票了!");
}else{
if(nm<n){
System.out.println("太臭了!回家卖红薯吧!");
}else{
System.out.println("还不错,平分秋色!");
}
}
} public String getQuan(int q){
String s = "";
switch (q) {
case 1:
s = "石头";
break;
case 2:
s = "剪刀";
break;
case 3:
s = "布";
break; default:
break;
}
return s;
} }

运行结果:

  

JAVA基础代码分享--模拟人机猜拳系统的更多相关文章

  1. JAVA基础代码分享--DVD管理

    问题描述 为某音像店开发一个迷你DVD管理器,最多可存6张DVD,实现碟片的管理. 管理器具备的功能主要有: 1.查看DVD信息. 菜单选择查看功能,展示DVD的信息. 2.新增DVD信息 选择新增功 ...

  2. JAVA基础代码分享--学生成绩管理

    问题描述: 从键盘读入学生成绩,找出最高分,并输出学生成绩等级. 成绩>=最高分-10  等级为’A’   成绩>=最高分-20  等级为’B’ 成绩>=最高分-30  等级为’C’ ...

  3. JAVA基础代码分享--求圆面积

    问题描述 用户输入圆的半径,计算并显示圆的面积 代码分享 /** * @author hpu-gs * 2015/11/25 */ public class Circle { public stati ...

  4. Java基础_通过模拟售票情景解决线程不安全问题

    用代码来模拟铁路售票系统,实现通过四个售票点发售某日某次列车的100张车票,一个售票点用一个线程表示 第一种方法:通过继承Thread类的方法创建线程 package com.Gary1; publi ...

  5. 如何学习java?Java基础知识点分享

    面对未知的行业,人们的第一反应应该是:拒绝踏入.因为学习真的是一个痛苦的过程.想要真正了解一个行业,熟知一个行业,并熟练掌握某一技术,是真的需要时间和精力的.在学习Java基础知识期间,千锋小编疯狂为 ...

  6. [Java基础]代码块及java反编译

    块的作用域:   块(即复合语句)是指一对花括号括起来的若干条简单的java语句.块确定了变量的作用域.一个块可以嵌套在另一个块中.但是,在嵌套的两个块中声明同名的变量时应注意,块中变量申明在块外变量 ...

  7. Java基础学习分享

    一.Java介绍 Java是由原Sun公司(现已被甲骨文公司收购)于1991年开发的编程语言,初衷是为智能家电的程序设计提供一个分布式代码系统.为了使整个系统与平台无关,采用了虚拟机器码方式,虚拟机内 ...

  8. nuxt项目打包上线,以及nuxt项目基础代码分享

    nuxt的项目部署到线上环境,有多种方法,这里分享我使用的方法,一步步照着配置,就可以配置成功~ (1)项目先执行npm run build 打包好   (2)服务器安装node 和pm2依赖 服务器 ...

  9. 2019.12.06 java基础代码

    操作系统中默认码表是:gbk      (一个中文字符占两个字节): utf-8(一个中文字符占三个字节): 数据库建库时的默认码表是:拉丁码表: (1)       public class 定义: ...

随机推荐

  1. WindowManager massge和handler

    在一个可移动浮动按钮的demo源码学习中,有一些WindowManager的使用,在此做下总结. 1.翻译过来就是窗口管理,是和应用框架层的窗口管理器交互的接口,通过 mWindowManager = ...

  2. myeclipse中source not found问题解决办法

    myeclipse中出现source not found是因为你所引用的JavaEE Generic Library没有关联源码,如下图: 下面给出该问题的解决办法: 步骤一:去下载apache-to ...

  3. 深入理解JavaScript中 fn() 和 return fn() 的区别

    在js中,经常会遇到在函数里调用其它函数的情况,这时候会有 fn() 这种调用方式,还有一种是 return fn() 这种调用方式,一些初学者经常会一脸萌逼地被这两种方式给绕晕了.这里用一个优雅的面 ...

  4. Linux上mongodb开机自启动

    1.下载MongoDB 2.安装MongoDB(安装到/usr/local下) .tgz mongodb cd mongodb mkdir db mkdir logs cd bin vi mongod ...

  5. WIN32 窗口封装类实现

    CQWnd.h窗口类定义 // QWnd.h: interface for the CQWnd class. // ////////////////////////////////////////// ...

  6. Python数据分析

    一.安装Anaconda 1.下载:https://www.continuum.io/downloads 2.命令行创建和启动环境 conda create --name py35 python=3. ...

  7. (原).NET程序加入多语言包解决方案工具,超级棒

    Multi-Language Add-In Version 5.04.0088 for Visual Studio 2013 安装包:http://www.jollans.com/SetupMulti ...

  8. iOS 琐碎点------切某个或某几个角的圆角

    不说废话----------> 1.如果是切四个角的圆角,代码示例: self.picImage.layer.cornerRadius = 8; self.picImage.layer.mask ...

  9. ScrollView嵌套RecyclerView时滑动出现的卡顿

    原文连接:http://zhanglu0574.blog.163.com/blog/static/113651073201641853532259/   现象: 一个界面有多个RecyclerView ...

  10. java的英文词频算法

    java实现的英文词频算法,通常是采用单词树来实现的.使用java实现词频统计,为了统计词汇出现频率,最简单的做法是再建立一个map,其中,key是单词,value代表次数.将文章从头读到尾,读到一个 ...