Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

Java初心者向けに、Android Studio+Javaで簡単なじゃんけんゲームを作る方法を解説します。

初心者がプログラミングを学習するためには、一定量の学習時間が必要なり、行き詰まると、途中で投げ出してしまうこともあるでしょう。学習を続けるためには、学習自体も楽しくなくてはなりません。

前回の記事では、Android Studioを使って、じゃんけんゲームの画面デザインを作るところまでを実装しました。今回は、Java側のソースコードを作成して、ゲームに動きをつけてゲームを完成させていきましょう。まだゲーム画面を作成していない場合は、前回の記事からご覧ください。

【関連記事】
Javaで簡単なAndroidゲームアプリを作る方法をソースコード付きで紹介

じゃんけんゲーム、Javaソースの作成

プロジェクトツリーから「app/src/main/java/com/example/myapplication/MainActivity.java」をダブルクリックして、ソースコードエディタを開きます。

エディタで開いたら、「グー」「チョキ」「パー」のボタンが押された時のメソッドをそれぞれ定義します。また、併せてボタンが押された時に呼ぶgemeメソッドもあわせて定義しておきましょう。

public class MainActivity extends AppCompatActivity {

    // onCreateは画面が表示れる時に呼ばれる
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(activity_main);
    }

/** これ以降のメソッドを追加 **/

    // グーが押された時のイベント
    public void onClickRock(View view) {
        game(0);
    }

    // チョキーが押された時のイベント
    public void onClickScissors(View view) {
        game(1);
    }

    // パーが押された時のイベント
    public void onClickPaper(View view) {
        game(2);
    }

    // コンピューターの手をランデムに決定し、勝敗の判定を行う
    private void game(int btnId) {
      //中身の処理はこの後実装します。
    }
}

ボタンイベントと関連付け

画面の「グー」「チョキ」「パー」のボタンが押された時、上記で作成したonClickRockonClickScissorsonClickPaperメソッドがそれぞれ呼ばれるように、ボタンのクリックイベントとJavaのメソッドを関連付けします。

デザイナを開き「グー」ボタンを選択し、onClick属性に先ほど作成したonClickRockを選択します。

ポテパンダの一言メモ

上記イメージのように、現在のAndroid Studioでは Java側で作成したメソッドを自動で認識し、onClickなどのイベント属性の候補に表示してくれるため、簡単に画面コンポーネントとJavaのメソッドの関連付けが行えます。

同じ要領で、「チョキ」と「パー」ボタンにもonClickScissorsonClickPaperメソッドを設定します。

じゃんけんのメイン処理を実装

次に、コンピューターのじゃんけんの手をランダムに決定し、プレイヤーの出した手と比較して、勝敗判定を行うメインのgameメソッドを実装していきます。

MainActivity.javagameメソッドを次のように書き換えます。

/**
* コンピューターの手をランデムに決定し、勝敗の判定を行う
* @param playerHand  0:グー、1:チョキ、2:パー
*/
private void game(int playerHand) {
  String[] handTexts = { "グー", "チョキ", "パー" };

  // ランダムクラスで、0以上、3未満の乱数を生成して
  // コンピュータの手をランダムに決定
  Random r = new Random();
  int cupHand = r.nextInt(3);

  String judge = null;
  // プレイヤーとコンピュータの手を比較して勝敗を判定する
  if (playerHand == cupHand) {
    judge = "あいこ";
  } else if (playerHand == 0 && cupHand == 2) {
    // 「グー」対「パー」
    judge = "まけ";
  } else if (playerHand == 0 && cupHand == 1) {
    // 「グー」対「チョキ」
    judge = "かち";
  } else if (playerHand == 1 && cupHand == 0) {
    // 「チョキ」対「グー」
    judge = "まけ";
  } else if (playerHand == 1 && cupHand == 2) {
    // 「チョキ」対「パー」
    judge = "かち";
  } else if (playerHand == 2 && cupHand == 0) {
    // 「パー」対「グー」
    judge = "かち";
  } else if (playerHand == 2 && cupHand == 1) {
    // 「パー」対「チョキ」
    judge = "まけ";
  }

  // コンピューターの手および、勝敗の判定結果を画面に表示
  TextView textViewJudge = (TextView)findViewById(R.id.judge);
  textViewJudge.setText(judge);
  TextView textViewCpu = (TextView)findViewById(R.id.cpu);
  textViewCpu.setText(handTexts[cupHand]);
}

完成したアプリを動かそう

簡素で少し味気ないところもありますが、これで「じゃんけんゲーム」は完成です。

実際に作成したアプリを起動して、動きを確認していきましょう。アプリは、実機またはエミュレーター上で動かすことが可能です。

実機で動かす方法は、次の記事で解説していますので、こちらを参考に設定を行ってください。

【関連記事】
Javaで簡単なAndroidゲームアプリを作る方法(環境準備)

エミュレーターの場合は、Android Studioに一緒にインストールされるため、特にインストールや設定等は不要で、ツールバーの再生アイコンの部分をクリックすれば、エミュレーター上で作成したアプリを動かすことができます。

まとめ

Android Studio+Javaで、簡単な「じゃんけんゲーム」を作る手順を解説してきました。

初めは、Android Studioの使い方に慣れないかもしれませんが、簡単なステップでGUIを持つスマホアプリが作成できるため、アプリ開発を本格的にやっていきたい人はもちろんのこと、Javaの基本的な学習のためにアプリ開発をするのもよいでしょう。

実際に動くものをたくさん作って、Javaの学習を進めていきましょう。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。