Introduction

Basic Widgets

Toplevel Widgets

Geometry Management

Binding Functions

Working with Images in Tkinter

Tkinter Advance

Applications and Projects

Simple FLAMES game using Tkinter

The FLAMES game is a popular game among youngsters. It stands for Friends, Lovers, Affectionate, Marriage, Enemies, and Siblings. The game predicts the nature of a relationship between two people based on their names.

Here's a step-by-step tutorial on creating a simple FLAMES game using tkinter:

Simple FLAMES Game Using tkinter:

1. Import Required Libraries:

import tkinter as tk
from functools import reduce

2. Logic for FLAMES:

Here's the basic logic for the FLAMES game:

def flames(name1, name2):
    name1 = name1.lower().replace(" ", "")
    name2 = name2.lower().replace(" ", "")
    
    for letter in name1:
        if letter in name2:
            name1 = name1.replace(letter, "", 1)
            name2 = name2.replace(letter, "", 1)

    count = len(name1) + len(name2)

    result = ["Friends", "Lovers", "Affectionate", "Marriage", "Enemies", "Siblings"]

    while len(result) > 1:
        split_index = (count % len(result) - 1)
        if split_index >= 0:
            left = result[:split_index]
            right = result[split_index+1:]
            result = right + left
        else:
            result = result[:len(result)-1]

    return result[0]

3. Create the GUI:

def show_result():
    player1 = entry1.get()
    player2 = entry2.get()
    
    result_str = flames(player1, player2)
    result_label.config(text=result_str)

root = tk.Tk()
root.title("FLAMES Game")

label1 = tk.Label(root, text="Enter your name:")
label1.pack(pady=10)

entry1 = tk.Entry(root)
entry1.pack(pady=10)

label2 = tk.Label(root, text="Enter your crush's name:")
label2.pack(pady=10)

entry2 = tk.Entry(root)
entry2.pack(pady=10)

button = tk.Button(root, text="Find Relationship", command=show_result)
button.pack(pady=20)

result_label = tk.Label(root, text="", font=('Helvetica', 16))
result_label.pack(pady=20)

root.mainloop()

When you enter two names and click on "Find Relationship", the program calculates the relationship based on the FLAMES logic and displays it. This is a simple game and doesn't actually predict real relationships, but it's a fun pastime for many!

  1. Creating a FLAMES game with Tkinter:

    import tkinter as tk
    import random
    
    def flames_calculator(name1, name2):
        # Function to calculate FLAMES result
        all_letters = set(name1.lower() + name2.lower())
        common_letters = set.intersection(set(name1.lower()), set(name2.lower()))
        remaining_letters = all_letters - common_letters
        total_letters = len(remaining_letters)
        flames = ["Friends", "Love", "Affection", "Marriage", "Enemy", "Siblings"]
    
        while len(flames) > 1:
            index = (total_letters % len(flames) - 1)
            flames = flames[index + 1:] + flames[:index]
    
        return flames[0]
    
    def calculate_flames():
        name1 = entry_name1.get()
        name2 = entry_name2.get()
        result = flames_calculator(name1, name2)
        label_result.config(text=f"FLAMES Result: {result}")
    
    # GUI setup
    root = tk.Tk()
    root.title("Love Compatibility Calculator")
    
    # Entry widgets for names input
    entry_name1 = tk.Entry(root, width=20)
    entry_name1.grid(row=0, column=0, padx=10, pady=10)
    entry_name2 = tk.Entry(root, width=20)
    entry_name2.grid(row=0, column=1, padx=10, pady=10)
    
    # Button to trigger calculation
    btn_calculate = tk.Button(root, text="Calculate FLAMES", command=calculate_flames)
    btn_calculate.grid(row=1, column=0, columnspan=2, pady=10)
    
    # Display FLAMES result
    label_result = tk.Label(root, text="")
    label_result.grid(row=2, column=0, columnspan=2)
    
    root.mainloop()