【Java】

第3回 Javaでオセロを作成しよう

ボード上のオセロの数を数えて表示する

投稿日 2020/12/10 更新日 2020/12/10


こんにちは。当サイトの管理者「元木皇天」です。

さて、Javaでオセロを作ろうの第3回です。第1回第2回の続きですので、まだの方はぜひ過去の回から作成をしてください。

今回はオセロのボード上に、白と黒のオセロが何個あるのかをカウントして表示する機能を実装していきます。

開発環境
OS:macOS
Java:11.0.7
Eclipse:2020-03

今回の目標

今回の目標は、ボード上のオセロの数を数えて表示することです。完成サンプルは以下のようになります。

オセロを開始します.
| |1|2|3|4|5|6|7|8|
|1| | | | | | | | |
|2| | | | | | | | |
|3| | | | | | | | |
|4| | | |◯|●| | | |
|5| | | |●|◯| | | |
|6| | | | | | | | |
|7| | | | | | | | |
|8| | | | | | | | |
黒の数:2
白の数:2
横の座標を1~8の半角数字で入力してください
1
縦の座標を1~8の半角数字で入力してください
1
| |1|2|3|4|5|6|7|8|
|1|●| | | | | | | |
|2| | | | | | | | |
|3| | | | | | | | |
|4| | | |◯|●| | | |
|5| | | |●|◯| | | |
|6| | | | | | | | |
|7| | | | | | | | |
|8| | | | | | | | |
黒の数:3
白の数:2

クラスの作成

今回は新たに「CountBlackWhite.java」というクラスを作成します。

赤で囲んでいる箇所が今回の追加対象です。

作成フォルダ一覧

オセロの数をカウントするメソッドの作成

先ほど作成した「CountBlackWhite.java」にオセロの数を数えるメソッドを作成します。

以下を参考にコードを作成してください。

--CountBlackWhite.java--

package osero.model;

import osero.Main;

public class CountBlackWhite {

    //黒の数を数えてその値を返す
    public int countBlack(String[][] b) {

        int black = 0;
        for(int i=1; i<9; i++) {
            for(int j=1; j<9; j++) {
                if(b[j][i] == Main.black) {
                    black++;
                }
            }
        }
        return black;
    }

    //白の数を数えてその値を返す
    public int countWhite(String[][] b) {

        int white = 0;
        for(int i=1; i<9; i++) {
            for(int j=1; j<9; j++) {
                if(b[j][i] == Main.white) {
                    white++;
                }
            }
        }
        return white;
    }
}

countBlack()とcountWhite()では基本的に同じ処理をしています。

処理の内容としては、for文をネストしてオセロのボード上の座標を一つずつ見ていきます。 その時にif文でその座標に黒のオセロ、または白のオセロが置いてあった場合 「int black」「int white」の数をインクリメントして、白と黒のオセロの数をカウントしていきます。

最終的にカウントした数をreturnします。

このreturn値は「ShowBoard.java」で使用します。

コンソールにオセロのカウント数を表示する

先ほど作成したメソッドを「ShowBoard.java」で使用します。

既存のコードにCountBlackWhite.javaを記載してオセロの個数を表示する文章を表示するコードを書き足します。

以下のコードを参考に赤で線を引いた箇所を追記してください。

--ShowBoard.java--

//省略

public class ShowBoard {

    //インスタンスの作成
    CountBlackWhite CBW = new CountBlackWhite();

    //Mainのboard配列を受け取って、それをもとにオセロボードを表示する
    public void showBoard(String[][] board) {

        //省略

        //ボード上のオセロの数を数えて表示する
        System.out.println("黒の数:" + CBW.countBlack(Main.board));
        System.out.println("白の数:" + CBW.countWhite(Main.board));

    }
}
 

これで完成です。おつかれさまでした。 実行を行うとボード上のオセロの数がコンソール上に表示されるはずです。 これでオセロのゲーム中に、自分や相手のオセロの数が一目見てわかるようになりました。

次回

次回はいよいよオセロの要となる処理の「オセロをひっくり返す」処理を作成していこうと思います。 よかったら読んでください。 今回は以上です。ありがとうございました。

参考文献・おすすめ文献