Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <string>
- #include <cstring>
- #include <algorithm>
- using namespace std;
- enum {south, west, north, east};
- struct card {
- char suit;
- char rank;
- } cards[4][13];
- char jugadores[]={'S','W','N','E'};
- void llenar(){
- for(int i=0;i<4;i++){
- for(int j=0;j<13;j++){
- cards[i][j].suit='0';
- cards[i][j].rank='0';
- }
- }
- }
- void buscar(char st,char rnk,int i){
- int j=0;
- while(cards[i][j].rank!='0'){
- j++;
- }
- cards[i][j].suit=st;
- cards[i][j].rank=rnk;
- }
- int get_rank(int i,int j){
- switch (cards[i][j].rank) {
- case '1':
- return 1;
- case '2':
- return 2;
- case '3':
- return 3;
- case '4':
- return 4;
- case '5':
- return 5;
- case '6':
- return 6;
- case '7':
- return 7;
- case '8':
- return 8;
- case '9':
- return 9;
- case 'T':
- return 10;
- case 'J':
- return 11;
- case 'Q':
- return 12;
- case 'K':
- return 13;
- default:
- return 14;
- }
- }
- int get_suit(int i,int j){
- switch (cards[i][j].suit) {
- case 'C':
- return 0;
- case 'D':
- return 1;
- case 'S':
- return 2;
- default:
- return 3;
- }
- }
- void ordenar(){
- int suit,suit1, rank;
- char temp,temp1;
- for (int i=0;i<4;i++){
- for (int j=1;j<13;j++){
- for(int k=0;k<13-j;k++){
- suit= get_suit(i,k);
- suit1=get_suit(i,k+1);
- if(suit1<suit){
- temp=cards[i][k].suit;
- temp1=cards[i][k].rank;
- cards[i][k].suit=cards[i][k+1].suit;
- cards[i][k].rank=cards[i][k+1].rank;
- cards[i][k+1].suit=temp;
- cards[i][k+1].rank=temp1;
- }else if(suit1==suit){
- suit= get_rank(i,k);
- suit1=get_rank(i,k+1);
- if(suit1<suit){
- temp=cards[i][k].suit;
- temp1=cards[i][k].rank;
- cards[i][k].suit=cards[i][k+1].suit;
- cards[i][k].rank=cards[i][k+1].rank;
- cards[i][k+1].suit=temp;
- cards[i][k+1].rank=temp1;
- }
- }
- }
- }
- }
- }
- void simulation(char player){
- int i;char st,rnk;
- if(player=='N') i=north;
- if(player=='E') i=east;
- if(player=='S') i=south;
- if(player=='W') i=west;
- int cont=0;
- /*proceso de llenado*/
- i++; /*empieza en el sgte al elegido*/
- if(i>3) i=0;
- while(cont<52){
- scanf("%c",&st);
- scanf("%c",&rnk);
- buscar(st,rnk,i);
- cont++;
- i++;
- if(i>3) i=0; /*circular*/
- if((cont==26) || (cont==52)){
- getchar();
- }
- }
- ordenar();
- for(int i=0;i<4;i++){
- printf("%c: ",jugadores[i]);
- for(int j=0;j<13;j++){
- printf("%c",cards[i][j].suit);
- if(j<12) printf("%c ",cards[i][j].rank);
- else printf("%c",cards[i][j].rank);
- }
- if(i<4) printf("\n");
- }
- }
- int main() {
- char player;
- while(true){
- cin>>player;
- if(player=='#') break;
- getchar();
- llenar();
- simulation(player);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement