第5回(ゲーム)

エチケット

班の方たちが、エチケットというゲームを作成することに挑戦しました。
エチケットというゲームとは、2人で1~5の数字を順番に言い合い、
先にすべて言い終えた方が勝ちというゲームです。
1番大事なのは、同じ数字を2回言えないことと相手より大きい数字を言わなければいけないことです。

コード

  1. import random
  2. import copy
  3. print("こんにちは")
  4. print("1対1で行うゲームです。まず先攻後攻を決めます。先攻から1から5の数字を選んでいき、先にすべて出し終わったほうの勝ちです。")
  5. print("しかし、数字を選ぶ際、必ず相手より大きな数字を選ばなければなりません。自分の数字に相手より大きな数字がない場合パスになります。")
  6. print("パスの場合は0を入力してください")
  7. mochite_com=[1,2,3,4,5]
  8. mochite_pla=[1,2,3,4,5]
  9. te_com=0
  10. te_player=0
  11. for i in range(1,20):
  12.     print(i,"ターン")
  13.     # print("c",mochite_com)
  14.     print("p",mochite_pla)
  15.     if te_com!=5:
  16.         te_player = int(input("数字を入れてください"))
  17.         if 0<te_player <= 4:
  18.             mochite_pla.remove(te_player)
  19.             #プレイヤーの手が4以下だったらコンピュータにその数字以上の手を出してほしい
  20.             #コンピュータの持ち手から出す候補を作成(プレイヤーの出してより大きい)
  21.             dasu_koho = copy.copy(mochite_com)
  22.             #出す候補のなかでプレイヤーの手より小さいものを削除
  23.             for c in range(1, te_player+1):
  24.                 try:
  25.                     dasu_koho.remove(c)
  26.                 except:
  27.                     pass
  28.             #出す手の候補からランダムにコンピュータの手を選ぶ
  29.             try:
  30.                 te_com = random.choice(dasu_koho)
  31.                 print("COM", te_com)
  32.                 #コンピュータが出した手をコンピュータの持ち手から削除
  33.                 mochite_com.remove(te_com)
  34.             except:
  35.                 print("COMパス")
  36.                 pass
  37.         elif te_player==0:
  38.             print("Playerパス")
  39.             # コンピュータの手
  40.             dasu_koho = copy.copy(mochite_com)
  41.             # 出す手の候補からランダムにコンピュータの手を選ぶ
  42.             te_com = random.choice(dasu_koho)
  43.             print("COM", te_com)
  44.             # コンピュータが出した手をコンピュータの持ち手から削除
  45.             mochite_com.remove(te_com)
  46.         else:
  47.             mochite_pla.remove(te_player)
  48.             #プレイヤーの手が5だったらパスしたい
  49.             print("COMパス")
  50.     else:
  51.         print("Playerパス")
  52.         #コンピュータの手
  53.         dasu_koho = copy.copy(mochite_com)
  54.         # 出す手の候補からランダムにコンピュータの手を選ぶ
  55.         te_com = random.choice(dasu_koho)
  56.         print("COM", te_com)
  57.         # コンピュータが出した手をコンピュータの持ち手から削除
  58.         mochite_com.remove(te_com)
  59.     if len(mochite_pla)==0:
  60.         print("Playerの勝ち")
  61.         exit()
  62.     elif len(mochite_com) == 0:
  63.         print("COMの勝ち")
  64.         exit()

感想

難しい物に対して諦めない班の方たちにリスペクトしたい。
自分も見習ければいけないと思った。

参照

https://www.pasonatech.co.jp/workstyle/column/detail.html?p=2636
    https://techacademy.jp/magazine/21160