スイスの神カード

タイトル:スイスの神カード
対象の説明:スイスの流行、彼は非常に強力であった神HRZは、自宅で退屈ので、彼が退屈していたので、彼は、水、水A +を取得できるようにするために、すべてのクラスがあり、そしてより多くの3を得ました個人:カッコウ東、テン神とzjmは(今いくつかの時間のためにスイスの世界の苦しみ神)のカードを再生します。
明らかに、取締役会は4人、サークルで構成されています。私たちは、北、東西四方向を求めます。英語を対応する北、東、南、西です。52あるゲームの合計は、ポーカーで構成されています。初めは、私たちは(英語イニシャルのロゴと、トラックに)ディーラーを任命時計回りの順番をライセンス、ライセンス始め、ディーラーは自分の最初を送ったが、彼の次を行っていません人(時計回りに隣の人)。このように、誰もが13枚のカードを取得します。
今、我々は、(梅)<(正方形シート)<(スペード)<(心臓)、(入力、我々は、それぞれプラム、正方形片C、D、S、Hを使用する最初の色は、カードの順序を定義しますスペード、ハート、すなわち)単語の最初の文字という。符号の顔の値に対して、我々は、2 <3 <4 <5 <必要 6 <7 <8 <9 <T <J <Q <K <A。
今、あなたは、神のように、あなたは小さなからのカードの大きな手に皆を並べ替え、およびフォローする出力形式を設定する必要があります。(特定の出力フォーマット記述と出力例を参照)。

入力:
含む複数のデータセット入力し
、各データセットの最初の行は、ディーラーはいを表し、大文字の文字が含まれています。文字は「#」であれば、入力の終わりを示します。
次の2行、行あたり52文字、ショー26枚のカードは、2行は52枚のカードの合計と一致し。各カードは、2つの文字からなり、最初の文字は色を表し、2番目の文字は値を示しています。

出力:
データの各セットは、余分な出力に空白行を必要とした後、ライセンス結果データの出力複数のセット!
データの各セットは、常に五行、第一及び第五のライン出力固定続いサウスプレーヤーの出力、選手名出力線(トラック)に、すなわち各選手に、時計回り方向の出力線24を構成しますフォーマット(例を参照)、出力値の順序と形式で2行目と4行目(例を参照)、3行出力カラーシーケンスの形式(例を参照)。

サンプル
入力ここに画像を挿入説明
出力:
ここに画像を挿入説明
問題解決のアイデア:演奏テーブルのタイトルに加え、より複雑なソート。

コード:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
bool cmp(pair<char,char> a,pair<char,char> b)//排序,按照规则
{
    if(a.first!=b.first)
    {
        if(a.first=='S'&&b.first=='H')
        {
            return true;
        }
        if(a.first=='H'&&b.first=='S')
        {
            return false;
        }
        return a.first<b.first;
    }else
    {
        char a1=a.second,b1=b.second;
        if('0'<=a1&&a1<='9'||'0'<=b1&&b1<='9')
        {
            return a1<b1;
        }else
        {
            if(a1=='T'||(a1=='J'&&b1!='T')||(a1=='Q'&&b1!='T'&&b1!='J')||(a1=='K'&&b1=='A'))
            {
                return true;
            }else
            {
                return false;
            }
        }
    }
}
int main()
{
    string a;
    while(1)
    {
        cin>>a;
        if(a=="#")break;
        int t;
        if(a=="S")t=0;
        if(a=="W")t=1;
        if(a=="N")t=2;
        if(a=="E")t=3;
        string t1,t2,h;
        cin>>t1>>t2;
        h=t1+t2;
        vector<pair<char,char> > s[4];
        for(int i=0,j=t;i<h.size();i+=2,j++)//顺时针给就+1,之后模4即可
        {
            int r=j+1;
            r%=4;
            s[r].push_back(make_pair(h[i],h[i+1]));
        }
        for(int i=0;i<4;i++)
        {
            sort(s[i].begin(),s[i].end(),cmp);
        }
        cout<<"South player:"<<endl;//按照规则输出
        cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
        for(int i=0;i<s[0].size();i++)
        {
            cout<<"|"<<s[0][i].second<<" "<<s[0][i].second;
        }
        cout<<"|"<<endl;
        for(int i=0;i<s[0].size();i++)
        {
            cout<<"| "<<s[0][i].first<<" ";
        }
        cout<<"|"<<endl;
        for(int i=0;i<s[0].size();i++)
        {
            cout<<"|"<<s[0][i].second<<" "<<s[0][i].second;
        }
        cout<<"|"<<endl;
        cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
        cout<<"West player:"<<endl;
        cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
        for(int i=0;i<s[1].size();i++)
        {
            cout<<"|"<<s[1][i].second<<" "<<s[1][i].second;
        }
        cout<<"|"<<endl;
        for(int i=0;i<s[1].size();i++)
        {
            cout<<"| "<<s[1][i].first<<" ";
        }
        cout<<"|"<<endl;
        for(int i=0;i<s[1].size();i++)
        {
            cout<<"|"<<s[1][i].second<<" "<<s[1][i].second;
        }
        cout<<"|"<<endl;
        cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
        cout<<"North player:"<<endl;
        cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
        for(int i=0;i<s[2].size();i++)
        {
            cout<<"|"<<s[2][i].second<<" "<<s[2][i].second;
        }
        cout<<"|"<<endl;
        for(int i=0;i<s[2].size();i++)
        {
            cout<<"| "<<s[2][i].first<<" ";
        }
        cout<<"|"<<endl;
        for(int i=0;i<s[2].size();i++)
        {
            cout<<"|"<<s[2][i].second<<" "<<s[2][i].second;
        }
        cout<<"|"<<endl;
        cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
        cout<<"East player:"<<endl;
        cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
        for(int i=0;i<s[3].size();i++)
        {
            cout<<"|"<<s[3][i].second<<" "<<s[3][i].second;
        }
        cout<<"|"<<endl;
        for(int i=0;i<s[3].size();i++)
        {
            cout<<"| "<<s[3][i].first<<" ";
        }
        cout<<"|"<<endl;
        for(int i=0;i<s[3].size();i++)
        {
            cout<<"|"<<s[3][i].second<<" "<<s[3][i].second;
        }
        cout<<"|"<<endl;
        cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl<<endl;;
    }
    return 0;
}
公開された15元の記事 ウォンの賞賛0 ビュー230

おすすめ

転載: blog.csdn.net/qq_43653717/article/details/104635113