JavaSE实现猜拳游戏

作者:Sylarjyd 时间:2023-12-22 07:21:19 

本文实例为大家分享了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

标签:JavaSE,猜拳
0
投稿

猜你喜欢

  • Android Studio 3.0 新功能全面解析和旧项目适配问题

    2022-09-16 23:53:57
  • Java 关于时间复杂度和空间复杂度的深度刨析

    2023-11-10 16:07:39
  • Android运动健康睡眠自定义控件的实现

    2021-07-17 22:52:35
  • 用代码更新你的jar包

    2023-09-19 23:01:04
  • Java中List遍历删除元素remove()的方法

    2022-07-12 12:27:10
  • MyBatis-Plus实现字段自动填充功能的示例

    2022-03-06 21:48:29
  • C#检测远程计算机端口是否打开的方法

    2023-12-11 08:55:31
  • Java使用贪心算法解决电台覆盖问题(示例详解)

    2022-12-31 05:58:48
  • Android数据持久化之File机制分析

    2021-05-29 19:24:56
  • 浅谈Android中多线程切换的几种方法

    2022-03-12 06:03:17
  • Java解析json报文实例解析

    2023-07-18 21:33:58
  • 基于java构造方法Vector遍历元素源码分析

    2023-11-25 05:21:40
  • Java经验点滴:类注释文档编写方法

    2023-11-06 03:50:11
  • 详解C#如何实现屏幕放大和取色功能

    2022-04-15 04:00:37
  • Android编程解析XML文件的方法详解【基于XmlPullParser】

    2022-09-21 22:48:40
  • 详解C# 泛型中的数据类型判定与转换

    2023-05-03 08:08:36
  • 简单聊一聊Java线程池ThreadPoolExecutor

    2021-10-23 15:56:58
  • 浅谈android Fragment横竖屏翻转对重新加载的要求

    2023-07-27 21:55:28
  • SpringBoot全局配置long转String丢失精度的问题解决

    2023-02-19 22:58:49
  • Android实现一个丝滑的自动轮播控件实例代码

    2022-01-24 03:08:19
  • asp之家 软件编程 m.aspxhome.com