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) {
//中身の処理はこの後実装します。
}
}
ボタンイベントと関連付け
画面の「グー」「チョキ」「パー」のボタンが押された時、上記で作成したonClickRock、onClickScissors、onClickPaperメソッドがそれぞれ呼ばれるように、ボタンのクリックイベントとJavaのメソッドを関連付けします。
デザイナを開き「グー」ボタンを選択し、onClick属性に先ほど作成したonClickRockを選択します。
同じ要領で、「チョキ」と「パー」ボタンにもonClickScissorsとonClickPaperメソッドを設定します。
じゃんけんのメイン処理を実装
次に、コンピューターのじゃんけんの手をランダムに決定し、プレイヤーの出した手と比較して、勝敗判定を行うメインのgameメソッドを実装していきます。
MainActivity.javaのgameメソッドを次のように書き換えます。
/**
* コンピューターの手をランデムに決定し、勝敗の判定を行う
* @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の学習を進めていきましょう。
上記イメージのように、現在のAndroid Studioでは Java側で作成したメソッドを自動で認識し、onClickなどのイベント属性の候補に表示してくれるため、簡単に画面コンポーネントとJavaのメソッドの関連付けが行えます。