編輯:關於Android編程
package com.example.azhipai; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.ContentValues; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.view.Menu; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class Mainactivity1 extends Activity { private int[] paire = new int[13]; private int imgpath [] =new int[]{R.drawable.img14,R.drawable.img15,R.drawable.img3,R.drawable.img4, R.drawable.img5,R.drawable.img6,R.drawable.img7,R.drawable.img8,R.drawable.img9,R.drawable.img10,R.drawable.img11 ,R.drawable.img12,R.drawable.img13}; private int [] cmsjs5=new int [5];//5局時的隨機數 private int [] cmsjs7=new int [7];//7局時的隨機數 private String[]cmsjs5index=new String[5]; private String[]cmsjs7index=new String[7];//lvcmsjs加載的數據 private String xz;//獲取的edtcm的文本 private ImageView ivcpu,ivcm; private TextView tvshow; private EditText edtcm,edtusename; private Button btnesc,btnok,btnlogin,btnget; private int szcpu,szcm,cmexam,cpuexam,gamecishu,aa,cpusj;//電腦比牌用的數字,用戶比牌用的數字。aa作用於類型轉換=xz private MyDatabaseHelper mydbhelper; private String usename; private ListView lvZhipai,lvcmsjs; private Listzhipai; protected boolean gamesz=false;//關於游戲的5局制和七局制 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.usenamesave); btnlogin=(Button)findViewById(R.id.btnlogin); edtusename=(EditText)findViewById(R.id.edtusename); btnlogin.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { setusename(); }}); } //設置登錄名的方法 protected void setusename() { mydbhelper=new MyDatabaseHelper(Mainactivity1.this, "examsto.db", null, 2); mydbhelper.getWritableDatabase(); usename=edtusename.getText().toString(); if(!usename.equals("")){//輸入用戶名不能空 SQLiteDatabase db=mydbhelper.getWritableDatabase();//創建數據庫 ContentValues cv=new ContentValues(); cv.clear(); cv.put("name",usename);//插入name列中 cv.put("examcm", 0);//插入examcm列中 long l1=db.insert("exam", null, cv); if(l1!=-1){//判斷插入是否成功 Toast.makeText(Mainactivity1.this, "插入數據成功", Toast.LENGTH_SHORT).show(); //出歡迎游戲的對話框 AlertDialog aldg=new AlertDialog.Builder(Mainactivity1.this).create(); aldg.setIcon(R.drawable.ic_launcher); aldg.setTitle("提示"); aldg.setMessage("你好"+usename+"歡迎進入紙牌游戲!"); aldg.setButton(DialogInterface.BUTTON_POSITIVE, "進入", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { setContentView(R.layout.activity_main);//轉換頁面 ivcpu=(ImageView) findViewById(R.id.ivcpu); ivcm=(ImageView) findViewById(R.id.ivcm); tvshow=(TextView)findViewById(R.id.tvshow); edtcm=(EditText) findViewById(R.id.edtcm); lvcmsjs=(ListView) findViewById(R.id.lvcmsz); btnget=(Button)findViewById(R.id.btnget); star();//游戲初始化 } }); aldg.show(); } }else{ Toast.makeText(Mainactivity1.this, "用戶名不能為空!", Toast.LENGTH_SHORT).show(); return; } } //游戲初始化 private void star() { cmexam=0;cpuexam=0;gamecishu=0;gamesz=false; btnget.setVisibility(View.VISIBLE);//獲取按鈕為可見 final String[] s = new String[] {"開始游戲", "游戲設置", "排行榜"}; tvshow.setText(R.string.show1);//設置tvshow的文本為游戲規玩法 Builder bdr=new AlertDialog.Builder(Mainactivity1.this); bdr.setIcon(R.drawable.ic_launcher); bdr.setTitle("紙牌游戲"); bdr.setItems(s, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if(s[which].equals("游戲設置")){ //s【which】即為選擇項的問本 gameset();//顯示游戲設置對話框 } else if(s[which].equals("排行榜")){Button1(); } else if(s[which].equals("開始游戲")){ getcmpai();//選擇用戶得到牌的方式 regame();//為再次游戲 } Toast.makeText(Mainactivity1.this, s[which], Toast.LENGTH_SHORT).show(); } }); bdr.show(); getcmpai(); ok();//確定按鈕本項目的核心 } // 游戲設置 protected void gameset() { final String gameset[]=new String[]{"五局制","七局制"}; Builder bdr=new AlertDialog.Builder(Mainactivity1.this); bdr.setIcon(R.drawable.ic_launcher); bdr.setItems(gameset, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if(gameset[which].equals("五局制")){ gamesz=false; regame(); } else if(gameset[which].equals("七局制")){ gamesz=true; regame(); } } }); bdr.show(); } private void getcmpai() { btnget=(Button)findViewById(R.id.btnget); btnget.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(gamesz==true){ paicmsjs7(); } else if(gamesz==false){ paicmsjs5(); } btnget.setVisibility(View.INVISIBLE); } }); } protected void paicmsjs7() { // TODO Auto-generated method stub lvcmsjs=(ListView) findViewById(R.id.lvcmsz); ArrayAdapter adapter = new ArrayAdapter (this,android.R.layout.simple_list_item_1,cmsjs7index);//使用系統已經實現好的xml文件simple_list_item_1 lvcmsjs.setAdapter(adapter); AlertDialog aldg=new AlertDialog.Builder(Mainactivity1.this).create(); aldg.setIcon(R.drawable.ic_launcher); aldg.setTitle("提示"); aldg.setMessage("恭喜你獲得了7個數字!"); aldg.setButton(DialogInterface.BUTTON_NEGATIVE,"確定",new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { }}); aldg.show(); } protected void paicmsjs5() { // TODO Auto-generated method stub lvcmsjs=(ListView) findViewById(R.id.lvcmsz); ArrayAdapter adapter = new ArrayAdapter (this,android.R.layout.simple_list_item_1,cmsjs5index);//使用系統已經實現好的xml文件simple_list_item_1 lvcmsjs.setAdapter(adapter); AlertDialog aldg=new AlertDialog.Builder(Mainactivity1.this).create(); aldg.setIcon(R.drawable.ic_launcher); aldg.setTitle("提示"); aldg.setMessage("恭喜你獲得了5個數字!"); aldg.setButton(DialogInterface.BUTTON_NEGATIVE,"確定",new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { }}); aldg.show(); } // 重新開始游戲 protected void regame() { // TODO Auto-generated method stub //五局制隨機數 creatRandom5();//產生不同的隨機數 creatRandom7(); } private int[] creatRandom5() { int j = 0; int number = 13;// 控制隨機數產生的范圍 List arr = new ArrayList(); for (int i = 0; i < number; i++) arr.add(i + 1);// 為ArrayList添加元素 for (j = 0; j < cmsjs5.length; j++) { int index = (int) (Math.random() * number);// 產生一個隨機數作為索引 cmsjs5[j] = (Integer) arr.get(index); arr.remove(index);// 移除已經取過的元素 number--;// 將隨機數范圍縮小1 cmsjs5index[j]="數字: "+cmsjs5[j]; } return cmsjs5; } private int[] creatRandom7() { int j = 0; int number = 13;// 控制隨機數產生的范圍 List arr = new ArrayList(); for (int i = 0; i < number; i++) arr.add(i + 1);// 為ArrayList添加元素 for (j = 0; j < cmsjs7.length; j++) { int index = (int) (Math.random() * number);// 產生一個隨機數作為索引 cmsjs7[j] = (Integer) arr.get(index); arr.remove(index);// 移除已經取過的元素 number--;// 將隨機數范圍縮小1 cmsjs7index[j]="數字: "+cmsjs7[j]; } return cmsjs7; } // 游戲規則 public void game(){ gamecishu+=1; if(gamecishu<7 &&gamesz==true){ if(szcm>szcpu){tvshow.setText("恭喜你獲勝了!分數+"+(szcm-szcpu));cmexam+=szcm-szcpu;cpuexam-=szcm-szcpu;} else if(szcm szcpu){tvshow.setText("恭喜你獲勝了!分數+"+(szcm-szcpu));cmexam+=szcm-szcpu;cpuexam-=szcm-szcpu;} else if(szcm szcpu){tvshow.setText("恭喜你獲勝了!分數+"+(szcm-szcpu));cmexam+=szcm-szcpu;cpuexam-=szcm-szcpu;} else if(szcm szcpu){tvshow.setText("恭喜你獲勝了!分數+"+(szcm-szcpu));cmexam+=szcm-szcpu;cpuexam-=szcm-szcpu;} else if(szcm adapter1 = new ArrayAdapter (this,android.R.layout.simple_list_item_1,cmsjs7index);//使用系統已經實現好的xml文件simple_list_item_1 lvcmsjs.setAdapter(adapter1); Toast.makeText(Mainactivity1.this, "成功使用此牌", Toast.LENGTH_SHORT).show(); paicm(); return; }else { //Toast.makeText(Mainactivity1.this, "對不起你沒有此牌", Toast.LENGTH_SHORT).show(); tvshow.setText(""); } } } protected void reshuz5() {//本來是重置listview但是並未實現 for (int i=0;i adapter1 = new ArrayAdapter (this,android.R.layout.simple_list_item_1,cmsjs5index);//使用系統已經實現好的xml文件simple_list_item_1 lvcmsjs.setAdapter(adapter1); Toast.makeText(Mainactivity1.this, "成功使用此牌", Toast.LENGTH_SHORT).show(); paicm(); }else { //Toast.makeText(Mainactivity1.this, "對不起你沒有此牌", Toast.LENGTH_SHORT).show(); tvshow.setText(""); } // int i; // for (i=0;i adapter = new ArrayAdapter (this,android.R.layout.simple_list_item_1,cmsjs5index);//使用系統已經實現好的xml文件simple_list_item_1 // lvcmsjs.setAdapter(adapter); // }else{ //用戶選牌的方式和限制 // } } } //用戶選牌的方式和限制 private void paicm(){ String xz=edtcm.getText().toString(); if(xz.equals("")){ AlertDialog aldg=new AlertDialog.Builder(Mainactivity1.this).create(); aldg.setIcon(R.drawable.ic_launcher); aldg.setTitle("提示"); aldg.setMessage("請您輸入相應的數字"); aldg.setButton(DialogInterface.BUTTON_POSITIVE, "確定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { edtcm.setText("");//輸入框不能為空 edtcm.findFocus();//輸入框獲得焦點,沒什麼卵用無視! } }); aldg.show(); } else{ aa=Integer.parseInt(xz);//類型轉換把輸入框的內容就是xz轉換成int類型 szcm = Integer.parseInt(xz);//szcm就是比牌時用的數字 if(aa<14&&aa>0&&gamesz==false){//輸入的內容限制條件,gamesz==false游戲規則選擇false為5局即默認 //判斷輸入內容是否在數組中此處不完善 switch (aa){ //以下皆為得到用戶的牌 case 1:ivcm.setImageResource(imgpath[0]);break; case 2:ivcm.setImageResource(imgpath[1]);break; case 3:ivcm.setImageResource(imgpath[2]);break; case 4:ivcm.setImageResource(imgpath[3]);break; case 5:ivcm.setImageResource(imgpath[4]);break; case 6:ivcm.setImageResource(imgpath[5]);break; case 7:ivcm.setImageResource(imgpath[6]);break; case 8:ivcm.setImageResource(imgpath[7]);break; case 9:ivcm.setImageResource(imgpath[8]);break; case 10:ivcm.setImageResource(imgpath[9]);break; case 11:ivcm.setImageResource(imgpath[10]);break; case 12:ivcm.setImageResource(imgpath[11]);break; case 13:ivcm.setImageResource(imgpath[12]);break; } // 獲取cpu的牌 pai(); // 開始游戲 game(); } else if(aa<14&&aa>0&&gamesz==true){//輸入的內容限制條件,gamesz==Ture游戲規則選擇為七局制時的選擇 switch (aa){ //以下皆為得到用戶的牌 case 1:ivcm.setImageResource(imgpath[0]);break; case 2:ivcm.setImageResource(imgpath[1]);break; case 3:ivcm.setImageResource(imgpath[2]);break; case 4:ivcm.setImageResource(imgpath[3]);break; case 5:ivcm.setImageResource(imgpath[4]);break; case 6:ivcm.setImageResource(imgpath[5]);break; case 7:ivcm.setImageResource(imgpath[6]);break; case 8:ivcm.setImageResource(imgpath[7]);break; case 9:ivcm.setImageResource(imgpath[8]);break; case 10:ivcm.setImageResource(imgpath[9]);break; case 11:ivcm.setImageResource(imgpath[10]);break; case 12:ivcm.setImageResource(imgpath[11]);break; case 13:ivcm.setImageResource(imgpath[12]);break; } // 獲取cpu的牌 pai(); // 開始游戲 game(); } else{ Toast.makeText(Mainactivity1.this, "請輸入1~13的數字", Toast.LENGTH_LONG).show(); edtcm.setText(""); edtcm.findFocus(); return; } } } // cpu得到牌的方法每次不重復 private void pai(){ szcpu=(int)(Math.random()*12)+1; if(szcpu!=cpusj){ cpusj=szcpu; }else{ cpusj=(int)(Math.random()*12)+1; szcpu=cpusj; } paire[cpusj-1]=cpusj; ivcpu.setImageResource(imgpath[szcpu-1]); } protected void Button1() { // 頁面轉換調出排行榜頁面 setContentView(R.layout.star_main); exam();//加載並查詢數據的方法 btnesc = (Button) findViewById(R.id.buttonesc); btnesc.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { setContentView(R.layout.activity_main); //調出游戲界面並實現方法 ivcpu=(ImageView) findViewById(R.id.ivcpu); ivcm=(ImageView) findViewById(R.id.ivcm); tvshow=(TextView)findViewById(R.id.tvshow); edtcm=(EditText) findViewById(R.id.edtcm); btnok=(Button)findViewById(R.id.buttonok); lvcmsjs=(ListView) findViewById(R.id.lvcmsz); star();//游戲初始化 } }); } private void exam() { Button btnDataToList=(Button)findViewById(R.id.buttoning); lvZhipai=(ListView)findViewById(R.id.lvZhipai); btnDataToList.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { SQLiteDatabase db=mydbhelper.getWritableDatabase(); //Cursor c=db.query("book", null, "pages>?", null, null, null, "pages desc"); Cursor c=db.query("exam", null, null, null,null,null ,"examcm desc"); //最後一個參數:頁數降序! name:玩家;分數:score desc; zhipai=new ArrayList (); if(c!=null){ while(c!=null && c.moveToNext()){ Zhipai zp=new Zhipai(); //新建一個book對象;實體類,要實體類的每個屬性; zp.setId(c.getInt(0)); zp.setName(c.getString(1)); zp.setExamcm(c.getInt(2)); zhipai.add(zp); //每一個對象,都要加進books集合裡面; } c.close(); //關閉游標,切記,不要忘記完畢cursor對象; } //加載 String []examInfo=new String[zhipai.size()]; //數組長度,集合長度; ArrayAdapter arrayAdapter=null; //適配器; int i=0; for(Zhipai z:zhipai){ //寫了一個迭代器,從books集合裡面逐個取對象book; //將圖書相關信息組合成一個字符串,存儲在字符串數組中的相應位置; examInfo[i]=z.getId()+"|\t\t\t"+z.getName()+" \t\t"+z.getExamcm(); i++; } //使用字符串數組初始化ArrayAdapter對象; arrayAdapter=new ArrayAdapter (Mainactivity1.this,android.R.layout.simple_list_item_1,examInfo); lvZhipai.setAdapter(arrayAdapter); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
Android基礎入門教程——8.3.18 Canvas API詳解(Part 3)Matrix和drawBitmapMash標簽(空格分隔):
在上一篇文章中《Android 基於Netty的消息推送方案之概念和工作原理(二)》 ,我們介紹過一些關於Netty的概念和工作原理的內容,今天我們先來介紹一個叫做Cha
一:Android 4.0WebView分析(1)WebView API三:Android 4.4 WebView的結構在Android 4.4系統上 Google已經將
1.使用ServerSocket創建TCP服務器端 Java中能接收其他通信實體連接請求的類是ServerSocket, ServerSocket對象用於監聽來 自客戶