LoginSignup
0
1

More than 5 years have passed since last update.

AndroidStudioでのビンゴゲーム作成について

Posted at
1 / 2

上の方は必要ないと感じたので、簡略化して投稿させていただきます。
ビンゴゲームを作成しているのですが、ListLINE[1,2,3,4,5]で取り出したものを設定するのはできました、抽選用も同じです。
そして、それらをLinkedHashMap(Integer,Integer>に設定したいのですが、うまくできてないようです。トーストやセットテキストでもnullのようです。
文字列の抽出(R.drawable.number01)の01をゼロパディングを外して、int型に変換してい入れたいのです。

抽選ボタンの方も同じくです、こちらは現在int型で取り出せますが、アドレス値の抽出になってしまいます。
かなり伝わりにくい文章になったかと思いますが、よろしくおねがいします。

    final Map<Integer, Integer> Playercard = new LinkedHashMap<>(); //Integer,booleanでも組み合わせは自由
    final Map<Integer, Integer> CpuCard = new LinkedHashMap<>();


    //ビンゴカード用配列
    final List<Integer>LINE1 = new ArrayList<>(Arrays.asList(R.drawable.number01,R.drawable.number02,R.drawable.number03,R.drawable.number04,R.drawable.number05,R.drawable.number06,R.drawable.number07,
            R.drawable.number08,R.drawable.number09,R.drawable.number10,R.drawable.number11,R.drawable.number12,R.drawable.number13,R.drawable.number14,R.drawable.number15));
    final List<Integer>LINE2 = new ArrayList<>(Arrays.asList(R.drawable.number16,R.drawable.number17,R.drawable.number18,R.drawable.number19,R.drawable.number20,R.drawable.number21,R.drawable.number22,
            R.drawable.number23,R.drawable.number24,R.drawable.number25,R.drawable.number26,R.drawable.number27,R.drawable.number28,R.drawable.number29,R.drawable.number30));
    final List<Integer>LINE3 = new ArrayList<>(Arrays.asList(R.drawable.number31,R.drawable.number32,R.drawable.number33,R.drawable.number34,R.drawable.number35,R.drawable.number36,R.drawable.number37,
            R.drawable.number38,R.drawable.number39,R.drawable.number40,R.drawable.number41,R.drawable.number42,R.drawable.number43,R.drawable.number44,R.drawable.number45));
    final List<Integer>LINE4 = new ArrayList<>(Arrays.asList(R.drawable.number46,R.drawable.number47,R.drawable.number48,R.drawable.number49,R.drawable.number50,R.drawable.number51,R.drawable.number52,
            R.drawable.number53,R.drawable.number54,R.drawable.number55,R.drawable.number56,R.drawable.number57,R.drawable.number58,R.drawable.number59,R.drawable.number60));
    final List<Integer>LINE5 = new ArrayList<>(Arrays.asList(R.drawable.number61,R.drawable.number62,R.drawable.number63,R.drawable.number64,R.drawable.number65,R.drawable.number66,R.drawable.number67,
            R.drawable.number68,R.drawable.number69,R.drawable.number70,R.drawable.number71,R.drawable.number72,R.drawable.number73,R.drawable.number74,R.drawable.number75));

    //抽選用ビンゴボール
    final List<Integer> BingoBall = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
            33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75));

    //ImagevView配列にImageView配列を決定
    final ImageView[] PB1 = new ImageView[]{PB00,PB10,PB20,PB30,PB40};
    final ImageView[] PB2 = new ImageView[]{PB01,PB11,PB21,PB31,PB41};
    final ImageView[] PB3 = new ImageView[]{PB02,PB12,PB22,PB32,PB42};
    final ImageView[] PB4 = new ImageView[]{PB03,PB13,PB23,PB33,PB43};
    final ImageView[] PB5 = new ImageView[]{PB04,PB14,PB24,PB34,PB44};
    final ImageView[] CB1 = new ImageView[]{CP00,CP10,CP20,CP30,CP40};
    final ImageView[] CB2 = new ImageView[]{CP01,CP11,CP21,CP31,CP41};
    final ImageView[] CB3 = new ImageView[]{CP02,CP12,CP22,CP32,CP42};
    final ImageView[] CB4 = new ImageView[]{CP03,CP13,CP23,CP33,CP43};
    final ImageView[] CB5 = new ImageView[]{CP04,CP14,CP24,CP34,CP44};


    //配列に配列 PBはImageViewです
    final ImageView[][] PlayerBingoScore = {PB1,PB2,PB3,PB4,PB5};
    final List<Integer>[] aaa = new List[]{LINE1, LINE2, LINE3, LINE4, LINE5};

    決定.setOnClickListener(new View.OnClickListener() {


        @Override
        public void onClick(View v) {
            soundPool.play(soundOne, 1.0f, 1.0f, 0, 1, 1);//効果音
            // Playerのカード生成
            shuffle(LINE1);
            shuffle(LINE2);
            shuffle(LINE3);
            shuffle(LINE4);
            shuffle(LINE5);//プレイヤー用シャッフル
            int i;
            for (i = 0; i < 5; i++) {//ここでビンゴカードの作成
                PB1[i].setImageResource((LINE1.get(i)));
                PB2[i].setImageResource((LINE2.get(i)));
                PB3[i].setImageResource((LINE3.get(i)));
                PB4[i].setImageResource((LINE4.get(i)));
                PB5[i].setImageResource((LINE5.get(i)));
            }
            PB3[2].setImageResource(R.drawable.free_star);//真ん中だけはFREE

            //CPUのカード生成
            shuffle(LINE1);
            shuffle(LINE2);
            shuffle(LINE3);
            shuffle(LINE4);
            shuffle(LINE5);//CPU用にシャッフルし直す
            for (i = 0; i < 5; i++) {//ここでビンゴカードの作成
                CB1[i].setImageResource((LINE1.get(i)));
                CB2[i].setImageResource((LINE2.get(i)));
                CB3[i].setImageResource((LINE3.get(i)));
                CB4[i].setImageResource((LINE4.get(i)));
                CB5[i].setImageResource((LINE5.get(i)));
            }
            CB3[2].setImageResource(R.drawable.free_star);//真ん中だけはFREE


            /*ここでシャッフルしたLINE[1,2,3,4,5]の中の/R.drawable.numberXXを取得して、XXを切り出す。
            それをPlayercardに(key,value)の値で配置しなおしたいけど詰まってる
            デバックでトーストしたり、textviewに出力してもノーアクション
            */
            int j;
            for (j = 0; j < Playercard.size(); j++) {//25マスの作成
                Playercard.put(LINE1.get(j), 1);
                String CardLine = (String.valueOf(LINE1.get(j)));//R.drawable.numberXXを取得
                String newCardLine1 = CardLine.substring(17, 19); //R.drawable.numberXXからXXを抽出
                Playercard.put(Integer.parseInt(newCardLine1), 1);//XXをint型に変換

                TextView textView = findViewById(R.id.ResultView);
                for (Map.Entry<Integer, Integer> entry : Playercard.entrySet()) {
                    textView.setText(entry.getKey() + " => " + entry.getValue());
                }
            }

            //ボタンの無効化、視覚的無効化、ユーザーへ通知
            決定.setEnabled(false);
            決定.setColorFilter(0xaa808080);
            if (v == 決定) {

                Toast toast = Toast.makeText(MainActivity.this, "カードを作成しました。", Toast.LENGTH_LONG);
                toast.show();
            }
        }
    });
            抽選.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    shuffle(BingoBall);//1~75をシャッフル
                    soundPool.play(soundOne, 1.0f, 1.0f, 0, 1, 1);
                    int i = 0;
                    int[] drawableId = {R.drawable.number01, R.drawable.number02, R.drawable.number03, R.drawable.number04, R.drawable.number05, R.drawable.number06, R.drawable.number07,
                                        R.drawable.number08, R.drawable.number09, R.drawable.number10, R.drawable.number11, R.drawable.number12, R.drawable.number13, R.drawable.number14,
                                        R.drawable.number15, R.drawable.number16, R.drawable.number17, R.drawable.number18, R.drawable.number19, R.drawable.number20, R.drawable.number21,
                                        R.drawable.number22, R.drawable.number23, R.drawable.number24, R.drawable.number25, R.drawable.number26, R.drawable.number27, R.drawable.number28,
                                        R.drawable.number29, R.drawable.number30, R.drawable.number31, R.drawable.number32, R.drawable.number33, R.drawable.number34, R.drawable.number35,
                                        R.drawable.number36, R.drawable.number37, R.drawable.number38, R.drawable.number39, R.drawable.number40, R.drawable.number41, R.drawable.number42,
                                        R.drawable.number43, R.drawable.number44, R.drawable.number45, R.drawable.number46, R.drawable.number47, R.drawable.number48, R.drawable.number49,
                                        R.drawable.number50, R.drawable.number51, R.drawable.number52, R.drawable.number53, R.drawable.number54, R.drawable.number55, R.drawable.number56,
                                        R.drawable.number57, R.drawable.number58, R.drawable.number59, R.drawable.number60, R.drawable.number61, R.drawable.number62, R.drawable.number63,
                                        R.drawable.number64, R.drawable.number65, R.drawable.number66, R.drawable.number67, R.drawable.number68, R.drawable.number69, R.drawable.number70,
                                        R.drawable.number71, R.drawable.number72, R.drawable.number73, R.drawable.number74, R.drawable.number75
                    };

                    if (i < BingoBall.size()) {//75個
                        for (i = 0; i < BingoBall.get(i); i++) {
                            結果.setImageResource(drawableId[i]);//画像の表示
                            StringBuilder Test = new StringBuilder();//文字列結合メソッド
                            Test.append(drawableId[i]);//文字列
                            TesttView.setText(Test);//文字列じゃなく、アドレス値が表示されてしまうので、文字列として取り出す必要がある
                        }
                    }
                }
            });
    }

}

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1