1

私は数学ゲームを作るための簡単なプロジェクトに取り組んでいます。これまでのところ、ユーザーは乗算または加算を選択できます。次に、解くための掛け算または足し算を受け取り、フィードバックを返します。しかし、私は自分のゲームを拡張したいと考えています。ある種のカウント/ハイスコアを作成したいのですが、複雑ではなく、最も簡単な方法でユーザーにフィードバックを提供したいと考えています。 「おめでとう、あなたは5ポイントを獲得しました。」このプロジェクトをさらに進める方法がわかりません。単純に、正しい答えごとにカウント関数を使用して Tkinter で作成された Python 数学ゲームにしたいだけです。

これにはTkinterとPython 2.7を使用しています。さらに、このプロジェクトのチュートリアルを作成してYouTubeに投稿したいと考えています。そして、すべての助けは非常に高く評価されています。

from Tkinter import *
import tkMessageBox
import random
import time

def fraga():
    global num1 
    num1 = random.randint(1, 100)
    global num2 
    num2 = random.randint(1, 100)
    global svar 
    svar = num1 + num2
    label1.config(text='Vad blir ' + str(num1) + '+' + str(num2) + '?')
    entry1.focus_set()

def fraga1():
    global num3 
    num3 = random.randint(1, 10)
    global num4 
    num4 = random.randint(1, 10)
    global svar1 
    svar1 = num3 * num4
    label1.config(text='Vad blir ' + str(num3) + '*' + str(num4) + '?')
    entry1.focus_set()

 def svar1():
    mainAnswer = entry1.get()
    # feedback på tom ruta
    if len(mainAnswer) == 0:
    tkMessageBox.showwarning(message='Skriv in några nummer!')
    return
    if int(mainAnswer) != svar1:
       tkMessageBox.showwarning(message='Tyvärr det rätta svaret: ' + str(svar1))
    else:
       tkMessageBox.showinfo(message='RÄTT!! :)')

 def svar():
     mainAnswer = entry1.get()
 # feedback på tom ruta
     if len(mainAnswer) == 0:
     tkMessageBox.showwarning(message='Skriv in några nummer!')
     return
     if int(mainAnswer) != svar:
     tkMessageBox.showwarning(message='Tyvärr det rätta svaret: ' + str(svar))
 else:
    tkMessageBox.showinfo(message='RÄTT!! :)')

 def quit():
     global root
     root.destroy()

 #fönster
 root = Tk()
 root.title("Andrejs mattespel Quiz")
 root.geometry('700x700')

 # välkomstmeddelande
 label2 = Label(root, text="Hej!\n  Nu ska vi lösa lite matteproblem!")
 label2.config(font=('times', 18, 'bold'), fg='black', bg='white')
 label2.grid(row=0, column=0)

 #labels
 label1 = Label(root)
 label1.grid(row=2, column=0)

 #start
 entry1 = Entry(root)
 entry1.grid(row=3, column=0)

 # Omstartknappen
 entry1.bind('<Return>', func=lambda e:checkAnswer())

 #Knappar

 fragaBtn = Button(root, text='Jag vill öva på addition!', command=fraga)
 fragaBtn.grid(row=4, column=0)

 svarButton = Button(root, text='Svar addition', command=svar)
 svarButton.grid(row=4, column=1)

 quit_bttn = Button(root, text = "Avsluta", command=quit)
 quit_bttn.grid(row = 4, column = 3, sticky = W)

 #Knappar multiplikation
4

1 に答える 1

0

変数を作成し、ユーザーが正しいscoreたびに 1 ずつ増やします。という名前のリストを作成しますhighscores。これにより、何をすべきかがわかります。

#when user looses
if score > highscores[-1]:
    highscores[-1] = score
    highscores.sort()
    #Then display a list of best results with the current result marked or something :)

スコアを保存する場合は、スコアをファイルに書き込む必要があります。これを行う最も簡単な方法は、jsonモジュールです。リストとディクテーションを扱うときは、ファイルjson.dump(highscores, open(path, 'w'))を保存してリロードするだけで済みます。highscores = json.load(open(path))

于 2013-07-07T18:13:35.200 に答える