Flames Checker

def rmv_match_char(list1, list2):

    for i in range(len(list1)):

        for j in range(len(list2)):

            if list1[i] == list2[j]:

                c = list1[i]

                list1.remove(c)

                list2.remove(c)

                list3 = list1 + ["*"] + list2

                return [list3, True]

    list3 = list1 + ["*"] + list2

    return [list3, False]

if __name__ == "__main__":

    p1 = input("Player 1 name : ")

    p1 = p1.lower()

    p1.replace(" ", "")

    p1_list = list(p1)

    p2 = input("Player 2 name : ")

    p2 = p2.lower()

    p2.replace(" ", "")

    p2_list = list(p2)

    proceed = True

    while proceed:

        ret_list = rmv_match_char(p1_list, p2_list)

        con_list = ret_list[0]

        proceed = ret_list[1]

        star_index = con_list.index("*")

        p1_list = con_list[: star_index]

        p2_list = con_list[star_index + 1:]

    count = len(p1_list) + len(p2_list)

    result = ["Friends", "Love", "Affection", "Marriage", "Enemy", "Siblings"]

    while len(result) > 1:

        split_index = (count % len(result) - 1)

        if split_index >= 0:

            right = result[split_index + 1:]

            left = result[: split_index]

            result = right + left

        else:

            result = result[: len(result) - 1]

    print("Relationship status :", result[0])


Olympic Symbol

import turtle

tr = turtle.Turtle()

tr.pensize(5)

tr.color("blue")

tr.penup()

tr.goto(-110, -25)

tr.pendown()

tr.circle(45)

tr.color("black")

tr.penup()

tr.goto(0, -25)

tr.pendown()

tr.circle(45)

tr.color("red")

tr.penup()

tr.goto(110, -25)

tr.pendown()

tr.circle(45)

tr.color("yellow")

tr.penup()

tr.goto(-55, -75)

tr.pendown()

tr.circle(45)

tr.color("green")

tr.penup()

tr.goto(55, -75)

tr.pendown()

tr.circle(45)


Page Switching

import tkinter as tk

from tkinter import ttk

LARGEFONT =("Verdana", 35)

class switchApp(tk.Tk):

    def __init__(self, *args, **kwargs):

        tk.Tk.__init__(self, *args, **kwargs)

        container = tk.Frame(self)

        container.pack(side = "top", fill = "both", expand = True)

        container.grid_rowconfigure(0, weight = 1)

        container.grid_columnconfigure(0, weight = 1)

        self.frames = {}

        for F in (StartPage, Page1, Page2):

            frame = F(container, self)

            self.frames[F] = frame

            frame.grid(row = 0, column = 0, sticky ="nsew")

        self.show_frame(StartPage)

    def show_frame(self, cont):

        frame = self.frames[cont]

        frame.tkraise()

class StartPage(tk.Frame):

    def __init__(self, parent, controller):

        tk.Frame.__init__(self, parent)

        label = ttk.Label(self, text ="Startpage", font = LARGEFONT)

        label.grid(row = 0, column = 4, padx = 10, pady = 10)

        button1 = ttk.Button(self, text ="Page 1",

        command = lambda : controller.show_frame(Page1))

        button1.grid(row = 1, column = 1, padx = 10, pady = 10)

        button2 = ttk.Button(self, text ="Page 2",

        command = lambda : controller.show_frame(Page2))

        button2.grid(row = 2, column = 1, padx = 10, pady = 10)

class Page1(tk.Frame): 

    def __init__(self, parent, controller):

        tk.Frame.__init__(self, parent)

        label = ttk.Label(self, text ="Page 1", font = LARGEFONT)

        label.grid(row = 0, column = 4, padx = 10, pady = 10)

        button1 = ttk.Button(self, text ="StartPage",

                            command = lambda : controller.show_frame(StartPage))

        button1.grid(row = 1, column = 1, padx = 10, pady = 10)

        button2 = ttk.Button(self, text ="Page 2",

                            command = lambda : controller.show_frame(Page2))

        button2.grid(row = 2, column = 1, padx = 10, pady = 10)

class Page2(tk.Frame):

    def __init__(self, parent, controller):

        tk.Frame.__init__(self, parent)

        label = ttk.Label(self, text ="Page 2", font = LARGEFONT)

        label.grid(row = 0, column = 4, padx = 10, pady = 10)

        button1 = ttk.Button(self, text ="Page 1",

                            command = lambda : controller.show_frame(Page1))

        button1.grid(row = 1, column = 1, padx = 10, pady = 10)

        button2 = ttk.Button(self, text ="Startpage",

                            command = lambda : controller.show_frame(StartPage))

        button2.grid(row = 2, column = 1, padx = 10, pady = 10)

app = switchApp()

app.mainloop()


EMI calculator

from tkinter import *

class EmiCalculator:

    def __init__(self):

        window = Tk() 

        window.title("Loan Calculator") 

        Label(window, text = "Annual Interest Rate").grid(row = 1,

                                        column = 1, sticky = W)

        Label(window, text = "Number of Years").grid(row = 2,

                                    column = 1, sticky = W)

        Label(window, text = "Loan Amount").grid(row = 3,

                                column = 1, sticky = W)

        Label(window, text = "Monthly Payment").grid(row = 4,

                                    column = 1, sticky = W)

        Label(window, text = "Total Payment").grid(row = 5,

                                    column = 1, sticky = W)

        self.annualInterestRateVar = StringVar()

        Entry(window, textvariable = self.annualInterestRateVar,

                    justify = RIGHT).grid(row = 1, column = 2)

        self.numberOfYearsVar = StringVar()

        Entry(window, textvariable = self.numberOfYearsVar,

                justify = RIGHT).grid(row = 2, column = 2)

        self.loanAmountVar = StringVar()

        Entry(window, textvariable = self.loanAmountVar,

            justify = RIGHT).grid(row = 3, column = 2)

        self.monthlyPaymentVar = StringVar()

        lblMonthlyPayment = Label(window, textvariable =

                        self.monthlyPaymentVar).grid(row = 4,

                        column = 2, sticky = E)

        self.totalPaymentVar = StringVar()

        lblTotalPayment = Label(window, textvariable =

                    self.totalPaymentVar).grid(row = 5,

                    column = 2, sticky = E)

        btComputePayment = Button(window, text = "Compute Payment",

                                command = self.computePayment).grid(

                                row = 6, column = 2, sticky = E)

        window.mainloop() 

    def computePayment(self):

        monthlyPayment = self.getMonthlyPayment(

        float(self.loanAmountVar.get()),

        float(self.annualInterestRateVar.get()) / 1200,

        int(self.numberOfYearsVar.get()))

        self.monthlyPaymentVar.set(format(monthlyPayment, '10.2f'))

        totalPayment = float(self.monthlyPaymentVar.get()) * 12 \

                                * int(self.numberOfYearsVar.get())

        self.totalPaymentVar.set(format(totalPayment, '10.2f'))

    def getMonthlyPayment(self, loanAmount, monthlyInterestRate, numberOfYears):

        monthlyPayment = loanAmount * monthlyInterestRate / (1

        - 1 / (1 + monthlyInterestRate) ** (numberOfYears * 12))

        return monthlyPayment;

        root = Tk() 

EmiCalculator()



Bubble sort visualizer

import pygame

pygame.init()

win = pygame.display.set_mode((500, 400))

pygame.display.set_caption("Bubble sort")

x = 40

y = 40

width = 20

height = [200, 50, 130, 90, 250, 61, 110,

            88, 33, 80, 70, 159, 180, 20]

run = True

def show(height):

    for i in range(len(height)):

        pygame.draw.rect(win, (255, 0, 0), (x + 30 * i, y, width, height[i]))

while run:

    execute = False

    pygame.time.delay(10)

    keys = pygame.key.get_pressed()

    for event in pygame.event.get():

        if event.type == pygame.QUIT:

            run = False

    if keys[pygame.K_SPACE]:

        execute = True

    if execute == False:

        win.fill((0, 0, 0))

        show(height)

        pygame.display.update()

    else:

        for i in range(len(height) - 1):

            for j in range(len(height) - i - 1):

                if height[j] > height[j + 1]:

                    t = height[j]

                    height[j] = height[j + 1]

                    height[j + 1] = t

                win.fill((0, 0, 0))

                show(height)

                pygame.time.delay(50)

                pygame.display.update()

pygame.quit()