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

网站建立策划书无印良品官方网络商城

网站建立策划书,无印良品官方网络商城,手举牌战队图片在线制作,长沙传媒公司招聘信息综合案例:斗地主 1.程序概述 这是一个模拟斗地主游戏发牌过程的C语言程序,实现了扑克牌的初始化、洗牌和发牌功能。 2.功能需求 2.1 扑克牌定义 使用结构体 Card 表示一张牌,包含: 花色属性suit(0-3表示普通花色♥…

综合案例:斗地主

1.程序概述

这是一个模拟斗地主游戏发牌过程的C语言程序,实现了扑克牌的初始化、洗牌和发牌功能。

2.功能需求

2.1 扑克牌定义
  • 使用结构体 Card 表示一张牌,包含:
    • 花色属性suit(0-3表示普通花色♥♠♦♣,4表示小王,5表示大王)
    • 点数属性rank(0-12对应3-A,2,-1表示大小王)
2.2 主要功能
  1. 初始化牌组
  • 创建包含54张牌的牌组(52张普通牌+2张王牌)
  • 普通牌按花色(♠,♥,♣,♦)和点数(3-2)排列
  1. 洗牌功能

    • 使用随机数对牌组进行随机排序
    • 确保每次运行洗牌结果不同(基于时间种子)
  2. 发牌功能

    • 将洗好的牌发给3个玩家
    • 每个玩家17张牌
    • 剩余3张作为底牌
  3. 显示功能

    • 打印每个玩家的手牌 打印底牌
    • 打印底牌

3.数据结构

  • suits[] : 存储4种花色符号的字符串数组
  • ranks[]: 存储13个点数等级的字符串数组
  • jokers[] : 存储大小王描述的字符串数组
  • Card 结构体: 表示单张牌的数据结构
  • 牌组数组: deck[54]
  • 玩家手牌数组: player1[17] , player2[17], player3[17]
  • 底牌数组: bottomCards[3]

4.用户交互

程序运行后自动完成以下流程:

  1. 初始化牌组
  2. 洗牌
  3. 发牌
  4. 显示发牌结果(3个玩家的手牌和底牌)

5.输出格式

  • 普通牌显示格式:花色+点数(如"♠ 3")
  • 王牌显示格式:“小王"或"大王”
  • 玩家手牌按顺序显示,每张牌用空格分隔
  • 底牌同样格式显示

6.代码演示

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <math.h>// 定义扑克牌的花色和点数
const char *suits[] = {"♠","♥","♣","♦"}; // 花色
const char *ranks[] = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"}; // 点数
const char *joker[] = {"小王","大王"}; // 大小王// 定义牌的结构体
typedef struct
{int suit; // 花色(0-3:普通牌,4:小王,5:大王)int rank; // 点数(0-12:普通牌,-1:大小王)
}Card;// 声明函数原型
void initDeck(Card *deck);
void shuffeDeck(Card *deck, int len);
void dealCards(Card *deck, Card *player1, Card *player2, Card *player3, Card *bottomCards);
void printCard(Card card);int main(int argc,char *argv[])
{Card deck[54]; // 一副牌(54张,包含大小王)Card player1[17], player2[17], player3[17]; // 三个玩家的手牌Card bottomCards[3]; // 底牌// 初始化牌initDeck(deck);// 洗牌shuffeDeck(deck, 54);// 发牌dealCards(deck, player1, player2, player3, bottomCards);// 打印玩家手牌和底牌int i;printf("玩家1的手牌:");for(i = 0; i < 17; i++) printCard(player1[i]);printf("\n");printf("玩家2的手牌:");for(i = 0; i < 17; i++) printCard(player2[i]);printf("\n");printf("玩家3的手牌:");for(i = 0; i < 17; i++) printCard(player3[i]);printf("\n");printf("底牌:");for(i = 0; i < 3; i++) printCard(bottomCards[i]);printf("\n");return 0;
}/**
* 初始化一副牌(54张,包含大小王)
*/
void initDeck(Card *deck)
{// 定义一个索引int index = 0;// 初始化普通牌for(int suit = 0; suit < 4; suit++) // 遍历花色{for(int rank = 0; rank < 13; rank++) // 遍历点数{deck[index].suit = suit; // 每一张牌的花色(索引)deck[index].rank = rank; // 每一张牌的点数(索引)index++;}}// 初始化大小王deck[index].suit = 4; // 小王deck[index].rank = -1;index++;deck[index].suit = 5; // 大王deck[index].rank = -1;
}/**
* 洗牌(打乱牌序)
*/
void shuffeDeck(Card *deck, int len)
{// 设置随机种子srand(time(NULL));// 洗牌for(int i = 0; i < len; i++){int j = rand() % len; // 索引 0 ~ 53// 将随机出来的牌序和原本的排序交换Card temp = deck[i]; deck[i] = deck[j];deck[j] = temp;  }
}
/**
* 发牌(3个玩家各自17张牌,最后3张牌作为底牌)
*/
void dealCards(Card *deck, Card *player1, Card *player2, Card *player3, Card *bottomCards)
{int index = 0;// 给玩家发牌for(int i = 0; i < 17; i++){player1[i] = deck[index++]; // 玩家1 等价于 deck[index]; index++;player2[i] = deck[index++]; // 玩家2player3[i] = deck[index++]; // 玩家3}// 最后3张留作底牌for(int i = 0; i < 3; i++){bottomCards[i] = deck[index++];}
}/**
* 打印牌(根据牌的索引,显示对应的字符串)
*/
void printCard(Card card)
{if(card.suit == 4 || card.suit == 5){// 大小王printf("%s ", joker[card.suit - 4]);}else{// 普通牌printf("%s %s ", suits[card.suit], ranks[card.rank]);}
}

运行效果:

在这里插入图片描述


文章转载自:

http://sDf2b7KL.kbgzj.cn
http://D8V7ojH9.kbgzj.cn
http://VgepvDn3.kbgzj.cn
http://4iniq0mJ.kbgzj.cn
http://limQY9w9.kbgzj.cn
http://2EiEanbf.kbgzj.cn
http://E8bjoWq4.kbgzj.cn
http://pzEtId08.kbgzj.cn
http://XY7VoQNg.kbgzj.cn
http://f4kgmVxl.kbgzj.cn
http://9i0GldLY.kbgzj.cn
http://HBhU7HCC.kbgzj.cn
http://9Cw1X2sC.kbgzj.cn
http://4hZ8GUS2.kbgzj.cn
http://CieIRqhO.kbgzj.cn
http://5KQQQhpp.kbgzj.cn
http://lABczSwO.kbgzj.cn
http://xOTEtTne.kbgzj.cn
http://r2KM5hcn.kbgzj.cn
http://OvvIJs9R.kbgzj.cn
http://T03zVdmP.kbgzj.cn
http://2JIjMsp8.kbgzj.cn
http://JNwAKG1u.kbgzj.cn
http://4uGvRS0k.kbgzj.cn
http://8ri0umow.kbgzj.cn
http://pBeNW6q0.kbgzj.cn
http://NDfVuXDS.kbgzj.cn
http://9WxluE7B.kbgzj.cn
http://PfdRpk0R.kbgzj.cn
http://7yQwlgKJ.kbgzj.cn
http://www.dtcms.com/wzjs/615988.html

相关文章:

  • 呼和浩特网站建设价格深圳和胜建设公司
  • 中国石油工程建设有限公司网站网站上职业学校排名 该怎么做
  • 开发制作小程序公司seo企业顾问
  • 苏州企业建站系统菏泽百度网站建设
  • 廊坊网站推广外包网站怎么做浏览量才会多
  • dede织梦做的网站 栏目页有切换js 怎么循环子栏目 调子栏目青岛建站软件
  • 网站建设公司运营模式聊城开发区建设局网站
  • 微信公众号上微做网站邯郸企业做网站费用
  • 贵阳网站建设哪家好方舟盐城专业网站建设哪家好
  • 商城网站 免费开源深圳专业建设网站
  • 中国城乡建设部官方网站两个网站 一个域名
  • 网站公司企业网站会员卡管理系统软件
  • 石家庄net网站开发湖北网站建设电话
  • 网站开发 会费管理 模块专业电商网站建设价格
  • qq邮件网站建设的模块线下营销方式主要有哪些
  • 网站建设管理工作情况报告中国建设招标网是个假网站
  • 免费做网站怎么盈利wordpress直接显示文章
  • 宿州市网站建设有哪些公司开发公司工程部奖励规定
  • 国外空间网站互联二维码生成器
  • 开网站成本access做网站服务器
  • 找人做网站定金不退怎样推广自己做的网站
  • 阳江哪里做网站平台期怎么突破
  • 网站建设怎么设置网址河北网站建设推广公司
  • 做美妆网站的关键词wordpress界面404
  • 广州企业网站建设多少钱天津网站建设企业系统
  • 建设部网站王尚春做带v头像的网站
  • 无锡江阴做网站公司关于网站开发书籍
  • 免费大气网站模板代理网址域名
  • 国外哪些网站做产品推广比较好网站诊断及优化方案
  • 网站建设一般一年多少费用专业零基础网站建设教学公司