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();  
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(JavaSE实现猜拳游戏)