21xrx.com
2024-12-22 21:37:27 Sunday
登录
文章检索 我的文章 写文章
C++扑克牌游戏代码
2023-07-10 19:53:23 深夜i     --     --
C++ 扑克牌游戏 代码 程序设计 游戏规则

C++语言是一种功能强大的编程语言,它可以用于各种不同的应用程序开发。这篇文章将介绍一下如何使用C++编写一个扑克牌游戏。

首先,我们需要定义一个扑克牌结构体,用于存储每张牌的花色和点数。


struct Card

  int rank;

  int suit;

;

然后,我们需要创建一个Card数组,用于存储整副牌。


Card deck[52];

接下来,我们需要编写一个函数来初始化这个Card数组,将52张牌按顺序放入。


void initDeck(Card* deck) {

  for(int i = 0; i < 52; i++) {

    deck[i].rank = i % 13;

    deck[i].suit = i / 13;

  }

}

现在我们已经有了一副牌,并且也知道了每张牌的点数和花色。接下来,我们需要编写一个函数来洗牌,将牌随机打乱。


void shuffleDeck(Card* deck) {

  for(int i = 0; i < 52; i++) {

    int j = rand() % 52;

    Card temp = deck[i];

    deck[i] = deck[j];

    deck[j] = temp;

  }

}

现在,我们已经可以开始玩扑克牌游戏了。我们可以编写一个函数来发牌,将牌发给玩家和电脑。


void dealCards(Card* deck, Card* player, Card* computer) {

  for(int i = 0; i < 4; i++) {

    if(i % 2 == 0) {

      player[i / 2] = deck[i];

    } else {

      computer[i / 2] = deck[i];

    }

  }

}

最后,我们需要编写一个函数来比较玩家和电脑的手牌,决定谁是胜利者。


int compareHands(Card* player, Card* computer) {

  int playerPoints = 0;

  int computerPoints = 0;

  

  for(int i = 0; i < 2; i++) {

    playerPoints += player[i].rank;

    computerPoints += computer[i].rank;

  }

  

  if(playerPoints > computerPoints)

    return 1;

   else if(computerPoints > playerPoints)

    return -1;

   else

    return 0;

  

}

现在我们已经完成了一款简单的扑克牌游戏。

完整的代码如下:


#include <iostream>

#include <cstdlib>

#include <ctime>

struct Card

  int rank;

  int suit;

;

void initDeck(Card* deck) {

  for(int i = 0; i < 52; i++) {

    deck[i].rank = i % 13;

    deck[i].suit = i / 13;

  }

}

void shuffleDeck(Card* deck) {

  for(int i = 0; i < 52; i++) {

    int j = rand() % 52;

    Card temp = deck[i];

    deck[i] = deck[j];

    deck[j] = temp;

  }

}

void dealCards(Card* deck, Card* player, Card* computer) {

  for(int i = 0; i < 4; i++) {

    if(i % 2 == 0) {

      player[i / 2] = deck[i];

    } else {

      computer[i / 2] = deck[i];

    }

  }

}

int compareHands(Card* player, Card* computer) {

  int playerPoints = 0;

  int computerPoints = 0;

  

  for(int i = 0; i < 2; i++) {

    playerPoints += player[i].rank;

    computerPoints += computer[i].rank;

  }

  

  if(playerPoints > computerPoints)

    return 1;

   else if(computerPoints > playerPoints)

    return -1;

   else

    return 0;

  

}

int main() {

  srand(time(NULL));

  

  Card deck[52];

  initDeck(deck);

  shuffleDeck(deck);

  

  Card player[2];

  Card computer[2];

  dealCards(deck, player, computer);

  

  int winner = compareHands(player, computer);

  

  if(winner == 1)

    std::cout << "Player wins!" << std::endl;

   else if(winner == -1)

    std::cout << "Computer wins!" << std::endl;

   else

    std::cout << "Tie game!" << std::endl;

  

  

  return 0;

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复