একটি কুইজ গেম তৈরি করা একটি মজার ও কার্যকরী প্রোজেক্ট, যা Python ও Tkinter ব্যবহার করে সহজেই করা যায়। এই গেমে বিভিন্ন প্রশ্ন, তাদের অপশন ও সঠিক উত্তর রাখা হবে, এবং ব্যবহারকারী প্রশ্নের উত্তর প্রদান করতে পারবেন। প্রতিটি সঠিক উত্তরের জন্য একটি স্কোর দেয়া হবে।
প্রজেক্ট: কুইজ গেম অ্যাপ্লিকেশন
ফিচারস
- বিভিন্ন প্রশ্ন এবং উত্তর অপশন থাকবে।
- সঠিক উত্তর দিলে স্কোর বাড়বে।
- সব প্রশ্ন শেষ হলে চূড়ান্ত স্কোর দেখানো হবে।
প্রয়োজনীয় লাইব্রেরি
tkinter: GUI তৈরি করতে।
Step 1: Tkinter ইম্পোর্ট এবং GUI সেটআপ করা
import tkinter as tk
from tkinter import messagebox
Step 2: প্রশ্ন এবং উত্তর তৈরি
প্রথমে কিছু প্রশ্ন এবং উত্তর একটি ডাটাতে সংরক্ষণ করা হবে। এখানে প্রতিটি প্রশ্নে চারটি অপশন থাকবে এবং সঠিক উত্তর আলাদাভাবে রাখা হবে।
questions = [
{"question": "What is the capital of France?", "options": ["Berlin", "Madrid", "Paris", "Rome"], "answer": "Paris"},
{"question": "What is the largest planet in our Solar System?", "options": ["Earth", "Mars", "Jupiter", "Venus"], "answer": "Jupiter"},
{"question": "Which language is primarily used for web development?", "options": ["Python", "HTML", "C++", "Java"], "answer": "HTML"},
{"question": "What is the square root of 64?", "options": ["6", "7", "8", "9"], "answer": "8"},
{"question": "Who wrote 'Romeo and Juliet'?", "options": ["Leo Tolstoy", "Charles Dickens", "William Shakespeare", "Mark Twain"], "answer": "William Shakespeare"}
]
Step 3: গেমের মূল ফাংশন এবং স্কোর ট্র্যাকিং
এই ফাংশনটি বর্তমান প্রশ্ন এবং ব্যবহারকারীর স্কোর ট্র্যাক করবে। সঠিক উত্তর দেয়ার জন্য স্কোর বাড়বে এবং প্রশ্ন শেষ হলে চূড়ান্ত স্কোর দেখানো হবে।
current_question = 0
score = 0
def check_answer(selected_option):
global current_question, score
# যদি সঠিক উত্তর হয়, স্কোর বাড়ানো হবে
if selected_option == questions[current_question]["answer"]:
score += 1
# পরবর্তী প্রশ্নের দিকে যাওয়া
current_question += 1
if current_question < len(questions):
display_question()
else:
show_final_score()
def show_final_score():
messagebox.showinfo("Quiz Over", f"Your final score is: {score}/{len(questions)}")
root.quit()
Step 4: প্রশ্ন এবং অপশন প্রদর্শন ফাংশন
এই ফাংশনটি বর্তমান প্রশ্ন এবং অপশনগুলো GUI-তে দেখাবে। ব্যবহারকারী এক অপশন নির্বাচন করতে পারবে।
def display_question():
question_label.config(text=questions[current_question]["question"])
option_var.set(None)
for index, option in enumerate(questions[current_question]["options"]):
option_buttons[index].config(text=option, value=option)
Step 5: Tkinter GUI সেটআপ করা
Tkinter GUI উইন্ডো তৈরি করে প্রশ্ন এবং অপশনগুলোর জন্য উইজেট তৈরি করা হবে।
root = tk.Tk()
root.title("Quiz Game")
root.geometry("400x300")
# প্রশ্ন প্রদর্শনের জন্য লেবেল
question_label = tk.Label(root, text="", font=("Arial", 14), wraplength=300)
question_label.pack(pady=20)
# অপশনগুলো সংরক্ষণের জন্য ভ্যারিয়েবল এবং বোতাম তৈরি
option_var = tk.StringVar()
option_buttons = []
for i in range(4):
btn = tk.Radiobutton(root, text="", variable=option_var, font=("Arial", 12), value="", command=lambda: check_answer(option_var.get()))
btn.pack(anchor="w", padx=20, pady=5)
option_buttons.append(btn)
# প্রথম প্রশ্ন প্রদর্শন করা
display_question()
root.mainloop()
পূর্ণ কোড একসাথে
import tkinter as tk
from tkinter import messagebox
# প্রশ্ন এবং উত্তর ডাটা
questions = [
{"question": "What is the capital of France?", "options": ["Berlin", "Madrid", "Paris", "Rome"], "answer": "Paris"},
{"question": "What is the largest planet in our Solar System?", "options": ["Earth", "Mars", "Jupiter", "Venus"], "answer": "Jupiter"},
{"question": "Which language is primarily used for web development?", "options": ["Python", "HTML", "C++", "Java"], "answer": "HTML"},
{"question": "What is the square root of 64?", "options": ["6", "7", "8", "9"], "answer": "8"},
{"question": "Who wrote 'Romeo and Juliet'?", "options": ["Leo Tolstoy", "Charles Dickens", "William Shakespeare", "Mark Twain"], "answer": "William Shakespeare"}
]
# গ্লোবাল ভ্যারিয়েবল
current_question = 0
score = 0
# সঠিক উত্তর চেক করা এবং পরবর্তী প্রশ্নে যাওয়া
def check_answer(selected_option):
global current_question, score
if selected_option == questions[current_question]["answer"]:
score += 1
current_question += 1
if current_question < len(questions):
display_question()
else:
show_final_score()
# চূড়ান্ত স্কোর দেখানো
def show_final_score():
messagebox.showinfo("Quiz Over", f"Your final score is: {score}/{len(questions)}")
root.quit()
# প্রশ্ন এবং অপশন প্রদর্শন
def display_question():
question_label.config(text=questions[current_question]["question"])
option_var.set(None)
for index, option in enumerate(questions[current_question]["options"]):
option_buttons[index].config(text=option, value=option)
# Tkinter GUI সেটআপ
root = tk.Tk()
root.title("Quiz Game")
root.geometry("400x300")
# প্রশ্ন লেবেল
question_label = tk.Label(root, text="", font=("Arial", 14), wraplength=300)
question_label.pack(pady=20)
# অপশন বোতাম
option_var = tk.StringVar()
option_buttons = []
for i in range(4):
btn = tk.Radiobutton(root, text="", variable=option_var, font=("Arial", 12), value="", command=lambda: check_answer(option_var.get()))
btn.pack(anchor="w", padx=20, pady=5)
option_buttons.append(btn)
# প্রথম প্রশ্ন প্রদর্শন
display_question()
root.mainloop()
কোড ব্যাখ্যা
Questions List: প্রশ্ন এবং অপশন questions তালিকায় সংরক্ষিত আছে, যেখানে প্রতিটি প্রশ্নের সঠিক উত্তরও উল্লেখ করা আছে।
check_answer() Function: ব্যবহারকারী যে অপশন সিলেক্ট করেছেন তা সঠিক কিনা তা চেক করে। সঠিক হলে স্কোর বৃদ্ধি পায় এবং প্রশ্নের সংখ্যা বৃদ্ধি করে পরবর্তী প্রশ্নে চলে যায়। সব প্রশ্ন শেষ হলে show_final_score() কল হয়।
display_question() Function: বর্তমান প্রশ্ন এবং অপশনগুলো GUI-তে দেখায়।
Tkinter GUI Setup: Tkinter দিয়ে একটি GUI তৈরি করা হয়েছে যেখানে প্রতিটি প্রশ্নের জন্য চারটি অপশন রয়েছে এবং ব্যবহারকারী এক অপশন নির্বাচন করতে পারবেন।
উপসংহার
এই কুইজ গেমটি Python Tkinter ব্যবহার করে সহজেই তৈরি করা যায়। এই প্রজেক্টটি Python-এ GUI প্রোগ্রামিং এবং বিভিন্ন প্রশ্ন-উত্তর কনসেপ্টে দক্ষতা বাড়াবে। চাইলে এই গেমে আরও ফিচার যোগ করা যায়, যেমন:
- দৈবভাবে প্রশ্ন নির্বাচন (randomized questions)
- টাইমার যুক্ত করা (সীমিত সময়ে উত্তর দিতে হবে)
- বিভিন্ন ক্যাটাগরির প্রশ্ন
Read more