今回の目標は、"漢字モンスターが現れた"の部分を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)
次回は、問題の選択肢の並びをランダムにする予定です。