JAVA基础代码分享--模拟人机猜拳系统
问题描述:
一、主要功能:
.电脑与人互动,实现“剪刀、石头、布”的游戏;
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基础代码分享--模拟人机猜拳系统的更多相关文章
- JAVA基础代码分享--DVD管理
问题描述 为某音像店开发一个迷你DVD管理器,最多可存6张DVD,实现碟片的管理. 管理器具备的功能主要有: 1.查看DVD信息. 菜单选择查看功能,展示DVD的信息. 2.新增DVD信息 选择新增功 ...
- JAVA基础代码分享--学生成绩管理
问题描述: 从键盘读入学生成绩,找出最高分,并输出学生成绩等级. 成绩>=最高分-10 等级为’A’ 成绩>=最高分-20 等级为’B’ 成绩>=最高分-30 等级为’C’ ...
- JAVA基础代码分享--求圆面积
问题描述 用户输入圆的半径,计算并显示圆的面积 代码分享 /** * @author hpu-gs * 2015/11/25 */ public class Circle { public stati ...
- Java基础_通过模拟售票情景解决线程不安全问题
用代码来模拟铁路售票系统,实现通过四个售票点发售某日某次列车的100张车票,一个售票点用一个线程表示 第一种方法:通过继承Thread类的方法创建线程 package com.Gary1; publi ...
- 如何学习java?Java基础知识点分享
面对未知的行业,人们的第一反应应该是:拒绝踏入.因为学习真的是一个痛苦的过程.想要真正了解一个行业,熟知一个行业,并熟练掌握某一技术,是真的需要时间和精力的.在学习Java基础知识期间,千锋小编疯狂为 ...
- [Java基础]代码块及java反编译
块的作用域: 块(即复合语句)是指一对花括号括起来的若干条简单的java语句.块确定了变量的作用域.一个块可以嵌套在另一个块中.但是,在嵌套的两个块中声明同名的变量时应注意,块中变量申明在块外变量 ...
- Java基础学习分享
一.Java介绍 Java是由原Sun公司(现已被甲骨文公司收购)于1991年开发的编程语言,初衷是为智能家电的程序设计提供一个分布式代码系统.为了使整个系统与平台无关,采用了虚拟机器码方式,虚拟机内 ...
- nuxt项目打包上线,以及nuxt项目基础代码分享
nuxt的项目部署到线上环境,有多种方法,这里分享我使用的方法,一步步照着配置,就可以配置成功~ (1)项目先执行npm run build 打包好 (2)服务器安装node 和pm2依赖 服务器 ...
- 2019.12.06 java基础代码
操作系统中默认码表是:gbk (一个中文字符占两个字节): utf-8(一个中文字符占三个字节): 数据库建库时的默认码表是:拉丁码表: (1) public class 定义: ...
随机推荐
- WindowManager massge和handler
在一个可移动浮动按钮的demo源码学习中,有一些WindowManager的使用,在此做下总结. 1.翻译过来就是窗口管理,是和应用框架层的窗口管理器交互的接口,通过 mWindowManager = ...
- myeclipse中source not found问题解决办法
myeclipse中出现source not found是因为你所引用的JavaEE Generic Library没有关联源码,如下图: 下面给出该问题的解决办法: 步骤一:去下载apache-to ...
- 深入理解JavaScript中 fn() 和 return fn() 的区别
在js中,经常会遇到在函数里调用其它函数的情况,这时候会有 fn() 这种调用方式,还有一种是 return fn() 这种调用方式,一些初学者经常会一脸萌逼地被这两种方式给绕晕了.这里用一个优雅的面 ...
- Linux上mongodb开机自启动
1.下载MongoDB 2.安装MongoDB(安装到/usr/local下) .tgz mongodb cd mongodb mkdir db mkdir logs cd bin vi mongod ...
- WIN32 窗口封装类实现
CQWnd.h窗口类定义 // QWnd.h: interface for the CQWnd class. // ////////////////////////////////////////// ...
- Python数据分析
一.安装Anaconda 1.下载:https://www.continuum.io/downloads 2.命令行创建和启动环境 conda create --name py35 python=3. ...
- (原).NET程序加入多语言包解决方案工具,超级棒
Multi-Language Add-In Version 5.04.0088 for Visual Studio 2013 安装包:http://www.jollans.com/SetupMulti ...
- iOS 琐碎点------切某个或某几个角的圆角
不说废话----------> 1.如果是切四个角的圆角,代码示例: self.picImage.layer.cornerRadius = 8; self.picImage.layer.mask ...
- ScrollView嵌套RecyclerView时滑动出现的卡顿
原文连接:http://zhanglu0574.blog.163.com/blog/static/113651073201641853532259/ 现象: 一个界面有多个RecyclerView ...
- java的英文词频算法
java实现的英文词频算法,通常是采用单词树来实现的.使用java实现词频统计,为了统计词汇出现频率,最简单的做法是再建立一个map,其中,key是单词,value代表次数.将文章从头读到尾,读到一个 ...