随机事件学习笔记
来源:互联网 发布:蓝色妖姬 js特效 编辑:程序博客网 时间:2024/05/17 22:20
在生活中,相信大家都有过玩牌的经历,在如今游戏和网络风靡的年代,各种单机、网游牌深受大家喜爱,为此我也研究下这个方面,现在我就针对其中的一个洗牌发牌环节作出模拟。
实现原理:撇开大小王不要,剩下52张牌,用1~52,代表52张牌,例如,第一张牌为1,一次类推,用一个4行13列的数组Card随机存储这52个数(使用rand()函数产生行和列),然后再此行和列构成的Card数组单员,依次存入1~52,(用for循环是实现))完成洗牌过程,由于是随机寻找行列,可能找到的行列单元中存有数字,则再次寻找。发牌时,如果我们用花色数组,和牌面值数组包装Card的行列下标,然后将之输出,即可得到需要的花色和牌面。大家可以再下面的代码中细细体会,如有错误,望不吝赐教!
贴出代码:
#include <stdio.h>#include <stdlib.h>#include <time.h>void shuffle(int Card[4][13]);void deal(int Card[4][13],char*wFace[13],char*wSuit[4]);void main(){int Card[4][13]={0};char*wSuit[4]={"\x3","\x4","\x5","\x6"};char*wFace[13]={"one","two","three","four","five","six","seven","eight","nine","ten","jack","quene","king"};srand(time(NULL)); shuffle(Card);deal(Card,wFace,wSuit);}void shuffle(int Card[4][13]){int card,row,column;for(card=1;card<=52;card++){row=rand()%4;column=rand()%13;while(Card[row][column]!=0)//如寻找到的数组单元不为0,则进行再次寻找{row=rand()%4;column=rand()%13;}Card[row][column]=card;}}void deal(int Card[4][13],char*wFace[13],char*wSuit[4]){int card,row,column;char c;for(card=1;card<=52;card++)for(row=0;row<4;row++)for(column=0;column<13;column++){if(Card[row][column]==card){if(card%3==0){c='\n';}else{c='\t';}printf("%5s %-8s%c",wSuit[row],wFace[column],c);}}}
- 随机事件学习笔记
- 随机函数学习笔记
- 随机森林学习笔记
- matlab学习笔记:随机模拟
- 虚幻学习笔记_随机
- 条件随机场学习笔记
- 随机地形生成学习笔记
- 随机事件
- FLEX学习笔记----事件
- 事件监听-学习笔记
- 事件监听学习笔记
- jQuery学习笔记:事件
- JavaScript事件学习笔记
- DOM事件学习笔记
- Jquery事件学习笔记
- C#学习笔记 事件
- DOM事件学习笔记
- DOM事件学习笔记
- SAP HANA学习目录
- Eclipse调试Java程序
- 黑马程序员_java中的多线程2
- vim插件使用简介
- Android 把视图转换为图片,截取屏幕
- 随机事件学习笔记
- 关于函数strtok和strtok_r的使用要点和实现原理(一)
- 数据库事务、隔离级别及锁
- 关于魔兽改键。。。类似11的
- 学生管理系统 宏 出错 名字查找很诡异 scanf() getchar() 用法
- 基于STK的星地光通信链路仿真
- [探讨]开发者眼中的PhoneGap体验
- Jlink百科
- C++对象序列化方案对比