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

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

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

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

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

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

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

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

まずはじゃんけんゲームの画面を作ってみましょう。
今回、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. Android アプリ開発入門! 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】じゃんけんゲームの作り方(アプリ開発の基本)

スポンサードリンク

関連コンテンツ

オススメ記事

小学生から始めるプログラミング入門。プログラミングってなぁに?

2020年から小学校でプログラミングが必修(ひっしゅう)となりますが、「プログラミングなんてやったことないし、何から初めていいのか分からない」といった方も多いのではないでしょうか。 プログラミン

これまでのプログラム全体をクラスを使って作るべ!

小学生からのJavaScript。プログラム全体をクラスを使って作ってみよう!

小学生からのプログラミング講座(こうざ)、第13弾です。 前回はプログラミングにおける、クラスの使い方を学びました。しかし、まだクラスをどうやって使えばいいのか、ピンときていないかも

【Gitの使い方 – その3】Gitで実際にバージョン管理してみよう!

お魚くわえた@It_is_Rです。 Gitの使い方第3回目の今回は、実際にGitを使ってバージョン管理をしてみようと思います。 [serif name="It is R"]りこ師匠

Swift

【Xcode7】Storyboardを使ってMacアプリ開発に挑戦。

何だか今日はトイレが近い。@It_is_Rでございます。 現在開発中の人魚のゲームは今ストーリーを練っている所です。まだまだ時間がかかりそうです。 さて、Rは今、Macアプリ開発を勉強中なので

【Mac】ローカルにWebサーバを立ち上げる超簡単な方法!

JavaScriptを使ってWebページなどの開発をしていると、Google ChromeやSafariなどのブラウザでうまく開けない場合が稀にあります。 そんな時、ローカルにWebサーバを立ち上げ

bootstrap3

Bootstrap3でサイト制作するための、準備と初期設定。

ゲーム制作は順調にすすんでいます。このまま順調にいけば、今月か来月までには完成できそうです。@It_is_Rです。 さて、今回はBootstrap3によるサイト制作の入門講座です。 このBoo

Ameba customize

アメーバのOwndで、無料で超簡単にホームページ作ってやろうぜ!!

どうも、@It_is_Rです。 ホームページを作成するには、まずHTMLを使う能力、若しくはソフトが必要になります。 さらにサーバーを借りなくてはなりません。するとお金がかかったりします。 では

webpack-dev-serverの基本的な使い方と設定方法の詳しい解説

あとで見ようとブラウザのタブを開きすぎて、どれがどれだか分からなくなる@It_is_Rです。 webpack-dev-serverを使えば、とても簡単にwebpackでの開発サーバーを立ち上げる

WordPress テーマ自作 | サイト全体のレイアウトを整える。

水を飲む時、口に入れすぎてしまう@It_is_Rです。 WordPressテーマ自作シリーズ第11回目です。 今回は、サイト全体のレイアウトを整えてみましょう。 このシリーズの前回の記事

Yarn

Yarn の使い方。インストールの方法から使い方まで解説します。

最近ドラクエにはまっている@It_is_Rです。PS1 のやつです。ドラクエⅦ。 関係ない話はさておき、今回は Yarn の使い方を解説していきたいと思います。 Yarn とは

コメントをどうぞ!

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