用Java编写的石头剪刀布游戏应用
这是我第一次投稿。
我制作了一个经过大量撰写的石头剪子布应用程序。
制作时间:2天
语言:Java
环境:MacOS、终端
文本编辑器:Atom
这是一个通过命令操作的游戏。
游戏规则如下所示。
- 
- 3回勝負
 
- 
- じゃんけんの手は配列で管理
 
- 
- CPUはランダムな数値を作成して手を決める
 
- 
- プレイヤーは入力された文字を数値に変えて手を決める
 
- 
- 数値で勝敗を判定する
 
- 最後に勝負の結果を表示する
实际的屏幕看起来是这个样子的。

石头剪刀布课程 bù
这是一个对战类的课程。
package jankenapp;
public class Janken {
  static String[] handList = {"グー","チョキ","パー"};
  static void startMessage() {
    System.out.println("--------------------");
    System.out.println("じゃんけんをしましょう!3回勝負です!");
  }
  static void endMessage() {
    System.out.println("ありがとうございました!また遊びましょうね!");
    System.out.println("--------------------");
  }
  public static void main(String[] args) {
    Player player = new Player();
    CPU cpu = new CPU();
    Judge judge = new Judge();
    // 開始の挨拶
    startMessage();
    for (int i = 1; i <= 3; i++) {
     System.out.println("【" + i + "回戦目】");
     // CPUが手をランダムに作成
     cpu.setHand();
     // Playerが手を入力
     player.setHand();
     // Player,CPUの手を表示
     System.out.println("・あなたの手:" + handList[player.getHand()]);
     System.out.println("・わたしの手:" + handList[cpu.getHand()]);
     // 判定
     judge.judgement(cpu.getHand(), player.getHand());
    } // 繰り返し終わり
    // 結果を表示
    judge.result();
    // 終了の挨拶
    endMessage();
  }
}
玩家类
我正在使用Scanner来获取手部输入的字符串,并通过switch语句将其转换为数字。
package jankenapp;
import java.util.*;
public class Player {
  int hand;
  public void setHand() {
    System.out.print("「グー」「チョキ」「パー」のどれかを入力してください。>");
    Scanner sc = new Scanner(System.in);
    String inputHand = sc.nextLine();
    switch(inputHand) {
      case "グー":
        hand = 0;
        break;
      case "チョキ":
        hand = 1;
        break;
      case "パー":
        hand = 2;
        break;
      default:
        System.out.println("間違えたので終了します…。");
    }
  }
  public int getHand() {
    return hand;
  }
}
CPU类
我們正在使用隨機方法隨機選擇手勢。
package jankenapp;
import java.util.*;
public class CPU {
    int hand;
    public void setHand() {
     double rand = Math.random() * 3;
     hand = (int)rand;
    }
    public int getHand() {
      return this.hand;
    }
}
法官类
这是一个用于判断胜负并显示比赛结果的类。判断方法是将每个人的手势转化为数字,通过(CPU的手势-玩家的手势+3)%3 来计算。我们通过计数玩家赢的次数、输的次数和平局的次数,并通过if语句显示结果。
Package jankenapp;
public class Judge {
  int judge;
  int win;
  int lose;
  int even;
  public void judgement(int cpuHand, int playerHand) {
    judge = (cpuHand - playerHand + 3 ) % 3;
    switch(judge) {
      case 0:
        System.out.println("あいこです!");
        even++;
        break;
      case 1:
        System.out.println("あなたの勝ちです!");
        win++;
        break;
      case 2:
        System.out.println("あなたの負けです!");
        lose++;
        break;
      default:
    }
    System.out.println("--------------------");
  }
  public void result() {
    System.out.println("【勝敗の結果】");
    System.out.println("勝ち:" + win + "回");
    System.out.println("負け:" + lose + "回");
    System.out.println("あいこ:" + even + "回");
    System.out.println("");
    if (win > lose) {
      System.out.println("この勝負はあなたの勝ちです!おめでとう!");
    } else if (win < lose) {
      System.out.println("この勝負はあなたの負けです!どんまい!");
    } else {
      System.out.println("この勝負は引き分けです!");
    }
  }
}
如果有令人不悦之处 ,很抱歉因为是自学的。
如果能给予指导意见等,我会很高兴。
感谢您一直阅读到最后。
【参考】借鉴一下石头剪刀布算法
(参考了判定式的思路。)
(8/23) 我意识到即使输入错误,默认值仍然会显示“剪刀”。我将采取措施来解决这个问题。
 
    