1. HOME
  2. »
  3. プログラミング・Web
  4. »
  5. Androidアプリ開発
  6. »
  7. 【Android Studio】じゃんけんゲームの作り方(アプリ開発の基本)

【Android Studio】じゃんけんゲームの作り方(アプリ開発の基本)

限りなくじゃんけんが弱い@It_is_Rです。

Androidアプリ開発、11回目となりました。
そろそろ何かアプリを作ってみたいですよね。基本は大事ですが、一番つまらないですね。

そこで今回は、アプリ開発の基本を学びながら、じゃんけんゲームを作ってみましょう。

このシリーズの前回の記事はこちらです。
【Android Studio】 GridLayout の使い方。複雑なレイアウトを表現する方法

今回はこんな感じのゲームを作ります。
android studio

目次
  1. じゃんけんゲームの画面を作る
  2. ゲームが動くようにプログラムを作る
  3. 完成
  4. まとめ

じゃんけんゲームの画面を作る

まずはじゃんけんゲームの画面を作ってみましょう。
今回、TextViewも使いたいので、最初から入っているTextViewはそのままにしておきます。

ボタンを作る

じゃんけんゲームですので、「グー」、「チョキ」、「パー」のボタンが必要です。
このボタンは横一列に並べたいので、LinearLayout(horizontal)を使います。
android studio

ボタンを3つ作ります。
android studio

ボタンが一番上ではタップしにくいので、下の方に配置したいですね。
今回はLinearLayoutの高さを低くし、LinearLayoutごと一番下に持ってくる方法にしたいと思います。

LinearLayoutを選択し、layout_heightを60dpにします。
android studio

LinearLayoutの下の白い丸を一番下にドラッグします。
android studio

すると、レイアウトを下の方に配置することができます。

ボタンのテキストとIDを変更

次に、それぞれのボタンのテキストとIDを変更します。
それぞれのボタンを選択し、下の画像の様にtextとIDの部分を変更してください。
android studio

  • ID:rock text:グー
  • ID:scissors text:チョキ
  • ID:paper text:パー

といった感じにします。
android studio

TextViewの表示を変更

テキストビューのテキストを変更します。
Hello World! となっている部分を「じゃんけん」に変更しました。
android studio

また、テキストサイズの変更もします。
中央寄せはどちらでもいいと思いますがとりあえず。
android studio

IDはtextに変更しました。
android studio

こんな感じになります。
android studio

更にもう一つTextViewを追加します。
ボタンのレイアウトを配置した要領で、TextViewの上の白い丸を一番上までドラッグします。
android studio

IDを「subtext」
textを「最初はグー」
textSizeを「20sp」にしました。
android studio

こんな感じになります。
android studio

これで画面全体が完成しました。

ゲームが動くようにプログラムを作る

では、ゲームが動く様にしていきましょう。

MainActivity.java にプログラムを書いていきます。

MainActivity.java

package com.example.r.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.Random;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final TextView text = (TextView)findViewById(R.id.text);
        final TextView subtext = (TextView)findViewById(R.id.subtext);
        Button rock = (Button)findViewById(R.id.rock);
        Button scissors = (Button)findViewById(R.id.scissors);
        Button paper = (Button)findViewById(R.id.paper);

        //opponentHand 1  "rock"
        //opponentHand 2  "scissors"
        //opponentHand 3  "paper"
        rock.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int opponentHand = decideOpponentHand();
                String opponentHandText = changeTextOpponentHand(opponentHand);
                decideGame(1, opponentHand, subtext);
                text.setText(opponentHandText);
            }
        });
        scissors.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int opponentHand = decideOpponentHand();
                String opponentHandText = changeTextOpponentHand(opponentHand);
                decideGame(2, opponentHand, subtext);
                text.setText(opponentHandText);
            }
        });
        paper.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int opponentHand = decideOpponentHand();
                String opponentHandText = changeTextOpponentHand(opponentHand);
                decideGame(3, opponentHand, subtext);
                text.setText(opponentHandText);
            }
        });
    }
    String changeTextOpponentHand(int hand) {
        String handText = "";
        if (hand == 1) handText = "グー";
        else if (hand == 2) handText = "チョキ";
        else if (hand == 3) handText = "パー";
        return handText;
    }
    int decideOpponentHand() {
        Random rnd = new Random();
        int hand = rnd.nextInt(3)+1;
        return hand;
    }
    void decideGame(int playerHand, int opponentHand, TextView decidetext) {
        String decision;
        if(playerHand == opponentHand) decision = "あいこ";
        else if((playerHand == 3 && opponentHand == 1) || (playerHand+1 == opponentHand)) decision = "勝ち";
        else decision = "負け";
        decidetext.setText(decision);
    }
}

17〜21行目
findViewByIdを使って、テキストやボタンを取得します。

26, 35, 44行目
グーチョキパーそれぞれのボタンが押された時の処理です。ここで、相手の出す手を考え、判定し、setTextで画面上のテキストを変更します。

54行目
相手の手の変数の数値によって、文字列を作るメソッドです。

61行目
相手の手をランダムで決定するメソッドです。

66行目
ゲームの判定をするメソッドです。

完成

完成したアプリはこんな感じです。
android studio

まとめ

今回はAndroidアプリ開発らしく、じゃんけんゲームを作りました。
ようやくアプリ開発をしたかって感じです。

この企画の一覧はこちら

  1. MacでのAndroid Studioインストール手順
  2. 【Android Studio】新規プロジェクトを作成する方法。
  3. 【Android Studio】エミュレータを起動してプログラムを実行する方法!
  4. 【Android Studio】開発したアプリの実機テストを行う方法。
  5. 【Android Studio】アプリ開発の基本とそれぞれのファイルの役割を覚える。
  6. 【Android Studio】TextView を使ってテキストを変更、追加する方法。
  7. 【Android Studio】Button(ボタン)を作る基本中の基本。
  8. 【Android Studio】TextView 文字の色やサイズ、書体を変更する方法。
  9. 【Android Studio】レイアウト( Layout )の種類を覚えよう!
  10. 【Android Studio】 GridLayout の使い方。複雑なレイアウトを表現する方法
  11. 【Android Studio】じゃんけんゲームの作り方(アプリ開発の基本)

スポンサードリンク

関連コンテンツ

オススメ記事

【Bootstrap 4】badgeを使ってテキスト横に小さな文字を入れる方法

前にBootStrap4の記事を書いていましたが、日にちが空いてしまいましたね。@It_is_Rです。 前回は全体的な機能とアラートの使い方を紹介しました。 今回はバッジの使い方を紹介していき

CSS Button

サイト制作に!!CSSでマウスオーバーボタンの作り方。

新年初の記事です。とりあえず、あけましておめでとうございます。@It_is_Rです。 お正月……おそーがつ……おそまつ……おそ松さん。新年早々くだらないこと言ってないで早く記事を書けって話ですね。

JavaScriptマンガ講座。条件分岐(if文)の真偽値による使い方。(実践編)

生まれも育ちもド田舎、@It_is_Rです。 JavaScriptマンガ講座、第3回目です。 笑いあり、涙あり(?)のマンガで、JavaScriptを覚えようというものです。 今回は条件

ファイルを分けるべよ!

小学生からのJavaScript入門。ファイルを分けて管理してみよう!

小学生からのJavaScript入門講座(にゅうもんこうざ)、第5弾です。 前回はりこちゃんを方向キーで操作(そうさ)することができるようになりました。 しかしプログラムを作ってくと、コンピュ

今月の残り日数を計算するべ!

小学生からのJavaScript入門。今月の残り日数を計算してみよう!

小学生からのJavaScript入門、第2弾です。 今回はJavaScriptでの演算(えんざん)の方法を学び、今月の残り日数を計算してみましょう。 演算というのは、足したり、引いたり、割った

【Android Studio】Button(ボタン)を作る基本中の基本。

ボタンを作る基本中の基本ですが、ボタンを作ること自体が基本中の基本です。@It_is_Rです。 タイトルなんてどうだっていいんです。肝心のなのは真心です。 Androidアプリ開発、7回目とな

KSSでスタイルガイドを作る方法。インストールと使い方。

そのうちWordPressのテーマを作る方法の解説とかしたいなーと思っている@It_is_Rです。 いま準備中ですので、もうちょっとお待ちくださいねー。 そして今回ですが、KSSを使ったスタイ

Local by Flywheel

Local by Flywheelの使い方。かんたんWordPressローカル環境構築方法

考え事をしていると、目が上にいっている@It_is_Rです。 Local by FlywheelはWordPressのローカル開発環境を簡単に作れるツールです。 今回はこれを使って、ローカルに

【Bootstrap 4】ボタングループ使い方。ボタンの一まとめにする方法

Bootstrap4の使い方、第6回目です。 前回、Bootstrap4でのボタンの作り方を紹介しましたが、今回はそのボタンをグループにしてひとまとめにする方法です。 Bootstrapにはボ

【Gitの使い方 – その1】GitHubのアカウントを取得する方法!

Gitを使うとバージョン管理が簡単になりますが、それ以前に自分の頭の中を管理するのが大変な@It_is_Rです。 Gitの使い方をいくつかの記事に分けて紹介していきたいと思います。 まず今回は

コメントをどうぞ!

メールアドレスが公開されることはありません。