Android 实现扑克牌动画,Android_开发_Day10_扑克游戏

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.退出游戏");

}

}

实际使用效果:

b5989ee0c7da?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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

b5989ee0c7da?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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

b5989ee0c7da?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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

总结:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值