问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁会c语言编程发牌洗牌程序

发布网友 发布时间:2022-05-24 12:07

我来回答

2个回答

热心网友 时间:2023-10-12 18:56

这个文件包含了生成牌,发牌,洗牌等操作,不过是Java写的,但是程序语言和C还是有很多相通的,你知道了原理自然能自己做

/**
* 文件名:Card.java 2014-1-24 上午8:46:59
* @author Administrator
*/
package cc.icoc.javaxu.card.bean;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**扑克牌卡片类
* 创建时间: 2014-1-24 上午8:46:59
*
* @author 许仕永
* 项目名称: PucCard
* 文件名: Card.java
* 编码: GBK
* @Description:
* @JKD JDK 1.6.0_21
* @version v1.0
* @TODO
*/
public class Card implements Comparable
{
int cardType; //花色
int cardNum; //点数

//存储全部的卡牌
public static List cardsList = new ArrayList();

public Card(int cardNum,int cardType)
{
this.cardNum = cardNum;
this.cardType = cardType;
}

/**初始化卡牌**/
public static void initCards()
{
// String[] types = new String[]{"黑桃","红桃","梅花","方片","小王","大王"};
int[] types = new int[]{4,3,2,1,5,6};
/**
* * 54张,
* 红桃,黑桃,梅花,方块各1--13 13张
* 大小王2张
* 2+13x4=54
*/
for ( int j = 0; j < 4; j++ )
{
for ( int i = 1; i <= 13 ; i++ )
{
cardsList.add(new Card(i, types[j]));
}
}

//大小王的初始化
cardsList.add(new Card(14, types[4]));
cardsList.add(new Card(15, types[5]));
}

/**洗牌 以避免抽牌时抽到的卡牌次序时初始化卡牌的次序**/
public static void cleanCards()
{
Random random = new Random();
//洗牌次数控制在卡牌张数的一半+20以内的随机浮动次数
for ( int i = 0; i < (cardsList.size() / 2 + random.nextInt(20)); i++ )
{
int from = random.nextInt(cardsList.size());
int to = random.nextInt(cardsList.size());
Object temp;
if(to != from)
{
temp = cardsList.get(to);
cardsList.set(to, cardsList.get(from));
cardsList.set(from, temp);
}
}
}

@Override
public String toString()
{
// int[] types = new int[]{4,3,2,1,5,6};
String[] types = new String[]{"♠","♥","♣","♢","大王","小王"};
String typeString = null;
switch (cardType)
{
case 4 :typeString = types[0];break;
case 3 :typeString = types[1];break;
case 2 :typeString = types[2];break;
case 1 :typeString = types[3];break;
case 5 :typeString = types[5];break;
case 6 :typeString = types[4];break;
default :
break;
}

return "Card [" + typeString + " " + cardNum + "]";
}

@Override
public int compareTo(Object o)
{
//黑桃、红桃、梅花、方片、小王、大王 对象 4,3,2,1,5,6
//大小次序 大王、小王、2、A、K、Q、J、10...3。
Card card = (Card)o;
if((card.cardNum == 2) && (this.cardNum != 2))
{
if((this.cardNum < 14))
{
return 1;
}

else if(this.cardNum >= 14)
{
return -1;
}
}
else if((this.cardNum == 2) && (this.cardNum == 2))
{
return card.cardType - this.cardType;
}

if((card.cardNum == 1) && (this.cardNum != 1))
{
if((this.cardNum < 13))
{
return 1;
}

else if(this.cardNum >= 13)
{
return -1;
}
}
else if((this.cardNum == 1) && (this.cardNum == 1))
{
return card.cardType - this.cardType;
}

if((this.cardNum == card.cardNum))
{
return this.cardType - card.cardType;
}

return card.cardNum - this.cardNum;
}
}

热心网友 时间:2023-10-12 18:57

洗牌就是把数组中值随机切换位置,发牌很简单顺序把数组的值给几个人即可
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
win10电脑hdmiwin10笔记本hdmi连接电视没反应 平板电脑与电视机联接华为平板怎么投屏到电视上 长虹chiq电脑无线投影如何无线把电脑屏幕投影到电视屏幕上 模拟电视电脑系统智能电视怎么变成电脑系统 ops电脑加装固态硬盘ops电脑是什么意思 我想问一下立宇泰电子的ARMSYS6410开发板可以外接什么模块? 小心那些处理过的2元绿幽灵,教你这几招就能识别! 如何辨别人民币是否水洗过,刚有兴趣做收藏可去买第四套人民币还有是否水... oppor7splus手机怎么样现在?照相好不好。是多会儿出来的机子呢。目前... ps怎么改像素大小且不模糊 用C语言编写一个52张扑克牌随即洗牌的程序 并写上注释 木姜菜和薄荷怎么区别 c语言编程用扑克牌洗牌和发牌 C语言 编写洗牌的问题 什么是花瓶菜 我下载了64位版本的CAD,为什么安装不上天正建筑呢?哪位哥哥告诉下怎么办,。或者给我发个适合用的天正。 编写一个C语言程序,模拟洗牌和发牌的过程 C语言编程题-洗牌 为啥我装了cad04了还是装不了天正建筑8.0,提示安装cad2000到2010 急急急!!! 洗牌问题这样写怎么不对?C语言 C语言完全洗牌程式 天正建筑CAD安装问题 兄弟擅自做主将母亲送精神病院,我该怎么办? 我姑姑的女儿离婚以后,得了很重的精神病,有时候一个人说的不停,男方给了十万。我姑整天都是很痛苦 精神病院会打人吗 姜咸菜的做法,姜咸菜怎么做好吃,姜咸菜的家常 精神病(狂燥症)的治疗方法?? 精神病人没有合作医疗怎样寻求经济帮助 周期性精神病的中医治疗 精神病患者,最近老头晕、心里难受、脸色苍白。去医院检查没什么问题,说是神经绷得太紧了或是吃药太多... 为什么我在网上下的天正建筑CAD安装之后不能用?总是提示没有可用版本,我系统是32位的 如何求C语言扑克牌洗牌发牌,发的牌要从大到小排序,每个部分都要用 64位的win7旗舰版系统,安装了2007的CAD后,怎么安装不上天正建筑 win7 64位系统安装的是CAD2008可安装不上天正建筑 c语言 洗牌程序 蒸汽洗车到底对车漆有损伤吗 C语言 洗牌 蒸汽清洗机最高温度可达到120℃是根据什么原理制成的(中考模拟题) C语言洗牌程序bug求助 C语言洗牌发牌程序 编写C语言程序,模拟将一副扑克牌54张随机分给4个人 (如何表达不同花色和大小,如何高效洗牌) C语言实现0~999洗牌,要求每次洗牌结果不一样,下面这段程序中基本可以实现,但是会有重复和丢失,请教高 c语言 洗牌问题 求挑错 如何使用流风清音制作一个简单的招聘信息网站,就一个html再链接一个css外部样式表这种,简单的 - 信息提示 怎么在QQ群里添加在线文档文件夹 有人借钱不还,找不到人,该怎么办? 别人借钱不还,找不到人怎么办 朋友借钱不还,现在找不到人怎么办 对于借钱不还又不接电话不回短信的人,找到他应该怎样?