二维数组的应用——模拟扑克牌游戏中的发牌过程

编程入门 行业动态 更新时间:2024-10-07 04:24:50

二维数组的应用——模拟<a href=https://www.elefans.com/category/jswz/34/1766301.html style=扑克牌游戏中的发牌过程"/>

二维数组的应用——模拟扑克牌游戏中的发牌过程

二维数组除了在数学中的行列式、矩阵等中有应用,游戏中也常常可以见到。

模拟扑克牌游戏中的发牌过程,随机将 52 张扑克发给两个玩家。

分析:扑克牌中每张牌都包含两个信息:花色(为黑桃、红桃、方块或者梅花)以及大小(为2,3,4,5,6,7,8,9,10,J,Q,K或者A),可以用两个一维字符数组kind和size分别有储。发牌过程则用随机数抽取花色和大小,表示抽取出的一张牌,依次发给两个玩家。为了表示每张牌的状态(未发出、发给玩家1或玩家2),再定义二维数组card存放该信息。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>int main()
{int card[13][4] = {0};const char kind[4] = {35,36,37,38};//分别对应 #、$、%、& 4个花色const char size[13] = { '2','3','4','5','6','7','8','9','X','J','Q','K','A' };int i, j, k;int sig = 1;int total = 52;srand(time(NULL));while(total){j = rand() % 13;//得0~12的随机数k = rand() % 4;//得0~3的随机数if (!card[j][k])//该张牌还未使用过{card[j][k] = sig;//玩家一或二已经用了此牌sig = -sig;//下一次发牌给另一个玩家total --;  //每张牌只能发一次,循环,你一张,我一张}}printf("玩家一:\n");for (i = 0; i < 13; i++){printf("%c : ",size[i]);//size都按顺序for (j = 0; j < 4; j++){if (card[i][j] == 1){printf("%5c",kind[j]);//都是顺着输出的}}printf("\n");}printf("玩家二:\n");for (i = 0; i < 13; i++){printf("%c : ", size[i]);for (j = 0; j < 4; j++){if (card[i][j] == -1){printf("%5c", kind[j]);}}printf("\n");}return 0;
}

因为涉及到随机数的概念,所以每次发牌的结果都是不同的:

 

 这样就大功告成了!

更多推荐

二维数组的应用——模拟扑克牌游戏中的发牌过程

本文发布于:2024-03-14 00:26:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1735218.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:扑克牌   数组   过程   游戏中

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!