j简单的打扑克小游戏打扑克这样下载?

Android:一个很简单的扑克游戏(从项目资源创建图像) - CSDN博客
Android:一个很简单的扑克游戏(从项目资源创建图像)
string.xml
&?xml version=&1.0& encoding=&utf-8&?&
&resources&
&string name=&hello&&简单的扑克牌游戏&/string&
&string name=&app_name&&扑克牌&/string&
&string name=&again&&再来一次&/string&
&string name=&good_luck&&恭喜您,猜对了,你该买彩票了!&/string&
&string name=&bad_luck&&很遗憾,猜错了,有志者事竟成,再来一次!&/string&
&string name=&guess&&猜猜A是哪一个张?&/string&
&/resources&
public class CardsActivity extends Activity {
/** Called when the activity is first created. */
private ImageView imageView0=
private ImageView imageView1=
private ImageView imageView2=
private ImageView imageView3=
private ImageView imageView4=
private TextView textView01=
//得到所有的图片的id
private static int image[]=new int[]
{R.drawable.image1,R.drawable.image2,R.drawable.image3,R.drawable.image4,R.drawable.main,};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageView0=(ImageView)findViewById(R.id.card1);
imageView1=(ImageView)findViewById(R.id.card2);
imageView2=(ImageView)findViewById(R.id.card3);
imageView3=(ImageView)findViewById(R.id.card4);
imageView4=(ImageView)findViewById(R.id.main);
randomNum();
imageView0.setOnClickListener(new GuessCardOnclicker());
imageView1.setOnClickListener(new GuessCardOnclicker());
imageView2.setOnClickListener(new GuessCardOnclicker());
imageView3.setOnClickListener(new GuessCardOnclicker());
imageView4.setOnClickListener(new GuessCardOnclicker());
class GuessCardOnclicker implements OnClickListener{
* 根据点击事件,得到id,再根据id得到点击 的imageView对象,再判断这个imageVieW的image是不是A
public void onClick(View v) {
switch (v.getId()) {
case R.id.card1:
gameResult(R.id.card1);
case R.id.card2:
gameResult(R.id.card2);
case R.id.card3:
gameResult(R.id.card3);
case R.id.card4:
gameResult(R.id.card4);
case R.id.main:
gameResult(R.id.main);
private void gameResult(int cardId) {
//显示图片的所有随机值;
imageView0.setImageDrawable(getResources().getDrawable(image[0]));
imageView1.setImageDrawable(getResources().getDrawable(image[1]));
imageView2.setImageDrawable(getResources().getDrawable(image[2]));
imageView3.setImageDrawable(getResources().getDrawable(image[3]));
imageView4.setImageDrawable(getResources().getDrawable(image[4]));
ImageView imageV
//得到点击 的imageView、判断是不是猜 对了。
if(((imageView0.getId() == cardId)&&(R.drawable.image1 == image[0]))||
((imageView1.getId() == cardId)&&(R.drawable.image1 == image[1]))||
((imageView2.getId() == cardId)&&(R.drawable.image1 == image[2]))||
((imageView3.getId() == cardId)&&(R.drawable.image1 == image[3]))||
((imageView4.getId() == cardId)&&(R.drawable.image1 == image[4]))){
hintResult(true);
hintResult(false);
public void hintResult(boolean result){
if(result){
Toast.makeText(CardsActivity.this, &恭喜你,猜对了!&, 500).show();
Toast.makeText(CardsActivity.this, &对不起,猜错了!&, 500).show();
imageView0.setEnabled(false);
imageView1.setEnabled(false);
imageView2.setEnabled(false);
imageView3.setEnabled(false);
imageView4.setEnabled(false);
* 随机生成一个数组对象,存储扑克。代表imageView里的随机图像
private void randomNum(){
for (int i = 0; i & 5; i++)
int s=(int)Math.random()*3;
temp=image[i];
image[i]=image[s];
* 点击空白外游戏重新来;由于imageView也设置了点击 事件,当点击 屏幕的时候,imageView优先
public boolean onTouchEvent(MotionEvent event) {
imageView0.setImageDrawable(getResources().getDrawable(R.drawable.hint));
imageView1.setImageDrawable(getResources().getDrawable(R.drawable.hint));
imageView2.setImageDrawable(getResources().getDrawable(R.drawable.hint));
imageView3.setImageDrawable(getResources().getDrawable(R.drawable.hint));
imageView4.setImageDrawable(getResources().getDrawable(R.drawable.hint));
randomNum();
imageView0.setEnabled(true);
imageView1.setEnabled(true);
imageView2.setEnabled(true);
imageView3.setEnabled(true);
imageView4.setEnabled(true);
return super.onTouchEvent(event);
layout布局文件:
&?xml version=&1.0& encoding=&utf-8&?&
&RelativeLayout xmlns:android=&/apk/res/android&
android:orientation=&vertical&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent&
android:id=&@+id/game_name&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:textSize=&25dp&
android:layout_centerHorizontal=&true&
android:textColor=&#ED207A&
android:text=&@string/hello&
android:id=&@+id/tv_hint&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:textSize=&15dp&
android:layout_below=&@id/game_name&
android:textColor=&#FFFFFF&
android:text=&@string/guess&/&
&ImageView
android:id=&@+id/card1&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_below=&@id/tv_hint&
android:layout_marginTop=&5dp&
android:layout_centerHorizontal=&true&
android:src=&@drawable/hint&/&
&ImageView
android:id=&@+id/card2&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_below=&@id/card1&
android:layout_marginTop=&10dp&
android:layout_alignParentLeft=&true&
android:layout_marginLeft=&5dp&
android:src=&@drawable/hint&/&
&ImageView
android:id=&@+id/main&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_below=&@id/card1&
android:layout_marginTop=&10dp&
android:layout_centerHorizontal=&true&
android:src=&@drawable/hint&/&
&ImageView
android:id=&@+id/card3&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_below=&@id/card1&
android:layout_marginTop=&10dp&
android:layout_alignParentRight=&true&
android:layout_marginRight=&5dp&
android:src=&@drawable/hint&/&
&ImageView
android:id=&@+id/card4&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:layout_below=&@id/card3&
android:layout_marginTop=&10dp&
android:layout_centerHorizontal=&true&
android:src=&@drawable/hint&/&
&/RelativeLayout&
所用到的资源:
运行效果如下:
本文已收录于以下专栏:
相关文章推荐
Android游戏开发中比较重要和复杂的就是显示和游戏逻辑的处理。
这里我们说下android.view.View 和 android.view.SurfaceView。
SurfaceV...
本实例参考《Google
Android SDK开发范例大全》。
  针对上述书本,个人的一点点优化和修正的一处BUG,感兴趣的不妨可以参考一下,运行图:
  代码如下:
需要自定义一个组件CascadeLayout,让子view可以像拿扑克牌那样的层叠起来,主要实现效果:
                            ...
继上篇音乐播放器,我们讲到使用 SDCard 播放音乐的例子,上篇也将如何在 Android 模拟器中创建 SDCard 的步骤列了出来。本篇将扩展上篇例子,去获取SDCard 的所存内存,显示出来告...
转载自http://blog.csdn.net/wwj_748/article/details/
Android UI - 实现广告Banner轮播效果
首先,很多东西都不是规范命名,而且没有直接写计算类。没有考虑小数部分。只是为了认识android。16.4.24 下午 软件楼404
一个简单的pc和Android手机利用adb通信的例子。
自己初次写的时候一抹黑,所以弄了个简单的例子。
**Android三五行代码结局有滑块,可滑动的TABLE导航栏。类似斗鱼直播的直播页面导航栏,滑块可动态根据栏目宽度适应,无需自定义view**先来说下思路把,很简单,一个HorizontalScr...
他的最新文章
讲师:王禹华
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)\ 简易扑克牌游戏-Java入门第三季
简易扑克牌游戏-Java入门第三季
这位童鞋很懒,什么也没有留下~~!
------------------------------EasyPokerGame类-----------------------------------------
public class EasyPokerGame {
public static List&PokerCard& poker=new ArrayList&PokerCard&();
public static Scanner input=new Scanner(System.in);
public static String[] card_number={&2&,&3&,&4&,&5&,&6&,&7&,&8&,&9&,&10&,&J&,&Q&,&K&,&A&};
public static String[] flower_colour={&黑桃&,&红桃&,&梅花&,&方块&};
public static void main(String[] args) {
System.out.println(&**简易扑克牌游戏****&);
System.out.println(&-------创建扑克牌-------&);
newPoker();
System.out.println(&--------扑克牌创建成功-----------&);
System.out.print(&扑克牌为:&);
printPoker();
System.out.println(&请输入第一位玩家的id和姓名:&);
Player one=setPlayer();
System.out.println(&请输入第二位玩家的id和姓名:&);
Player two=setPlayer();
System.out.println(&------欢迎玩家:&+one.name);
System.out.println(&------欢迎玩家:&+two.name);
sendCard(one,two);
System.out.println(&---------发牌结束-----------&);
System.out.println(&---------开始游戏-----------&);
System.out.println(&玩家:&+one.name+&最大的手牌为&+one.findMyMaxCard().flower_colour+one.findMyMaxCard().card_number);
System.out.println(&玩家:&+two.name+&最大的手牌为&+two.findMyMaxCard().flower_colour+two.findMyMaxCard().card_number);
if(compareCard(one, two)==1){
System.out.println(&---------玩家:&+one.name+&获胜-----------&);
else if(compareCard(one, two)==-1){
System.out.println(&---------玩家:&+two.name+&获胜-----------&);
System.out.println(&---------平局-----------&);
System.out.println(&玩家各自的手牌为:&);
System.out.print(one.name+&的手牌为:&);
one.printmycard();
System.out.print(two.name+&的手牌为:&);
two.printmycard();
public static void newPoker(){
for(int i=0;i&flower_colour.i++){
for(int j=0;j&card_number.j++){
poker.add(new PokerCard(flower_colour[i],card_number[j],i,j));
public static void printPoker(){
for (PokerCard pc : poker) {
System.out.print(pc.flower_colour+pc.card_number+& &);
System.out.println();
public static Player setPlayer(){
进入死循环-》捕获了输入异常后continue,没有捕获时return跳出,实现了重新输入
scanner有滞纳效应如果不每次更新就会陷入死循环
循环次数多了不断new scanner出来会增加内存损耗?如何解决?
while (true) {
System.out.println(&请输入id:&);
id = input.nextInt();
System.out.println(&请输入姓名:&);
name = input.next();
} catch (Exception e) {
System.out.println(&请输入整数类型的id!&);
input=new Scanner(System.in);
input.next();//吃掉错误的输入--.
return new Player(id,name);
public static void sendCard(Player one,Player two){
System.out.println(&---------开始洗牌-----------&);
//Collections.shuffle(poker);
List&Integer& list=RandomCards();
System.out.println(&---------开始发牌-----------&);
for (int i = 0; i & 4; i=i+2) {
System.out.println("----玩家" + one.name + "拿牌");
one.mycard.add(poker.get(list.get(i)));
System.out.println("----玩家" + two.name + "拿牌");
two.mycard.add(poker.get(list.get(i+1)));
public static int compareCard(Player one,Player two){
return one.findMyMaxCard().compareTo(two.findMyMaxCard());
public static List&Integer& RandomCards() {
Random random=new Random();
System.out.println(&------------------------------2.洗牌操作------------------------------&);
List&Integer& list = new ArrayList&Integer&();
while (list.size() & 52) {
Integer i = new Integer(random.nextInt(52));
if (!list.contains(i)) {
list.add(i);
//System.out.print(poker.get(list.get(k)).flower_colour+poker.get(list.get(k)).card_number+" ");
if (k % 13 ==0) {
System.out.println(&;&);
System.out.println("------------------------------洗牌完成------------------------------");
System.out.println();
---------------------------PokerCard类---------------------------------------------------------------
class PokerCard implements Comparable&PokerCard&{
public String flower_
public String card_
public Integer flowerV
public Integer numberV
public PokerCard(String flower_colour, String card_number, int flowerVaule, int numberVaule) {
this.flower_colour = flower_
this.card_number = card_
this.flowerVaule = flowerV
this.numberVaule = numberV
public static void main(String[] args) {
// TODO Auto-generated method stub
public int compareTo(PokerCard o) {
if(pareTo(o.numberVaule)!=0){
pareTo(o.numberVaule);
return -(pareTo(o.flowerVaule));
-----------------------Player类-------------------------------------------------
public class Player {
public List&PokerCard& mycard=new ArrayList&PokerCard&();
public Player(int id, String name) {
this.name =
public PokerCard findMyMaxCard(){
Collections.sort(mycard);
return mycard.get(1);
public void printmycard(){
for (PokerCard pc : mycard) {
System.out.print(pc.flower_colour+pc.card_number+" ");
System.out.println();
public static void main(String[] args) {
// TODO Auto-generated method stub
相关标签:
请登录后,发表评论
评论(Enter+Ctrl)
评论加载中...
评论加载中...
Copyright (C)
All Rights Reserved | 京ICP备 号-2

参考资料

 

随机推荐