JAVA 猜拳游戏

题目:通过控制台方式实现一个人机对战的猜拳游戏

用户通过输入(0.石头子 1.剪刀 2.布),机器随机生成(0.石头子 1.剪刀 2.布)

要求:

  1. 能打印玩家的对局信息,胜利的次数,平局次数,和平局次数
package HomeWorkExercise;

import java.util.Iterator;
import java.util.Random;
import java.util.Scanner; public class Homework14 {
public static void main(String args[]) {
String name = "小杨";
Game game = new Game(name); //进行10次猜拳
for(int i = 1 ; i <= 5 ; i++) { game.play();
System.out.println();
} //打印情况
game.getInfo(); }
} /*
* 思路
* 0 石头 1剪刀 2布
* 1.电脑端:生成一个随机数 并返回,0~2
* 2.玩家:用户输入,0~2,超出范围提示输入错误,并重新输入
* 3.进行猜拳游戏
* 进行枚举
* 电脑端 0
* 玩家出2 算赢,0算平局,1算输
* 电脑端 1
* 玩家出0 算赢,1算平局,2算输
* 电脑端 2
* 玩家出1 算赢,2算平局,0算输
*/
class Game{
String name;
int win = 0;
int fail = 0;
int draw = 0; //构造器
public Game(String name) {
this.name = name;
} //生成电脑出的数
public int computer() {
Random r1 = new Random();
return r1.nextInt(2);
} //获取玩家出的数
public int player() {
Scanner sc = new Scanner(System.in);
int input;
//从键盘获取一个数 0~2
while(true) {
System.out.print("请输入一个数(0~2):");
input = sc.nextInt();
if(input >=0 && input <=2) {
break;
}else{
System.out.println("输入有误,请输入0~2这三个数");
}
}
return input;
} //开始游戏
public void play() {
int computer = this.computer();
int player = this.player(); //电脑出石头
if(computer == 0 ) {
System.out.println("电脑:石头");
if(player == 2) {
System.out.println("您:布");
System.out.println("胜利");
this.win++;
}else if(player == 0) {
System.out.println("您:石头");
System.out.println("平局");
this.draw++;
}else {
System.out.println("您:剪刀");
System.out.println("失败");
this.fail++;
}
} //电脑出剪刀
if(computer == 1 ) {
System.out.println("电脑:剪刀");
if(player == 0) {
System.out.println("您:石头");
System.out.println("胜利");
this.win++;
}else if(player == 1) {
System.out.println("您:剪刀");
System.out.println("平局");
this.draw++;
}else {
System.out.println("您:布");
System.out.println("失败");
this.fail++;
}
} //电脑出布
if(computer == 2 ) {
System.out.println("电脑:布");
if(player == 1) {
System.out.println("您:剪刀");
System.out.println("胜利");
this.win++;
}else if(player == 2) {
System.out.println("您:布");
System.out.println("平局");
this.draw++;
}else {
System.out.println("您:石头");
System.out.println("失败");
this.fail++;
}
}
} //获得输赢次数
public void getInfo() {
System.out.println("玩家:"+this.name);
System.out.println("输赢次数如下");
System.out.println("胜利\t平局\t失败");
System.out.println(this.win+"\t" + this.draw +"\t" + this.fail +"\t");
} }

JAVA 猜拳游戏的更多相关文章

  1. python与java的猜拳游戏

    python版: import randomprint("-----猜拳游戏-----")print("---0.剪刀--1.石头--2.布---")while ...

  2. 人机猜拳游戏Java

    作业要求: 我的代码: package day20181119;/** * 猜拳游戏 * @author Administrator * @version1.0 */import java.util. ...

  3. 有趣的java小项目------猜拳游戏

    package com.aaa; //总结:猜拳游戏主要掌握3个方面:1.人出的动作是从键盘输入的(System.in)2.电脑是随机出的(Random随机数)3.双方都要出(条件判断) import ...

  4. Java 入门课程视频实战-0基础 上线了,猜拳游戏,ATM实战,欢迎围观

    Java 入门课程视频实战-0基础 已经上传完了.欢迎小伙伴们过来围观 直接进入: http://edu.csdn.net/course/detail/196 课程文件夹例如以下: 1 初识Java  ...

  5. 猜拳游戏三局两胜------java实现代码

    package com.javasm.exerices02; import java.util.ArrayList; import java.util.List; import java.util.R ...

  6. Java中利用随机数的猜拳游戏

    Java中利用随机数的猜拳游戏,实现非常简单,重难点在于随机数的产生. 首先GameJude类是用于判断输赢的一个类: package testGame; public class GameJudge ...

  7. java 人机猜拳 游戏

    人机猜拳-游戏 掌握类和对象的使用,掌握方法的定义和返回值,掌握封装的运用 定义一个电脑类:Computer.java 点击查看[Computer.java]代码 /** * @Title: 电脑类 ...

  8. java--demo之猜拳游戏

    版本1:人机大战  基础随机出    用户键盘录入 package com.hainiu.demo; import java.util.Scanner; /* * 人机大战石头剪刀布 */ publi ...

  9. JavaScript--面向对象--猜拳游戏

    //html代码 <!doctype html> <html> <head> <meta charset="UTF-8"> < ...

随机推荐

  1. 体验 正式发布 的OSM v1.0.0 版本

    2021年10月份发布了OSM 1.0 RC[1],在过去的几个月里,OSM 的贡献者一直在努力为 v1.0.0 版本的发布做准备.2022年2月1日,OSM 团队正式发布 1.0.0 版本[2]. ...

  2. Linux性能优化实战(一)

    一.优化方向 1,性能指标 从应用负载的视角出发,考虑"吞吐"和"延时" 从系统资源的视角出发,考虑资源使用率.饱和度等 2,性能优化步骤 选择指标评估应用程序 ...

  3. 势能分析(splay分析)

    定义 第\(x\)次操作后,势能为\(\phi(x)\),该操作实际复杂度\(c(x)\),均摊复杂度\(a(x)\). 定义\(a(x)=c(x)+\phi(x)-\phi(x-1)\). 那么总复 ...

  4. Web3对于我们普通人意味着什么?

    ▲ 点击101链视界,关注不走丢 大家好,我是阿创,这是我的第27篇原创文章. 上一篇文章中我们了解了互联网的前世今生:Web 1.0.2.0.3.0,我们对Web的前两个阶段都不陌生,特别是 Web ...

  5. Spring @Cacheable 缓存不生效的问题

    最近在项目中使用了Ehcache缓存,使用方式是用Spring提供的 @Cacheable 注解的方式,这种方式简单.快速.方便,推荐使用. 在使用的过程中,遇到了缓存不生效的情况,经过分析处理,总结 ...

  6. java实现HTTPS单向认证&TLS指定加密套件

    1.HTTPS介绍 由于HTTP是明文传输,会造成安全隐患,所以在一些特定场景中,必须使用HTTPS协议,简单来说HTTPS=HTTP+SSL/TLS.服务端和客户端的信息传输都是通过TLS进行加密. ...

  7. JAVA初学--Servlet详解

    一.什么是servlet? 处理请求和发送响应的过程是由一种叫做Servlet的程序来完成的,并且Servlet是为了解决实现动态页面而衍生的东西.理解这个的前提是了解一些http协议的东西,并且知道 ...

  8. Docker部署lnmp 实战 (多注意配置文件,不管访问试试换个浏览器)

    Docker部署LNMP环境 关闭防火墙,设置自定义网络 systemctl stop firewalld systemctl disable firewalld setenforce 0 docke ...

  9. linux13

    ansible-playbook实现MySQL的二进制部署 Ansible playbook实现apache批量部署,并对不同主机提供以各自IP地址为内容的index.html http的报文结构和状 ...

  10. SQL性能优化技巧

    作者:IT王小二 博客:https://itwxe.com 这里就给小伙伴们带来工作中常用的一些 SQL 性能优化技巧总结,包括常见优化十经验.order by 与 group by 优化.分页查询优 ...