fork download
  1. #!/usr/bin/env python3
  2.  
  3. import os, sys
  4. from operator import add
  5. from time import sleep
  6. from random import randint
  7.  
  8. message = {True: '正', False: '誤'}
  9.  
  10. # Environment
  11. # ゲームに使う情報は例えばこうやって構造体的にまとめておく
  12. # これがゲームの現時点での「評価」として返り値になる
  13. class Env(object):
  14. def __init__(self, flag, lst):
  15. self.flag = flag
  16. self.lst = lst
  17.  
  18. # Read
  19. # 入力機構
  20. # 入力以外の事柄はやってはいけない
  21. def read(env):
  22. if len(env.lst) == 15:
  23. return int(input('>>>'))
  24. else:
  25. return ""
  26.  
  27. # Eval
  28. # ゲームの評価機構
  29. # いわばゲームエンジン
  30. def engine(x, env):
  31. return Env(x == sum(env.lst) if len(env.lst) == 15 else env.flag,
  32. [] if len(env.lst) == 15 else [randint(99, 999)] + env.lst)
  33.  
  34. # Print
  35. # 出力機構
  36. # 出力以外の事柄はやってはいけない
  37. def display(env):
  38. if env.flag != None:
  39. print(message[env.flag])
  40. else:
  41. print(env.lst[0])
  42. sleep(3)
  43. os.system('clear') # MS-DOS/Windows では clear の代わりに cls コマンド
  44. return env
  45.  
  46. # REPL(Read-Eval-Print Loop)
  47. # ゲームの本体は Read、Eval、Print を組み合わせてルーピングさせて作る
  48. if __name__ == '__main__':
  49. env = Env(None, [])
  50. while(True):
  51. try:
  52. env = display(engine(read(env), env))
  53. except ValueError:
  54. env
  55. if isinstance(env.flag, bool):
  56. sys.exit()
  57.  
Time limit exceeded #stdin #stdout #stderr 5s 9796KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
TERM environment variable not set.
TERM environment variable not set.
TERM environment variable not set.