Android_开发day10扑克游戏

目的:

通过写一些小游戏来增加学习中的乐趣,同时也是对前面学习的一些知识的一些整合。

技术:

<1> 单例设计模式:所谓的单例设计模式就是创造一个对象实例就可以在不同的地方去访问它,做到一改全改的效果方便程序的形成。单例设计模式首先不允许用户创建某个类的实例,可以将构造函数私有化,第二步在自己的类里面提供创建这个对象的方法。我们可以在类中用public static 类名(返回类型) 方法名{return 事先在类里面创建好的该类的一个静态对象(对象名一般用default sharedInstance manage);},这种创建单例式对象的方法叫做饿汉式。第二种创建单例对象的方法叫做懒汉式,即在外部需要它的时候才创建它,因此只要在类里提供创建它的方法即可。

<2> 数组的引用:ArrayList是一个动态可变数组,也是一个管理数组的类,它的里面装的是引用变量,可根据引用变量的多少来动态开辟内存,其实就是我们c语言阶段学的链表,而Java中有一个双链表的LinkedList<>。常用的方法有add(东西);get(0~数组长度);size();返回值就是数组的长度。

技术如何使用:

有了前面的几个类的基础后我们就可以将其整合,因此我们可以将游戏中心写成如下代码:

public class GameCenter {

public static void main(String[] args){

int choice = 0;

do {

int num, basicBet;

Utils.showWelcome();

System.out.print("请输入玩家个数:");

num = Utils.scanf();

System.out.print("请规定本局底注:");

basicBet = Utils.scanf();

Person[] players = new Person[num];

PlayerManager.initPlayers(players);//生成玩家

while (true) {

System.out.println("请确认玩家信息:");

PlayerManager.showPlayers(players);//显示玩家

System.out.println("Loading……");

PlayerManager.distributePoker(players);

//manager.showPokers();//测试

System.out.print("( ");

PlayerManager.showPlayerPoker(players);//看一下玩家的牌

System.out.println("看不见我 )");

PlayerManager.gameStart(players, basicBet);//第一轮游戏开始

System.out.println("游戏结束,请选择:");

Utils.showMenu(1);

System.out.print("请选择:");

choice = Utils.scanf();

if (choice == 2 || choice == 4) {

break;

} else if (choice == 3) {

System.out.print("请输入底注:");

basicBet = Utils.scanf();

System.out.print("Success!");

}

}

}while (choice != 4);

}

}

相对对于昨日添加了一个Utils类,目的是更好的输出到控制台,和从控制台输入。

import java.util.Scanner;

public class Utils {

public static void showWelcome(){

showStar();

System.out.println("欢迎来到御坂斗地主");

showStar();

}

public static void showStar(){

System.out.println("*******************");

}

public static void showMenu(boolean i){

if (!i) {

System.out.println("1.看牌");

System.out.println("2.下注");

System.out.println("4.弃牌");

}

else {

System.out.println("1.看牌");

System.out.println("3.跟注");

System.out.println("4.弃牌");

}

}

public static int scanf(){

int num;

Scanner scanner = new Scanner(System.in);

num = scanner.nextInt();

return num;

}

public static void showMenu(int i){

System.out.println("1.再来一局");

System.out.println("2.从头开始");

System.out.println("3.修改底注");

System.out.println("4.退出游戏");

}

}

实际使用效果:

{E4023612-CA3B-459C-87FB-C35DD9EA1095}.png.jpg

{7C7547CF-D671-4A7D-B185-252D8A0E8B32}.png.jpg

{C29894F8-55B4-4F12-A95C-2DF48E092C4F}.png.jpg

总结:

这个Demo如果能完整写完的话就能够体会到了面对对象的编程思想与面向过程的编程思想的差别。

Android 实现扑克牌动画,Android_开发_Day10_扑克游戏相关推荐

  1. android 绘制控件,Android_开发_Day29_自己绘制控件

    Android_开发Day29自己绘制控件 目的: 在Android中很多时候系统的控件是不能满足需要的,组合方式定义控件又非常繁琐,因此此时需要自己画一个控件,才能满足需要 技术: <1> ...

  2. unity 物理台球_使用基于Android物理的动画制作类似于桌球的游戏

    unity 物理台球 学习Android开发 (Learning Android Development) While playing around with Android Physics-base ...

  3. Android 实现扑克牌动画,Android扑克牌猜点小游戏源码

    Android扑克牌猜点小游戏源码分享. 该游戏是简单的猜点游戏, 1点为正确的点数 点重新开始后进行洗牌 每次牌的顺序不同 Java代码: package com.mrzhu.test0109_pr ...

  4. Android 实现扑克牌动画,android – 重叠图像(扑克牌)

    我试图让我的游戏中的扑克牌重叠,这样只能看到一张牌的前半部分而另一张牌被下一张扑克牌所覆盖.应该完全可见的唯一卡将是最后/最右边的卡. 我在framelayout和relativelayout中使用了 ...

  5. 45岁码农用不到2年时间撸出100款扑克游戏

    前言 扑克的玩法非常多,常见的就有斗地主.跑得快.五十K.锄大地.梭哈.十点半.二十一点.打千分.升级.拖拉机.双扣.保皇.斗牛.挖坑等等.在国内的不同地方,同类游戏的玩法也有不同讲究.粗略估计,国内 ...

  6. Android自绘控件开发与性能优化实践——以录音波浪动画为例

    前言 本文实战性较强,主要目的是通过一个自定义控件的开发,引出我对自定义控件性能优化的一些思考和实践,欢迎各位喜欢移动开发的小伙伴来拍砖~ 本文由于篇幅有限,只讲解思路,并没有放出大量源代码,如果对本 ...

  7. android淡入淡出动画循环,Android应用开发之淡入淡出、缩放、旋转、平移、组合动画效果代码实现...

    本文将带你了解Android应用开发Android动画开发之淡入淡出.缩放.旋转.平移.组合动画效果代码实现,希望本文对大家学Android有所帮助. 1.activity_main.xml文件 an ...

  8. 【Android的从零单排开发日记】之入门篇(十六)——Android的动画效果

    什么是动画,动画的本质是通过连续不断地显示若干图像来产生"动"起来的效果.比如说一个移动的动画,就是在一定的时间段内,以恰当的速率(起码要12帧/秒以上,才会让人产生动起来的错觉) ...

  9. android开发图案解锁,Android_开发_Day23_图案解锁(下)

    Android_开发Day23图案解锁 目的: 综合运用Java以及C语言的思想来解决问题 技术: <1> onTouchEvent: onTouchEvent方法是当屏幕被触摸时系统调用 ...

最新文章

  1. magento 为用户注册增加一个字段(转)
  2. PHP中常见的提示对照表
  3. 获取32R的图像的直方图的一个算法
  4. WPF窗体最小化到任务栏
  5. python深入_Python深入(上)
  6. 徕卡静态转换rinex软件_[摄影]旅游伴侣———徕卡SL2
  7. appium相关记录
  8. 主干网络系列(1) -ResNet: Deep Residual Learning for Image Recognition
  9. Hadoop Shell总结
  10. 普通人的编辑利器——Vim
  11. 大中型企业建立IT服务台的意义及实践
  12. 《SLA by Short brain》—学好英语口语的终极法宝!
  13. moment系列一:add() 方法和subtract() 方法的使用
  14. 离散数学-代数系统4-同构
  15. Win10-1809 离线安装 .net framework 3.5
  16. 于皓月繁星下翩翩起舞
  17. android飞机大战功能,安卓飞机大战(二) SurfaceView实现自制背景
  18. 语音转文字软件哪个好?快来看看这几个软件
  19. 拒绝B站邀约,从月薪3k到年薪47W,我的经验值得每一个测试人借鉴
  20. 关于金融评级机构及金融公司

热门文章

  1. stl源码剖析09——RB-Tree(红黑树)
  2. 多线程并发篇(1024节日快乐)
  3. 斐波那契数列(python)
  4. kali下安装gvm(原openvas)
  5. 如何利用云服务器快速部署一个静态网页
  6. matlab生成棋盘格网的命令,Matlab 画棋盘格
  7. Unity GoogleVR Cardboard 开发
  8. 计算机的USB接口可以扩展吗,电脑的USB接口不够用怎么办?别急,我来支招!
  9. android+桌面歌词,Android6.0系统适配桌面歌词效果
  10. 12864液晶8x16ascii点阵_【单片机自学】7.液晶实验