綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 程式問題:switch case和random使用疑問

[複製連結] 查看: 1536|回覆: 4|好評: 0
跳轉到指定樓層
樓主
nike021719 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2011-11-16 21:58
90碎鑽
目前是和朋友在試著合力做一個小程式(算是小遊戲),從現有的書籍或是從網路上參考修改的,所以其實說真的我有問題問他其實他也不太清楚...
目前卡在一個瓶頸是:假設有A~D共4張圖片由隨機出現一張(random)且落下,用a~b四個按鈕對應(switch case),目前問題是假設A圖片掉下來且用a按鈕對應成功了,但接著要是換成B~D圖掉下但程式還是一直判斷成A圖片,像是即使掉下的是B圖片,我按b鈕會不正確而a鈕卻正確的情況。

不知道發問再這裡合不合適?但是已經獨自測試幾天還是找不出問題索性在這裡發問
我和他都是新新手菜鳥,程式碼長長長,但是都已經做下去了就是不想中途放棄...
碎鑚奉上!

新增文字文件.txt

5.53 KB, 下載次數: 4, 下載積分: 碎鑽 -1 個

其中一個程式視窗的完整程式碼

「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏1 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
 樓主| nike021719 | 收聽TA | 只看該作者
發表於 2011-11-16 22:00
補上附件的部份區段程式碼:

        public static int[] imgs = {
                R.drawable.w,
                R.drawable.x,
                R.drawable.y,
                R.drawable.z}
;
public void onClick(View v)
{
        ImageButton ib6=(ImageButton)findViewById(R.id.imageButton1);
       
       
        Button bt1=(Button)findViewById(R.id.Button01);
        int j=6;
        Intent i=new Intent();
        switch(v.getId())
        {
        case R.id.ImageButton01:
        if(img==2)
                {
                    step+=1;
                    x=x+1;
                   bt1.setText(""+x);}
        else
        {
                step-=1;
                x=x-1;
                bt1.setText(""+x);
        }
        break;
        case R.id.ImageButton02:
        if(img==1)
        {參照第一個CASE}
        break;
        case R.id.ImageButton03:
        if(img==3)
        {參照第一個CASE}
        break;
        case R.id.ImageButton04:
         if(img==0)
        {參照第一個CASE}
               
         break;
        }
        if(v.getId()==R.id.Button01)
        {
                 i.setClass(this, newgame.class);
                 mMediaPlayer.stop();
                 this.finish();
                 startActivity(i);
                }
        else if(v.getId()==R.id.Button02)
        {
                if(starmove==1)
                {       
                        starmove=0;
                         ib6.setVisibility(View.INVISIBLE);
                }
                else
                {       
                starmove=1;//開始落下
                bt1.setText("0");
                }
                DisplayMetrics dm = new DisplayMetrics();
                this.getWindowManager().getDefaultDisplay().getMetrics(dm);
                 vWidth = dm.widthPixels;
                 vHeight = dm.heightPixels;
                xx=(vWidth/2)-40;
                       ib6.layout(0+xx, jj, 40+xx, 75+jj);
                 jj=jj+10;
                    ib6.setVisibility(View.VISIBLE);
                    ib6.layout(60+50, 5+jj, 100+50, 80+jj);
  }
               

}

private Runnable updateTimer = new Runnable()
{
   public void run()
      {
      
        handler.postDelayed(this, 30);
      
             ImageButton ib6=(ImageButton)findViewById(R.id.imageButton1);
            if(starmove==0)
            {ib6.setVisibility(View.INVISIBLE);}
             if(starmove==1)
        {       
           ib6.setVisibility(View.VISIBLE);
           jj=jj+step;
           if(jj>vHeight)
        {
               jj=0;
        ib6.setVisibility(View.INVISIBLE);        
               int size = imgs.length;
                    Random rand = new Random();
                    int img = rand.nextInt(size);
         ib6.setImageResource(imgs[img]);
                    size=vWidth-40;
                       img = rand.nextInt(size);
                       img=(vWidth/2)-40;
                       xx=img;
                              
        }
        
                ib6.layout(0+xx, jj, 40+xx, 75+jj);
               
               
                }
      
   }
};
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

板凳
ploglin | 收聽TA | 只看該作者
發表於 2011-11-17 09:00
仍然不是很清楚你要表達的問題。
動作是
A~D 共4張圖隨機落下,到底部之後更新某個Button的內容嗎?
還是
A~D 共4張圖隨機落下,按某個Button會更改某張圖?
或是其它?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

地板
 樓主| nike021719 | 收聽TA | 只看該作者
發表於 2011-11-17 17:01

算是A~D 共4張圖隨機落下,到底部之後重新設置某個Button的背景圖片
而a~d鈕是用來判斷說是否有按到相對應的圖片並做出動作
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

5
 樓主| nike021719 | 收聽TA | 只看該作者
發表於 2011-11-17 20:57
今天去問另外一位朋友就把問題解決了! (開心)
主要修改的在加上 >> 的那一行        
int size = imgs.length;
                    Random rand = new Random();
  >>           img = rand.nextInt(size);   
                  ib6.setImageResource(imgs[img]);
                     size=vWidth-40;
  >>            int img1 = rand.nextInt(size);  
  >>            img1=(vWidth/2)-40;
  >>            xx=img1;
據他的說法是新的img數值沒有將之前的img數值給覆蓋掉,以致於按鈕會一直判斷在同一個圖片的代碼上,真是感謝他,可以繼續去遇到其他瓶頸了XD...(希望之後可以一帆風順)
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則