[白俊]14696絵柄ゲームPython


絵遊び


質問する


二人の子供A,Bは絵を描いている.絵遊びのルールは以下の通りです.二人の子供は最初は何枚もの絵を持っていて、輪ごとに自分の絵を1枚ずつ出しています.絵には星(★)、円(●)、四角(■)、三角形(▲)、4つの形のうちの1つまたは複数の形があります.二人の子供の絵の中でどちらが強いかは、以下のルールに従います.
  • 2 2 2つの星の個数が異なると、多くの星の1つの星が勝つ.
  • 星の個数が同じで、円の個数が異なると、円の多い方の絵が勝つ.
  • 星、円の個数がそれぞれ同じで、角の個数が異なると、角の多い方の絵が勝つ.
  • 星、円、四角の個数が等しく、三角形の個数が異なると、三角形の多い方の絵が勝つ.
  • 星、円、四角、三角形の個数が等しい場合、それは引き分けです.
  • 例えば、二人の子供A、Bのカードは下図のようになります.

    上のルールでは、Aの絵には星があり、Bの絵には星がないので、勝者はAです.上図が第1ラウンドの場合、第2、3、4、5ラウンドの場合は下表のように、第2、3、4ラウンドの勝者はそれぞれB、B、A、第5ラウンドは引き分けとなり、Dで示す.
    第1ラウンドAの絵の具Bの絵の具結果は1★●■●A 2■●●●●●B 3●■▲B 4●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
    星、円、四角形、三角形はそれぞれ数字4、3、2、1で表されます.例えば、第1ラウンドでは、子供Aが出した絵★は4で表現でき、子供Bが出した絵●▲は3 3 3 2 1で表現できる.
    ラウンド数Nと2人の子供が順番にカードを出すカードの情報を得た場合は、ラウンドごとにカードゲームの結果を求めるプログラムを作成してください.

    入力


    標準入力には、次の情報が表示されます.1行目には、ピクチャゲームの総ラウンド数を示す自然数Nが与えられる.Nは1以上1000以下である.次の行は、第1ラウンドで児童Aが発行した絵に現れる画像の総数aを与える.aは1以上100以下である.次に出現するa個の整数は、子供Aが出た絵を表し、それぞれ4、3、2、1の値である.なお、4、3、2、1の順には与えられない場合がある.次の行は、第1ラウンドの子供Bの絵に現れる図の総数bを示す.bも1以上100以下です.次に現れるb個の整数は、子供Bが出す絵を表し、4、3、2、1の値でもある.4,3,2,1の順に与えられない場合もあるので注意してください.次の2行は、第2ラウンドの子供A、Bの絵を同じように表現します.上記のように、2人の子供が発行する1ラウンド当たりの絵の具の情報は2行に表示され、Nラウンドの絵の具の情報は合計2 N行に順次与えられる.

    しゅつりょく


    標準出力、共出力N行.出力されたi(1≦i≦N)行には1ワードが正確に出力され、出力されたワードはA,B,Dのうちの1ワードであり、逆iの結果を表す.各ラウンドの結果は、Aは勝者、A、Bは勝者、Bは引き分け、Dである.

    解決策

  • の絵を持ってきて、勝利の重みの高い数字に従って数えて、リストに並べます.
  • 条件文で演算します.
    round = int(input())
    for i in range(round) :
        A = list(map(int,input().split()))[1:]
        B = list(map(int,input().split()))[1:]
        lstA = [A.count(4),A.count(3),A.count(2),A.count(1)]
        lstB = [B.count(4),B.count(3),B.count(2),B.count(1)]
        if lstA[0] > lstB[0] :
            print('A')
        elif lstA[0] <lstB[0] :
            print('B')
        elif lstA[1] > lstB[1] :
            print('A')
        elif lstB[1] > lstA[1] :
            print('B')
        elif lstA[2] > lstB[2] :
            print('A')
        elif lstB[2] > lstA[2] :
            print('B')
        elif lstA[3] > lstB[3] :
            print('A')
        elif lstB[3] > lstA[3] :
            print('B')
        else :
            print('D')