`
明子健
  • 浏览: 576900 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Android猜牌小游戏(附源码下载)

阅读更多
猜牌游戏一开始不直接亮出三张牌,而是翻面洗牌之后直接请玩家来猜猜看红桃A是哪一张,游戏过程公平透明,不会出现诈赌情形。

开发提示及要求:

    1,界面使用TextView、Button以及三个ImageView,一开始三个ImageView都默认显示扑克牌背面,当用户选择了其中一张牌时,三个ImageView同时翻到正面,程序会依照选择的对错通过Toast消息提示出来,并可以通过点击“重新玩一次”来重新开始游戏。

    2,当游戏开始时,玩家从三张牌中单击一张,然后程序会一次翻开所有牌面,并将玩家没选择的牌面以灰暗效果处理。

    3,将三张图片的id存入数组,定义一个方法将数组中的id顺序做随机的调换,以制造洗牌的效果,三个ImageView默认加载图片都为扑克牌背面。

    4,代码量控制在100行左右。


参考代码:(如有雷同,纯属巧合)

main.xml 开始
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="#111111"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/tvcai"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="72dp"
        android:text="@string/cai"
        android:textColor="#eeeeee"
        android:textSize="18sp" />

    <ImageView
        android:id="@+id/puke1"
        android:layout_width="71dp"
        android:layout_height="96dp"
        android:layout_alignTop="@+id/puke3"
        android:layout_marginLeft="20dp"
        android:layout_toRightOf="@+id/puke3"/>

    <ImageView
        android:id="@+id/puke2"
        android:layout_width="71dp"
        android:layout_height="96dp"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/tvcai"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="36dp" />

    <ImageView
        android:id="@+id/puke3"
        android:layout_width="71dp"
        android:layout_height="96dp"
        android:layout_alignTop="@+id/puke2"
        android:layout_marginLeft="20dp"
        android:layout_toRightOf="@+id/puke2" />

    <Button
        android:id="@+id/btnplayagian"
        android:layout_width="120dp"
        android:layout_height="30dp"
        android:layout_below="@+id/puke2"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="40dp"
        android:background="#cdcdcd"
        android:text="重新玩一次" />

</RelativeLayout>

main.xml  结束

MainActivity.java    开始

package com.ming.puke;

import java.util.ArrayList;
import java.util.Random;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity {
	private Button btnplayagian;// 再玩一次
	private ImageView puke1, puke2, puke3;// 三张扑克
	private Drawable bg;// 扑克背面(用于判断是否开牌)
	private int[] pks = { R.drawable.p01, R.drawable.p02, R.drawable.p03 };// 存放3张扑克
	private ArrayList<Integer> ps = new ArrayList<Integer>();// 存放洗过的扑克(随机排列)

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		puke1 = (ImageView) findViewById(R.id.puke1);
		puke2 = (ImageView) findViewById(R.id.puke2);
		puke3 = (ImageView) findViewById(R.id.puke3);
		btnplayagian = (Button) findViewById(R.id.btnplayagian);
		puke1.setOnClickListener(l);
		puke2.setOnClickListener(l);
		puke3.setOnClickListener(l);
		btnplayagian.setOnClickListener(l);
	}

	protected void onResume() {
		randomPuke();
		super.onResume();
	}

	OnClickListener l = new OnClickListener() {
		public void onClick(View v) {
			switch (v.getId()) {
			case R.id.puke1:
				showPuke(0);
				// 将玩家没选择的牌面以灰暗效果处理,设置透明度,取值范围为0~255,数值越小越透明。
				puke2.setAlpha(100);
				puke3.setAlpha(100);
				break;
			case R.id.puke2:
				showPuke(1);
				puke1.setAlpha(100);
				puke3.setAlpha(100);
				break;
			case R.id.puke3:
				showPuke(2);
				puke1.setAlpha(100);
				puke2.setAlpha(100);
				break;
			case R.id.btnplayagian:
				randomPuke();
				break;
			}
		}
	};

	/** 洗牌 */
	public void randomPuke() {
		// 所有牌翻到背面
		puke1.setImageResource(R.drawable.p04);
		puke2.setImageResource(R.drawable.p04);
		puke3.setImageResource(R.drawable.p04);
		bg = puke1.getDrawable();
		// 实例化清空(收牌)
		ps = new ArrayList<Integer>();
		// 随机填充(发牌)
		do {
			int item = new Random().nextInt(3);// 随机出{0,1,2}中其中一个数
			if (!ps.contains(pks[item])) {// 如果桌上没有这张牌才发这张牌
				ps.add(pks[item]);
			}
		} while (ps.size() < 3);// 发完3张牌就不发牌了
	}

	/** 开牌 */
	public void showPuke(int p) {
		// 如果牌还没开才能开牌
		if (puke1.getDrawable() == bg) {
			puke1.setImageResource((Integer) ps.get(0));
			puke2.setImageResource((Integer) ps.get(1));
			puke3.setImageResource((Integer) ps.get(2));
			Toast.makeText(
					MainActivity.this,
					R.drawable.p01 == (Integer) ps.get(p) ? "恭喜你猜对了" : "遗憾你猜错了",
					1000).show();
		}
	}
}


MainActivity.java    结束


0
0
分享到:
评论

相关推荐

    Android猜牌小游戏(改进版)

    【Android猜牌小游戏(改进版)】是一款基于Android平台开发的趣味性应用程序,它通过算法随机生成一个数字,用户需要在限定次数内猜出这个数字,增强了用户与手机的交互体验。这款游戏通常会包含以下几个核心知识点...

    安卓期末大作业基于Android的小游戏源码

    安卓期末大作业Android的小游戏源码安卓期末大作业Android的小游戏源码安卓期末大作业Android的小游戏源码安卓期末大作业Android的小游戏源码安卓期末大作业Android的小游戏源码安卓期末大作业Android的小游戏源码...

    Android小游戏安卓游戏源码45款合集.zip

    Android小游戏安卓游戏源码45款合集: 21点游戏源码.rar Angle v1.0.ZIP Barrage_OpenGLES.rar Billiard_2D.zip catcake-0.9.5-android.tar.gz Chess.rar Crackedcarrot.rar CrazyFootBall.zip EggGame.rar Elose-wr....

    6款android小游戏;附带源码和教程

    这个压缩包包含了6款经典Android小游戏的源码和教程,是学习Android游戏开发的宝贵资源。让我们逐一探讨这些知识点: 1. **Android游戏框架**:Android游戏通常基于特定的游戏引擎或框架,如Unity、Cocos2d-x或...

    基于Android的拼图游戏APP源码,Android拼图游戏APP源码,Android小游戏源码

    总的来说,这个基于Android的拼图游戏APP源码为我们提供了深入学习Android开发的机会,涵盖了从基础的UI设计到高级的游戏逻辑实现等多个方面。通过对源码的阅读和学习,开发者可以提升自己的Android编程技能,并且对...

    android 小游戏源码

    【Android小游戏源码详解】 Android小游戏源码是一个学习和研究Android应用开发的宝贵资源,它可以帮助开发者深入理解游戏开发的基本原理、设计模式以及Android平台上的编程实践。在本篇文章中,我们将围绕Android...

    android小游戏源码.rar

    【Android小游戏源码详解】 Android小游戏源码是一个深入学习Android应用程序开发的重要资源,它涵盖了从基本的游戏架构到复杂的交互逻辑的各个层面。通过分析和理解这些源码,开发者可以提升自己的编程技能,学习...

    Android小游戏源码

    【Android小游戏源码】是一个适合初学者学习的项目,它基于Eclipse开发环境,适用于运行在Android 2.3版本的设备或模拟器。这个小游戏的名称为"雷霆战机",是一个典型的移动平台上的飞行射击类游戏。通过分析这个...

    android,猜数字益智小游戏源码

    【Android猜数字益智小游戏源码解析】 在Android开发领域,构建一款猜数字的游戏不仅可以锻炼开发者的基本编程技能,还能提供一个展示对用户界面设计、事件处理以及算法运用理解的平台。这款"猜数字益智小游戏"源码...

    Android小游戏连连看源码

    《Android小游戏连连看源码详解》 在移动设备上,小游戏因其轻松有趣、易于上手的特点,深受用户喜爱。作为一款经典的小游戏,连连看在Android平台上也得到了广泛的移植和应用。本文将深入探讨Android版连连看的...

    Android例子源码看图猜人名小游戏

    本项目是一个看图猜人名的小游戏源码,会出现一个人物图片和一堆无序的文字,人物名称就隐藏在这堆文字中,直接点击文字凑全人名即可过关。实现了类似天天猜图的逻辑,数据都是在本地,界面没有美化。之前也介绍过两...

    安卓猜牌游戏源码

    【安卓猜牌游戏源码】是一款基于Android平台的猜数字小游戏,它展示了如何在Android环境中开发简单的娱乐应用。这个游戏的核心玩法是系统随机生成一个数字,玩家通过猜测来尝试猜出这个数字,通常会有一定的次数限制...

    Android猜牌游戏源码

    【Android猜牌游戏源码】是一款基于Android平台的猜数字游戏,它展示了如何在Android环境中开发一款简单的互动娱乐应用。这款游戏的核心玩法是让玩家猜测一个随机生成的数字,通过提示来逐渐接近正确答案,增加了...

    Android 看图猜人名小游戏源码.zip

    《Android 看图猜人名小游戏源码分析与学习》 在当今移动互联网时代,游戏作为娱乐方式的重要组成部分,其开发技术也日新月异。Android平台因其开源性和广泛的设备支持,成为开发者们热衷的领域。今天,我们将深入...

    基于Android开发的连连看小游戏源码.zip

    基于Android开发的连连看小游戏源码。 基于Android开发的连连看小游戏源码.基于Android开发的连连看小游戏源码.基于Android开发的连连看小游戏源码.基于Android开发的连连看小游戏源码.基于Android开发的连连看小...

    Android实例源码-小游戏类安卓源代码(7例).zip

    Android实例源码-小游戏类安卓源代码(7例) 安卓冒险游戏源码可直接运行类似于精灵快跑这种可做毕业设计 安卓飞机游戏 完美版的Android 拼图游戏APK和工程源码 猜拳游戏 用的libgdx引擎写的ACE 弹幕射击游戏设计与...

    android小游戏源码

    《安卓连连看小游戏源码解析》 在移动设备领域,Android平台因其开源和广泛的设备支持,成为了游戏开发者的重要选择。本篇文章将详细解读一个基于Android平台的“连连看”小游戏的源码,帮助读者理解如何利用...

    【经典Android游戏源码17】Android 看图猜人名小游戏源码

    这篇内容将深入解析《经典Android游戏源码17:Android看图猜人名小游戏》的相关知识点,帮助读者理解和掌握Android游戏开发的基本原理和技术。 首先,Android看图猜人名小游戏是一款基于Android平台的休闲娱乐应用...

    Android手机上的猜数字游戏源码

    MobileGuess Android手机上的猜数字小游戏源码,部分代码注释:  public abstract int getGuessTimeLeft();//返回剩余猜测次数  public abstract String getNewNumber();//返回待猜数字  public abstract int ...

Global site tag (gtag.js) - Google Analytics