C语言:斗地主发牌程序
来源:互联网 发布:gopro 软件 编辑:程序博客网 时间:2024/05/18 02:53
题目来源仍然是小学期,就当娱乐
贴代码:
#include<stdio.h>#include<stdlib.h>#include<time.h>//函数声明void sortCards(int *, int);void showCards(int *, int);void changeCard(int);int getOneCard();int Cards[55] = { 0 };//用于记录每张牌是否被用过( 丢弃cards[0]int main() //rand()%m+1,产生0- m-1的随机数{ int i, iCount = 0; int Player_A[18] = { NULL }; int Player_B[18] = { NULL }; int Player_C[18] = { NULL }; int Ground[4] = { NULL };//Abandon all [0] for (i = 1; i <= 3; i++)//获取底牌 { Ground[i] = getOneCard(); } sortCards(Ground, 4);//按牌大小排序 for (i = 1; i <= 17; i++)//为三个玩家分别发牌 { Player_A[i] = getOneCard(); Player_B[i] = getOneCard(); Player_C[i] = getOneCard(); } puts("Player's Cards"); sortCards(Player_A, 18); sortCards(Player_B, 18); sortCards(Player_C, 18); puts("Player_A:");//打印A的牌 showCards(Player_A, 17); puts("\n\nPlayer_B:");//打印B的牌 showCards(Player_B, 17); puts("\n\nPlayer_C:");//打印C的牌 showCards(Player_C, 17); puts("\n\nCards on the Ground:"); showCards(Ground, 3);//打印底牌 puts(""); system("pause"); return 0;}int getOneCard()//通过随机数取得一张没用过的牌{ int iRandNum; srand(time(0));//取时间随机数 iRandNum = rand() % 54 + 1; while (Cards[iRandNum] == 1)//被用过的牌会重新取随机数 { iRandNum = rand() % 54 + 1; } Cards[iRandNum] = 1; return iRandNum;}void showCards(int *Player, int Count)//打印玩家的牌{ int i; for (i = 1; i <= Count; i++) { if (Player[i] == 53) { printf(" 小王", Player[i]); } else if (Player[i] == 54) { printf(" 大王", Player[i]); } else if (Player[i] % 4 == 0) { printf(" 黑"); changeCard(Player[i]); } else if ((Player[i] + 1) % 4 == 0) { printf(" 方"); changeCard(Player[i]); } else if (Player[i] % 2 == 0) { printf(" 红"); changeCard(Player[i]); } else { printf(" 梅"); changeCard(Player[i]); } }}void changeCard(int Card)//将数字和纸牌进行对换{ Card /= 4.001; switch (Card) { case 0:printf("3 "); break; case 1:printf("4 "); break; case 2:printf("5 "); break; case 3:printf("6 "); break; case 4:printf("7 "); break; case 5:printf("8 "); break; case 6:printf("9 "); break;; case 7:printf("10 "); break; case 8:printf("J"); break; case 9:printf("Q"); break; case 10:printf("K"); break; case 11:printf("A"); break; case 12:printf("2"); break; }}void sortCards(int *Nums, int Length)//排序手中的牌{ int i, j, iTemp; for (i = 1; i <= Length - 1; i++) { for (j = 1; j <= Length - 2; j++) { if (Nums[j]>Nums[j + 1]) { iTemp = Nums[j]; Nums[j] = Nums[j + 1]; Nums[j + 1] = iTemp; } } }}
程序有错麻烦告诉我^_^
阅读全文
1 0
- C语言:斗地主发牌程序
- 斗地主发牌小程序
- 斗地主游戏发牌java程序
- 斗地主游戏发牌C#程序
- c++ 斗地主发牌程序中级(分配发牌算法)
- 斗地主发牌算法
- 斗地主:洗牌发牌
- 斗地主发牌
- 用java写的一个斗地主发牌小程序
- 用java编写模拟斗地主洗牌发牌程序
- 斗地主发牌算法之c++(初级)
- 斗地主 发牌核心 代码
- 实现斗地主发牌(java)
- 斗地主洗牌+发牌+排序
- Java模拟斗地主发牌
- cocos斗地主发牌动画
- Java-斗地主洗牌发牌
- Java简易斗地主发牌
- 【jzoj5231】【NOIP2017模拟A组模拟8.5】【序列问题】 【分治】
- 欢迎使用CSDN-markdown编辑器
- pip国内源
- openfire+XMPP实现即时通讯
- 练习 2-1 编写一个程序以确定分别由signed及unsigned 限定的char、short、int与long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现
- C语言:斗地主发牌程序
- WideCharToMultiByte 和 MultiByteToWideChar 之 codePage 参数(二)
- day5作业:购物车(1)
- 最近公共祖先LCA
- Hadoop数据操作系统YARN全解析
- Python 函数
- C语言指针2
- Python字符串乘法
- git(十五) git rebase 原理深度剖析