見出し画像

Javaでプログラムを作成する【オセロゲーム】#2

前回の続き、後編では実際にプログラムを記述していきます!

要件定義や、このオセロゲームのルールは前回の投稿に記載しています。
それでは、メインクラスとなるオセロ版のクラスと処理を実行するクラスに分けて作成していきます。

かなりボリューミーになるので、何回か分解します!

public class Board {
  static boolean game = true;

  // 8*8のオセロ版を管理する多次元配列
  static String[][] board = new String[8][8];

  // オセロの駒を表示させるための変数宣言
  static final String EMPTY = "";
  static final String BLACK = "●";
  static final String WHITE = "◯";

  static String stone;
  static String rev_stone;

  static public void initialize() {
  // オセロ版をリセットする処理:for文の入れ子構造
    for (int i = 0; i < 8; i++) {
      for (int j = 0; j < 8; j++) {
        board[i][j] = EMPTY;
      }
    }

  // ゲーム開始時の初期状態の配置
  board[3][3] = BLACK;
  board[3][4] = WHITE;
  board[4][3] = WHITE;
  board[4][4] = BLACK;

  // ゲーム進行時の次打つ駒の設定
  stone = BLACK;
  rev_stone = WHITE;
  
  //ゲーム実行中フラグ
  game = true;
}

// オセロ版の設定
static public void showBoard() {
  //空いている座標があるかの確認
  boolean existempty = false;
  //黒い駒の数集計用
  int cnt_black = 0;
  //白い駒の数集計用
  int cnt_white = 0;

  //オセロ版を描写するプログラム
  int i = 0;
  System.out.println(" |0 |1 |2 |3 |4 |5 |6 |7 |");
  System.out.println("――――――――――――――");
  for (String[] sarr : board) {

    System.out.print(i + " |");
    for (String s : sarr) {

        System.out.print(s);
        System.out.print("|");

        //空いている座標があるか、各駒数の集計
        if (s.equals(EMPTY)) {
          existempty = true;
        } else if (s.equals(BLACK)) {
          cnt_black++;
        } else if (s.equals(WHITE)) {
          cnt_white++;
        }
      }
      System.out.println();
      System.out.println("――――――――――――――");

      i++;

    }

メインクラスとなるオセロ版のベースとなるクラスのプログラムです。
8*8のオセロ版の設定や、オセロゲームの肝となる白黒の駒を変数宣言、
ゲーム開始時の盤面など、ベースとなる部分を作成しました!

次は、駒を置いていくゲームの流れやひっくり返す処理を中心に、プログラムを完成させていきたいと思います。


この記事が気に入ったらサポートをしてみませんか?