1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình Android: Game lật hình pot

11 426 13

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 121,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

public Button button;public CardButton button, int x, int y{ this.. = y; } } Trong file Activity: package com.dac; import java.util.ArrayList; import java.util.List; import java.util.Ra

Trang 1

Game đếm số

Project name: GameHinhCuaDac

Build Target: Android 2.3.3

Application name: GameHinhCuaDac

Package name: com.dac

Create Activity: GameHinhCuaDacActivity

Trong file main.xml:

<?xml version="1.0" encoding="utf-8"?>

<TableLayout android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:gravity="center"

android:background="@drawable/bgmemory"

xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/TableLayout03">

<TableRow android:id="@+id/TableRow01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:gravity="center">

<TextView android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center"

android:visibility="visible"

android:textSize="30sp"

android:paddingTop="20sp"

android:textColor="#EEFFAA"

android:id="@+id/mainTitle" />

</TableRow>

<TableRow android:id="@+id/TableRow02"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center">

<TextView android:layout_width="wrap_content"

android:layout_gravity="center"

android:gravity="center"

android:typeface="normal"

android:bufferType="normal"

android:textColor="#FFEEAA" />

</TableRow>

<TableRow android:id="@+id/TableRow03"

Trang 2

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center">

<LinearLayout android:id="@+id/LinearLayout01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:gravity="center">

<ImageView android:id="@+id/ImageView01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center" />

</LinearLayout>

</TableRow>

<TableLayout android:id="@+id/tableLayout1"

android:gravity="bottom"

android:layout_gravity="center"

android:layout_width="wrap_content"

android:layout_height="match_parent">

<TableRow android:id="@+id/tableRow1"

android:gravity="center"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

<Button android:id="@+id/btnnew"

android:background="@drawable/iconhome"

android:layout_width="40px"

android:layout_height="40px">

</Button>

</TableRow>

</TableLayout>

</TableLayout>

Trong Class Card.Java:

package com.dac;

import android.widget.Button;

public class Card {

public int ;

public int ;

Trang 3

public Button button;

public Card(Button button, int x, int y){

this = x;

this = y;

}

}

Trong file Activity:

package com.dac;

import java.util.ArrayList;

import java.util.List;

import java.util.Random;

import java.util.Timer;

import java.util.TimerTask;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.ProgressDialog;

import android.content.Context;

import android.content.DialogInterface;

import android.graphics.drawable.Drawable;

import android.media.MediaPlayer;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.util.Log;

import android.view.Gravity;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TableLayout;

import android.widget.TableRow;

public class GamHinhCuaDacActivity extends Activity {

private static int ROW_COUNT = -1;

private static int COL_COUNT = -1;

private Context context;

private Drawable backImage;

private int [] [] cards;

private List<Drawable> images;

private Card firstCard;

private Card seconedCard;

private ButtonListener buttonListener;

private static Object lock = new Object();

Trang 4

private TableLayout mainTable;

private UpdateCardsHandler handler;

private static final int NEW_MENU_ID = Menu.FIRST;

private static final int EXIT_MENU_ID = Menu.FIRST+1;

private int count =0;

private MediaPlayer mp;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

progressDialog();

handler = new UpdateCardsHandler();

loadImages();

setContentView(R.layout.main);

Button btnnew = (Button)findViewById(R.id.btnnew);

btnnew.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

clickSound();

singleChoiceDialog();

} });

backImage = getResources().getDrawable(R.drawable.iconfruit); buttonListener = new ButtonListener();

mainTable = (TableLayout)findViewById(R.id.TableLayout03); context = mainTable.getContext();

newGame(4,4);

}

public void progressDialog(){

final ProgressDialog progressDialog =

ProgressDialog.show(GamHinhCuaDacActivity.this, "",

"Loading ", true);

new Thread(new Runnable(){

public void run(){

Thread.sleep(300);

progressDialog.dismiss();

} catch (InterruptedException e) {

e.printStackTrace();

} }

}).start();

}

private void newGame(int c, int r) {

Trang 5

TableRow tr = ((TableRow)findViewById(R.id.TableRow03));

tr.removeAllViews();

tr.addView(mainTable);

for (int y = 0; y < ROW_COUNT; y++) {

}

loadCards();

}

private void loadImages() {

}

private void loadCards(){

int size = ROW_COUNT*COL_COUNT;

Trang 6

Log.i("loadCards()","size=" + size);

ArrayList<Integer> list = new ArrayList<Integer>();

for(int i=0;i<size;i++){

list.add(new Integer(i));

Random r = new Random();

for(int i=size-1;i>=0;i ){

if(i>0){

t=list.remove(t).intValue();

Log.i("loadCards()", "card["+(i%COL_COUNT)+

"]["+(i/COL_COUNT)+"]=" + cards[i%COL_COUNT]

}

}

private TableRow createRow(int y){

TableRow row = new TableRow(context);

row.setHorizontalGravity(Gravity.CENTER);

for (int x = 0; x < COL_COUNT; x++) {

row.addView(createImageButton(x,y));

}

return row;

}

private View createImageButton(int x, int y){

Button button = new Button(context);

button.setBackgroundDrawable(backImage);

button.setId(100*x+y);

button.setOnClickListener(buttonListener);

return button;

}

class ButtonListener implements OnClickListener {

@Override

public void onClick(View v) {

synchronized (lock) {

if(firstCard!=null && seconedCard != null){

return;

Trang 7

int id = v.getId();

int x = id/100;

int y = id%100;

turnCard((Button)v,x,y);

} }

private void turnCard(Button button,int x, int y) {

button.setBackgroundDrawable(images.get(cards[x][y]));

//playSelectedSound();

if(firstCard==null){

}

else{

if(firstCard == x && firstCard == y){

return; }

TimerTask tt = new TimerTask() {

@Override

public void run() {

//try{

synchronized (lock) {

}

//}

//catch (Exception e) { // Log.e("E1", e.getMessage()); //}

} };

Timer t = new Timer(false);

t.schedule(tt, 800);

} } }

class UpdateCardsHandler extends Handler{

Trang 8

@Override

public void handleMessage(Message msg) {

synchronized (lock) {

}

public void checkCards(){

playCorrectSound();

winDialog();

}

}

}

public void playSelectedSound(){

//mp = MediaPlayer.create(this, R.raw.click2);

mp.start();

}

public void playCorrectSound(){

mp = MediaPlayer.create(this, R.raw.correct);

mp.start();

}

public void playInCorrectSound(){

mp.start();

}

public void stopSound(){

if(mp != null){

mp.stop();

mp.release();

mp = null;

}

}

public void clickSound(){

stopSound();

Trang 9

mp = MediaPlayer.create(this, R.raw.brickogg);

mp.start();

}

private void winDialog(){

AlertDialog.Builder alert = new AlertDialog.Builder(this);

alert.setTitle("Ban co muon choi tiep ko");

alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

singleChoiceDialog();

} }) setNegativeButton("Thoat", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

dialog.cancel();

} }) show();

}

public void singleChoiceDialog(){

final CharSequence[] items = {"DE", "Medium", "Hard", "Exelent"}; AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setTitle("Chon muc do choi");

builder.setSingleChoiceItems(items, -1, new

DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int item) {

// TODO Auto-generated method stub //Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();

switch(item){

case 0:

newGame(4,4);

break;

case 1:

newGame(4,5);

break;

case 2:

newGame(4,6);

break;

case 3:

newGame(4,7);

}

Trang 10

} }).setPositiveButton("OK", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

} });

AlertDialog alert = builder.create();

alert.show();

}

}

Ngoài ra còn 1 số file hình ảnh, âm thanh khác các bạn download Project để tìm hiểu thêm.

Trang 11

Mọi ý kiến đóng góp các bạn vui lòng gữi bài về forum: www.forum.laptrinhdidong.vn Rất mong nhận được sự phản hồi từ các bạn.

Ngày đăng: 14/08/2014, 11:20

TỪ KHÓA LIÊN QUAN

w