編輯:關於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 List zhipai;
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(szcmszcpu){tvshow.setText("恭喜你獲勝了!分數+"+(szcm-szcpu));cmexam+=szcm-szcpu;cpuexam-=szcm-szcpu;}
else if(szcmszcpu){tvshow.setText("恭喜你獲勝了!分數+"+(szcm-szcpu));cmexam+=szcm-szcpu;cpuexam-=szcm-szcpu;}
else if(szcmszcpu){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()]; //數組長度,集合長度;
ArrayAdapterarrayAdapter=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基礎入門教程——8.3.18 Canvas API詳解(Part 3)Matrix和drawBitmapMash標簽(空格分隔):
Android 基於Netty的消息推送方案之字符串的接收和發送(三)
在上一篇文章中《Android 基於Netty的消息推送方案之概念和工作原理(二)》 ,我們介紹過一些關於Netty的概念和工作原理的內容,今天我們先來介紹一個叫做Cha
使用Cordova來解決HTML5制作的WebView手機不兼容的問題
一:Android 4.0WebView分析(1)WebView API三:Android 4.4 WebView的結構在Android 4.4系統上 Google已經將
Android開發之簡單的聊天室(客戶端與服務器進行通信)
1.使用ServerSocket創建TCP服務器端 Java中能接收其他通信實體連接請求的類是ServerSocket, ServerSocket對象用於監聽來 自客戶