質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

1693閲覧

AndroidStudioでスロットゲーム

Ssanswer

総合スコア11

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2020/09/28 01:33

編集2020/09/28 01:49

[質問内容]
AndroidStudioでスロットゲームの作成をしているのですが
2ビンゴまでの判定はできるのですが
3ビンゴの時の条件が全く思いつきません。
出来れば解説付きで3ビンゴの条件の書き方を教えてほしいですが
ヒントだけでもいいのでご教授お願いします。

[環境]
AndroidStudio 4.1

[設定]
ソースコード内にも一応記載はしているのですが
123
456
789
のように左上から番号を指定して
ボタンを3つ用意し、
ボタン1を押すと1,4,7の左の縦1列がランダムに0から3までの数字を入れます。
同様に真ん中、右列も2,5,8 3,6,9のように数字をいれ、全てのボタンを押されたときに
ビンゴがあるかの判定をしています。
コードは1万字までしか入力できないので
一部抜粋させていただきます。
見苦しいコードかもしれませんがよろしくお願いします。

java

1private void judge() { 2 if(droidSide1 == droidSide2 && droidSide1 == droidSide3 && droidSide1 != -1 && droidSide2 != -1 && droidSide3 != -1) { 3 Toast a = Toast.makeText(getApplicationContext(), "BINGO!", Toast.LENGTH_SHORT); 4 a.show(); 5 retryButton.setVisibility(View.VISIBLE); 6 if(droidSide1 == droidSide4 && droidSide1 == droidSide7 && droidSide1 != -1 && droidSide4 != -1 && droidSide7 != -1 7 || droidSide2 == droidSide5 && droidSide2 == droidSide8 && droidSide2 != -1 && droidSide5 != -1 && droidSide8 != -1 8 || droidSide3 == droidSide6 && droidSide3 == droidSide9 && droidSide3 != -1 && droidSide6 != -1 && droidSide9 != -1 9 || droidSide1 == droidSide5 && droidSide1 == droidSide9 && droidSide1 != -1 && droidSide5 != -1 && droidSide9 != -1 10 || droidSide3 == droidSide5 && droidSide3 == droidSide7 && droidSide3 != -1 && droidSide5 != -1 && droidSide7 != -1 11 || droidSide4 == droidSide5 && droidSide4 == droidSide6 && droidSide4 != -1 && droidSide5 != -1 && droidSide6 != -1 12 || droidSide7 == droidSide8 && droidSide7 == droidSide9 && droidSide7 != -1 && droidSide8 != -1 && droidSide9 != -1) { 13 Toast b = Toast.makeText(getApplicationContext(), "2BINGO!", Toast.LENGTH_SHORT); 14 b.show(); 15 retryButton.setVisibility(View.VISIBLE); 16 } 17 }else if(droidSide4 == droidSide5 && droidSide4 == droidSide6 && droidSide4 != -1 && droidSide5 != -1 && droidSide6 != -1) { 18 Toast a = Toast.makeText(getApplicationContext(), "BINGO!", Toast.LENGTH_SHORT); 19 a.show(); 20 retryButton.setVisibility(View.VISIBLE); 21 if(droidSide1 == droidSide4 && droidSide1 == droidSide7 && droidSide1 != -1 && droidSide4 != -1 && droidSide7 != -1 22 || droidSide2 == droidSide5 && droidSide2 == droidSide8 && droidSide2 != -1 && droidSide5 != -1 && droidSide8 != -1 23 || droidSide3 == droidSide6 && droidSide3 == droidSide9 && droidSide3 != -1 && droidSide6 != -1 && droidSide9 != -1 24 || droidSide1 == droidSide5 && droidSide1 == droidSide9 && droidSide1 != -1 && droidSide5 != -1 && droidSide9 != -1 25 || droidSide3 == droidSide5 && droidSide3 == droidSide7 && droidSide3 != -1 && droidSide5 != -1 && droidSide7 != -1 26 || droidSide1 == droidSide2 && droidSide1 == droidSide3 && droidSide1 != -1 && droidSide2 != -1 && droidSide3 != -1 27 || droidSide7 == droidSide8 && droidSide7 == droidSide9 && droidSide7 != -1 && droidSide8 != -1 && droidSide9 != -1) { 28 Toast b = Toast.makeText(getApplicationContext(), "2BINGO!", Toast.LENGTH_SHORT); 29 b.show(); 30 retryButton.setVisibility(View.VISIBLE); 31 } 32 } 33343536以下同様 37 38}else if (droidSide1 != -1 && droidSide2 != -1 && droidSide3 != -1 39 && droidSide4 != -1 && droidSide5 != -1 && droidSide6 != -1 40 && droidSide7 != -1 && droidSide8 != -1 && droidSide9 != -1) { //乱数で0から3までを出すから-1にならない=クリックされた 41 Toast c = Toast.makeText(getApplicationContext(),"NoBINGO!",Toast.LENGTH_SHORT); 42 c.show(); 43 retryButton.setVisibility(View.VISIBLE); 44 } 45 } 46}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/09/28 02:14

操作が少々分かりづらいのですが、左から見てボタン1~3があって、例えばボタン1を3回押すと、それぞれランダムに0から3の数字が1,4,7の番号のマスに上からあてられ、 1xx 0xx 3xx のようになる、と言うことでしょうか?('x'はまだ押されてない、の意) また、droidSide1~droidSide9のように変数を9個用意されているように見えますが、あくまでご提示のコードの延長で判定する方法が知りたいのでしょうか。こんな場合は、2次元配列にすれば処理は簡単になるように思います。
Ssanswer

2020/09/28 02:19

説明不足すいません。 ボタンは各1回押すと記載はしていないのですが[b1.setEnabled(false);]と書いており 押せないようにし、全てのボタンが押されるとリセットボタンを表示し、それを押すと 再度、ボタン1から3が押せる形となります
Ssanswer

2020/09/28 02:20

提示しているものだとif文の中にif文を書いて2ビンゴ判定をしているので3ビンゴ目をどうしようか悩んでいるところです。
guest

回答1

0

自己解決

2次元配列を2つ用意して縦と横をみて別で斜めをみて、ビンゴしているものをカウントし、最後に表示する

投稿2020/09/28 07:26

Ssanswer

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問