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. 打家劫舍(java语言描述(动态规划))

    题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给 ...

  2. Kafka中非常值得学习的优秀设计

    一.Kafka基础 消息系统的作用 应该大部份小伙伴都清楚,用机油装箱举个例子 所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实现解耦合的作用. 引入一个场景,我们知道中国移动,中国 ...

  3. Go 记录一次groutine通信与context控制

    需求背景: 项目中需要定期执行任务A来做一些辅助的工作,A的执行需要在超时时间内完成,如果本次执行超时了,那就不对本次的执行结果进行处理(即放弃这次执行).同时A又依赖B,C两个子任务的执行结果.B, ...

  4. AT2657 [ARC078D] Mole and Abandoned Mine

    简要题解如下: 记 \(1\) 到 \(n\) 的路径为关键路径. 注意到关键路径只有一条是解题的关键,可以思考这张图长什么样子. 不难发现关键路径上所有边均为桥,因此大致上是关键路径上每个点下面挂了 ...

  5. 防火墙——firewalld

    介绍 firewald是对于iptables的一个封装,可以让你更容易地管理iptables规则.firewalld是iptables前端控制器,用于实现持久地网络流量规则. 一.对比 firewal ...

  6. 原生js获取子元素

    感谢原文作者:归一山人 原文链接:https://www.cnblogs.com/guiyishanren/p/12214757.html 获取子元素的方法有 //获取第一个demo类 dom = d ...

  7. LVS负载均衡群集部署——DR模式

    LVS负载均衡群集部署--DR模式 1.LVS-DR概述 2.部署实验 1.LVS-DR概述: LVS-DR(Linux Virtual Server Director Server)工作模式,是生产 ...

  8. linxu 查看运行日志

    journalctl - 检索 systemd 日志 journalctl 可用于检索 systemd(1) 日志(由 systemd-journald.service(8) 记录). 如果不带任何参 ...

  9. nodejs串行无关联

    var async = require('async'); //串行无关联async.series({ one:function(cb) { setTimeout(function(){ consol ...

  10. Flask中本地栈的使用

    4种上下文变量 承接上一篇内容.当一个请求到来时,除了request被封装成全局变量之外,还有三个变量也是同样被封装成全局变量,那就是current_app.g.session.上面4个变量之所以能够 ...