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. js中全局变量和局部变量以及变量声明提升

    javascript中全局变量和局部变量的区别 转载前端小99 发布于2018-04-23 15:31:35 阅读数 2102  收藏 展开 [javascript] view plain copy ...

  2. bom-location

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. MyEclipse工程中Java Build Path中的JDK版本和Java Compiler Compiler compliance level的区别

    感谢大佬:https://blog.csdn.net/shan9liang/article/details/17266519 问题起源: 今天再在ESB调用WebService测试,需要在jboss上 ...

  4. NSString为何要用copy修饰,而不是strong?

    NSString本身是无所谓的,但是如果一个 NSString 指针指向了一个 NSMutableString的内存空间的话,如果使用 strong 修饰的话,如果你在别处修改这个值的话,那么原来的值 ...

  5. java实现ajax excel导入

    1,jsp js controller FileUpload.fileUp ObjectExcelRead.readExcel

  6. iOS,开发准备之申请证书 ---by吴帮雷

    一.申请真机调试证书 打开iOS Dev Center,选择Sign in,登陆(至少99美元账号),登陆选择Certificates,Identifiers & Profiles --> ...

  7. HDOJ 1249 三角形『平面分隔』

    很水拉   为了记规律- - 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1249 分隔平面公式 下面是我自己查找的公式,没有推到过程,但可以给一些链 ...

  8. shell基础——数组

    定义数组 #小括号,空格 arr=(v1 v2 v3) arr=(`ls`) 打印数组 echo ${arr[0]} #下标从0开始 echo ${arr[*]} #整个数组 echo ${arr[@ ...

  9. Java两个整数相除保留n位小数

    方式1:被除数转double后,除以除数,结果是一个double类型的数,将double结果按要求保留n位小数即可. 保留n位小数的写法 int a = 10; int b = 3; double r ...

  10. 【第二十四期】golang 一年经验开发 富途

    他们家是按题目来的,从一个小题目慢慢延伸着问,由浅入深,问到你换题为止. 第一题 给了一个网址,解释一下浏览器填入这个网址后发生了什么? TCP为什么要三次握手四次挥手? 502是什么? 如果出现50 ...