发牌

简介:
/*********************************************************
 * From C PROGRAMMING: A MODERN APPROACH, by K. N. King  *
 * Copyright (c) 1996 W. W. Norton & Company, Inc.       *
 * All rights reserved.                                  *
 * This program may be freely distributed for class use, *
 * provided that this copyright notice is retained.      *
 *********************************************************/
/* deal.c (Chapter 8, page 150) */
/* Deals a random hand of cards */
/*发牌*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUM_SUITS 4   //4个花色
#define NUM_RANKS 13  //每个花色13张牌
#define TRUE 1
#define FALSE 0
typedef int Bool;  //定义新数据类型Bool
main()
{
  Bool in_hand[NUM_SUITS][NUM_RANKS] = {0}; //定义二维数组in_hand 4行13列
  int num_cards, rank, suit;
  const char rank_code[] = {'2','3','4','5','6','7','8',
                            '9','t','j','q','k','a'};  //数组中存13牌
  const char suit_code[] = {'c','d','h','s'};  //数组中存4个花色
  // c,d,h,s代表梅花、红桃 、方片 、黑桃四种花色
  //声明为const的数组不能进行修改
  srand((unsigned) time(NULL));
  //srand函数:初始化C语言的随机数生成器,通过把time函数的返回值传递给srand这种方法
  //可以避免程序在每次运行时发同样的牌
  printf("Enter number of cards in hand: ");
  scanf("%d", &num_cards);
  printf("Your hand:");
  while (num_cards > 0) {
    suit = rand() % NUM_SUITS;     /* picks a random suit */
    rank = rand() % NUM_RANKS;     /* picks a random rank */
    if (!in_hand[suit][rank]) {
      in_hand[suit][rank] = TRUE;  //避免重复选择同一花色的牌
      num_cards--;  //这里是循环条件
      printf(" %c%c", rank_code[rank], suit_code[suit]);//输出每次随机产生的牌
    }
  }
  printf("\n");
  return 0;
}











本文转自dllglvzhenfeng51CTO博客,原文链接: http://blog.51cto.com/1443208/313597 ,如需转载请自行联系原作者
相关文章
【剑指offer】-扑克牌顺子-44/67
【剑指offer】-扑克牌顺子-44/67
|
容器
剑指offer 69. 扑克牌的顺子
剑指offer 69. 扑克牌的顺子
90 0
|
Java
【Java】三人扑克牌随机发牌
【Java】三人扑克牌随机发牌
142 0
用Java实现简易的洗牌和发牌功能
在日常生活中,想必大家都玩过或者听过斗地主吧,斗地主大致分为三个过程:洗牌,发牌,玩家按照规则将手中的牌给打完,谁最先打完,谁就获胜。这听起来挺简单的,但是影响你胜利的因素有很多:洗牌,玩家的水平。在赌场中很多人就是在洗牌跟发牌的过程中作弊的,那么我们可不可以用代码来实现洗牌跟发牌的功能来实现相对公平呢?
简单设计一下洗牌和发牌
简单设计一下洗牌和发牌
94 0
简单设计一下洗牌和发牌
|
开发工具
扑克牌问题
扑克牌问题
扑克牌问题
|
算法
【刷算法】扑克牌顺子
【刷算法】扑克牌顺子