android打地鼠游戏

在这次实现中,我没有采用线程实现,而是采用了递归的方式。

话不多说,贴源码:

//MainActivity.java代码

package com.example.dell.ch4_10;

import android.content.DialogInterface;
import android.graphics.Color;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Html;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private int times = 30;
    private TextView textView;
    private ImageButton button1;
    private ImageButton button2;
    private int[] viewIds = new int[]{
            R.id.button1,R.id.button2,R.id.button3,
            R.id.button4,R.id.button5,R.id.button6,
            R.id.button7,R.id.button8,R.id.button9
    };
    private int[] flag = new int[]{
            0,0,0,
            0,0,0,
            0,0,0
    };
    private AlertDialog.Builder builder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = (TextView) findViewById(R.id.text);
        textView.setText(Html.fromHtml("请点击绿色按钮<font color='green'>"+times+"</font>次"));
        init();
    }

    public void init(){

        if(times == 0){
            builder = new AlertDialog.Builder(this);
            builder.setTitle("恭喜你,顺利过关。点一点很容易嘛!");
            builder.setIcon(R.mipmap.ic_launcher);
            builder.setPositiveButton("确定,再来一次!", null);

            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    MainActivity.this.finish();
                }
            });

            builder.create().show();

            return ;
        }

        int ans = (int)(Math.random()*9);
        button1 = (ImageButton) findViewById(viewIds[ans]);
        button1.setImageResource(R.mipmap.cat);
        flag[ans] = 1;
        for(int i=0;i<viewIds.length;i++){

            button2 = (ImageButton) findViewById(viewIds[i]);
            final int temp = i;

            if(flag[temp] == 0){
                button2.setImageResource(R.mipmap.ic_launcher);
            }

            button2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if(flag[temp] == 1){
                        times--;
                        textView.setText(Html.fromHtml("请点击绿色按钮<font color='green'>"+times+"</font>次"));
                        flag[temp] = 0;
                        button2.setImageResource(R.mipmap.ic_launcher);
                        init();
                    }
                    else{
                        times--;
                        textView.setText(Html.fromHtml("请点击绿色按钮<font color='green'>"+times+"</font>次"));
                        builder = new AlertDialog.Builder(MainActivity.this);
                        builder.setTitle("这么简单都输了!");
                        builder.setIcon(R.mipmap.ic_launcher);
                        builder.setPositiveButton("确定,再来一次!", null);
                        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                MainActivity.this.finish();
                            }
                        });

                        builder.create().show();
                    }
                }
            });
        }

    }
}
//activity.main.xml代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:gravity="center_horizontal"
        android:paddingTop="20dp"
        android:id="@+id/view1"
    >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <GridLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:layout_margin="20dp"
            android:columnCount="3"
            android:paddingLeft="30dp"
            >

            <ImageButton
                android:id="@+id/button1"
                android:layout_width="80dp"
                android:layout_height="80dp"
                />

            <ImageButton
                android:id="@+id/button2"
                android:layout_width="80dp"
                android:layout_height="80dp" />

            <ImageButton
                android:id="@+id/button3"
                android:layout_width="80dp"
                android:layout_height="80dp" />

            <ImageButton
                android:id="@+id/button4"
                android:layout_width="80dp"
                android:layout_height="80dp" />

            <ImageButton
                android:id="@+id/button5"
                android:layout_width="80dp"
                android:layout_height="80dp" />

            <ImageButton
                android:id="@+id/button6"
                android:layout_width="80dp"
                android:layout_height="80dp" />

            <ImageButton
                android:id="@+id/button7"
                android:layout_width="80dp"
                android:layout_height="80dp" />

            <ImageButton
                android:id="@+id/button8"
                android:layout_width="80dp"
                android:layout_height="80dp" />

            <ImageButton
                android:id="@+id/button9"
                android:layout_width="80dp"
                android:layout_height="80dp" />

        </GridLayout>
    </LinearLayout>

</LinearLayout>

这张图即是cat.png,下载即可。

运行如上代码:

猜你喜欢

转载自blog.csdn.net/qq_41700374/article/details/83024469