当前位置: 首页 > news >正文

有心学做网站优化建站

有心学做网站,优化建站,上海招考热线网站首页,免费素材库大全网站目录 前言: 1.初始化牌 2.洗牌 3.揭牌 总代码: Card类: CardGame类: Main类: 结语: 前言: 斗地主是全国范围内的一种桌面游戏,本节我们来实现一下斗地主中的简单初始化牌、…

目录

前言:

1.初始化牌

 2.洗牌

3.揭牌

总代码:

Card类:

CardGame类:

Main类:

结语:


前言:

斗地主是全国范围内的一种桌面游戏,本节我们来实现一下斗地主中的简单初始化牌、发牌和看牌功能。按照斗地主的规则,完成洗牌发牌的动作。具体规则为使用 52 张牌(不含大小王)打乱顺序,3 个玩家参与游戏,3 人交替摸牌,每人 5(可以自己修改) 张牌。

实现思路步骤:

1.初始化牌

2.洗牌

3.揭牌

4.剩余牌

效果展示:

实现如下:

1.初始化牌

牌有数字和花色,故我们要自己创建一个类来进行操作。toString方法要记得重写不然后面println不能直接输出。

public class Card{public String suit;//花色public int num;public Card(String suit,int num){this.suit = suit;this.num = num;}@Overridepublic String toString(){return suit+" "+num;}
}

用suits来存储花色。List<Card>可以看成是一个存储Card的一维数组。利用java自带的ArrayLIst的add函数实现尾插。 

public static final String[] suits = {"♥","♣","♦","♠"};//初始化牌public List<Card> buyCard(){List<Card> cardList = new ArrayList<>();for(int i = 0;i < 4;i++){for(int j = 1;j <= 13;j++){String suit = suits[i];Card card = new Card(suit,j);cardList.add(card);}}return cardList;}

 效果如下:

 2.洗牌

利用random来生成随机数,这里有个小细节i是从最后一个数来进行遍历的利用rand来生成i之前的随机数进行交换这样就能保证每个牌都有被洗到。

//洗牌public void shuffle(List<Card> cardList){Random random = new Random();for(int i = cardList.size()-1;i > 0;i--){swap(cardList,i,random.nextInt(i));}}public void swap(List<Card> cardList,int i,int j){Card temp = cardList.get(i);cardList.set(i,cardList.get(j));cardList.set(j,temp);}

效果如下:

3.揭牌

这里解释一下List<List<Card>>,可以看成一个二维数组如图,List<Card>是一个泛型,最外面的List里面存储了一个List<Card>。

//揭牌public List<List<Card>> getCard(List<Card> cardList){List<Card> hand1 = new ArrayList<>();List<Card> hand2 = new ArrayList<>();List<Card> hand3 = new ArrayList<>();List<List<Card>> hand = new ArrayList<>();hand.add(hand1);hand.add(hand2);hand.add(hand3);for(int i = 0;i < 5;i++){for(int j = 0;j < 3;j++){Card card = cardList.remove(0);hand.get(j).add(card);}}return hand;}

总代码:

Card类:

public class Card{public String suit;//花色public int num;public Card(String suit,int num){this.suit = suit;this.num = num;}@Overridepublic String toString(){return suit+" "+num;}
}

CardGame类:

import java.util.List;
import java.util.ArrayList;
import java.util.Random;
public class CardGame{public static final String[] suits = {"♥","♣","♦","♠"};//初始化牌public List<Card> buyCard(){List<Card> cardList = new ArrayList<>();for(int i = 0;i < 4;i++){for(int j = 1;j <= 13;j++){String suit = suits[i];Card card = new Card(suit,j);cardList.add(card);}}return cardList;}//洗牌public void shuffle(List<Card> cardList){Random random = new Random();for(int i = cardList.size()-1;i > 0;i--){swap(cardList,i,random.nextInt(i));}}public void swap(List<Card> cardList,int i,int j){Card temp = cardList.get(i);cardList.set(i,cardList.get(j));cardList.set(j,temp);}//揭牌public List<List<Card>> getCard(List<Card> cardList){List<Card> hand1 = new ArrayList<>();List<Card> hand2 = new ArrayList<>();List<Card> hand3 = new ArrayList<>();List<List<Card>> hand = new ArrayList<>();hand.add(hand1);hand.add(hand2);hand.add(hand3);for(int i = 0;i < 5;i++){for(int j = 0;j < 3;j++){Card card = cardList.remove(0);hand.get(j).add(card);}}return hand;}
}

Main类:

import java.util.List;
public class Main {public static void main(String[] args){CardGame cardgame = new CardGame();List<Card> ret = cardgame.buyCard();System.out.println("初始化牌");System.out.println(ret.subList(0,13));System.out.println(ret.subList(13,26));System.out.println(ret.subList(26,39));System.out.println(ret.subList(39,52));System.out.println("洗牌");cardgame.shuffle(ret);System.out.println(ret.subList(0,13));System.out.println(ret.subList(13,26));System.out.println(ret.subList(26,39));System.out.println(ret.subList(39,52));System.out.println("揭牌");List<List<Card>> hand = cardgame.getCard(ret);for(int i = 0;i < 3;i++){System.out.println("第 "+(i+1)+"个人的牌:"+hand.get(i));}System.out.println("剩下的牌:");System.out.println(ret);}
}

结语:

其实写博客不仅仅是为了教大家,同时这也有利于我巩固自己的知识点,和一个学习的总结,由于作者水平有限,对文章有任何问题的还请指出,接受大家的批评,让我改进,如果大家有所收获的话还请不要吝啬你们的点赞收藏和关注,这可以激励我写出更加优秀的文章。

http://www.ds6.com.cn/news/51691.html

相关文章:

  • 手机网站生成工具网站关键词全国各地的排名情况
  • 学做ps的网站有哪些外贸网站营销推广
  • 找工程分包网站淘宝排名查询工具
  • 靖江网站建设公司域名访问网站
  • 全新正版营销网站茶叶推广软文
  • wordpress木子seo搜索引擎优化心得体会
  • 上海中高端网站建设服装营销方式和手段
  • 佛山医疗网站建设创量广告投放平台
  • 给小孩子做网站百度站长工具平台登录
  • 北京快三走势图今天六六seo基础运营第三讲
  • 网站首页代码模板太仓seo网站优化软件
  • 网站如何做背景音乐查询友情链接
  • 表情包在线制作网站微信群发软件
  • 网站正在建设中手机版网络推广宣传方式
  • 中学网站模板下载免费个人网站建站
  • 做qq游戏的视频秀网站关键词优化分析工具
  • 比价网站源码域名停靠网页推广大全2021
  • 做网络推广阿里巴巴还是网站好seo收费低
  • 做网站怎么把字弄图片上去百度热搜电视剧
  • 惠州外贸网站建设搜索软件使用排名
  • 汕头免费模板建站产品怎么做推广和宣传
  • 免费建建网站百度用户服务中心客服电话
  • 如何注册公司支付宝南宁seo计费管理
  • 物流网站建设图片播放量自助下单平台
  • 北京太阳宫网站建设金城武重庆森林经典台词
  • 做公众号的必备参考网站模拟搜索点击软件
  • 专做餐饮的网站情感营销的十大案例
  • 有没有做游戏评测的网站seo职业培训学校
  • 苏州做网站公司排名aso优化什么意思
  • 淄博学校网站建设公司网络营销策略内容