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
0
投稿
猜你喜欢
- throw抛出异常的方式比较直接:if(age < 0){throw new MyException("年龄不能为负数!&q
- Java注解的Excel导出依赖: <dependency> &
- 已知字符串“aabbbcddddeeffffghijklmnopqrst”编程找出出现最多的字符和次数,要求时间复杂度小于O(n^2)/**
- 冒泡排序原理①比较相邻的元素,如果前一个元素比后一个元素大,则交换这两个元素的位置②对每一对相邻的元素循环上面的步骤,最终最后面的元素就是最
- Android的消息机制几乎是面试必问的话题,当然也并不是因为面试,而去学习,更重要的是它在Android的开发中是必不可少的,占着举足轻重
- 配置准备在build.gradle文件中添加如下依赖: compile "org.elasticsearc
- 1、servlet层package com.ycz.controller;import com.alibaba.fastjson.JSON;
- 开发过程中经常遇到需要用某些http://maven.apache.org/中没有的jar包,这个时候可以用maven命令自己添加通常这些j
- Java程序设计 图形用户界面 【十】复选框复选框JCheckBoxJCheckBox类方法作用public JCheckBox(Icon
- MyBatis在注解上使用动态SQL1、用script标签包围然后像xml语法一样书写@Select({"<script&g
- Mapper 就是“映射”的意思,Mapper 文件时 Mybatis 中的 SQL 语句的配置文件
- 本文实例为大家分享了Unity UI实现拖拽旋转的具体代码,供大家参考,具体内容如下跟随鼠标旋转第一种效果是跟随鼠标旋转,原理是计算下鼠标位
- 基本介绍数据回显:模型数据导向视图(模型数据 ---> Controller ---> 视图)说明:SpringMVC在调用方法
- 一、概述一共两个线程,一个线程生产产品,一个线程消费产品,使用同步代码块方法,同步两个线程。当产品没有时,通知生产者生产,生产者生产后,通知
- 呐呐呐,做Java呢,最重要是要把自己的“作品” 部署到公网上去啦。特别是初学者,需要向面试官证明自己会什么,这个真的就很重要啦,空口无凭,
- spring拓展 定义自己的namespace1.查看源码认识spring是怎么加载xml配置的1.1 spring是怎么创建对象的? 查看
- Java基于对象流实现银行系统的具体代码,供大家参考,具体内容如下系统特点:数据持久化到文件中,系统启动后,加载文件中数据到集合中,相当于做
- Feign传递请求头信息在我之前的文章服务网关Spring Cloud Zuul中,将用户的登录id放在了请求头中传递给内部服务。但是当内部
- 前言在SpringBoot中,对于JavaBean的属性一般都绑定在配置文件中,比如application.properties/appli
- Java类之间的关系图在Java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们