java实现简单猜拳小游戏
作者:???幻墨如烟? 发布时间:2021-09-01 07:49:46
标签:java,猜拳
本文实例为大家分享了java实现猜拳小游戏的具体代码,供大家参考,具体内容如下
User.java
import java.util.Scanner;
public class User {
String name;
int score;
public int showFist(){
System.out.println ("请出拳:1.剪刀\t2.石头\t3.布");
Scanner input=new Scanner ( System.in );
int choice=input.nextInt ();
if(choice==1){
System.out.println ("您出了剪刀");
}else if(choice==2){
System.out.println ("您出了石头");
}else if (choice==3){
System.out.println ("您出了布");
}else {
System.out.println ("输入有误!");
}
return choice;
}
}
Computer.java
public class Computer {
String name;
int score;
public int showFist () {
int choice = (int) (Math.random () * 3) + 1; //产生随机数
if (choice == 1) {
System.out.println (name +"出了剪刀" );
} else if (choice == 2) {
System.out.println (name +"出了石头" );
} else if (choice == 3) {
System.out.println (name +"您出了布" );
} else {
System.out.println ( "输入有误!" );
}
return choice;
}
}
Game.java
import java.util.Scanner;
public class Game {
User user; //用户
Computer computer; //计算机
int count; //记录对战次数
//初始化:设置自己的名字 对手的名字,积分0
public void init(){
System.out.println ("请输入自己的名字");
Scanner input = new Scanner ( System.in );
String name = input.next ();
user=new User (); //对象初始化
user.name=name;
user.score=0;
System.out.println ("请选择你的对手:\n1.张三\t2.李四\t3.王五");
int choice = input.nextInt ();
computer=new Computer (); //对象初始化
computer.score=0;
switch (choice){
case 1:
computer.name="张三";
case 2:
computer.name="李四";
case 3:
computer.name="王五";
break;
default:
System.out.println ("输入有误!");
}
System.out.println ("你选择与TA对战:"+computer.name);
}
public void start() {
init ();
Scanner input=new Scanner ( System.in );
String isContinue = null;
do {
int userFist = user.showFist (); //人出拳
int chomputerFist = computer.showFist (); //计算机出拳
calcResult ( userFist, chomputerFist );
System.out.println ("是否继续?y(继续)/其他(结束)");
isContinue=input.next ();
}while ("y".equals ( isContinue ));
showResult (user,computer); //显示最终结果
}
//计算每一轮的结果
public void calcResult(int userFist,int computerFist){
//"1.剪刀\t2.石头\t3.布"
if((userFist==1&&computerFist==3)||(userFist==2&&computerFist==1)||(userFist==3&&computerFist==2)){
System.out.println ("您赢了");
user.score++;
}else if((userFist==3&&computerFist==1)||(userFist==1&&computerFist==2)||(userFist==2&&computerFist==3)){
System.out.println ("您输了");
computer.score++;
}else {
System.out.println ("您平局");
}
}
//计算最终结果
public void showResult(User user,Computer computer){
System.out.println (user.name +"\t" +user.score );
System.out.println (computer.name +"\t" +computer.score);
if (user.score>computer.score){
System.out.println ("恭喜,获得了最终的胜利");
}else if (user.score<computer.score){
System.out.println ("很遗憾你输了");
}else {
System.out.println ("最终平局...");
}
}
public static void main ( String[] args ) {
Game game = new Game ();
game.start ();
}
}
测试结果显示
来源:https://blog.csdn.net/m0_51675861/article/details/121451266


猜你喜欢
- 当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串.java中的所有类默认都有一个toStri
- 需求场景最近项目中要做一个音乐播放悬浮按钮的功能,最终实现效果如下:问题暴露悬浮窗布局文件就不放了,就是水平LinearLayout里面放几
- 本文实例讲述了Java深度复制功能与用法。分享给大家供大家参考,具体如下:写在前面:什么是深度复制?在Java里面,在创建一个对象,我们通常
- spring security中遇到的问题1.An Authentication object was not found in the S
- springboot 参数格式校验@Validated 字面意思校验@RequestBody该注解不用多说,意思是接收为json格式的参数@
- Android虚拟键盘的弹起会遮挡住部分ui,虽然通过在清单文件中设置,可以随着虚拟键盘的弹出,布局往上推,但是面对登陆界面时,并没有太大的
- 前言以前用到要对数字格式的地方,都是直接到网上搜一下。拿过来能用就行。因为平时用的不多。但是最近的项目对这个用的多了。网上拿来的不够用了。自
- 目录简介为什么使用protobuf定义.proto文件编译协议文件详解生成的文件Builders 和 Messages序列化和反序列化协议扩
- unity3d发布apk在android虚拟机中运行的详细步骤(unity3d导出android apk),总的流程分为以下6个步骤:1、安
- 新建SL4 应用程序,在MainPage下添加代码:<Button x:Name="btnThread1" Cli
- 下面通过代码看下JAVA查询树结构数据(省市区)使用hutool工具实现代码:@PostMapping("/getTree&quo
- 滑动删除的部分主要包含两个部分, 一个是内容区域(用于放置正常显示的view),另一个是操作区域(用于放置删除按钮)。默认情况下,操作区域是
- 下载 Android SDK,官网:www.android.com 我相信很多人跟我一样,进不去。Android Studio 中文官网 w
- 1. 获取绝对文件路径System.IO.Path.GetFullPath(string path)string fileName = &q
- 指示器时间轴在外卖、购物类的APP里会经常用到,效果大概就像下面这样,看了网上很多文章,大都是自己绘制,太麻烦,其实通过ListView就可
- 池塘里养:Object;一、设计与原理1、基础案例首先看一个基于common-pool2对象池组件的应用案例,主要有工厂类、对象池、对象三个
- 前言前几天 在自己的 笔记本上把android studio 升级到4.1了 一直没有使用Gsonfomat插件所以没有发现问题!今天使用G
- 因为mybatis好使,所以几乎需要操作数据库的时候,我都会使用mybatis,而且在一个正式的项目中,同时存在BS和CS的程序,都使用的M
- 容器类、正则表达式在几乎所有编程语言都存在的东西。很常用也很使用。下面用如下的一个控制台小程序说明C#的正则表达式与容器类的应用。开始直接输
- Java 常量池的实例详解Java的常量池中包含了类、接口、方法、字符串等一系列常量值。常量池在编译期间就已经确定,并保存在*.class文