扑克牌游戏

在这里插入图片描述
完整代码:

#include <iostream>

#include <string>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>	

#include <algorithm>
using namespace std;

class Playing_Card    //扑克类
{
   
	//private:
public:
	int m_Value; //1~10   10 20 30
	char m_Face[3];  //扑克的数字大小  A\2\3\4\5\6\7\8\9\10\J\Q\K
	char m_Suit;     //扑克的花色(黑、红、梅、方、大王、小王)  1,2,3,4,5,6

	friend class PerDeck;
public:
	Playing_Card();		//构造初始化				
	void showcard();	//打印扑克						
	void Card_Make(int);//扑克制作
};

class Deck	//一副扑克(52张)加两张大小王										
{
   
	//private:
public:
	Playing_Card m_cardarray[54];
	int m_lastdelt;

	friend class PerDeck;
public:
	Deck();
	void MakeDeck();
	void Deal_One();
	void ShowDeck();
	void DeckShuff(int);
	void Remove_Card();
};


//某个人拿的牌
class PerDeck
{
   
	//private:
public:
	Playing_Card m_cards[14]; // 每个人最多13张牌 + 1张可能的大小王  
	int m_NumCards=14;

public:
	// 排序方法,按照花色排序  
	void SortBySuit() 
	{
   
		//sort(m_cards, m_cards+ m_NumCards, [](const Playing_Card& a, const Playing_Card& b) {
   
		//	return a.m_Suit < b.m_Suit; // 假设花色字符 '1' 到 '6' 是递增的  
		//	});
		for (int i = 0; i < 14-1; i++)
		{
   
			for (int j = 0; j < 14 - i - 1; j++)
			{
   
				if (m_cards[j].m_Suit > m_cards[j + 1].m_Suit)//这是升序排法,前一个数和后一个数比较,如果前数大则与后一个数换位置
				{
   
					Playing_Card tem = m_cards[j];
					m_cards[j] = m_cards[j + 1];
					m_cards[j + 1] = tem;
				}
			}
		}
	}

	// 排序方法,按照面值排序  
	void SortByFace() 
	{
   
		for (int i = 0; i < 14 - 1; i++)
		{
   
			for (int j = 0; j < 14 - i - 1; j++)
			{
   
				if (m_cards[j].m_Face[1] > m_cards[j + 1].m_Face[1])//这是升序排法,前一个数和后一个数比较,如果前数大则与后一个数换位置
				{
   
					Playing_Card tem = m_cards[j];
					m_cards[j] = m_cards[j + 1];
					m_cards[j + 1] = tem;
				}
			}
		}
	}

};

//四个人玩牌的过程
class PlayDeck
{
   
	//private:
public:
	Deck m_deck;
	PerDeck m_players[4];

	int AllCards = 54;

	int cnt = 0;

public:
	void DealCards(); //给四个人发牌
	void DisplayDeck();// 显示每个人的牌

	void RemoveCard(int playerIndex, int cardIndex);// 从指定玩家手中删除指定牌 

	void RemoveCardBySuitAndValue(char suit, char face);

	void RemoveFourCard(int index);//删除一轮的牌

	// 花色排序  
	void DisplaySortedDeck() 
	{
   
		//for (int i = 0; i < 4; ++i) {
   
		//	m_players[i].SortBySuit(); // 对每个玩家的牌进行排序  
		//	std::cout << "Player " << (i + 1) << " cards (sorted by suit):\n";
		//	for (int j = 0; j < m_players[i].m_NumCards; ++j) {
   
		//		m_players[i].m_cards[j].showcard(); // 显示排序后的牌  
		//		std::cout << std::endl;
		//	}
		//	std::cout << std::endl;
		//}

		for (int i = 0; i < 4; i++)
		{
   
			m_players[i].SortBySuit(

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/675742.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ERP系统源码:企业资源规划的技术实现与优化

ERP&#xff08;Enterprise Resource Planning&#xff0c;企业资源规划&#xff09;系统是一种集成管理软件&#xff0c;它将企业的所有业务流程&#xff0c;包括采购、生产、库存、销售、财务等集成在一起&#xff0c;实现信息共享和资源优化配置。本文将详细介绍ERP系统的技…

C++入门5——C/C++动态内存管理(new与delete)

目录 1. 一图搞懂C/C的内存分布 2. 存在动态内存分配的原因 3. C语言中的动态内存管理方式 4. C内存管理方式 4.1 new/delete操作内置类型 4.2 new/delete操作自定义类型 1. 一图搞懂C/C的内存分布 说明&#xff1a; 1. 栈区&#xff08;stack&#xff09;&#xff1a;在…

【人工智能Ⅱ】实验9:强化学习Q-Learning算法

实验9&#xff1a;强化学习Q-Learning算法 一&#xff1a;实验目的 1&#xff1a;了解强化学习的基本概念。 2&#xff1a;学习强化学习经典算法——Q-Learing算法。 3&#xff1a;通过Q-Learing算法解决问题。 二&#xff1a;实验内容 2.1 强化学习 强化学习&#xff08;…

Pinia的介绍、使用及持久化

Pinia介绍 什么是Pinia&#xff1f; Pinia 是 Vue 的最新 状态管理工具&#xff0c;状态就是数据。 通俗地讲&#xff1a;Pinia 是一个插件&#xff0c;可以帮我们管理 vue 通用的数据 (多组件共享的数据)。 比如一份数据有多个组件需要使用&#xff0c;在学Pinia之前我们需…

nginx 中文文档

nginx 中文文档 中文文档

单枪匹马月入17万美元:数字游民Pieter Levels如何成就商业传奇

了解数字游民的应该都听说过 Pieter Levels&#xff0c;可以说他是数字游民的先驱人物。 他在推特上拥有超过43万的粉丝&#xff0c;仅凭一台笔记本电脑就连续建立了多个高盈利网站&#xff0c;光是推特主页上展示的比较新的几个网站&#xff0c;每月收入加起来就高达 17.6 万…

【机器学习】机器学习与大模型在人工智能领域的融合应用与性能优化新探索

文章目录 引言机器学习与大模型的基本概念机器学习概述监督学习无监督学习强化学习 大模型概述GPT-3BERTResNetTransformer 机器学习与大模型的融合应用自然语言处理文本生成文本分类机器翻译 图像识别自动驾驶医学影像分析 语音识别智能助手语音转文字 大模型性能优化的新探索…

解读信创产业根基,操作系统发展历程

信创产业根基之一操作系统 操作系统是一个关键的控制程序&#xff0c;负责协调、管理和控制计算机硬件和软件资源。作为硬件的首要软件扩展&#xff0c;它位于裸机与用户之间&#xff0c;充当了两者之间的桥梁。通过其核心程序&#xff0c;操作系统高效地管理着系统中的各类资源…

开山之作!Python数据与算法分析手册,登顶GitHub!

若把编写代码比作行军打仗&#xff0c;那么要想称霸沙场&#xff0c;不能仅靠手中的利刃&#xff0c;还需深谙兵法。 Python是一把利刃&#xff0c;数据结构与算法则是兵法。只有熟读兵法&#xff0c;才能使利刃所向披靡。只有洞彻数据结构与算法&#xff0c;才能真正精通Pyth…

营销方案撰写秘籍:包含内容全解析,让你的方案脱颖而出

做了十几年品牌&#xff0c;策划出身&#xff0c;混迹过几个知名广告公司&#xff0c;个人经验供楼主参考。 只要掌握以下这些营销策划案的要点&#xff0c;你就能制作出既全面又专业的策划案&#xff0c;让你的工作成果不仅得到同事的认可&#xff0c;更能赢得老板的赏识&…

Transgaga——人脸与猫脸之间互相转换算法解析

1. 概述 虽然pix2pix作为风格转换模型被提出&#xff0c;但它依赖于成对的数据集。与之相比&#xff0c;CycleGAN通过引入循环损失&#xff0c;实现了无需配对数据的风格转换。不过&#xff0c;CycleGAN在处理需要大幅几何变化的风格转换时表现不佳&#xff0c;仅在如马和斑马…

JAVA流程控制--增强for循环

1.JAVA5引入了一种主要用于数组或集合的增强型for循环 2.JAVA增强for循环语法格式如下&#xff1a; for(声明语句&#xff1a;表达式&#xff09; { //代码句子 } 3.声明语句&#xff1a;声明新的局部变量&#xff0c;该变量的类型必须和数组元素的类型匹配。其作用域限定在循…

最新鸿蒙南北开发学习路线+学习资料分享

前言 5月29日&#xff0c;“千帆竞发启航 共筑鸿蒙生态”鸿蒙原生应用合作仪式在北京成功举办&#xff0c;近40个应用现场官宣启动鸿蒙原生应用开发。此次官宣启动开发的鸿蒙原生应用不仅包括教育、母婴、出行、医疗健康等多领域的知名应用&#xff0c;还有十多家企业内部办公应…

【C语言】位段(结构体实现位段)

目录 一、位段的定义 二、位段的声明 三、位段的内存分配 四、位段在内存中的存储方式 五、位段的优点 六、位段的跨平台问题 七、位段的应用 八、位段使用的注意事项 一、位段的定义 信息的存取一般以字节为单位。实际上&#xff0c;有时存储一个信息不必用一个或多个字…

参数高效微调PEFT(四)快速入门(IA)3

参数高效微调PEFT(四)快速入门(IA)3 我们已经了解了HuggingFace中peft库的几种高效微调方法。 参数高效微调PEFT(一)快速入门BitFit、Prompt Tuning、Prefix Tuning 参数高效微调PEFT(二)快速入门P-Tuning、P-Tuning V2 参数高效微调PEFT(三)快速入门LoRA、AdaLoRA 今天我…

Linux基础命令[28]-chmod

文章目录 1. chmod 命令说明2. chmod 命令语法3. chmod 命令示例3.1 使用数字赋权3.2 使用字母赋权3.3 -R&#xff08;一起修改子目录&#xff09; 4. 总结 1. chmod 命令说明 chmod&#xff1a;为文件或文件夹赋予权限。Linux-文件或目录权限。基本信息如下&#xff1a; Usa…

目标2亿欧元!四年两次募资,全球最早专注于量子投资的Quantonation再次加码

Quantonation Ventures 是全球第一家专注于深度物理和量子技术的早期风险投资公司。4月10日&#xff0c;该公司宣布其第二只专门用于量子技术的早期基金 Quantonation II 首次募资完成&#xff0c;目前已募资 7000 万欧元&#xff0c;而目标为 2 亿欧元。 首次募资就募到了将…

redis之发布与订阅

华子目录 什么是发布与订阅&#xff1f;常用命令psubscribe pattern1 [pattern2...]subscribe channel1 [channel2...]publish channel messagepunsubscribe pattern1 [pattern2...]unsubscribe [channel1 [channel2...]]pubsub subcommand argument1 [argument2...] 示例1示例…

C/C++动态内存管理(new与delete)

目录 1. 一图搞懂C/C的内存分布 2. 存在动态内存分配的原因 3. C语言中的动态内存管理方式 4. C内存管理方式 4.1 new/delete操作内置类型 4.2 new/delete操作自定义类型 1. 一图搞懂C/C的内存分布 说明&#xff1a; 1. 栈区&#xff08;stack&#xff09;&#xff1a;在…

微信视频号上是怎么开店铺的?从入驻到发货,具体流程来了!

这两年&#xff0c;视频号逐渐走入大家视野 单价高&#xff0c;商家又少&#xff0c;很多类目都属于空白无商家入驻阶段&#xff0c;于是好多商家&#xff0c;都准备去视频号小店这个新“黑马”发展发展 那视频号是怎么开店卖东西的&#xff1f;今天我就来给大家分享一下&…