私は4色がある記憶ゲームを作ろうとしています。プログラムがリストに+1を追加している間、パターンを一致させる必要があります。
現在、ゲームにパターンを表示させる方法がわかりません。プレイヤーの入力を待ってゲームを終了するか、パターンに別の色を追加します。
これが私が思いつくことができるすべてです:
def addlist():
if playerpattern == pattern:
pattern.append(random.randint(1, 4))
def listcheck():
if playerpattern == pattern:
for i in pattern:
if i == 1:
topleft.color = (255, 0, 0)
else:
topleft.color = (100, 0, 0)
if i == 2:
topright.color = (0, 0, 255)
else:
topright.color = (0, 0, 175)
if i == 2:
bottomleft.color = (0, 255, 0)
else:
bottomleft.color = (0, 175, 0)
if i ==4:
bottomright.color = (255, 255, 0)
else:
bottomright.color = (175, 175, 0)
pattern = []
playerpattern = []
playing = True
while playing:
clock.tick(10)
print(pattern)
for event in pygame.event.get():
if event.type == pygame.QUIT:
playing = False
if event.type == MOUSEBUTTONDOWN:
mouseclick()
mousehover()
addlist()
listcheck()
draw()
pygame.quit()
基本的に、ゲームの開始時に、ゲームにパターン[0](4つの正方形の1つ)を点灯させます。
次に、プレーヤーがそれを正しく取得すると、pattern [0]を表示し、次にpattern [1]を遅延させて、それが終わるまで繰り返します。助けてくれてありがとう
pygameにはタイマー機能があります pygame.time.set_timer()
。
イベントIDを定義します(7は任意の番号です。この番号を定義できます)
myEventID = pygame.USEREVENT+7
タイマーを特定の時間間隔で開始します。 1秒(1000ミリ秒)
pygame.time.set_timer(myEventID, 1000) # 1000 milliseconds interval
期間が終了するたびにイベント通知を取得します。
for event in pygame.event.get():
if event.type == myEventID:
# [...]
ミリ秒の引数に0を渡してタイマーを停止します。
pygame.time.set_timer(myEventID, 0)
ゲームの現在の状態を示すゲーム状態変数を追加し、この変数をタイマーで変更します。状態は整数であり、特定の意味があります。
gameState = 0
while playing:
for event in pygame.event.get():
if event.type == myEventID:
# change the game state - this is just an example
if gameState == 0:
gameState = 1
if gameState == 0:
# do default
Elif gameState == 1:
# do something else
Elif gameState == 2:
# do something completely different
else:
# another case