Android 小项目之---猜扑克牌游戏 (附源码)

来源:互联网 发布:那些事那些人 知乎 编辑:程序博客网 时间:2024/05/02 22:22
本实例参考《Google Android SDK开发范例大全》。

  针对上述书本,个人的一点点优化和修正的一处BUG,感兴趣的不妨可以参考一下,运行图:
 
  代码如下:
  1. package cn.terry;

  2. import android.app.Activity; 
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.View.OnClickListener;
  6. import android.widget.*;
  7. public class testGame extends Activity {
  8.     private ImageView myImageView;
  9.     private ImageView myImageView2;
  10.     private ImageView myImageView3;
  11.     private Button myButton;
  12.      private int a=0;
  13.     private int[] myImage={
  14.             R.drawable.p01,
  15.             R.drawable.p02,
  16.             R.drawable.p03, 
  17.     };
  18.     
  19.     private View.OnClickListener MyimageClistener;
  20.     /** Called when the activity is first created. */
  21.     @Override
  22.     public void onCreate(Bundle savedInstanceState) {
  23.         super.onCreate(savedInstanceState);
  24.         setContentView(R.layout.main);
  25.         
  26.         myImageView=(ImageView)findViewById(R.id.mImage01);
  27.         myImageView2=(ImageView)findViewById(R.id.mImage02);
  28.         myImageView3=(ImageView)findViewById(R.id.mImage03);
  29.          
  30.         myButton=(Button)findViewById(R.id.mButton);
  31.         Randon();
  32.         MyimageClistener=new View.OnClickListener() {
  33.             
  34.             @Override
  35.             public void onClick(View v) {
  36.                 
  37.                 // TODO Auto-generated method stub
  38.                   if(a==0)
  39.                   {
  40.                         switch (v.getId()) {
  41.                         case R.id.mImage01:
  42.                             SetImage(0,myImageView);
  43.                              
  44.                             break;
  45.                         case R.id.mImage02:
  46.                             SetImage(1,myImageView2);
  47.                              
  48.                             break;
  49.                         case R.id.mImage03:
  50.                             SetImage(2,myImageView3);
  51.                              
  52.                             break;
  53.                         default:
  54.                             break;
  55.                         }
  56.                   }
  57.             }
  58.         };
  59.         
  60.         myImageView.setOnClickListener(MyimageClistener);
  61.         myImageView2.setOnClickListener(MyimageClistener);
  62.         myImageView3.setOnClickListener(MyimageClistener);
  63.         
  64.         myButton.setOnClickListener(new OnClickListener() {
  65.             
  66.             @Override
  67.             public void onClick(View v) {
  68.                 // TODO Auto-generated method stub
  69.                 if(a==1)
  70.                 {
  71.                     myImageView.setImageResource(R.drawable.p04);
  72.                     myImageView2.setImageResource(R.drawable.p04);
  73.                     myImageView3.setImageResource(R.drawable.p04);
  74.                     myImageView.setAlpha(255);
  75.                     myImageView2.setAlpha(255);
  76.                     myImageView3.setAlpha(255);
  77.                     Randon();
  78.                     a--;
  79.                 }
  80.             }
  81.         });
  82.     }
  83.     
  84.     private void SetImage(int temp,ImageView ss)
  85.     {
  86.         myImageView.setImageResource(myImage[0]);
  87.         myImageView2.setImageResource(myImage[1]);
  88.         myImageView3.setImageResource(myImage[2]);
  89.         myImageView.setAlpha(100);
  90.         myImageView2.setAlpha(100);
  91.         myImageView3.setAlpha(100);
  92.         ss.setAlpha(255);
  93.         if(myImage[temp]==R.drawable.p01)
  94.         {
  95.             Toast.makeText(testGame.this, "恭喜你猜對了", Toast.LENGTH_SHORT)
  96.             .show();
  97.         }
  98.         else
  99.         {
  100.             Toast.makeText(testGame.this, "對不起你猜錯了", Toast.LENGTH_SHORT)
  101.             .show();
  102.         }
  103.         a++;
  104.     }
  105.     
  106.     
  107.     
  108.     private void Randon()
  109.     {
  110.         for(int i=0;i<myImage.length;i++)
  111.         {
  112.             int temp=myImage[i];
  113.             int s=(int)(Math.random()*2);
  114.             myImage[i]=myImage[s];
  115.             myImage[s]=temp;
  116.         }
  117.     }
  118.     
  119.     
  120.     
  121.     
  122.     
  123.     
  124. }
复制代码
  修改BUG一处,当用户选择完后,不可以再选,需要重新开始游戏。
  优化如下:
  1:提取公共事件。
  2:封装相同代码,如SetImage这个方法。
0 0