1. 程式人生 > >android簡單小遊戲之《猜猜雞蛋在哪隻鞋裡》

android簡單小遊戲之《猜猜雞蛋在哪隻鞋裡》

這是一個比較簡單的android小遊戲,實現的思路比較簡單。

實現效果圖:


下面是來看看具體實現的過程原始碼:

package com.example.administrator.mygame;

import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;


public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private TextView text;
    private ImageView pic0;
    private ImageView pic1;
    private ImageView pic2;
    int[] imageIds = new int[]{R.drawable.shoe_ok, R.drawable.shoe_sorry,
            R.drawable.shoe_sorry};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);
        pic0 = (ImageView) findViewById(R.id.pic0);
        pic1 = (ImageView) findViewById(R.id.pic1);
        pic2 = (ImageView) findViewById(R.id.pic2);
        Button butplay = (Button) findViewById(R.id.butplay);
        text = (TextView) findViewById(R.id.text);
        pic0.setOnClickListener(this);
        pic1.setOnClickListener(this);
        pic2.setOnClickListener(this);
        butplay.setOnClickListener(this);
        replay();//開局先將鞋子順序打亂
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.pic0:
                //設定已打亂順序的鞋子圖片
                pic0.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, imageIds[0]));
                pic1.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, imageIds[1]));
                pic2.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, imageIds[2]));
                if (imageIds[0] == R.drawable.shoe_ok) {
                    //判斷是否猜中有雞蛋的鞋子
                    text.setText("恭喜你,猜對了,祝你幸福!");
                } else
                    text.setText("很抱歉,猜錯了,要不要再試一次?");
                break;

            case R.id.pic1:
                pic0.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, imageIds[0]));
                pic1.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, imageIds[1]));
                pic2.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, imageIds[2]));
                if (imageIds[1] == R.drawable.shoe_ok) {
                    text.setText("恭喜你,猜對了,祝你幸福!");
                } else
                    text.setText("很抱歉,猜錯了,要不要再試一次?");
                break;

            case R.id.pic2:
                pic0.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, imageIds[0]));
                pic1.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, imageIds[1]));
                pic2.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, imageIds[2]));
                if (imageIds[2] == R.drawable.shoe_ok) {
                    text.setText("恭喜你,猜對了,祝你幸福!");
                } else
                    text.setText("很抱歉,猜錯了,要不要再試一次?");
                break;

            case R.id.butplay:
                replay();

            default:
                break;
        }
    }

    public void replay() {
        //點選再玩一次,恢復原有標題和鞋子圖片
        text.setText("猜猜雞蛋在哪隻鞋子裡?");
        pic0.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, R.drawable.shoe_default));
        pic1.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, R.drawable.shoe_default));
        pic2.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, R.drawable.shoe_default));

        for (int i = 0; i < 3; i++) {
            int temp = imageIds[i]; // 將陣列元素i儲存到臨時變數中
            int index = (int) (Math.random() * 2); // 生成一個隨機數
            imageIds[i] = imageIds[index]; // 將隨機數指定的陣列元素的內容賦給陣列元素i
            imageIds[index] = temp; // 將臨時變數的值賦值給隨機陣列指定的那個陣列元素
        }
    }
}
佈局檔案程式碼如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/background">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="255dp"
        >
        <TextView
            android:id="@+id/text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:text="猜猜雞蛋在哪隻鞋子裡?"
            android:textSize="45dp"
            android:gravity="center"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="120dp"
        android:orientation="horizontal"
        >
        <ImageView
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:id="@+id/pic0"
            android:src="@drawable/shoe_default"
            android:layout_weight="1"/>
        <ImageView
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:id="@+id/pic1"
            android:src="@drawable/shoe_default"
            android:layout_weight="1"/>
        <ImageView
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:id="@+id/pic2"
            android:src="@drawable/shoe_default"
            android:layout_marginRight="15dp"
            android:layout_weight="1"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="135dp"
        >
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/butplay"
            android:text="再玩一次"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="145dp"/>
    </LinearLayout>

</LinearLayout>



相關推薦

android簡單遊戲猜猜雞蛋

這是一個比較簡單的android小遊戲,實現的思路比較簡單。 實現效果圖: 下面是來看看具體實現的過程原始碼: package com.example.administrator.mygame; import android.support.v4.content.C

Python學習easygui實現簡單遊戲

import random, easyguisecret = random.randint(1, 99)guess = 0tries = 0easygui.msgbox("""Hi! I'm the Dread Pirate Roberts, and I have a secret!It is a numbe

[知了堂學習筆記]_JS遊戲打飛機(3)-飛機之間的互相撞擊,boss的出現,以及控制boss死亡

時間 i++ score console function sss 間隔 app tint 我的小飛機和敵軍小飛機撞擊的效果的實現: 1 /** 2 * 定義我的飛機與敵機碰撞的方法: 3 */ 4 function destoryMyPlane(){ 5

Python遊戲 - 飛機大戰美女 !

TP 飛機大戰 inf info ima com 圖片 大戰 .com 用Python寫的"飛機大戰美女"小遊戲 Python小遊戲之 - 飛機大戰美女 !

android簡訊程式CursorAdapter繫結ListView

同步查詢繫結: mListView = findViewById(R.id.id_containers); //定義uri mALL_conversation_uri = Telephony.Threads.CONTENT_URI.buildUpon().appendQueryParame

JavaScript前端開發遊戲智慧拼圖

HTML部分 <!DOCTYPE html> <html lang="en">     <head>         <meta charset="utf-8" /

用python玩轉微信遊戲 大小猜猜

用python玩轉微信小遊戲 大小猜猜看 遊戲模式 在微信小程式裡搜尋“大小猜猜看”,即可找到該遊戲。 遊戲的目標比拼計算能力,找出誰大誰小,一共有40題,全部答對即挑戰成功。 一開始答題時間充足,數字也比較簡單,後面就需要特別快的計算速度。 專案地址 本專案地址

Android開發工具:Chrome Custom Tabs

參考文章 官方文件 官方原始碼 http://qq157755587.github.io/2016/08/12/custom-tabs-best-practices/ https://juejin.im/entry/586f089c61ff4b006d29f9c0 一

python的一個遊戲五子棋

原始碼如下: from tkinter import * root = Tk() canvas = Canvas(root,width = 400,height = 300) ###global clounm curwho= 1 ##1 yellow -1 blue o

C++遊戲2048

#include<iostream> #include<ctime> using namespace std; int map[4][4] = { 0 }; //因為2048是一個4X4的小方塊集合,所以定義一個二維陣列與之對應 void print(); //列印數組裡的數字

Java遊戲迷宮遊戲

遊戲規則 按照位置為0的路線移動,上下左右方向鍵依次為 8、2、4、6 遊戲編碼 編碼思路:   定義一個二維陣列,七個一維陣列,每個一維陣列七個元素,並且按照遊戲規則設定0,1,初始值位置列印陣列,

微信HTML5遊戲推箱子

經典的推箱子是一個來自日本的古老遊戲,目的是在訓練你的邏輯思考能力。在一個狹小的倉庫中,要求把木箱放到指定的位置,稍不小心就會出現箱子無法移動或者通道被堵住的情況,所以需要巧妙的利用有限的空間和通道,合理安排移動的次序和位置,才能順利的完成任務。推箱子游戲是一種老少皆宜的益

android studio 技巧 圖片預覽

直接上圖 android studio  進過幾個小版本的更新     大版本已近來到了2.0    總體來說越來越好了,熟悉以後還是非常好用 , 比eclipse  好用的不是一點兩點 這次帶來      圖片預覽       右擊     drawable資料夾  

HTML5遊戲見縫插針

今天給大家帶來的就是一款叫做《見縫插針》的遊戲。有空你就往裡插,直到你無處可插!看你能過多少關! 簡潔大氣 黑白搭配遊戲畫面非常的簡潔,米白色的背景中央,放置著一個不斷旋轉的太陽狀的球體,周邊網狀似的放射連線著許多小球,又有點宇宙中星球的感覺,所有球體均以黑色為主,與米白色的背景產生出了鮮明的對比,在一定程

Java遊戲鬥地主遊戲例項Map集合

Map的特點是什麼? 1、Map物件是一個雙列的容器 2、兩列分別對應key和value,二者一一對應,是對映關係 3、Map中的資料以鍵值對的形式儲存 4、鍵值是唯一的,不能重複的 HashSet()和HashMap()之間的關係? HashSet()底層是HashMap

Android 常用知識break/continue語句

使用break語句可以終止switch語句和終止迴圈的子語句塊,甚至是普通的程式塊。 1.break語句 在迴圈中,經常需要在某種條件出現時,強行終止迴圈的執行,而不是等到迴圈的判斷條件為false

android 拼圖遊戲

拼圖雖是比較小的一個遊戲,但涉及到的邏輯和程式碼也沒那麼簡單,這裡參考慕課網上的教程,採用一個二維陣列來儲存拼圖的小方格,並將拼圖的資料GameData(包括x,y座標和正確的擺放位置)和檢視(Bitmap)分離,並編寫相應的遊戲邏輯控制方法(控制層contro

C++ 遊戲推箱子

做完C的貪吃蛇遊戲後,感覺還不錯,剛好記得在HDU上做過一道關於推箱子游戲的演算法題目,即雙BFS。 所以我決定來做做C++的小遊戲推箱子,由於剛學C++,對C++還是不很熟練,但是思路還是很清楚的, 編寫程式碼還是很舒服的。! 現在晒晒我的程式碼和詳細解釋,希望多交流~

HTML5 經典遊戲坦克(二)

上次寫到坦克只能發出子彈 今天讓坦克連續發射子彈 並擊中敵人的坦克 那麼問題來了?如何讓子彈飛起來呢? 思路: 1.動起來 --- 必然會用到定時器 2.在那用?按空格發子彈後 3.子彈動起來的思路:按鈕的時候,先每隔50毫秒改變子彈的參考點的座標,再重新整理畫布,每隔10

你可能不知道的 Android Studio 技巧「多行編輯」

Android Studio 大家應該都很熟悉了,但是可能很多人都僅限基本的功能使用,而 Android Studio 非常強大,有很多非常實用卻又鮮為人知的小技巧,熟練掌握這些小技巧將能極大的提高你的工作效率,今天就來給大家介紹一個很實用的小技巧「多行編輯」。