zoukankan      html  css  js  c++  java
  • 作业04 一个简单的扑克牌游戏

    程序设计要求

    1. 设计一个Card类来表示单张扑克牌的逻辑模型。如下类图所示。
    2. 设计一个Deck类用来表示一副52张的扑克牌,公有接口必须包括生成扑克牌、显示扑克牌、洗牌等这样的成员函数。如下类图所示。 
    1. 程序主函数如下:

    int main() {

        Deck deck;

        deck.MakeDeck();

        deck.ShowDeck();

        return 0;

    }

    1. 运行程序能输出一副扑克牌
    2. View Code
      #include <cstring>
      #include <iostream>
      #include <time.h>
      using namespace std;
      
      char Suit[4] = {5,4,3,6};
      char Face[15][3] = {"0","0","2","3","4","5","6","7","8","9","10","J","Q","K","A"};
      
      class Card {
      private:
          int face,suit;
      public:
          Card();
          void Setsuit(int);
          void Showcard();
          void Setface(int);
          int getsuit();
          int getface();
      };
      
      Card::Card() {
          suit = NULL;
          face = NULL;
      }
      
      void Card::Setface(int x) {
          face = x;
      }
      void Card::Setsuit(int x) {
          suit = x;
      }
      int Card::getsuit() {
          return suit;
      }
      int Card::getface() {
          return face;
      }
      
      void Card::Showcard() {
          cout << Suit[suit];
          cout << Face[face];
      }
      
      
      class Deck { 
      private:
          Card cards[52];
      public:
          Deck();
          void MakeDeck();
          void ShowDeck();
          void Shuffle();
      };
      
      Deck::Deck() {
          for(int i = 0; i < 52; i++) {
              cards[i].Setsuit(0);
              cards[i].Setface(0);
          }
      }
      
      void Deck::Shuffle() {
          //洗牌,随机化算法
      }
      
      void Deck::ShowDeck() {
          for(int i = 1; i < 53; i++) {
              cards[i-1].Showcard();
              if(i % 13 == 0 && i != 0)
                  cout << endl;
              else
                  cout << " ";
          }
          cout << endl;
      }
      
      void Deck::MakeDeck() {
          int k = 0;
          int j = 2;
          for(int i = 0; i < 52; i++) {
              if(j == 15) {
                  k++;
                  j = 2;
              }
              cards[i].Setsuit(k);
              cards[i].Setface(j++);
          }
      }
      int main() {
          Deck deck;
          deck.MakeDeck();
          deck.ShowDeck();
          return 0;
      }
  • 相关阅读:
    [题解]Magic Line-计算几何(2019牛客多校第三场H题)
    [题解]Crazy Binary String-前缀和(2019牛客多校第三场B题)
    [数论]快速幂取模
    [模板]大整数乘法——累加型
    [动态规划] 最大子段和问题
    2073
    17-2-24-D
    17-1-31-C
    2032
    1992
  • 原文地址:https://www.cnblogs.com/gray035/p/3005938.html
Copyright © 2011-2022 走看看