初心者で学校のグループでじゃんけんゲームを作成しています。
今回、どうしてもうまくいかないところが2か所あり解決できていません。
1つはintに代入する部分ががエラーとなりうまくいきません。
IndentationError: expected an indented blockとなります。
本来ボタンを押したら各ボタンの1、2、3の数をiに代入したいです。
下記のようであればエラー出ませんがi=0のため進んでしまいます。
iが1、2、3であればじゃんけんに進むようにしたいです。
import random
def func_1():
i = 0
if i == [1,2,3]:
print("番号を入力してください")
print("[1,グー 2.チョキ 3.パー]")
b = int(i)
残る1つは相手の手を表示させる画像表示のエラーです。
NameError: name 'screen' is not defined
c = random.randint(1,3)
if b==1:
if c==1:
print("コンピュータ:グー 結果:あいこ")
img3 = pygame.image.load("グー.png")
ここがエラー→ screen.blit(img3, (150, 60))
よろしくお願いします
import pygame import sys def main(): pygame.init() # Pygameを初期化 screen = pygame.display.set_mode((760, 600)) # 画面を作成 pygame.display.set_caption("Pygame じゃんけん") # タイトルを作成 img1 = pygame.image.load("枠.png") screen.blit(img1, (10, 10)) button1 = pygame.image.load('グー.png').convert_alpha() button1_pos = (50, 300) button2 = pygame.image.load('チョキ.png').convert_alpha() button2_pos = (220, 280) button3 = pygame.image.load('パー.png').convert_alpha() button3_pos = (150, 440) btn1rct = button1.get_rect() btn1rct.topleft = button1_pos btn2rct = button2.get_rect() btn2rct.topleft = button2_pos btn3rct = button3.get_rect() btn3rct.topleft = button3_pos mask1 = pygame.mask.from_surface(button1) mask2 = pygame.mask.from_surface(button2) mask3 = pygame.mask.from_surface(button3) while True: pygame.display.update() #描画処理を実行 for e in pygame.event.get(): if e.type == pygame.QUIT: # 終了イベント pygame.quit() #pygameのウィンドウを閉じる return if e.type == pygame.MOUSEBUTTONDOWN: if btn1rct.collidepoint(e.pos): img3 = pygame.image.load("グー.png") screen.blit(img3, (450, 60)) i = 1 if btn2rct.collidepoint(e.pos): img4 = pygame.image.load("チョキ.png") screen.blit(img4, (450, 60)) i = 2 if btn3rct.collidepoint(e.pos): img5 = pygame.image.load("パー.png") screen.blit(img5, (450, 60)) i = 3 screen.blit(button1, button1_pos) screen.blit(button2, button2_pos) screen.blit(button3, button3_pos) pygame.display.flip() import random def func_1(): print("番号を入力してください") print("[1,グー 2.チョキ 3.パー]") if i == [1,2,3]: b = int(a) c = random.randint(1,3) if b==1: if c==1: print("コンピュータ:グー 結果:あいこ") img3 = pygame.image.load("グー.png") screen.blit(img3, (150, 60)) elif c==2: print("コンピュータ:チョキ 結果:勝ち") img4 = pygame.image.load("チョキ.png") screen.blit(img4, (150, 60)) else: print("コンピュータ:パー 結果:負け") img5 = pygame.image.load("パー.png") screen.blit(img5, (150, 60)) elif b==2: if c==1: print("コンピュータ:グー 結果:負け") img3 = pygame.image.load("グー.png") screen.blit(img3, (150, 60)) elif c==2: print("コンピュータ:チョキ 結果:あいこ") img4 = pygame.image.load("チョキ.png") screen.blit(img4, (150, 60)) else: print("コンピュータ:パー 結果:勝ち") img5 = pygame.image.load("パー.png") screen.blit(img5, (150, 60)) elif b==3: if c==1: print("コンピュータ:グー 結果:勝ち") img3 = pygame.image.load("グー.png") screen.blit(img3, (150, 60)) elif c==2: print("コンピュータ:チョキ 結果:負け") img4 = pygame.image.load("チョキ.png") screen.blit(img4, (150, 60)) else: print("コンピュータ:パー 結果:あいこ") img5 = pygame.image.load("パー.png") screen.blit(img5, (150, 60)) else: print("1から3の整数を入力してください") from threading import Thread p = Thread(target=func_1) p.start() main()コード