基本信息
源码名称:遥远捉迷藏(FarZMC)
源码大小:0.12M
文件格式:.rar
开发语言:Java
更新时间:2024-11-21
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

采用android平台编写的一个训练眼力的小游戏


package com.zmc.far; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.graphics.Color; import android.util.Log; import android.view.Display; import android.view.Gravity; import android.view.Menu; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.Button; import android.widget.Chronometer; import android.widget.FrameLayout; import android.widget.GridView; import android.widget.SimpleAdapter; import android.widget.TableRow; import android.widget.TextView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; public class ZMCMainActivity extends Activity implements OnClickListener { private TableRow tbL1; private FrameLayout fL; private Button bPrev,bNext,bStart,bFQ; private TextView tvLv,tvND,tvScore,tvTime; private GridView gdView; private Chronometer cm; private SimpleAdapter listItemAdapter,gridAdapter; private ZMCAdapter mAdapter; private SQLiteDatabaseDao dao; private SQLiteDatabase mdb; private int iDiff=0; private String sName=""; private List<ZMCItem> mData; private ZMCItem mItem; private static int iLevel=0; private static long lTime1=0; private static long lTime2=0; private static long lScore=0; private static long lTimeJS1=0; private static long lTimeJS2=0; private String sTime=""; private static boolean bStop=false; private Handler mMainHandler, mChildHandler,mhandler; private String[] mRC=new String[]{"2,2","3,2","4,2","3,3","4,3","5,3","4,4","6,3","5,4","6,4","5,5", "7,4","6,5","7,5","6,6","8,5","7,6","8,6","7,7","9,6","8,7","9,7","8,8","10,7","9,8", "10,8","9,9","12,7","11,8","10,9","13,7","12,8","14,7","11,9","10,10","13,8","12,9","11,10", "14,8","13,9","12,10","11,11","14,9","13,10","12,11","15,9","13,11","14,10","13,11", "12,12","15,10","14,11","13,12","16,10","15,11","14,12","13,13","16,11","15,12","14,13","16,12", "15,13","14,14","16,13","15,14","16,14","17,14","18,14","19,14","20,14"};
    @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //��title  requestWindowFeature(Window.FEATURE_NO_TITLE); //ȫ��  //getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,  //WindowManager.LayoutParams. FLAG_FULLSCREEN);  setContentView(R.layout.activity_zmcmain); int iR=5,iC=6;
       TextView[][] tvK=new TextView[iR][iC]; //tbL1=(TableRow)findViewById(R.id.tableRow1);  //fL=(FrameLayout)findViewById(R.id.FrameLayout1);  bPrev=(Button)findViewById(R.id.bPrev_ZMC);
       bNext=(Button)findViewById(R.id.bNext_ZMC);
       bStart=(Button)findViewById(R.id.bStart_ZMC);
       bFQ=(Button)findViewById(R.id.bFQ_ZMC);
       tvLv=(TextView)findViewById(R.id.tvLevel_ZMC);
       tvND=(TextView)findViewById(R.id.tvND_ZMC);
       tvScore=(TextView)findViewById(R.id.tvScore_ZMC);
       tvTime=(TextView)findViewById(R.id.tvTime_ZMC);
       gdView=(GridView)findViewById(R.id.gridView_ZMC);
       cm=(Chronometer)findViewById(R.id.chronometer1);
       bPrev.setOnClickListener(this);
       bNext.setOnClickListener(this);
       bStart.setOnClickListener(this);
       bFQ.setOnClickListener(this);
       bPrev.setEnabled(false);
       bNext.setEnabled(false);
       bFQ.setEnabled(false);
       gdView.setOnItemClickListener(new ItemClick());//����¼�   gdView.setNumColumns(2);
       mData=new ArrayList<ZMCItem>();
       mAdapter = new ZMCAdapter(this,mData);
        gdView.setAdapter(mAdapter);
        mAdapter.notifyDataSetChanged(); //��ȡ��Ϣ  Intent intent=getIntent();  
        Bundle bundle=intent.getExtras(); if(bundle!=null){ int iND=bundle.getInt("DIFFICUTY");//�Ѷ //if(iND!=0){  // iDiff=Integer.parseInt(sND);  //}else{   //}  iDiff=iND;//0;  if(iDiff==0){
                  tvND.setText("����");
               }else if(iDiff==1){
                  tvND.setText("һ��");
               }else if(iDiff==2){
                  tvND.setText("����");
               }else if(iDiff==3){
                  tvND.setText("����");
               }
            String sNM=bundle.getString("NAME");//����  if(sNM!=null){
               sName=sNM;
            }else{
               sName="FarStar";   
            }
        } //new GameThread().start();    /*//new MsgThread().start();//������Ϣ�Ľ���  mMainHandler = new Handler() {  String sMessage="";  @Override  public void handleMessage(Message msg) {  try{  sMessage=(String) msg.obj;  //if (msg.what == 1) {  tvTime.setText(sMessage);  //}  }catch (Exception e) {  // TODO Auto-generated catch block  e.printStackTrace();   }  }  };*/    } // ����һ���߳��ں�̨����  class GameThread extends Thread { public void run() { try {
              iLevel=0;
              GetGamePara(iLevel);
              bFQ.setEnabled(true);
               } catch (Exception e) { // TODO Auto-generated catch block  e.printStackTrace();
                     
           }
       }
    } // ����һ���̼߳ʱ:Ӱ���ٶȣ��е��  class TimeThread extends Thread { public void run() { try { while(true){ if(bStop==false){
                         lTimeJS2=System.currentTimeMillis(); long lTC=lTimeJS2-lTimeJS1;
                         lTC=(long)(lTC/1000); long mm,ss;
                         ss=lTC % 60;
                         mm=lTC/60;
                         String ms=String.valueOf(ss);
                         String mn=String.valueOf(mm); if(ms.length()>1){
                         }else{
                            ms="0" ms;
                         } if(mn.length()>1){
                         }else{
                            mn="0" mn;
                         } //String sCon=mn  ":"  ms;  //mMainHandler.obtainMessage(1, sCon).sendToTarget();  //�߳��ﲻ���ÿؼ�������  //tvTime.setText(String.format("00", String.valueOf(mm))  ":"  String.format("00", String.valueOf(ss)));  }else{ break;
                     }
                 }
                  } catch (Exception e) { // TODO Auto-generated catch block  e.printStackTrace();
                        
              }
          }
       } //public int[] GetGamePara(int iLevel){  public void GetGamePara(int iLevel){ int[] iGP=new int[3]; int iR=0,iC=0,iV=0;
        String[] sRC=mRC[iLevel].split(",");
        iR=Integer.parseInt(sRC[0]);//(int)(2 iLevel *0.16);//2,2,2,2,3,3  iC=Integer.parseInt(sRC[1]);//(int)(2 (iLevel *0.2));//*(iC*iLevel*0.5));//2,3,  //WindowManager wm=(WindowManager)this.getBaseContext().getSystemService(Context.WINDOW_SERVICE);  //Display display   =wm.getDefaultDisplay();  //int h1=display.getHeight();  //int w1=display.getWidth();  //if(iC>10){  //  iC=10;  //}  //iV=5 (int)(255/(iR*iC));  int idx=0; if(iDiff==0){//����  idx=155;
        }else if(iDiff==1){//��ͨ  idx=120;
        }else if(iDiff==2){//����  idx=80;
        }else if(iDiff==3){//����  idx=50;
        }     
        iV=5 (int)(idx/(iR*0.6 iC*0.4));//*iC));  iGP[0]=iR;
        iGP[1]=iC;
        iGP[2]=iV;
        SetGame(iGP); //return iGP;  } public void SetGame(int RC[] ){ //if(iSubValue<5){  // iSubValue=5;  //}  int iR=RC[0],iC=RC[1],iSubValue=RC[2]; int ir=(int)(Math.random()*iR); int ic=(int)(Math.random()*iC); int icR=100 (int)(Math.random()*155); int icG=100 (int)(Math.random()*155); int icB=100 (int)(Math.random()*155); int icRbt=icR-iSubValue; int icGbt=icG-iSubValue; int icBbt=icB-iSubValue;
       
       String scR=Integer.toHexString(icR);
       String scG=Integer.toHexString(icG);
       String scB=Integer.toHexString(icB);
       String scRbt=Integer.toHexString(icRbt);
       String scGbt=Integer.toHexString(icGbt);
       String scBbt=Integer.toHexString(icBbt); int c1=Color.parseColor("#ff" scR scG scB); int c2=Color.parseColor("#ff" scRbt scGbt scBbt);
        mData.clear();
        mData=new ArrayList<ZMCItem>(); for(int i=0;i<iR;i  ){ for(int j=0;j<iC;j  ){ if((i==ir) && (j==ic)){
                 mItem=new ZMCItem(iR,iC,c2,"",true);
              }else{
                 mItem=new ZMCItem(iR,iC,c1,"",false);
              }
              mData.add(mItem);
          }
       }
       gdView.setNumColumns(iC);
       mAdapter = new ZMCAdapter(this,mData);
       gdView.setAdapter(mAdapter);
       mAdapter.notifyDataSetChanged(); //bFQ.setEnabled(true);   //tvLv.setText(String.format("00", String.valueOf(iLevel 1))   "/"   String.format("00", String.valueOf(mRC.length)));  tvLv.setText(String.valueOf(iLevel 1) "/"  mRC.length);
    } private long getScore(int nd,int dj, long time1,long time2){ long score=0; long lT=time2-time1;
       score=(long)(1.00*(nd 1) * (dj 1) * Math.abs(30/(lT/1000.00))); return score;
    }
    
    @Override public void onClick(View v) { switch (v.getId()) { case R.id.bStart_ZMC:
          lTime1=System.currentTimeMillis();
          lTimeJS1=lTime1;
          bStop=false; //new TimeThread().start();  sTime="";
          cm.start();
          iLevel=0;
             GetGamePara(0);
             bStart.setEnabled(false);
             bPrev.setEnabled(true);
             bNext.setEnabled(true);
             bFQ.setEnabled(true);
             tvScore.setText("0000"); //tvLv.setText(String.valueOf(iLevel 1)   "/"  mRC.length);  break; case R.id.bFQ_ZMC:
               mData.clear();
                mAdapter.notifyDataSetChanged();
                bStart.setEnabled(true);
                bPrev.setEnabled(false);
                bNext.setEnabled(false);
                bFQ.setEnabled(false);
                tvLv.setText("00/00");
                tvScore.setText("0000");
                lTime1=0;
                lTime2=0;
                lScore=0;
                bStop=true;
                sTime=cm.getText().toString();
                cm.stop(); break; case R.id.bPrev_ZMC: if(iLevel>0){
             iLevel--;
             GetGamePara(iLevel); //tvLv.setText(String.valueOf(iLevel 1)   "/"  mRC.length);  } break; case R.id.bNext_ZMC: if(iLevel<mRC.length-1){
              iLevel  ;
               GetGamePara(iLevel); //tvLv.setText(String.valueOf(iLevel 1)   "/"  mRC.length);  } break;
        }
    } //* item�ϵ�OnClick�¼�  public final class ItemClick implements OnItemClickListener { public void onItemClick(AdapterView<?> parent, View view, final int position, long id) { //����¼�  //setTitle("�����" position "����Ŀ"); //��εõ����е�����  if(bStart.isEnabled()){
                  }else{
                     lTime2=System.currentTimeMillis(); boolean bErr=false; int iColor=mData.get(position).getColor(); for (int i=0;i<mData.size();i  ){ if(i==position){
                     }else{ int ic=mData.get(i).getColor(); if(ic==iColor){
                          bErr=true; break;
                       }
                     }
                  } if(bErr==false){ //��ȷ��������֣ lScore=lScore getScore(iDiff,iLevel,lTime1,lTime2);
                    tvScore.setText(String.valueOf(lScore)); if(iLevel<mRC.length-1){ new AlertDialog.Builder(ZMCMainActivity.this) /* �������ڵ�����ͷ���� */  .setTitle("��ϲ") /* ���õ������ڵͼʽ */  .setIcon(android.R.drawable.ic_dialog_info) /* ���õ������ڵ���Ϣ */  .setMessage("����ȷ!\n[��һ��]��������\n[�˳�]��������!")  
                        .setPositiveButton("��һ��", new DialogInterface.OnClickListener() { public void onClick(  
                                            DialogInterface dialoginterface, int i) {  
                                       lTime1=System.currentTimeMillis(); 
                                       iLevel  ;
                                          GetGamePara(iLevel); //tvLv.setText(String.valueOf(iLevel 1)   "/"  mRC.length);  }  
                                })  
                        .setNegativeButton("�˳�", new DialogInterface.OnClickListener() { public void onClick(  
                                            DialogInterface dialoginterface, int i) { // ʲôҲû��  mData.clear();
                                       mAdapter.notifyDataSetChanged();
                                       bStart.setEnabled(true);
                                       bPrev.setEnabled(false);
                                       bNext.setEnabled(false);
                                       bFQ.setEnabled(false);
                                       tvLv.setText("00/00"); //new TimeThread().stop();  bStop=true; //tvScore.setText("0000");  lTime1=0;
                                       lTime2=0;
                                       lScore=0;
                                       iLevel--;//�ص�һ��  sTime=cm.getText().toString();
                                       cm.stop();
                                       setPHB();//д�����ݿ }  
                                }).show();  
                   }else{
                      setPHB();//д�����ݿ cm.stop(); new AlertDialog.Builder(ZMCMainActivity.this) /* �������ڵ�����ͷ���� */  .setTitle("��ϲͨ��") /* ���õ������ڵͼʽ */  .setIcon(android.R.drawable.ic_dialog_info) /* ���õ������ڵ���Ϣ */  .setMessage("��ϲ���Ѿ�ͨ��!\n[����]���´���\n[�˳�]��������!")  
                           .setPositiveButton("����", new DialogInterface.OnClickListener() { public void onClick(  
                                               DialogInterface dialoginterface, int i) {  
                                          mData.clear();
                                          mAdapter.notifyDataSetChanged();
                                          bStart.setEnabled(true);
                                          bPrev.setEnabled(false);
                                          bNext.setEnabled(false);
                                          bFQ.setEnabled(false);
                                          tvLv.setText("00/00");
                                          tvScore.setText("0000"); //new TimeThread().stop();  bStop=true;
                                          lTime1=0;
                                          lTime2=0;
                                          iLevel=0;
                                          lScore=0;
                                          sTime=cm.getText().toString(); //tvLv.setText(String.valueOf(iLevel 1)   "/"  mRC.length);  }  
                                   })  
                           .setNegativeButton("�˳�", new DialogInterface.OnClickListener() { public void onClick(  
                                               DialogInterface dialoginterface, int i) {  
                                              finish();//�˳�  }  
                                   }).show(); 
                   }
                 }else{ new AlertDialog.Builder(ZMCMainActivity.this) /* �������ڵ�����ͷ���� */  .setTitle("��ϧ") /* ���õ������ڵͼʽ */  .setIcon(android.R.drawable.ic_dialog_info) /* ���õ������ڵ���Ϣ */  .setMessage("��Ǹ,����ʧ��!\n[����]���´���\n[�˳�]��������!")  
                        .setPositiveButton("����", new DialogInterface.OnClickListener() { public void onClick(  
                                            DialogInterface dialoginterface, int i) {  
                                       setPHB();//д�����ݿ //new TimeThread().stop();  bStop=true;
                                       lTime1=0;
                                       lTime2=0;
                                       iLevel=0;
                                       lScore=0;
                                       tvScore.setText("0000");
                                    GetGamePara(iLevel);
                                    sTime=cm.getText().toString();
                                       cm.stop(); //tvLv.setText(String.valueOf(iLevel 1)   "/"  mRC.length);  }  
                                })  
                        .setNegativeButton("�˳�", new DialogInterface.OnClickListener() { public void onClick(  
                                            DialogInterface dialoginterface, int i) { // ʲôҲû��  //mData.clear();  for(int j=0;j<mData.size();j  ){ boolean bt=mData.get(j).getBT(); if(bt==true){
                                             mData.get(j).setText("��");
                                             mAdapter.notifyDataSetChanged();
                                             bStart.setEnabled(true);
                                               bPrev.setEnabled(false);
                                               bNext.setEnabled(false);
                                               bFQ.setEnabled(false); //new TimeThread().stop();  bStop=true;
                                               iLevel--;//����һ��  sTime=cm.getText().toString();
                                               cm.stop();
                                               setPHB();//д�����ݿ //��ô��ʾ�����ĸ���  //tvLv.setText("");  lTime1=0;
                                              lTime2=0;
                                              lScore=0; break;
                                          }
                                       }
                                    }  
                                }).show(); 
                 }
              }
              }
          } /**  * ��ȡ��ǰʱ��  */  String getTime(){
           String s1="";
           SimpleDateFormat format;
           Date date=new Date();
           format=new SimpleDateFormat("yyyy-MM-dd");// HH:mm:ss");  date=Calendar.getInstance().getTime();
           s1=format.format(date); return s1;
    } public void setPHB(){
       String sSql,sDate,sND;
       sDate=getTime();
       sND=tvND.getText().toString(); //ʵ����  dao=new SQLiteDatabaseDao(); //�����ݿ��  mdb=dao.openCreateDatabase();
       sSql="insert into PHB (rq,xm,nd,dj,sj,score) values ('"  sDate "','"  sName "','"  sND "','"  String.valueOf(iLevel 1) "','"  sTime "','"  String.valueOf(lScore) "')";
       mdb.execSQL(sSql);
    }
    @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present.  getMenuInflater().inflate(R.menu.zmcmain, menu); return true;
    }
}