[質問内容]
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 } 33・ 34・ 35・ 36以下同様 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}
操作が少々分かりづらいのですが、左から見てボタン1~3があって、例えばボタン1を3回押すと、それぞれランダムに0から3の数字が1,4,7の番号のマスに上からあてられ、
1xx
0xx
3xx
のようになる、と言うことでしょうか?('x'はまだ押されてない、の意) また、droidSide1~droidSide9のように変数を9個用意されているように見えますが、あくまでご提示のコードの延長で判定する方法が知りたいのでしょうか。こんな場合は、2次元配列にすれば処理は簡単になるように思います。
説明不足すいません。
ボタンは各1回押すと記載はしていないのですが[b1.setEnabled(false);]と書いており
押せないようにし、全てのボタンが押されるとリセットボタンを表示し、それを押すと
再度、ボタン1から3が押せる形となります
提示しているものだとif文の中にif文を書いて2ビンゴ判定をしているので3ビンゴ目をどうしようか悩んでいるところです。
回答1件
あなたの回答
tips
プレビュー