[Pensée programmation et pratique expérience Semaine2 C] Rui cartes Dieu

Signification des questions:

Conseil se compose de quatre personnes, cercle. Nous appelons les directions de l'Ouest du Nord-Est quatre. Correspondant anglais est le Nord, Est, Sud, Ouest. totale du jeu, ce qui est 52 se compose d'un poker. Le début, nous nommons un concessionnaire (dans un camion, avec le logo de l'anglais) a commencé licences, licences sens horaire, le croupier n'envoie pas leur propre premier, mais a fait son prochain les gens (dans le sens horaire personne à côté). De cette façon, tout le monde aura 13 cartes.

Maintenant, nous définissons l'ordre des cartes, la première couleur est (prune) <(feuille carrée) <(pique) <(cœur), (entrée, nous utilisons C, D, E, H, respectivement de prune, de carré, pique, cœur, à savoir que la première lettre du mot). Pour des valeurs de la face de l'enseigne, nous avons besoin de 2 <3 <4 <5 <6 <7 <8 <9 <T <J <Q <K <A.

Maintenant, vous, comme Dieu, vous devez trier tout le monde de petites et grandes mains de cartes, et définir le format de sortie à suivre. (Voir la description particulière de format de sortie et un exemple de sortie).

entrée:

les données d'entrée comprennent une pluralité d'ensembles de

La première ligne de chaque ensemble de données contient un caractère majuscule, qui représente le oui du concessionnaire. Si le personnage est un « # » indique la fin de l'entrée.

Les deux lignes suivantes, 52 caractères par ligne, montre 26 cartes, deux lignes ajouter jusqu'à un total de 52 cartes. Chaque carte se compose de deux caractères, le premier caractère représente la couleur, le second caractère indique les valeurs.

Entrée de l'échantillon:

N
CTCAH8CJD4C6D9SQC7S5HAD2HJH9CKD3H6D6D7H3HQH4C5DKHKS9
SJDTS3S7S4C4CQHTSAH2D8DJSTSKS2H5D5DQDAH7C9S8C8S6C2C3
#

sortie:

Sortie plusieurs séries de licence de données de résultat, après chaque série de données nécessaires sortie supplémentaire d'une ligne vide! ! ! ! !

Chaque ensemble de données composé, la ligne de sortie 24 dans le sens des aiguilles d'une montre, toujours à la sortie du joueur du Sud, à savoir que chaque joueur à la ligne de sortie de nom de joueur (camion), suivi de cinq éléments, la première et cinquième lignes fixation de sortie Format (voir les exemples), les deuxième et quatrième rangées dans l'ordre et le format des valeurs de sortie (voir les exemples), la troisième rangée et le format de la séquence de couleurs de sortie (voir les exemples).

Sortie de l'échantillon:

Insérer ici l'image Description

idées:

L' établissement d' un porc de la structure {} est une carte à carte face et le caractère de stockage variable de couleur. Ensuite , la lecture de deux lignes d'entrée de caractères dans un tableau de chaînes, la chaîne de caractères est traitée, stockée dans la matrice à deux dimensions de porc sous la forme d'un cycle de quatre, deux dimensions de taille 4 et 13, respectivement, représentent 4 personnes et chaque personne 13 cartes à l'heure actuelle ne dispose pas de faire la distinction entre les quatre coins des joueurs, parce que la direction est juste le point de départ et la sortie correspondante quel que soit l'ordre total, le concessionnaire peut être le point de départ qui détermine la position (si le concessionnaire dans le Nord , l' ordre de sortie du réseau est 1,2,3,0, 0,1,2,3 rapport est, et ainsi de suite).
Suite accent sur l'ordre de 13 cartes dans les mains de tout le monde, parce que nous utilisons lors de l' enregistrement sous forme de caractères et les couleurs du visage des signes et des numéros d' ordre lexicographique de différentes grandeur, j'avais l' intention d'utiliser la carte stl en couleur et cartes la taille des variables int liée, mais il y a un délai d' attente de problème. Ainsi, l'écriture sélectionnée deux simple fonction de conversion, respectivement, la couleur d'entrée et la taille carte, la valeur de retour est int, puis avec cette fonction, CMP peut écrire la fonction de comparaison (), et en utilisant autre fonction tri () pour trier les cartes Enfin, selon le format de sortie.

code:

#include <iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
struct pork{
	char first;
	char second;
	pork(){}
	pork(char a,char b):first(a),second(b){}
};
int chartoint(char a)
{
	if(a>='2'&&a<='9')
		return a-'2';
	else if(a=='T')
		return 10;
	else if(a=='J')
		return 11;
	else if(a=='Q')
		return 12;
	else if(a=='K')
		return 13;
	else
		return 14;
}
int huase(char a)
{
	if(a=='C')
		return 1;
	else if(a=='D')
		return 2;
	else if(a=='S')
		return 3;
	else
		return 4;
}
bool cmp(const pork&a,const pork&b)
{
	int va,vb,vva,vvb;
	va=huase(a.first);
	vb=huase(b.first);
	vva=chartoint(a.second);
	vvb=chartoint(b.second);
	return ((va<vb)||(va==vb&&vva<vvb));
}
void print(pork*a)
{
	printf("+---+---+---+---+---+---+---+---+---+---+---+---+---+\n");
	for(int i=0;i<13;i++)
	{
		printf("|%c %c",a[i].second,a[i].second);
	}
	printf("|\n");
	for(int i=0;i<13;i++)
	{
		printf("| %c ",a[i].first);
	}
	printf("|\n");
	for(int i=0;i<13;i++)
	{
		printf("|%c %c",a[i].second,a[i].second);
	}
	printf("|\n");
	printf("+---+---+---+---+---+---+---+---+---+---+---+---+---+\n");
}
int main(int argc, char** argv) {
	pork a[4][13];
	char c;
	char str[200];
	while(cin>>c&&c!='#')
	{
		int start;
		if(c=='N') 
			start=1;
		else if(c=='E') start=0;
		else if(c=='S') start=3;
		else if(c=='W') start=2;
		scanf("%s",str);
		scanf("%s",str+52);
		for(int i=0,count=0;i<13;i++)
		{
			for(int j=0;j<4;j++)
			{
				a[j][i].first=str[count*2];
				a[j][i].second=str[count*2+1];
				count++;
			}
		}
		for(int i=0;i<4;i++)
			sort(a[i],a[i]+13,cmp);
		printf("South player:\n");
		print(a[start]);	
		printf("West player:\n");
		print(a[(start+1)%4]);
		printf("North player:\n");
		print(a[(start+2)%4]);
		printf("East player:\n");
		print(a[(start+3)%4]);
		printf("\n");
	}
	return 0;
}
Publié 25 articles originaux · éloge de won 8 · vues 545

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44034698/article/details/104635797
conseillé
Classement