Pythonゲーム作りの過程 その4

 今回の目標は、"漢字モンスターが現れた"の部分を2秒後に消すことです。
 試験的に以下のコードにしてみました。

  s1="漢字出題モンスターが現れた!"
        s2=s1.replace(s1,"")
        print(s1)
        time.sleep(2)
        print(s2)

 結果は、出力されたものはそのままで何とも言えないことになりました。
 replaceメソッドは、メモリ内のデータしか置き換えることしかできないので、画面に出たものは置き換えられないみたいです。
 よって、普通に2秒後に消えるように普通にしたのが以下の通りです。

  print("漢字出題モンスターが現れた!")
        time.sleep(2)
        subprocess.run('CLS',shell=True)

 実行で出力したものを更新するのは、これしかなさそうな感じがします。
 以下は、更新後のコードです。

import subprocess
import time
import csv
from playsound import playsound #メモ windows11では古めのバージョンをインストールすること。pip install playsound==1.2.2
import pygame
import random
import sys

i=0
mhp=40 #主人公のHP
ehp=50 #敵モンスターのHP

pygame.mixer.init(frequency = 44100)
bgm_sound = pygame.mixer.Sound("./sound/battle.wav")
bgm_sound2 = pygame.mixer.Sound("./sound/quiz1.wav")
bgm_sound3 = pygame.mixer.Sound("./sound/quiz2.wav")
bgm_sound4 = pygame.mixer.Sound("./sound/madamada.mp3")
bgm_sound5 = pygame.mixer.Sound("./sound/kakugo.mp3")
bgm_sound.play()

#問題のデータベース。ここから問題がピックアップされて出題される。
questions =[
    {'question':"「洋琴」が表す楽器はどれ?",'kouho':['ピアノ','ギター','チェロ','ハープ'],'answer':"ピアノ",'category':'漢字'},
    {'question':"ラッコを漢字で書くとどれ?",'kouho':['海鼠','海獺','海狸','海犬'],'answer':"海獺",'category':'漢字'},
    {'question':"ガーナの首都は?",'kouho':['アクラ','アピア','アテネ','アンカラ'],'answer':"アクラ",'category':'地理'},
]

this_question = questions[random.randint(0,2)] #questions[0] とかquestions[1]とか
#print(this_question)
#sys.exit( )

while i<3:
    ran = random.randint(1,3)
    if ran ==2 :
        bgm_sound5.play()

    if mhp<=0:
        bgm_sound4.play() 
        print("主人公は敗北した…")
        time.sleep(2)
        break
    elif ehp<=0:
        print("モンスターは倒れた!")
        break
    else:
        """
        s1="漢字出題モンスターが現れた!"
        s2=s1.replace(s1,"")
        print(s1)
        time.sleep(2)
        print(s2)
        """
        #没になった。メモリ内容が変わるだけで、画面に出力したのは変わらない。
        
        print("漢字出題モンスターが現れた!")
        time.sleep(2)
        subprocess.run('CLS',shell=True)
        print(this_question['question'])
        #print(this_question['kouho'])
        

        for question_kouho in this_question['kouho']:
            print('候補: '+question_kouho)

        
        
    ans=input()
    if ans=="A":
        bgm_sound2.play()
        print("モンスターは30のダメージを受けた!")
        #bgm_sound.stop()
        ehp=ehp-30
        time.sleep(1)
        break
    else:
        bgm_sound3.play()
        print("主人公は30のダメージを受けた!")
        mhp=mhp-30
        time.sleep(1)
    i=i+1
    time.sleep(2)
    subprocess.run('CLS',shell=True)

 次回は、問題の選択肢の並びをランダムにする予定です。