JavaSE实现猜拳游戏
作者:Sylarjyd 发布时间:2023-12-22 07:21:19
标签:JavaSE,猜拳
本文实例为大家分享了JavaSE实现猜拳游戏的具体代码,供大家参考,具体内容如下
import java.util.Random;
import java.util.Scanner;
public class CaiQuan {
private String userName;//存储用户名
private String cName;//存储对手
private int cNameNum;//存储玩家选择的对手代号
private String userInfo;//用户出拳信息
private String cInfo;//电脑出拳信息
private int uNum;//接收用户输入的数
private int cNum;//接受电脑产生的数
private Scanner sc;
private static final String Army01 = "张飞";
private static final String Army02 = "关羽";
private static final String Army03 ="刘备";
private static boolean flag ;//平局和电脑胜为true,玩家赢为fasle
private int selectInfo;//玩家是否继续游戏,1表示继续,0表示结束
private int score = 0;//分数
public static void main(String[] args) {
CaiQuan cq = new CaiQuan();
cq.gameInfo();
do{
cq.selectArmy();
cq.userInput();
cq.cOutput();
cq.compareCaiQuan();
cq.gameOver();
}while(flag);
}
public CaiQuan(){
}
//打印游戏信息
public void gameInfo(){
System.out.println("欢迎进行猜拳小游戏!");
System.out.println("1.表示石头 2.表示剪刀 3.表示布");
sc = new Scanner(System.in);
if(userName==null){
System.out.println("玩家请输入用户名:");
System.out.println("=============================================");
userName = sc.next();
}
}
//选择对手
public void selectArmy(){
System.out.println("=============================================");
System.out.println("对手选择列表:");
System.out.println("1:"+Army01+" 2:"+Army02+" 3:"+Army03);
System.out.println(userName+"请输入对手:");
System.out.println("=============================================");
test01();
System.out.println(userName+",您选择的对手为"+cName);
System.out.println("=============================================");
}
//判断对手
public void test01(){
cNameNum = sc.nextInt();
if(cNameNum==1){
cName = Army01;
}else if(cNameNum==2){
cName = Army02;
}else if(cNameNum==3){
cName = Army03;
}else{
System.out.println("对手选择错误,请重新选择!");
test01();
}
}
//开始游戏
public void userInput(){
System.out.println(userName+"请出拳:");
System.out.println("1.表示石头 2.表示剪刀 3.表示布");
System.out.println("=============================================");
test();
System.out.println("=============================================");
System.out.println(userName+"的出拳为:"+userInfo);
}
//判断输入的数是否错误
public void test(){
uNum = sc.nextInt();
if(uNum==1){
userInfo = "石头";
}else if(uNum==2){
userInfo = "剪刀";
}else if(uNum==3){
userInfo = "布";
}else{
System.out.println("输入错误,请请重新输入");
test();
}
}
//电脑出拳
public void cOutput(){
Random random = new Random();
cNum = random.nextInt(3)+1;
if(cNum==1){
cInfo = "石头";
}else if(cNum==2){
cInfo = "剪刀";
}else if(cNum==3){
cInfo = "布";
}
System.out.println(cName+"出拳为:"+cInfo);
}
//比较大小
public void compareCaiQuan(){
String msg = null;
if(uNum == 1){
if(cNum == 1){
msg="此时平局";
flag = true;
}else if(cNum == 2){
score += 1;
msg="此时"+userName+"胜出";
flag = false;
}else {
score -= 1;
msg="此时"+cName+"胜出";
flag = true;
}
return;
}else if(uNum == 2){
if(cNum == 1){
score -= 1;
msg="此时"+cName+"胜出";
flag = true;
}else if(cNum == 2){
msg="此时平局";
flag = true;
}else {
score += 1;
msg="此时"+userName+"胜出";
flag = false;
}
}else {
if(cNum == 1){
score += 1;
msg="此时"+userName+"胜出";
flag = false;
}else if(cNum == 2){
score -= 1;
msg="此时"+cName+"胜出";
flag = true;
}else {
msg=" 此时平局";
flag = true;
}
}
System.out.println(msg);
}
//游戏结束信息
public void gameOver(){
System.out.println("=============================================");
if(flag==true){
System.out.println(userName+",您没有战胜电脑,不要灰心,请继续游戏!");
System.out.println("=============================================");
System.out.println("继续游戏请输入:1 结束游戏请输入:2");
test02();
}else if(flag==false){
System.out.println(userName+",您太厉害了,竟然战胜了"+cName+",游戏结束!");
System.out.println("=============================================");
System.out.println("继续游戏请输入:1 结束游戏请输入:2");
test02();
}
}
//判断玩家是否继续游戏
public void test02(){
selectInfo = sc.nextInt();
if(selectInfo==1){
flag = true;
}else if(selectInfo==2){
System.out.println(userName+",您的游戏分数为:"+score);
System.exit(0);
}else{
System.out.println(userName+",您输入错误,请重新输入!");
test02();
}
}
}
来源:https://blog.csdn.net/Sylarjyd/article/details/68951906


猜你喜欢
- 本文实例为大家分享了Android倒计时进度条展示的具体代码,供大家参考,具体内容如下效果预览源代码传送门:https://github.c
- 本文实例讲述了Android编程重写ViewGroup实现卡片布局的方法。分享给大家供大家参考,具体如下:实现效果如图:实现思路1. 重写o
- 首先是获取特定进程对象,可以使用Process.GetProcesses()方法来获取系统中运行的所有进程,或者使用Process.GetC
- 1. 概述在 Spring Security 5.2 中增强了 DSL 的功能:允许使用 Lambda 表达式来配置 HTTP securi
- 本文主要是通过一个银行用户取钱的实例,演示java编程多线程并发处理场景,具体如下。从一个例子入手:实现一个银行账户取钱场景的实例代码。第一
- 相信大家都见到了微信图标颜色渐变的过程,是不是感觉很牛逼?不得不说微信团队确实是很厉害的团队,不管是从设计还是开发人员。今天我带大家来看看,
- boot-admin整合Quartz实现动态管理定时任务淄博烧烤爆红出了圈,当你坐在八大局的烧烤摊,面前是火炉、烤串、小饼和蘸料,音乐响起,
- 本文实例讲述了.NET/C#实现识别用户访问设备的方法。分享给大家供大家参考,具体如下:一、需求需要获取到用户访问网站时使用的设备,根据不同
- 今天在于硬件进行交互的过程中,要到了了需要两个数组进行合并,然后对数组进行反转和加密操作,以下是两个byte数组合并的方法。/** *
- 前言我们在很多博客中都有发现,Seata AT模式里面的全局锁其实是行锁,这也是Seata AT模式和XA模式在锁粒度上的最大区别。我们可以
- 前言在 App 的运营中,活跃度是一个重要的指标,日活/月活……为了提高活跃度,就发明了小红点,
- 一、介绍Spring是通过任务执行器(TaskExecutor)来实现多线程和并发编程,使用Spring提供的ThreadPoolTaskE
- 本文实例讲述了C#简单聊天程序实现方法。分享给大家供大家参考。具体如下:假如有服务器端程序,ChatServer和客户端程序ChatClie
- 一、水平分表当业务需求的数据量过大时,一个表格存储数据会非常之多,故时长采用水平分表的方式来减少每张表的数据量即是提升查询数据库时的效率。水
- 一、html代码 &n
- SpringMVC中的 * 用于拦截控制器方法的执行,执行在Controller前后,和视图渲染完成后。如下图所示:一、创建 * 继承Han
- 目录一、准备工作1、导包二、了解注解1、常用注解2、@ExcelProperty注解3、@ColumnWith注解4、@ContentFon
- 本文实例为大家分享了Java执行SQL脚本文件到数据库的具体方式,供大家参考,具体内容如下方式一:直接读取SQL脚本文件的内容,然后传递到S
- 前言:Android Studio中把项目的lib库提交到Jcenter仓库中,需要使用到Bintray,Bintray是jCenter的提
- 本文实例讲述了WinForm实现状态栏跑马灯效果的方法。分享给大家供大家参考,具体如下:using System;using System.