Beispiel #1
0
def reinicio():
    zera_pontos = ''
    pos2 = list((pygame.mouse.get_pos()))
    click_mouse = pygame.mouse.get_pressed()
    screen.blit(back, (0, 0))
    screen.blit(reiniciar, (340, 185))
    screen.blit(voltar, (340, 279))

    #exibe a pontuacao da ultima partida
    pontuacao = open("pontos.txt", "r").read()
    font = pygame.font.Font("fonts/font2.ttf", 30)
    mensagem = font.render(pontuacao, True, (0, 0, 0))
    screen.blit(mensagem, [450, 110])

    if pos2[0] >= 281 and pos2[0] <= 437 and pos2[1] >= 187 and pos2[1] <= 269:
        if click_mouse[0] == 1:
            zera_pontos = open("pontos.txt",
                               "w").write(str(0))  #zera a ultima pontuação
            script.main()
            sys.exit()

    if pos2[0] >= 282 and pos2[0] <= 438 and pos2[1] >= 282 and pos2[1] <= 368:
        if click_mouse[0] == 1:
            menu.main()
            sys.exit()

    pygame.display.flip()
Beispiel #2
0
    def collide(self, xvel, yvel, platforms, enemies):
        for p in platforms:
            if pygame.sprite.collide_rect(self, p):
                if isinstance(p, ExitBlock):
                    self.salida = True
                if xvel > 0:
                    self.rect.right = p.rect.left
                    self.x -= self.xvel
                    self.xvel = 0
                    print "collide right"
                if xvel < 0:
                    self.x -= self.xvel
                    self.rect.left = p.rect.right
                    print "collide left"
                    self.xvel = 0
                if yvel > 0:
                    self.rect.bottom = p.rect.top
                    self.onGround = True
                    self.onAir = False
                    self.yvel = 0
                if yvel < 0:
                    self.rect.top = p.rect.bottom
        for p in enemies:
            if pygame.sprite.collide_rect(self, p):

                if self.vidas == 0:
                    print "muerto"
                    menu.main()
                else:
                    self.vidas -= 1
                    self.updatecharacter(getdown)
                    if self.faceR:
                        self.rect.left += 10
                    else:
                        self.rect.left -= 10
Beispiel #3
0
def main():
    print "<<<   RANKING    >>>\n"
    escores = ordena_scores(get_scores())
    for i, escore in enumerate(escores):
        print str(i+1) + ". " + escore
        
    print "\n<<<              >>>\n"
    
    menu.main()
Beispiel #4
0
def main():
    #os.environ["SDL_VIDEO_CENTERED"] = "1"
    #pygame.mixer.pre_init(44100, -16, 2, 4096)
    ##pygame.init()
    #pygame.mouse.set_visible(0)
    #pygame.display.set_icon(pygame.image.load(data.filepath("bowser1.gif")))
    #pygame.display.set_caption("Super Mario Bros (DEMO)")
    #screen = pygame.display.set_mode((640, 480))
    menu.main()
Beispiel #5
0
def main():
    #os.environ["SDL_VIDEO_CENTERED"] = "1"
    #pygame.mixer.pre_init(44100, -16, 2, 4096)
    ##pygame.init()
    #pygame.mouse.set_visible(0)
    #pygame.display.set_icon(pygame.image.load(data.filepath("bowser1.gif")))
    #pygame.display.set_caption("Super Mario Bros (DEMO)")
    #screen = pygame.display.set_mode((640, 480))
    menu.main()
Beispiel #6
0
def show_menu(parent):
    """ 
    Base on parent that user chose, this function will call the respective menu option(s)
    """
    if parent == 0:
        menu.main()
    elif parent == 1:
        clearScreen()
        menu.setting()
    elif parent == 4:
        clearScreen()
        menu.dating()
def get_column_choice(tender_file):
    print('\nBuilding column menu...')
    global df_tender
    # get the columns from the file
    # df.columns.tolist()
    tender_col_choices = []
    tender_col_nums = []
    df_tender = pd.read_excel(tender_file,
                              sheet_name=0)  # read tender file into dataframe
    for head in df_tender:
        tender_col_choices.append(head)  # copy tender headers into array

    # print user menu
    print('\n-----------------------------------------')
    print('           Tender Columns')
    print('-----------------------------------------')
    spacer = '  '
    print('{}{}{}'.format('m', spacer, 'Show Main Menu'))
    tender_col_nums.append('m')
    col_num = ''
    i = 0
    for tc in tender_col_choices:
        i += 1
        print('{}  {}'.format(i, tc))
        tender_col_nums.append(str(i))

    # get user input
    print('\nSelect the column for extracting mpns (or \'m\' for Main Menu)')
    col_choice = input()

    # validate user input
    while col_choice not in tender_col_nums:
        print('Invalid choice! Select a column (or \'m\' for Main Menu)')
        col_choice = input()

    if col_choice == 'm':
        menu.main()
        # if the user chooses 'm', then program control goes back to menu.main(),
        # which means that when menu.main() terminates, the program control will
        # return to this program; therefore, it's important to invoke sys.exit()
        # upon the callback to terminate all py execution in the terminal
        sys.exit()
    else:
        col_choice = tender_col_choices[int(col_choice) - 1]
        print('\nYou chose: {}'.format(col_choice))
        #print(jsonl_files)

    return col_choice
Beispiel #8
0
def main(stdscr):
    state = menu.main(stdscr)
    global start
    start = datetime.now()
    if state == CONTINUE:
        pass
    elif state == "NEW":
        state = egg
    elif state == SETTINGS:
        pass
    
    stdscr.nodelay(True)
    stdscr.timeout(500)
    
    height, width = stdscr.getmaxyx()
    box = (offset + 1, offset, height - offset, width - offset)
    
    while 1:
        key = stdscr.getch()
        need_change_mode = False
        if key == ord("q"):
            break
        elif key == ord("m"):
            need_change_mode = True
        
        update_age()
        
        if age >= 0.0004:
            state = baby
        state(stdscr, box, need_change_mode)
Beispiel #9
0
 async def poller(stream):
     sreader = asyncio.StreamReader(stream)
     i = 0
     while True:
         await scheduling.wait()  #and await disconnect.wait()
         b = await sreader.read(1)
         if b:
             try:
                 b.decode('utf-8')
             except UnicodeError:
                 await asyncio.sleep(0)
                 continue
             if (b == dfl.ESC_CHAR.encode()
                     and stream.__class__.__name__ == 'UART'
                     and not session.logging):
                 i += 1
                 if i > 2:
                     asyncio.create_task(session.login(m, stream))
                     session.logging = True
             elif (b == b'\x1b' and
                   (stream.__class__.__name__ == 'UART' and session.loggedin
                    or stream.__class__.__name__ == 'USB_VCP')
                   and not menu.interactive):
                 asyncio.create_task(menu.main(m, stream, devs))
                 m.set(b)  # Passes ESC to menu.
                 menu.interactive = True
             else:
                 m.set(b)
                 i = 0
         await asyncio.sleep_ms(100)
def today_menu(message):
    today_menu_list = menu.main()
    if message.chat.type == 'private':
        if message.text == 'Сегодня в меню':
            for items in today_menu_list:
                bot.send_message(message.chat.id, items[0] + items[1])
        elif message.text == 'Заказать обед':
            make_order(message)
        else:
            bot.send_message(message.chat.id, 'Нажмите одну из кнопок')
def find_engine():
    print("Connecting...")
    if (not myclient):
        try:
            connect()
            find_engine()

        except Exception as e:
            print("Error", e)
    db = myclient["appdb"]
    col = db["project"]

    engine = float(input("Engine Size:"))

    query = {"car.engineSize": engine}
    docs = col.find(query)
    for d in docs:
        print(d["_id"], "|", d["car"]["reg"], "|", d["car"]["engineSize"], "|",
              d["addresses"])
        menu.main()
Beispiel #12
0
def fim_partida(opcao, jogador):
    print "O que voce deseja fazer:"
    print "(1) Jogar novamente"
    print "(2) Mudar dificuldade"
    print "(3) Voltar ao menu"
    print "(4) Fechar"
    print "Digite o numero correspondente a dificuldade escolhida:\n"

    opcao = raw_input()

    if opcao== "1":
        main(opcao, jogador)
    elif opcao == "2":
        menu.escolher_dificuldade()
    elif opcao == "3":
        menu.main()
    elif opcao == "4":
        sys.exit()
    else:
        fim_partida(opcao, jogador)
Beispiel #13
0
def comments():
    """
        Procédure pour afficher les 10 derniers commentaires reçu de la chaîne.
    """
    CONFIG_FILENAME = 'user.config'
    section_comments = []
    commentaires = []
    nom = ""
    date_temps = ""
    comment_contenu = ""
    id_chaine = autre.channel_id(CONFIG_FILENAME)
    cle_api = autre.api_key(CONFIG_FILENAME)
    autre.cls()
    print(menu.sub_header(" Commentaires "))
    url = "https://www.googleapis.com/youtube/v3/commentThreads?part=" \
          + "snippet%2Creplies&allThreadsRelatedToChannelId=" + id_chaine \
          + "&maxResults=10&key=" + cle_api
    try:
        reponse = urllib.request.urlopen(url)
        lecteur = codecs.getreader("utf-8")
        items = json.load(lecteur(reponse))
        section_comments = items["items"]
        for comment in section_comments:
            comment = comment["snippet"]["topLevelComment"]["snippet"]
            nom = comment["authorDisplayName"]
            date_temps = comment["publishedAt"]
            comment_contenu = comment["textDisplay"]
            commentaires.append([nom, date_temps, comment_contenu])
        commentaires.reverse()
        i = 0
        for contenu in commentaires:
            date = datetime.strptime(contenu[1], "%Y-%m-%dT%H:%M:%S.%fZ")
            print("#" + (str(len(commentaires)-i) + " ").ljust(40, "_") + "\n"+
                  "Utilisateur: " + str(contenu[0]) + "\n" +
                  "Publié le: " + str(date.strftime('%m/%d/%Y %H:%M:%S')) + 
                  "\n" + str(contenu[2]) + "\n")
            i += 1
    except:
        autre.erreur_section()
    autre.input_block()
    menu.main()
Beispiel #14
0
def overview():
    """
        Procédure pour afficher un aperçu global de la chaîne YouTube
        de l'utilisateur.
    """
    CONFIG_FILENAME = 'user.config'
    statistiques = []
    nb_vues = 0
    nb_subs = 0
    nb_vids = 0
    nb_comments = 0
    id_chaine = autre.channel_id(CONFIG_FILENAME)
    cle_api = autre.api_key(CONFIG_FILENAME)
    autre.cls()
    print(menu.sub_header(" Vue d'ensemble "))
    url = "https://www.googleapis.com/youtube/v3/channels?part=id%2C" \
          + "statistics%2Csnippet&id=" + id_chaine + "&key=" + cle_api
    try:
        reponse = urllib.request.urlopen(url)
        lecteur = codecs.getreader("utf-8")
        items = json.load(lecteur(reponse))
        statistiques = items["items"][0]["statistics"]
        nb_vues = statistiques["viewCount"]
        nb_vids = statistiques["videoCount"]
        nb_comments = statistiques["commentCount"]
        if statistiques["hiddenSubscriberCount"] != False:
            nb_subs = "PRIVÉ"
        else:
            nb_subs = statistiques["subscriberCount"]
        print(items["items"][0]["snippet"]["title"] + "\n\n" +
                "Nombre de visionnements: " + str(nb_vues) + "\n" +
                "Nombre d'abonnées: " + str(nb_subs) + "\n" +
                "Nombre de vidéos: " + str(nb_vids) + "\n" +
                "Nombre de commentaires: " + str(nb_comments) + "\n\n"
                "*Données en date du " + datetime.now().strftime\
                ("%d/%m/%Y à %H:%M:%S"))
    except:
        autre.erreur_section()
    autre.input_block()
    menu.main()
def main():
    running = True

    while running is True:
        print("""
    ꧁•⊹٭𝙲𝚘𝚗𝚟𝚎𝚛𝚝𝚎𝚛٭⊹•꧂
    1. DNA to mRNA
    2. mRNA to tRNA
    3. Go back to main
    4. Exit
        """)
        convertOpt = input("Option:")

        if convertOpt == "1":
            try:
                DNA_sequence = str(input("What is the DNA sequence?")).upper(
                )  # to make it all capital letters
                DNA_sequence = split(DNA_sequence)
                converter_seq.DNA_seqConvert(DNA_sequence)

            except:
                print("Error! please try again.")

        elif convertOpt == "2":
            try:
                RNA_sequence = str(input("What is the mRNA sequence?")).upper()
                RNA_sequence = split(RNA_sequence)
                converter_seq.mRNA_seqConvert(RNA_sequence)

            except:
                print("Error! please try again.")

        elif convertOpt == "3":
            menu.main()

        elif convertOpt == "4":
            running = False

        else:
            print("Error! please try again.")
def get_user_choice():
    global menu_choices
    # get user choice
    print('\nSelect a category (or \'m\' for Main Menu)')
    user_choice = input()

    # validate user input
    while user_choice not in menu_nums:
        print('Invalid choice! Select a category (or \'m\' for Main Menu)')
        user_choice = input()

    if user_choice == 'm':
        menu.main()

        # if the user chooses 'm', then program control goes back to menu.main(),
        # which means that when menu.main() terminates, the program control will
        # return to this program; therefore, it's important to invoke sys.exit()
        # upon the callback to terminate all py execution in the terminal
        sys.exit()
    else:
        index = int(user_choice)
        return menu_choices[int(user_choice)]
Beispiel #17
0
def pause(intertime=FPS):
	global pause_time, last_menu_time
	start = time()
	pause_surface = pygame.transform.smoothscale(PAUSE_IMAGE, PAUSE_SIZE)
	pause_surface = pause_surface.convert_alpha()
	pause_position = (WIDTH//2 - PAUSE_SIZE[0]//2, HEIGHT//2 - PAUSE_SIZE[1]//2)
	DISPLAY_SURFACE.blit(pause_surface, pause_position)
	pygame.display.update()
	menu.main()
	inside = True
	while inside:
		FPS_CLOCK.tick(intertime)
		for event in pygame.event.get():
			if event.type == QUIT or (event.type == KEYUP and event.key == K_ESCAPE):
				pass # terminate()
			elif (event.type == KEYUP) and (event.key in (K_p, K_SPACE, K_BREAK, K_PAUSE, K_MENU)):
				inside = False
				if menu.exist:
					menu.close()
	if Ship.player is None or (Ship.player.health <= 0):
		terminate()
	end = time()
	pause_time += end - start
	last_menu_time = end
Beispiel #18
0
def main():

    main_menu_exit = False

    while not main_menu_exit:
        if dbTable.isEmpty("tasks_list", None):
            main_menu = menu.main(0)
            main_sel = main_menu.show()

            if main_sel == 0:
                dbTable.createItem("tasks_list", None, False)
            elif main_sel == 1:
                main_menu_exit = True
                print("manageDom Closed.")
        else:
            main_menu = menu.main(1)
            main_sel = main_menu.show()

            if main_sel == 0:
                dbTable.showNames("tasks_list", None)
            elif main_sel == 1:
                index = menu.selectItem("tasks_list", None, True)
                open("main_tasks", index + 1, "tasks_list")
            elif main_sel == 2:
                dbTable.createItem("tasks_list", None, False)
            elif main_sel == 3:
                index = menu.selectItem("tasks_list", None, True)
                dbTable.renameItem("tasks_list", None, index + 1)
            elif main_sel == 4:
                index = menu.selectItem("tasks_list", None, True)
                dbTable.deleteItem("tasks_list", None, index + 1)
            elif main_sel == 5:
                main_menu_exit = True
                db.close()
                dataConnect.mysqlStop()
                print("manageDom Closed.")
Beispiel #19
0
def main():
    # holder variables for optional data to include between menus
    opt = [False]
    while True:
        # response holds the answer to what button the user clicked
        response, opt = menu.main(opt)

        # quit button
        if response == "quit":
            # ends application
            sys.exit()

        # start button
        elif response == "start":
            # launches game
            game.main()

        # rules button
        elif response == "rules":
            # show rules page
            opt = menu.mainRules(opt)
Beispiel #20
0
def main():
    connection_url = "@gwynne.cs.ualberta.ca:1521/CRS"
    database_spec = "table_definitions.sql"
    drop_tables = "drop_tables.sql"

    # connect to database
    connection = database.connect(connection_url)

    # mode 0 to ignore, 1 for fresh setup
    setup.createTable(0, connection, database_spec, drop_tables)

    while True:
        # login screen
        user = login.login(connection)
        option = ""

        while option != 4:
            # main menu
            option = menu.main(user)
            database.process(option, connection, user)

        database.process(option, connection, user)
Beispiel #21
0
def execute():
    #Static Settings
    settings_file_name = "settings.wdf"

    #Modifiable Settings
    try:
        from wdf_test_package import wdf
        settings = wdf.load(settings_file_name)
    except:
        print("\n", "Error: Couldnt load required file (WDF-Package)", "\n")
        return

    #Imports
    try:
        import msvcrt
        import iocontrol
        import menu
        import time
        import game
    except:
        print("\n", settings["err_import"], "\n")
        return

    #Menu loop
    returned = int
    while True:
        returned = menu.main(settings)
        if returned == 0:
            break
        if returned == int(settings["mm_pos_play"]):
            game.init(settings)
        elif returned == int(settings["mm_pos_reload_settings"]):
            print(settings["settings_reload"])
            settings = wdf.load(settings_file_name)
            time.sleep(float(settings["normal_sleep_time"]))
        elif returned == int(settings["mm_pos_exit"]):
            iocontrol.message(settings, "leave")
            break
def main():
    global log
    with menu.main() as m:
        log = open('info.log', 'w')
        #log.write('test')

        e = editor(m)
        e.load('main.py')

        row = 2
        for i in range(0, 255):
            col = i % m.width
            row = i // m.width + 2
            m.window.addstr(row, col, 'X', menu.curses.color_pair(i))

        #e.print('def', 0, 209) #209
        #e.print(' ', 0)
        #e.print('func', 0, 47)
        #e.print('():', 0)
        #e.print('    a', 1)

        # 173, 15

        m.run()
Beispiel #23
0
def GetBank(roomid):
	try:
		conn = psycopg2.connect(dbname=settings.pgdatabase, user=settings.pguser, 
								password=settings.pgpassword, host=settings.pghost)
		with conn.cursor() as cursor:
			conn.autocommit = True
			messagebank = ''
			allbets = 0
			cursor.execute(F"SELECT * FROM goldenrooms where room_id = '{roomid}'")
			room = cursor.fetchone()
			roomid = room[0]
			rolltime = room[1]
			timenow = datetime.now()
			roomrolltime = datetime.strptime(rolltime, '%Y-%m-%d %H:%M:%S')
			black = room[4]
			red = room[5]
			odd = room[6]
			even = room[7]
			numbers = room[8]
			play = room[12]
			first_gap = room[9]
			second_gap = room[10]
			third_gap = room[11]
			room_hash = room[13]
			if black != 'None':
				messagebank +='\n'
				messagebank += 'Ставки на чёрное:\n'
				roombets = ast.literal_eval(black)
				roombetsvalue = len(roombets)
				for bet in range(roombetsvalue):
					if bet % 2 == 0:
						userid = roombets[bet]
						getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
						cursor.execute(getusername)
						userinfo = cursor.fetchone()
						username = userinfo[0]
						allbets += roombets[bet + 1]
						stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
						messagebank += F"{username} - {stavka} коинов\n"
			if red != 'None':
				messagebank +='\n'
				messagebank += 'Ставки на красное:\n'
				roombets = ast.literal_eval(red)
				roombetsvalue = len(roombets)
				for bet in range(roombetsvalue):
					if bet % 2 == 0:
						userid = roombets[bet]
						getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
						cursor.execute(getusername)
						userinfo = cursor.fetchone()
						username = userinfo[0]
						allbets += roombets[bet + 1]
						stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
						messagebank += F"{username} - {stavka} коинов\n"
			if even != 'None':
				messagebank +='\n'
				messagebank += 'Ставки на чётное:\n'
				roombets = ast.literal_eval(even)
				roombetsvalue = len(roombets)
				for bet in range(roombetsvalue):
					if bet % 2 == 0:
						userid = roombets[bet]
						getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
						cursor.execute(getusername)
						userinfo = cursor.fetchone()
						username = userinfo[0]
						allbets += roombets[bet + 1]
						stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
						messagebank += F"{username} - {stavka} коинов\n"
			if odd != 'None':
				messagebank +='\n'
				messagebank += 'Ставки на нечётное:\n'
				roombets = ast.literal_eval(odd)
				roombetsvalue = len(roombets)
				for bet in range(roombetsvalue):
					if bet % 2 == 0:
						userid = roombets[bet]
						getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
						cursor.execute(getusername)
						userinfo = cursor.fetchone()
						username = userinfo[0]
						allbets += roombets[bet + 1]
						stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
						messagebank += F"{username} - {stavka} коинов\n"
			if first_gap != 'None':
				messagebank +='\n'
				messagebank += 'Ставки на 1-12:\n'
				roombets = ast.literal_eval(first_gap)
				roombetsvalue = len(roombets)
				for bet in range(roombetsvalue):
					if bet % 2 == 0:
						userid = roombets[bet]
						getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
						cursor.execute(getusername)
						userinfo = cursor.fetchone()
						username = userinfo[0]
						allbets += roombets[bet + 1]
						stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
						messagebank += F"{username} - {stavka} коинов\n"
			if second_gap != 'None':
				messagebank +='\n'
				messagebank += 'Ставки на 13-24:\n'
				roombets = ast.literal_eval(second_gap)
				roombetsvalue = len(roombets)
				for bet in range(roombetsvalue):
					if bet % 2 == 0:
						userid = roombets[bet]
						getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
						cursor.execute(getusername)
						userinfo = cursor.fetchone()
						username = userinfo[0]
						allbets += roombets[bet + 1]
						stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
						messagebank += F"{username} - {stavka} коинов\n"
			if third_gap != 'None':
				messagebank +='\n'
				messagebank += 'Ставки на 25-36:\n'
				roombets = ast.literal_eval(third_gap)
				roombetsvalue = len(roombets)
				for bet in range(roombetsvalue):
					if bet % 2 == 0:
						userid = roombets[bet]
						getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
						cursor.execute(getusername)
						userinfo = cursor.fetchone()
						username = userinfo[0]
						allbets += roombets[bet + 1]
						stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
						messagebank += F"{username} - {stavka} коинов\n"
			if numbers != 'None':
				messagebank +='\n'
				messagebank += 'Ставки на числа:\n'
				roombets = ast.literal_eval(numbers)
				roombetsvalue = len(roombets)
				for bet in range(roombetsvalue):
					if bet % 3 == 0:
						userid = roombets[bet]
						cursor.execute(F"SELECT username,balance,wins_all,wins_today FROM goldenusers WHERE userid = '{userid}'")
						userinfo = cursor.fetchone()
						username = userinfo[0]
						stavka = "{:,}".format(roombets[bet + 1]).replace(',',',')
						allbets += roombets[bet + 1]
						messagebank += F"{username} - {stavka} коинов на число {roombets[bet + 2]}\n"

			seconds = (timenow - roomrolltime).seconds
			timez = str(timedelta(seconds=60 - seconds))[3::]
			if play == 'No':
				messagebank = F"В этом раунде ещё никто не поставил.\n\nХэш игры:\n{room_hash}\n\nДо конца раунда: {timez}"
			else:
				allbets = "{:,}".format(int(allbets)).replace(',',' ')
				messagebank = F"Всего поставлено {allbets} коинов\n\n{messagebank}\n\nХэш игры:\n{room_hash}\n\nДо конца раунда: {timez}"
			messages_send(roomid,messagebank,menu.main())
	except Exception:
		traceback.print_exc()
Beispiel #24
0
def rounds():
	try:
		conn = psycopg2.connect(dbname=settings.pgdatabase, user=settings.pguser, 
								password=settings.pgpassword, host=settings.pghost)
		with conn.cursor() as cursor:
			conn.autocommit = True
			cursor.execute(F"SELECT * FROM goldenrooms")
			rooms = cursor.fetchall()
			for room in rooms:
				randompass = ''
				messagelose = ''
			#	timenow = datetime.now().strftime('%Y-%m-%d %H:%M:%S') когда добавляем в бд
				timenow = datetime.now()
				room_id = room[0]
				roomrolltime = datetime.strptime(room[1], '%Y-%m-%d %H:%M:%S')
				dropvalue = int(room[2]) # Выпавший коэффициент
				dropcolor = room[3]
				if dropvalue == 0:
					messagewin = F'Выпало число 0!\n\n'
					winimg = imgzero
				else:
					winimg = imgarray[dropvalue - 1]
					messagewin = F'Выпало число {dropvalue}, {symbolsz[dropcolor]}\n\n'
				black = room[4]
				red = room[5]
				odd = room[6]
				even = room[7]
				numbers = room[8]
				play = room[12]
				first_gap = room[9]
				second_gap = room[10]
				third_gap = room[11]
				room_hash = room[13]
				hash_decode = room[14]
				seconds = (timenow - roomrolltime).seconds
				if seconds >= 60:
					if play == 'No':
						timenow = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
						cursor.execute(F"UPDATE goldenrooms SET rolltime = '{timenow}' Where room_id = '{room_id}'")
						continue
					timenow = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
					cursor.execute(F"UPDATE goldenrooms SET black = 'None',red = 'None',odd = 'None',even = 'None',numbers = 'None',first_gap = 'None',second_gap = 'None',third_gap = 'None',play = 'No' Where room_id = '{room_id}'")
	#------------------------------------------------------------------
	#------------------------------------------------------------------
	#------------------------------------------------------------------
					if dropvalue != 0: # Если != 0
						if dropvalue % 2 == 0: # если чётное
							if even != 'None':
								roombets = ast.literal_eval(even)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"SELECT username,balance,wins_all,wins_today FROM goldenusers WHERE userid = '{userid}'")
										userinfo = cursor.fetchone()
										username = userinfo[0]
										userbalance = round(int(userinfo[1]) + roombets[bet+1] * 2)
										wins_all = int(userinfo[2]) + round(roombets[bet+1] * 2)
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										cursor.execute(F"UPDATE goldenusers set balance = '{userbalance}',wins_all= '{wins_all}',wins_today = '{wins_all}' WHERE userid = '{userid}'")
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										prize = "{:,}".format(round(roombets[bet+1] * 2)).replace(',',' ')
										messagewin += F"✅ {username} ставка {stavka} на чётное выиграла! (приз {prize} коинов)\n"
							if odd != 'None':
								roombets = ast.literal_eval(odd)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
										cursor.execute(getusername)
										userinfo = cursor.fetchone()
										username = userinfo[0]
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										messagelose += F"❌ {username} ставка {stavka} на нечётное проиграла\n"
						else:
							if odd != 'None':
								roombets = ast.literal_eval(odd)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										cursor.execute(F"SELECT username,balance,wins_all,wins_today FROM goldenusers WHERE userid = '{userid}'")
										userinfo = cursor.fetchone()
										username = userinfo[0]
										userbalance = round(int(userinfo[1]) + roombets[bet+1] * 2)
										wins_all = int(userinfo[2]) + round(roombets[bet+1] * 2)
										cursor.execute(F"UPDATE goldenusers set balance = '{userbalance}',wins_all= '{wins_all}',wins_today = '{wins_all}' WHERE userid = '{userid}'")
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										prize = "{:,}".format(round(roombets[bet+1] * 2)).replace(',',' ')
										messagelose += F"✅ {username} ставка {stavka} на нечётное выиграла! (приз {prize} коинов)\n"
							if even != 'None':
								roombets = ast.literal_eval(even)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
										cursor.execute(getusername)
										userinfo = cursor.fetchone()
										username = userinfo[0]
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										messagelose += F"❌ {username} ставка {stavka} на чётное проиграла\n"
	#------------------------------------------------------------------
	#------------------------------------------------------------------
	#------------------------------------------------------------------				
				
						if dropcolor == 'black':
							if black != 'None':
								roombets = ast.literal_eval(black)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										cursor.execute(F"SELECT username,balance,wins_all,wins_today FROM goldenusers WHERE userid = '{userid}'")
										userinfo = cursor.fetchone()
										username = userinfo[0]
										userbalance = round(int(userinfo[1]) + roombets[bet+1] * 2)
										wins_all = int(userinfo[2]) + round(roombets[bet+1] * 2)
										cursor.execute(F"UPDATE goldenusers set balance = '{userbalance}',wins_all= '{wins_all}',wins_today = '{wins_all}' WHERE userid = '{userid}'")
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										prize = "{:,}".format(round(roombets[bet+1] * 2)).replace(',',' ')
										messagewin += F"✅ {username} ставка {stavka} на чёрное выиграла! (приз {prize} коинов)\n"
							if red != 'None':
								roombets = ast.literal_eval(red)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
										cursor.execute(getusername)
										userinfo = cursor.fetchone()
										username = userinfo[0]
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										messagelose += F"❌ {username} ставка {stavka} на красное проиграла\n"
						else:
							if black != 'None':
								roombets = ast.literal_eval(black)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
										cursor.execute(getusername)
										userinfo = cursor.fetchone()
										username = userinfo[0]
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										messagelose += F"❌ {username} ставка {stavka} на чёрное проиграла\n"
							if red != 'None':
								roombets = ast.literal_eval(red)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										cursor.execute(F"SELECT username,balance,wins_all,wins_today FROM goldenusers WHERE userid = '{userid}'")
										userinfo = cursor.fetchone()
										username = userinfo[0]
										userbalance = round(int(userinfo[1]) + roombets[bet+1] * 2)
										wins_all = int(userinfo[2]) + round(roombets[bet+1] * 2)
										cursor.execute(F"UPDATE goldenusers set balance = '{userbalance}',wins_all= '{wins_all}',wins_today = '{wins_all}' WHERE userid = '{userid}'")
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										prize = "{:,}".format(round(roombets[bet+1] * 2)).replace(',',' ')
										messagewin += F"✅ {username} ставка {stavka} на красное выиграла! (приз {prize} коинов)\n"


						if dropvalue in range(1,13):
							if first_gap != 'None':
								roombets = ast.literal_eval(first_gap)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										cursor.execute(F"SELECT username,balance,wins_all,wins_today FROM goldenusers WHERE userid = '{userid}'")
										userinfo = cursor.fetchone()
										username = userinfo[0]
										userbalance = round(int(userinfo[1]) + roombets[bet+1] * 3)
										wins_all = int(userinfo[2]) + round(roombets[bet+1] * 3)
										cursor.execute(F"UPDATE goldenusers set balance = '{userbalance}',wins_all= '{wins_all}',wins_today = '{wins_all}' WHERE userid = '{userid}'")
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										prize = "{:,}".format(round(roombets[bet+1] * 3)).replace(',',' ')
										messagewin += F"✅ {username} ставка {stavka} на 1-12 выиграла! (приз {prize} коинов)\n"
							if second_gap != 'None':
								roombets = ast.literal_eval(second_gap)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
										cursor.execute(getusername)
										userinfo = cursor.fetchone()
										username = userinfo[0]
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										messagelose += F"❌ {username} ставка {stavka} на 13-24 проиграла\n"
							if third_gap != 'None':
								roombets = ast.literal_eval(third_gap)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
										cursor.execute(getusername)
										userinfo = cursor.fetchone()
										username = userinfo[0]
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										messagelose += F"❌ {username} ставка {stavka} на 25-36 проиграла\n"
						elif dropvalue in range(13,25):
							if first_gap != 'None':
								roombets = ast.literal_eval(first_gap)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
										cursor.execute(getusername)
										userinfo = cursor.fetchone()
										username = userinfo[0]
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										messagelose += F"❌ {username} ставка {stavka} на 1-12 проиграла\n"
							if second_gap != 'None':
								roombets = ast.literal_eval(second_gap)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										cursor.execute(F"SELECT username,balance,wins_all,wins_today FROM goldenusers WHERE userid = '{userid}'")
										userinfo = cursor.fetchone()
										username = userinfo[0]
										userbalance = round(int(userinfo[1]) + roombets[bet+1] * 3)
										wins_all = int(userinfo[2]) + round(roombets[bet+1] * 3)
										cursor.execute(F"UPDATE goldenusers set balance = '{userbalance}',wins_all= '{wins_all}',wins_today = '{wins_all}' WHERE userid = '{userid}'")
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										prize = "{:,}".format(round(roombets[bet+1] * 3)).replace(',',' ')
										messagewin += F"✅ {username} ставка {stavka} на 13-24 выиграла! (приз {prize} коинов)\n"
							if third_gap != 'None':
								roombets = ast.literal_eval(third_gap)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
										cursor.execute(getusername)
										userinfo = cursor.fetchone()
										username = userinfo[0]
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										messagelose += F"❌ {username} ставка {stavka} на 25-36 проиграла\n"
						elif dropvalue in range(25,37):
							if first_gap != 'None':
								roombets = ast.literal_eval(first_gap)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
										cursor.execute(getusername)
										userinfo = cursor.fetchone()
										username = userinfo[0]
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										messagelose += F"❌ {username} ставка {stavka} на 1-12 проиграла\n"
							if second_gap != 'None':
								roombets = ast.literal_eval(second_gap)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
										cursor.execute(getusername)
										userinfo = cursor.fetchone()
										username = userinfo[0]
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										messagelose += F"❌ {username} ставка {stavka} на 13-24 проиграла\n"
							if third_gap != 'None':
								roombets = ast.literal_eval(third_gap)
								roombetsvalue = len(roombets)
								for bet in range(roombetsvalue):
									if bet % 2 == 0:
										userid = roombets[bet]
										cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
										cursor.execute(F"SELECT username,balance,wins_all,wins_today FROM goldenusers WHERE userid = '{userid}'")
										userinfo = cursor.fetchone()
										username = userinfo[0]
										userbalance = round(int(userinfo[1]) + roombets[bet+1] * 3)
										wins_all = int(userinfo[2]) + round(roombets[bet+1] * 3)
										cursor.execute(F"UPDATE goldenusers set balance = '{userbalance}',wins_all= '{wins_all}',wins_today = '{wins_all}' WHERE userid = '{userid}'")
										stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
										prize = "{:,}".format(round(roombets[bet+1] * 3)).replace(',',' ')
										messagewin += F"✅ {username} ставка {stavka} на 25-36 выиграла! (приз {prize} коинов)\n"
						if numbers != 'None':
							roombets = ast.literal_eval(numbers)
							roombetsvalue = len(roombets)
							for bet in range(roombetsvalue):
								if bet % 3 == 0:
									userid = roombets[bet]
									cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
									cursor.execute(F"SELECT username,balance,wins_all,wins_today FROM goldenusers WHERE userid = '{userid}'")
									userinfo = cursor.fetchone()
									username = userinfo[0]
									userbalance = round(int(userinfo[1]) + roombets[bet+1] * 13)
									wins_all = int(userinfo[2]) + round(roombets[bet+1] * 13)
									stavka = "{:,}".format(roombets[bet + 1]).replace(',',',')
									if dropvalue == roombets[bet + 2]:
										cursor.execute(F"UPDATE goldenusers set balance = '{userbalance}',wins_all= '{wins_all}',wins_today = '{wins_all}' WHERE userid = '{userid}'")
										prize = "{:,}".format(round(roombets[bet+1] * 13)).replace(',',',')
										messagewin += F"✅ {username} ставка {stavka} на число {roombets[bet + 2]} выиграла! (приз {prize} коинов)\n"
									else:
										messagelose += F"❌ {username} ставка {stavka} на число {roombets[bet + 2]} проиграла\n"
					else:
						if even != 'None':
							roombets = ast.literal_eval(even)
							roombetsvalue = len(roombets)
							for bet in range(roombetsvalue):
								if bet % 2 == 0:
									userid = roombets[bet]
									cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
									getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
									cursor.execute(getusername)
									userinfo = cursor.fetchone()
									username = userinfo[0]
									stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
									messagelose += F"❌ {username} ставка {stavka} на чётное проиграла\n"
						if odd != 'None':
							roombets = ast.literal_eval(odd)
							roombetsvalue = len(roombets)
							for bet in range(roombetsvalue):
								if bet % 2 == 0:
									userid = roombets[bet]
									cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
									getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
									cursor.execute(getusername)
									userinfo = cursor.fetchone()
									username = userinfo[0]
									stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
									messagelose += F"❌ {username} ставка {stavka} на нечётное проиграла\n"
						if black != 'None':
							roombets = ast.literal_eval(black)
							roombetsvalue = len(roombets)
							for bet in range(roombetsvalue):
								if bet % 2 == 0:
									userid = roombets[bet]
									cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
									getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
									cursor.execute(getusername)
									userinfo = cursor.fetchone()
									username = userinfo[0]
									stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
									messagelose += F"❌ {username} ставка {stavka} на чёрное проиграла\n"
						if red != 'None':
							roombets = ast.literal_eval(red)
							roombetsvalue = len(roombets)
							for bet in range(roombetsvalue):
								if bet % 2 == 0:
									userid = roombets[bet]
									cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
									getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
									cursor.execute(getusername)
									userinfo = cursor.fetchone()
									username = userinfo[0]
									stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
									messagelose += F"❌ {username} ставка {stavka} на красное проиграла\n"
						if first_gap != 'None':
							roombets = ast.literal_eval(first_gap)
							roombetsvalue = len(roombets)
							for bet in range(roombetsvalue):
								if bet % 2 == 0:
									userid = roombets[bet]
									cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
									getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
									cursor.execute(getusername)
									userinfo = cursor.fetchone()
									username = userinfo[0]
									stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
									messagelose += F"❌ {username} ставка {stavka} на 1-12 проиграла\n"
						if second_gap != 'None':
							roombets = ast.literal_eval(second_gap)
							roombetsvalue = len(roombets)
							for bet in range(roombetsvalue):
								if bet % 2 == 0:
									userid = roombets[bet]
									cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
									getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
									cursor.execute(getusername)
									userinfo = cursor.fetchone()
									username = userinfo[0]
									stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
									messagelose += F"❌ {username} ставка {stavka} на 13-24 проиграла\n"
						if third_gap != 'None':
							roombets = ast.literal_eval(third_gap)
							roombetsvalue = len(roombets)
							for bet in range(roombetsvalue):
								if bet % 2 == 0:
									userid = roombets[bet]
									cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
									getusername = (F"SELECT username,balance FROM goldenusers WHERE userid = '{userid}'")
									cursor.execute(getusername)
									userinfo = cursor.fetchone()
									username = userinfo[0]
									stavka = "{:,}".format(roombets[bet + 1]).replace(',',' ')
									messagelose += F"❌ {username} ставка {stavka} на 25-36 проиграла\n"
						if numbers != 'None':
							roombets = ast.literal_eval(numbers)
							roombetsvalue = len(roombets)
							for bet in range(roombetsvalue):
								if bet % 3 == 0:
									userid = roombets[bet]
									cursor.execute(F"UPDATE goldenusers set max_bet = '0', last_number = 'None' Where userid = '{userid}'")
									cursor.execute(F"SELECT username,balance,wins_all,wins_today FROM goldenusers WHERE userid = '{userid}'")
									userinfo = cursor.fetchone()
									username = userinfo[0]
									userbalance = round(int(userinfo[1]) + roombets[bet+1] * 13)
									wins_all = int(userinfo[2]) + round(roombets[bet+1] * 13)
									stavka = "{:,}".format(roombets[bet + 1]).replace(',',',')
									if dropvalue == roombets[bet + 2]:
										cursor.execute(F"UPDATE goldenusers set balance = '{userbalance}',wins_all= '{wins_all}',wins_today = '{wins_all}' WHERE userid = '{userid}'")
										prize = "{:,}".format(round(roombets[bet+1] * 13)).replace(',',',')
										messagewin += F"✅ {username} ставка {stavka} на число {roombets[bet + 2]} выиграла! (приз {prize} коинов)\n"
									else:
										messagelose += F"❌ {username} ставка {stavka} на число {roombets[bet + 2]} проиграла\n"
	#------------------------------------------------------------------
	#------------------------------------------------------------------
	#------------------------------------------------------------------

					messagewin += messagelose
					messagewin += F'\n\nХэш игры: {room_hash}\nПроверка честности: {hash_decode}'
					for i in range(15):
						randompass += random.choice(chars)
					dropvalue = random.randint(1,38)
					if (dropvalue == 37) or (dropvalue == 38):
						dropvalue = 0
					else:
						dropvalue = dropvalue
					if (dropvalue >= 1 and dropvalue <= 18):
						color = 'red'
					else:
						color = 'black'
					if color == 'black':
						ss = 'black'
					else:
						ss = 'red'
					if dropvalue == 0:
						hashdecode = F"{dropvalue}|zero|{randompass}"
						md5hash = hashlib.md5(hashdecode.encode()).hexdigest()
					else:
						hashdecode = F"{dropvalue}|{ss}|{randompass}"
						md5hash = hashlib.md5(hashdecode.encode()).hexdigest()
					cursor.execute(F"UPDATE goldenrooms SET rolltime ='{timenow}',dropvalue ='{dropvalue}',dropcolor = '{color}',hash = '{md5hash}',hash_decode = '{hashdecode}' WHERE room_id = '{room_id}'")
					messages_send(room_id,'Итак, результаты раунда...',menu.main())
					time.sleep(1)
					message_win_send(room_id,messagewin,winimg)
	except Exception:
		traceback.print_exc()
Beispiel #25
0
def acceptbet(userid,roomid,bet):
	try:
		conn = psycopg2.connect(dbname=settings.pgdatabase, user=settings.pguser, 
								password=settings.pgpassword, host=settings.pghost)
		with conn.cursor() as cursor:
			conn.autocommit = True
			cursor.execute(F"SELECT rolltime FROM goldenrooms")
			rolltime = cursor.fetchone()[0]
			roomrolltime = datetime.strptime(rolltime, '%Y-%m-%d %H:%M:%S')
			timenow = datetime.now()
			seconds = (timenow - roomrolltime).seconds
			if seconds >= 55:
				pass
			else:
				value = {'black':0,'red':1,'odd':2,'even':3,'numbers':4,'first_gap':5,'second_gap':6,'third_gap':7}
				userid = int(userid)
				cursor.execute(F"SELECT * FROM goldenusers WHERE userid = '{userid}'")
				userinfo = cursor.fetchone()
				name = userinfo[1].split()[0]
				balance = int(userinfo[2])
				bonus_balance = int(userinfo[3])
				textchoice = userinfo[6]
				get_number = userinfo[9]
				if textchoice == 'numbers':
					if get_number == 'None':
						if (bet >= 0) and (bet <= 36):
							cursor.execute(F"UPDATE goldenusers SET last_number = '{bet}'")
							messages_send(roomid,F"{name}, введи ставку на число {bet}:",menu.main())
							return 'hello'
						else:
							return 'hello'
				if textchoice != 'None':
					maxbet = int(userinfo[7])
					maxbet += bet
					if (maxbet <= 100900000000) and (bet > 99):
						if balance + bonus_balance >= bet:
							if balance - bet >= 0:
								newbalance = balance - bet
								cursor.execute(F"UPDATE goldenusers SET balance = '{newbalance}',last_choice = 'None',max_bet = '{maxbet}',last_number = 'None' WHERE userid = '{userid}'")
							elif balance - bet < 0:
								newbalance = 0
								newbonus_balance = bonus_balance - (bet - balance)
								cursor.execute(F"UPDATE goldenusers SET balance = '{newbalance}',bonus_balance = '{newbonus_balance}',last_choice = 'None',max_bet = '{maxbet}',last_number = 'None' WHERE userid = '{userid}'")
							cursor.execute(F"SELECT black,red,odd,even,numbers,first_gap,second_gap,third_gap FROM goldenrooms WHERE room_id = '{roomid}'")
							roominfo = cursor.fetchone()
							choice = roominfo[value[textchoice]]
							if textchoice == 'numbers':
								if choice == 'None': 
									bets = F"[{userid},{bet},{get_number}]"
									cursor.execute(F"UPDATE goldenrooms SET {textchoice} = '{bets}',play = 'Yes' WHERE room_id = '{roomid}'")
									message = F"{name}, успешная ставка {bet} коинов на число {get_number}"
									messages_send(roomid,message,menu.main())
								else:
									bets = ast.literal_eval(choice)
									g = False
									if userid in bets:
										k = 0
										for i in bets:
											if (int(i) == int(userid)) and (int(bets[k + 2]) == int(get_number)):
												lastbet = bets[k + 1]
												nowbet = lastbet + bet
												bets[k + 1] = nowbet
												g = True
											k += 1
										if g == False:
											bets.append(int(userid))
											bets.append(int(bet))
											bets.append(int(get_number))
									else:
										bets.append(int(userid))
										bets.append(int(bet))
										bets.append(int(get_number))
									cursor.execute(F"UPDATE goldenrooms SET {textchoice} = '{bets}',play = 'Yes' WHERE room_id = '{roomid}'")
									bet = "{:,}".format(bet).replace(',',',')
									message = F"{name}, успешная ставка {bet} коинов на число {get_number}"
									messages_send(roomid,message,menu.main())
							else:
								if choice == 'None': 
									bets = F"[{userid},{bet}]"
									cursor.execute(F"UPDATE goldenrooms SET {textchoice} = '{bets}',play = 'Yes' WHERE room_id = '{roomid}'")
								else:
									bets = ast.literal_eval(choice)
									if userid in bets:
										choiceid = bets.index(userid)
										lastbet = bets[choiceid + 1]
										nowbet = lastbet + bet
										bets[choiceid + 1] = nowbet
									else:
										bets.append(int(userid))
										bets.append(int(bet))
									cursor.execute(F"UPDATE goldenrooms SET {textchoice} = '{bets}',play = 'Yes' WHERE room_id = '{roomid}'")
								bet = "{:,}".format(bet).replace(',',' ')
								message = F"{name}, успешная ставка {bet} коинов"
								messages_send(roomid,message,menu.main())
						else:
							cursor.execute(F"UPDATE goldenusers SET last_choice = 'None',last_number = 'None' WHERE userid = '{userid}'")
							message = F"{name}, на вашем балансе недостаточно средств."
							messages_send(roomid,message,menu.main())
					else:
						cursor.execute(F"UPDATE goldenusers SET last_choice = 'None',last_number = 'None' WHERE userid = '{userid}'")
						message = F"{name}, максимальная сумма ставок: 100900000000 коинов, минимальная: 100."
						messages_send(roomid,message,menu.main())
	except Exception:
		traceback.print_exc()
Beispiel #26
0
def main(twoPlayer, playComputer, White, Black):
	black_player = chessboard.setBlack()
	white_player = chessboard.setWhite()
	players = chessboard.Players()
	for sprites in black_player.sprites():
		players.add(sprites)
	for sprites in white_player.sprites():
		players.add(sprites)
	black_pieces = black_player.sprites()
	white_pieces = white_player.sprites()
	Pieces = black_pieces + white_pieces 
	blackPiece = []
	whitePiece = []

	screen = pygame.display.set_mode((640, 640))
	gridsquare = chessboard.convert(pygame.Surface((80, 80)).convert_alpha())
	board = pygame.image.load('chessboard.gif').convert()
	board = pygame.transform.scale(board, (640, 640))
	
	clearBoard = pygame.image.load('chessboard.gif').convert()
	clearBoard = pygame.transform.scale(clearBoard, (640, 640))
	
	players.draw(board)
	screen.blit(board, (0, 0))
	grid = []
	newPiece = None
	for y in range(0, 640, 80):
		for x in range(0, 640, 80):
			occupied = False
			for piece in Pieces:
				if piece.xpos == x + 40 and piece.ypos == y + 40:
					occupied = True
					newPiece = piece
			if occupied:
				s = chessboard.Square(gridsquare, x, y, newPiece)
				#screen.blit(s.image, (x, y))
				grid.append(s)
			else:
				s = chessboard.Square(gridsquare, x, y, None)
				#screen.blit(s.image, (x, y))
				grid.append(s)
	pygame.display.update()
	checkmate = False
	stalemate = False
	turn = True
	whiteKing = None
	blackKing = None
	whiteCount = 0
	blackCount = 0
	
	while True:
		while not checkmate and not stalemate:
			for event in pygame.event.get():
				if event.type == pygame.QUIT:
					sys.exit() 
			
			if twoPlayer:
				while turn and not checkmate and not stalemate:
					for event in pygame.event.get():
						if event.type == pygame.QUIT:
							sys.exit() 
					turn = user.movement_whitePlayer(white_player, event, grid, whitePiece, screen, board, clearBoard, black_player, players)

				black_pieces = black_player.sprites()
				if len(black_pieces) == 1:
					whiteCount += 1
			
				for black_piece in black_player:
					if type(black_piece) == chessboard.King:
						blackKing = black_piece		

				checkmate = blackKing.checkmate(black_player, white_player, grid)	
				stalemate = blackKing.stalemate(black_player, white_player, grid)	
				if whiteCount == 50:
					stalemate = True

				elif len(white_pieces) == 1 and len(black_pieces) == 1:
					stalemate = True

				while not turn and not checkmate and not stalemate:
					for event in pygame.event.get():
						if event.type == pygame.QUIT:
							sys.exit()
					turn = user.movement_blackPlayer(black_player, event, grid, blackPiece, screen, board, clearBoard, white_player, players)
					
				white_pieces = white_player.sprites()
				if len(white_pieces) == 1:
					blackCount += 1

				for white_piece in white_player:
					if type(white_piece) == chessboard.King:
						whiteKing = white_piece

				if not checkmate and not stalemate: 
					checkmate = whiteKing.checkmate(white_player, black_player, grid)
					stalemate = whiteKing.stalemate(white_player, black_player, grid)
				if blackCount == 50:
					stalemate = True

				elif len(white_pieces) == 1 and len(black_pieces) == 1:
					stalemate = True
			
			elif playComputer:
				if White:
					while turn and not checkmate and not stalemate:
						for event in pygame.event.get():
							if event.type == pygame.QUIT:
								sys.exit()
						turn = user.movement_whitePlayer(white_player, event, grid, whitePiece, screen, board, clearBoard, black_player, players)

					black_pieces = black_player.sprites()
					if len(black_pieces) == 1:
						whiteCount += 1
			
					for black_piece in black_player:
						if type(black_piece) == chessboard.King:
							blackKing = black_piece		

					checkmate = blackKing.checkmate(black_player, white_player, grid)	
					stalemate = blackKing.stalemate(black_player, white_player, grid)	
					if whiteCount == 50:
						stalemate = True

					elif len(white_pieces) == 1 and len(black_pieces) == 1:
						stalemate = True

					if not turn and not checkmate and not stalemate:
						for event in pygame.event.get():
							if event.type == pygame.QUIT:
								sys.exit()
						turn = AI.movement_blackPlayer(black_player, event, grid, screen, board, clearBoard, white_player, players)

					white_pieces = white_player.sprites()
					if len(white_pieces) == 1:
						blackCount += 1

					for white_piece in white_player:
						if type(white_piece) == chessboard.King:
							whiteKing = white_piece

					if not checkmate and not stalemate: 
						checkmate = whiteKing.checkmate(white_player, black_player, grid)
						stalemate = whiteKing.stalemate(white_player, black_player, grid)
					if blackCount == 50:
						stalemate = True

					elif len(white_pieces) == 1 and len(black_pieces) == 1:
						stalemate = True

					#turn = True
				
				elif Black:
					if turn and not checkmate and not stalemate:
						for event in pygame.event.get():
							if event.type == pygame.QUIT:
								sys.exit()
						turn = AI.movement_whitePlayer(white_player, event, grid, screen, board, clearBoard, black_player, players)

					black_pieces = black_player.sprites()
					if len(black_pieces) == 1:
						whiteCount += 1
			
					for black_piece in black_player:
						if type(black_piece) == chessboard.King:
							blackKing = black_piece		

					checkmate = blackKing.checkmate(black_player, white_player, grid)	
					stalemate = blackKing.stalemate(black_player, white_player, grid)	
					if whiteCount == 50:
						stalemate = True

					elif len(white_pieces) == 1 and len(black_pieces) == 1:
						stalemate = True

					while not turn and not checkmate and not stalemate:
						for event in pygame.event.get():
							if event.type == pygame.QUIT:
								sys.exit()
						turn = user.movement_blackPlayer(black_player, event, grid, blackPiece, screen, board, clearBoard, white_player, players)

					white_pieces = white_player.sprites()
					if len(white_pieces) == 1:
						blackCount += 1

					for white_piece in white_player:
						if type(white_piece) == chessboard.King:
							whiteKing = white_piece

					if not checkmate and not stalemate: 
						checkmate = whiteKing.checkmate(white_player, black_player, grid)
						stalemate = whiteKing.stalemate(white_player, black_player, grid)
					if blackCount == 50:
						stalemate = True

					elif len(white_pieces) == 1 and len(black_pieces) == 1:
						stalemate = True

		text = pygame.font.Font(None, 25)
		prompt = None
		if blackKing.checkmate(black_player, white_player, grid):
			prompt = text.render("White Won: Press Y to play again, Press N for menu", True, (0, 0, 255))
		elif whiteKing.checkmate(white_player, black_player, grid):
			prompt = text.render("Black Won: Press Y to play again, Press N for menu", True, (0, 0, 255))
		elif stalemate:
			prompt = text.render("Draw: Press Y to play again, Press N for menu", True, (0, 0, 255))
		players.clear(board, clearBoard)
		players.draw(board)
		screen.blit(board, (0, 0))
		select = False
		while not select:
			screen.blit(prompt, (0, 320))
			pygame.display.update()
			pygame.event.pump()
			keys = pygame.key.get_pressed()
			if keys[pygame.K_y]:
				players.clear(board, clearBoard)
				players.empty()
				black_player = chessboard.setBlack()
				white_player = chessboard.setWhite()
				for sprites in black_player.sprites():
					players.add(sprites)
				for sprites in white_player.sprites():
					players.add(sprites)
				black_pieces = black_player.sprites()
				white_pieces = white_player.sprites()
				Pieces = black_pieces + white_pieces 
				blackPiece = []
				whitePiece = []
				players.draw(board)
				screen.blit(board, (0, 0))
				grid = []
				newPiece = None
				for y in range(0, 640, 80):
					for x in range(0, 640, 80):
						occupied = False
						for piece in Pieces:
							if piece.xpos == x + 40 and piece.ypos == y + 40:
								occupied = True
								newPiece = piece
						if occupied:
							s = chessboard.Square(gridsquare, x, y, newPiece)
							#screen.blit(s.image, (x, y))
							grid.append(s)
						else:
							s = chessboard.Square(gridsquare, x, y, None)
							#screen.blit(s.image, (x, y))
							grid.append(s)
				pygame.display.update()
				checkmate = False
				stalemate = False
				turn = True
				whiteKing = None
				blackKing = None
				whiteCount = 0
				blackCount = 0
				select = True
			elif keys[pygame.K_n]:
				menu.main()
Beispiel #27
0
def main():
    # Short buffer for low latency.
    try:
        pygame.mixer.pre_init(buffer=512)
    except:
        pass

    pygame.init()
    pygame.time.set_timer(pygame.VIDEOEXPOSE, 1000 / framerate)
    window = pygame.display.set_mode((window_width, window_height))

    pygame.display.toggle_fullscreen()

    while True:
        if len(sys.argv) > 1:
            editing = "-e" in sys.argv
            levels = []
            level_filename = sys.argv[-1]
            levels.append(level_filename)
            if len(sys.argv) > 1 and os.path.isfile(level_filename):
                levels = [eval(open(level_filename).read())]
            else:
                if not editing:
                    if len(sys.argv) == 2:
                        print "Level \"%s\" does not exist. Try creating a level using the editor option (-e)." % level_filename

                    print "Usage: %s [-e] level" % sys.argv[0]
                    sys.exit(1)

                layernames = [None, None,
                        "mountains_1.png", "clouds_1.png",
                        "mountains_2.png", "clouds_2.png",
                        "mountains_3.png", "clouds_3.png",
                        None, None, "heaven.png"]

                tilemap = []
                for i in range(14):
                    tilemap.append([0 for i in range(3 * window_width // tile_width)])
                tilemap.append([2 for i in range(3 * window_width // tile_width)])

                spikytiles = [4, 5]

                baddies = []

                level = layernames, tilemap, spikytiles, baddies

        else:
            editing, level_filenames = menu.main(window)
            levels = [eval(open(level_filename).read()) for level_filename in level_filenames]

        tiles = load_tiles(tiles_path, tile_width, tile_height)

        if editing:
            level, _ = play(levels[0], window, tiles, editing=editing)
            f = open(level_filename, "w")
            f.write(repr(level))
            f.close()
        else:
            for level in levels:
                tries = 3
                win = False

                while not win and tries > 0:
                    level, win = play(level, window, tiles, editing=editing)
                    tries -= 1

                if tries <= 0 and not win:
                    break

            cutscene.cutscene(window, "cutscenes/credits/bg.png", "cutscenes/credits/fg.png", "art/music/Yetis theme 1.mp3", "cutscenes/credits/text")
            pygame.mixer.music.stop()

        if editing:
            break
Beispiel #28
0
def showpop_countries(op, pop):
    db = pymysql.connect(host="localhost",
                         user="******",
                         password="******",
                         db="world",
                         cursorclass=pymysql.cursors.DictCursor)
    global local_data_load
    global df

    query = "SELECT * FROM country WHERE Population " + op + " %s"

    if (local_data_load == True):

        df = df[['Code', 'Name', 'Continent',
                 'Population']]  # Filtering column selection
        column_list = [
            df.columns.values.tolist()
        ] + df.values.tolist()  # Convert the DataFrame into a list/array
        f = '{:<8}|{:<45}|{:<15}|{:<8}'  # Formatting the layout

        for i in column_list:  # Loop to format a tabular structure instead of array structure
            print(f.format(*i))

        print("")
        print(
            "Queries will now be applied to the locally stored data above...")
        print("")
        print("The result of you local query result is outputted below...")
        print("")

        # Control flow for filtering local queries, fully formatted:
        if (op == "<"):  # For less than queries
            print(df[df['Population'] <= pop], f.format)

        elif (op == ">"):  # For greater than queries
            print(df[df['Population'] >= pop], f.format)

        else:
            print(df[df['Population'] == pop],
                  f.format)  # For equal to queries
        print("")
        print("Why not try another query?!")
        print("")
        while True:
            choice = input(
                "Or would you like to save your data to Excel?...Please type y or n:"
            )
            if (choice == "y"):
                print("")
                print("Saving to Excel!...")
                writer = ExcelWriter('Choice_7_output.xlsx')
                df.to_excel(writer, 'Choice_7_output')
                writer.save()
                menu.main()

            elif (choice == "n"):
                print("")
                print("Returning to main menu...")
                menu.main()
            False

    else:
        with db:
            cursor = db.cursor()
            cursor.execute(query, (pop))
            countries = cursor.fetchall()
            for c in countries:
                print(c["Code"], "|", c["Name"], "|", c["Continent"], "|",
                      c["Population"])

                if (local_data_load == False):
                    df = pd.DataFrame(countries)
                    local_data_load = True
                    print("")
                    print("Saving output query data locally...")
                    print("")
Beispiel #29
0
    'DOWN': True,
    'LEFT': True,
    'RIGHT': True,
}

#окно
pygame.init()
pygame.display.set_caption('Змейка')
screen = pygame.display.set_mode((W, H))
pygame.mouse.set_visible(True)

#фпс
FPS = 60
clock = pygame.time.Clock()

font = pygame.font.SysFont('Arial', 26, True)
font1 = pygame.font.SysFont('Arial Black', 80, True)

score = 0
SW = 5
SH = 5

#фон
bg = pygame.image.load('spacex.jpg').convert()
bg_rect = bg.get_rect(topleft=(0, 0))
run = True
o = True
while o:
    menu(bg, bg_rect, W, H)
    main(run)
    over(bg, bg_rect, W, H, run)
Beispiel #30
0
#! /usr/bin/env python

import sys
import os

try:
    __file__
except NameError:
    pass
else:
    libdir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'lib'))
    sys.path.insert(0, libdir)

from menu import main
main()
def main():
    # print menu options to console  -----------------------------------------------
    # declare menu and file arrays
    menu_choices = []
    file_choices = []

    # get path of current folder
    folder_path = os.path.dirname(os.path.abspath(__file__))

    # get names of .xlsx files that are in the folder that are also input files
    for r, d, f in os.walk(folder_path):  # rem r=root, d=dir, f=file
        for file in f:
            if '.xlsx' in file and 'brand' in file and 'extract' not in file:
                # rem for full path use <files.append(os.path.join(r, file))>
                file_choices.append(file)

    # print user menu
    print('\n-----------------------------------------')
    print('           Brand Input Files')
    print('-----------------------------------------')
    spacer = '  '
    print('{}{}{}'.format('m', spacer, 'Show Main Menu'))
    menu_choices.append('m')
    i = 0
    for ic in file_choices:
        i += 1
        print('{}  {}'.format(i, ic))
        menu_choices.append(str(i))

    # get user input
    print('\nSelect an input file (or \'m\' for Main Menu)')
    gold_choice = input()

    # validate user input
    while gold_choice not in menu_choices:
        print('Invalid choice! Select an input file (or \'m\' for Main Menu)')
        gold_choice = input()

    if gold_choice == 'm':
        menu.main()

        # if the user chooses 'm', then program control goes back to menu.main(),
        # which means that when menu.main() terminates, the program control will
        # return to this program; therefore, it's important to invoke sys.exit()
        # upon the callback to terminate all py execution in the terminal
        sys.exit()

    # identify i/o  ----------------------------------------------------------------
    f = file_choices[int(gold_choice) - 1]
    outfile_name = 'ners_' + f[0:len(f) - 5] + '_patterns.jsonl'
    outfile_path = folder_path + '\\' + outfile_name
    brands_file = folder_path + '\\' + file_choices[int(gold_choice) - 1]
    brands_sheet = 'Sheet1'
    brands_data = pd.read_excel(brands_file, brands_sheet)
    brands = brands_data['BRAND']
    dataLabel = 'BRND'

    # declare variables  -----------------------------------------------------------
    # special chars
    special_chars = [' ', '/', '\\', '+', '-', '.', '&', ',', '(', ')']

    # pattern components
    pp = '{"label":"' + dataLabel + '", "pattern":['  # pp = pattern prefix
    ps = ']}'  # ps = pattern suffix
    patterns = []
    pattern = ''

    # token components
    tp = '{"lower":"'  # token prefix
    ts = '"}'  # token suffix
    td = ','  # token delimiter
    tokens = []
    token = ''

    # build brand patterns  --------------------------------------------------------
    print('\nBuilding brand patterns...\n')
    for brand in brands:
        # iterate thru brands
        # and build patterns using the pattern/token components from above
        brand = str(brand)  # eliminate any float objects
        brand = unicodedata.normalize('NFKD', brand).encode(
            'ASCII', 'ignore')  # convert int'l chars
        brand = brand.decode('utf-8')  # convert bytes to strings
        brand = brand.lower()  # convert brand to lowercase
        char_count = 0
        is_last_char = False

        for char in brand:
            char_count += 1
            if char_count == len(brand):
                # set the flag if you've reached the last char in the brand string
                is_last_char = True

            if char in special_chars:
                if token != '':
                    # if you reach a special char, then store the token that you've
                    # built from the preceding chars
                    tokens.append(token)
                    token = ''
                if char == ' ':
                    # if char is a space, make it empty so that spacy lib can use it
                    char = ''
                # store the special char as a token
                tokens.append(char)
            else:
                token = token + char

            if is_last_char == True:
                tokens.append(token)
                token = ''

        # after iterating through the brand string, build the pattern from the
        # pattern/token components and the tokens that you've stored in the array
        pattern = pattern + pp
        tok_count = 0
        is_last_token = False
        for tok in tokens:
            tok_count += 1
            if tok_count == len(tokens):
                is_last_token = True

            if is_last_token == False:
                pattern = pattern + tp + tok + ts + td
            else:
                pattern = pattern + tp + tok + ts

        # store the pattern in the pattern array
        pattern = pattern + ps
        patterns.append(pattern)

        # reset your pattern string and token array before parcing next brand string
        pattern = ''
        tokens.clear()

    # write brand patterns to file  ------------------------------------------------
    # iterate through pattern array, writing each line to external file
    # that can then be picked up by the EntityRuler to map Brands to the model
    brand_count = 0
    with open(outfile_path, 'w') as outfile:
        for line in patterns:
            outfile.write(line)
            outfile.write('\n')
            print(line)
            brand_count += 1

    # end program
    print('\n')
    print('Done.')
    print('JSONL file created.')
    print('{} brand patterns written to:'.format(brand_count))
    print('{}'.format(outfile_path))
Beispiel #32
0
def handleQuit():
    menu.main() #sys.exit() # This will kill the interpreter
    quit()
def main(screen):
	#initilisation phase
	pygame.init()

	fps_clock = pygame.time.Clock()

	start_img = pygame.image.load("Data/Images/Buttons/startbutton.png")
	back_img = pygame.image.load("Data/Images/Buttons/backbutton.png")
	select_img = pygame.image.load("Data/Images/selectionarrow.png")

	start_rect = start_img.get_rect()
	back_rect = back_img.get_rect()
	select_rect = select_img.get_rect()

	start_rect.topleft = (500, 550)
	back_rect.topleft = (500, 655)
	select_rect.midleft = (300, 410)

	tracks = glob.glob("Data/Tracks/*.txt")
	new_tracks = []
	for track in tracks:
		track = track[12:-4]
		new_tracks.append(track)
	tracks = new_tracks

	font = pygame.font.SysFont("Bookman", 23)
	track_labels = []
	for track in tracks:
		track_label = font.render(track, 1, (255, 255, 255))
		track_labels.append(track_label)
	selected_track = 0
	first_label_pos = 400
	list_animated = False

	end = False

	while 1:
		#event phase
		for event in pygame.event.get():
			if event.type == pygame.QUIT:
				sys.exit()
			elif event.type == pygame.MOUSEBUTTONDOWN:
				if start_rect.collidepoint(event.pos):
					end = 'rhythm'
				elif back_rect.collidepoint(event.pos):
					end = 'menu'
				elif not list_animated and event.pos[0] < 400:
					if event.pos[1] < 400 and selected_track != 0:
						list_animated = "Up"
						selected_track -= 1
						track_animate_i = 0
					elif event.pos[1] > 400 and selected_track != len(tracks) - 1:
						list_animated = "Down"
						selected_track += 1
						track_animate_i = 0

		keys = pygame.key.get_pressed()
		if not list_animated:
			if keys[pygame.constants.K_UP] and selected_track != 0:
				list_animated = "Up"
				selected_track -= 1
				track_animate_i = 0
			elif keys[pygame.constants.K_DOWN] and selected_track != len(tracks) - 1:
				list_animated = "Down"
				selected_track += 1
				track_animate_i = 0
		if keys[pygame.constants.K_RETURN]:
			end = 'rhythm'

		#logic phase
		if list_animated == "Up":
			first_label_pos += 5
			track_animate_i += 1
			if track_animate_i == 16:
				list_animated = False
		elif list_animated == "Down":
			first_label_pos -= 5
			track_animate_i += 1
			if track_animate_i == 16:
				list_animated = False

		#render phase

		screen.fill((0, 0, 0))  # background goes here later

		label_i = 0
		for track_label in track_labels:
			screen.blit(track_label, (50, (first_label_pos + 80 * label_i)))
			label_i += 1

		screen.blit(start_img, start_rect)
		screen.blit(back_img, back_rect)
		screen.blit(select_img, select_rect)

		pygame.display.flip()

		fps_clock.tick(60)

		if end:
			break

	if end == 'rhythm':
		rhythm.main(screen, tracks[selected_track])
	elif end == 'menu':
		menu.main(screen)
Beispiel #34
0
def withdraw(roomid,userid):
	try:
		url = 'https://corona-coins.ru/api/'
		headers = {'content-type': 'application/json'}
		conn = psycopg2.connect(dbname=settings.pgdatabase, user=settings.pguser, 
								password=settings.pgpassword, host=settings.pghost)
		with conn.cursor() as cursor:
			conn.autocommit = True
			userget = (F"SELECT * FROM goldenusers WHERE userid = '{userid}'")
			cursor.execute(userget)
			user = cursor.fetchall()[0]
			username = user[1]
			balance = int(user[2])
			if balance > 0:
				botbalance = get_withdraw()
				if balance <= botbalance:
					payload = {'token':'sV6m66q8x5QL8ESKAwV3DiKVybYumFkL','method':'transfer','to_id':F'{userid}','amount':f'{balance}'}
					r = requests.post(url, data=json.dumps(payload), headers=headers)	
					update = sql.SQL(F"UPDATE goldenusers SET balance = '0' WHERE userid = '{userid}'")
					cursor.execute(update)
					balance = "{:,}".format(balance).replace(',',',')
					messages_send(roomid,F'*id{userid} ({get_username(userid).split()[0]}), выведено {balance} коинов',menu.main())
				else:
					messages_send(roomid,F'*id{userid} ({get_username(userid).split()[0]}), на балансе бота недостаточно средств.',menu.main())
	except Exception:
		traceback.print_exc()
Beispiel #35
0
class Client:
	NICK = ''
	HOST = ''
	PORT = random.randint(32768, 65535.)
	BUFSIZ = 4096
	ADDR = (HOST, PORT)
	PUBLIC_KEY = 1
	IS_BOOTSTRAP = False

	# Dictionary with nick as key, references IP and socket (if no connection established, socket is None)
	# peer_list[nick] = (adr, listening_port, public_key, socket_object)
	peer_list = {}

	def __init__(self):
		try:
			self.peer_list['bootstrap'] = ('', 33000, self.PUBLIC_KEY, None)
			self.NICK = raw_input("What is your nick?")

			# Initate contact with the bootstrap, send nick, and add to lists
			self.connect_to_peer('bootstrap')
			#Start a thread for accepting incoming peers
			ACCEPT_THREAD = Thread(target=self.accept_incoming_connections)
			ACCEPT_THREAD.daemon = True
			ACCEPT_THREAD.start()

			# Start a menu thread for client
			MENU_THREAD = Thread(target=self.client_menu)
			MENU_THREAD.daemon = True
			MENU_THREAD.start()
		except (KeyboardInterrupt, SystemExit):
			print("Aborting mission!")

	#Function that starts a new thread for every new connection.
	def accept_incoming_connections(self):
		"""Sets up handling for incoming clients."""
		ACCEPT_SOCKET = sock.socket(sock.AF_INET, sock.SOCK_STREAM)
		ACCEPT_SOCKET.setsockopt(sock.SOL_SOCKET, sock.SO_REUSEADDR, 1)
		ACCEPT_SOCKET.bind((self.HOST, self.PORT))
		ACCEPT_SOCKET.listen(5)
		while True:
			try:
				# Accepts incoming connection, receives nick and listening port 
				peer_socket, peer_address = ACCEPT_SOCKET.accept()
				ip, _ = peer_address
				print("%s has connected" % ip)
				msg = peer_socket.recv(self.BUFSIZ)
				nick = pickle.loads(msg)
				print("Nick: " + nick)
				listening_port = peer_socket.recv(self.BUFSIZ)
				listening_port = listening_port[1:6]
				listening_port = int(listening_port)
				print("Client's listening port: " + str(listening_port))
				self.peer_list[nick] = (ip, listening_port, self.PUBLIC_KEY, peer_socket)

				# Starts a handler for new peer
				PEER_HANDLER = Thread(target=self.handle_peer_client, args=(nick,))
				PEER_HANDLER.daemon = True
				PEER_HANDLER.start()
			except KeyboardInterrupt:
				print("Failed to connect to a client")
				ACCEPT_SOCKET.close()
				return

	def connect_to_peer(self, nick):
		# Initate contact with the bootstrap, send nick, and add to lists
		PEER_CONNECTION = sock.socket(sock.AF_INET, sock.SOCK_STREAM)
		PEER_CONNECTION.setsockopt(sock.SOL_SOCKET, sock.SO_REUSEADDR, 1)
		address = (self.get_from_peer(nick, 'ip'), self.get_from_peer(nick, 'port'))
		#print("Trying to connect to: " + str(address))
		PEER_CONNECTION.connect(address)
		self.update_peer(nick, 'socket', PEER_CONNECTION)
		PEER_CONNECTION.sendall(pickle.dumps(self.NICK))
		t.sleep(0.3)
		PEER_CONNECTION.sendall(pickle.dumps(self.PORT))
		print("Connected to %s" % nick)

		# Start a handler thread for peer
		HANDLER_THREAD = Thread(target=self.handle_peer_client, args=(nick,))
		HANDLER_THREAD.daemon = True
		HANDLER_THREAD.start()


	def handle_peer_client(self, nick):
		#Retreive the socket object via nick
		peer_socket = self.get_from_peer(nick, 'socket')
		while True:
			try:
				# Decoding the message
				payload = peer_socket.recv(self.BUFSIZ)
				(flag, content) = pickle.loads(payload)

				# Send peer peer list
				if flag == 'u':
					payload = self.create_sendable_peer_list()
					data = ('p', payload)
					peer_socket.sendall(pickle.dumps(data))
				
				# Accept incoming peer list, add peers that don't exist in peer list
				if flag == 'p':
					for entry in content:
						if entry not in self.peer_list:
							self.peer_list[entry] = content[entry]
			
				if flag == 'm':
					text, from_nick, to_nick = content
					print(to_nick + " recieved a message from " + from_nick + ": " + text)
					self.user.add_recieved_text(text, from_nick)
			except KeyboardInterrupt:
				print("Aborting mission!")
				peer_socket.close()
			except EOFError:
				peer_socket.close()
				print("Lost connection to %s" %nick)
				return

	def send_message(self, text, from_nick, to_nick):
		peer_socket = self.get_from_peer(to_nick, 'socket')
		if peer_socket == None:
			self.connect_to_peer(to_nick)
			peer_socket = self.get_from_peer(to_nick, 'socket')
		
		msg = (text, from_nick, to_nick)
		data = ('m', msg)
		peer_socket.sendall(pickle.dumps(data))

	def get_from_peer(self, nick, argument):
		(ip, listening_port, public_key, socket) = self.peer_list[nick]
		switcher = {
        	'ip': ip,
        	'port': listening_port,
			'key': public_key,
			'socket': socket
    	}
		return switcher[argument]

	# Helper function that updates a given argument with new_value.
	# for example, update_peer("Joha", "ip" "130...."), will update Joha's ip with the new value
	def update_peer(self, nick, argument, new_value):
		(ip, listening_port, public_key, socket) = self.peer_list[nick]
		if argument == 'ip':
			self.peer_list[nick] = (new_value, listening_port, public_key, socket)
		elif argument == 'port':
			self.peer_list[nick] = (ip, new_value, public_key, socket)
		elif argument == 'key':
			self.peer_list[nick] = (ip, listening_port, new_value, socket)
		elif argument == 'socket':
			self.peer_list[nick] = (ip, listening_port, public_key, new_value)
		else:
			print("Invalid argument")

	# Sends an update request to bootstrap
	def update_peer_list(self):
		b_socket = self.get_from_peer('bootstrap', 'socket')
		msg = pickle.dumps(('u', 'b'))
		b_socket.sendall(msg)

	def create_sendable_peer_list(self):
		copy = self.peer_list.copy()
		for entry in copy:
			copy[entry] = self.scrub_socket(copy[entry])
		return copy
        
	def scrub_socket(self, entry):
		(ip, port, key, socket) = entry
		return (ip, port, key, None)

	def print_peer_list(self):	
		print(str(self.peer_list))

	def get_peers(self):
		self.update_peer_list()
		return self.peer_list.keys()

	def client_menu(self):
		self.user = men.User(self.NICK, self)
        men.main(self.user)
Beispiel #36
0
def main():
    menu.main()
Beispiel #37
0
import menu

menu.main()
Beispiel #38
0
def Country_name(cn):
    db = pymysql.connect(host="localhost",
                         user="******",
                         password="******",
                         db="world",
                         cursorclass=pymysql.cursors.DictCursor)
    global local_data_loaded
    global df

    sql = """select * from country where Name like %s""".format(cn)

    if (local_data_loaded == True):

        df = df[['Name', 'Continent', 'Population',
                 'HeadOfState']]  # Filtering column selection
        column_list = [
            df.columns.values.tolist()
        ] + df.values.tolist()  # Convert the DataFrame into a list/array
        f = '{:<45}|{:<15}|{:<15}|{:<8}'  # Formatting the layout

        for i in column_list:  # Loop to format a tabular structure instead of array structure
            print(f.format(*i))

        print("")
        print(
            "Queries are now applied only to the locally stored dataframe above..."
        )
        print("")
        print("The result of you local query result is outputted below...")
        print("")
        print(df[df['Name'].str.contains(cn) ==
                 True])  # Command that queries the locally stored data
        print("")
        print("Why not try another query?!")
        print("")
        while True:
            choice = input(
                "Or would you like to save your data to Excel?...Please type y or n:"
            )
            if (choice == "y"):
                print("")
                print("Saving to Excel!...")
                writer = ExcelWriter('Choice_6_output.xlsx')
                df.to_excel(writer, 'Choice_6_output')
                writer.save()
                menu.main()

            elif (choice == "n"):
                print("")
                print("Returning to main menu...")
                menu.main()
            False

    else:
        with db:
            cursor = db.cursor()
            cursor.execute(sql, ('%' + cn + '%', ))
            countries = cursor.fetchall()

            for c in countries:
                print(c["Name"], "|", c["Continent"], "|", c["Population"],
                      "|", c["HeadOfState"])

                if (local_data_loaded == False):
                    df = pd.DataFrame(countries)
                    local_data_loaded = True
                    print("")
                    print("Saving output query data locally...")
                    print("")
Beispiel #39
0
def runbot():
    while True:
        try:
            for event in longpoll.listen():
                if event.type == VkBotEventType.MESSAGE_NEW:
                    userid = event.object.from_id
                    roomid = event.object.peer_id
                    text = event.object.text.lower()
                    print(roomid)
                    print(text)
                    if event.object.action != None:
                        if event.object.action[
                                'type'] == 'chat_invite_user_by_link':
                            sql.UserReg(userid, get_username(userid), 'None')
                    if (text == '[club193803197|@winwheelcoronacoin] банк'
                            or text
                            == '[club193803197|win wheel corona coin] банк'):
                        sql.GetBank(roomid)
                    elif (text == '[club193803197|@winwheelcoronacoin] баланс'
                          or text
                          == '[club193803197|win wheel corona coin] баланс'):
                        message = sql.GetBalance(userid)
                        messages_send(roomid, message, menu.main())
                    elif (text == '[club193803197|@winwheelcoronacoin] чётное'
                          or text
                          == '[club193803197|win wheel corona coin] чётное'):
                        sql.SetChoice(userid, roomid, 'even', 'чётное')
                    elif (text
                          == '[club193803197|@winwheelcoronacoin] нечётное'
                          or text
                          == '[club193803197|win wheel corona coin] нечётное'):
                        sql.SetChoice(userid, roomid, 'odd', 'нечётное')
                    elif (text == '[club193803197|@winwheelcoronacoin] красное'
                          or text
                          == '[club193803197|win wheel corona coin] красное'):
                        sql.SetChoice(userid, roomid, 'red', 'красное')
                    elif (text == '[club193803197|@winwheelcoronacoin] чёрное'
                          or text
                          == '[club193803197|win wheel corona coin] чёрное'):
                        sql.SetChoice(userid, roomid, 'black', 'чёрное')
                    elif (text == '[club193803197|@winwheelcoronacoin] 1-12'
                          or text
                          == '[club193803197|win wheel corona coin] 1-12'):
                        sql.SetChoice(userid, roomid, 'first_gap',
                                      'промежуток 1-12')
                    elif (text == '[club193803197|@winwheelcoronacoin] 13-24'
                          or text
                          == '[club193803197|win wheel corona coin] 13-24'):
                        sql.SetChoice(userid, roomid, 'second_gap',
                                      'промежуток 13-24')
                    elif (text == '[club193803197|@winwheelcoronacoin] 25-36'
                          or text
                          == '[club193803197|win wheel corona coin] 25-36'):
                        sql.SetChoice(userid, roomid, 'third_gap',
                                      'промежуток 25-36')
                    elif (text
                          == '[club193803197|@winwheelcoronacoin] на число'
                          or text
                          == '[club193803197|win wheel corona coin] на число'):
                        sql.SetChoiceNumber(userid)
                        messages_send(
                            roomid,
                            F"{get_username(userid).split()[0]}, на какое число ты ставишь?",
                            menu.main())
                    elif (text == '[club193803197|@winwheelcoronacoin] вывод'
                          or text
                          == '[club193803197|win wheel corona coin] вывод'):
                        sql.withdraw(roomid, userid)
                    elif text == 'adminpanel':
                        if userid == 387159377:
                            messages_send(387159377, 'Админка',
                                          menu.adminpanel())
                    elif 'addbonusbalance' in text:
                        if userid == 387159377:
                            try:
                                text = text.split()
                                userid = int(text[1])
                                value = int(text[2])
                                kek = "{:,}".format(value).replace(',', ' ')
                                messages_send(
                                    387159377,
                                    F"userid: {userid}\nВыдан бонусный баланс: {kek}",
                                    menu.adminpanel())
                                sql.addbonus_balance(userid, value)
                            except:
                                print('bag')
                    elif 'addbalance' in text:
                        if userid == 387159377:
                            try:
                                text = text.split()
                                userid = int(text[1])
                                value = int(text[2])
                                kek = "{:,}".format(value).replace(',', ' ')
                                messages_send(
                                    387159377,
                                    F"userid: {userid}\nВыдан баланс: {kek}",
                                    menu.adminpanel())
                                sql.addbalance(userid, value)
                            except:
                                print('bag')
                    elif text == 'обновить топ':
                        if userid == 387159377:
                            sql.admin_updatetop()
                            messages_send(387159377, 'Топ обнулён',
                                          menu.adminpanel())
                    elif text == 'обновить репосты':
                        if userid == 387159377:
                            sql.admin_updaterepost()
                            messages_send(387159377, 'Репосты обновлены',
                                          menu.adminpanel())
                    elif text == 'выдать баланс':
                        if userid == 387159377:
                            messages_send(
                                387159377,
                                'Выдать баланс:\naddbalance userid value\nВыдать бонусный баланс:\naddbonusbalance userid value',
                                menu.adminpanel())
                    elif text.isdigit():
                        bet = int(text)
                        sql.acceptbet(userid, roomid, bet)
                    elif text[36:].isdigit():
                        bet = int(text[36:])
                        sql.acceptbet(userid, roomid, bet)
                    elif text[38:].isdigit():
                        bet = int(text[38:])
                        sql.acceptbet(userid, roomid, bet)
                    elif text == 'начать':
                        try:  #Если перешёл по реф ссылк
                            invited_from = event.object.ref
                            sql.UserReg(userid, get_username(userid),
                                        invited_from)
                        except:
                            sql.UserReg(userid, get_username(userid), 'None')
                        messages_send(userid, 'Добро пожаловать',
                                      menu.groupmenu())
                    elif text == 'найти беседу':
                        messages_send(userid, random.choice(rooms_choicez),
                                      menu.groupmenu())
                    elif text == 'профиль':
                        messages_send(userid, sql.getprofile(userid),
                                      menu.groupmenu())
                    elif text == 'топ игроков':
                        messages_send(userid, sql.get_top(), menu.groupmenu())

                elif event.type == VkBotEventType.WALL_REPOST:
                    try:
                        userid = event.object.from_id
                        getsub = methods.groups.isMember(group_id=193803197,
                                                         user_id=userid)
                        if getsub == 1:
                            sql.repost(userid)
                    except Exception:
                        traceback.print_exc()
        except Exception:
            sql.UserReg(userid, get_username(userid), 'None')
            traceback.print_exc()
Beispiel #40
0
def main():
    import numpy as np
    import pygame
    import sys
    import math
    import menu

    ROW_COUNT = 6
    COLUMN_COUNT = 7
    BLUE = (0, 0, 230)
    BLACK = (0, 0, 0)
    RED = (255, 0, 0)
    YELLOW = (255, 255, 0)

    def createBoard():
        board = np.zeros((ROW_COUNT, COLUMN_COUNT))
        return board

    def printBoard(board):
        print(np.flipud(board))

    def isValidLocation(col, board):
        return board[ROW_COUNT - 1][col] == 0

    def placePeice(col, board, row, peice):
        board[row][col] = peice

    def getNextRow(col, board):
        for r in range(ROW_COUNT):
            if board[r][col] == 0:
                return r

    def checkIfWon(board, peice):
        #horizontal locations for win
        for c in range(COLUMN_COUNT - 3):
            for r in range(ROW_COUNT):
                if board[r][c] == peice and board[r][c + 1] == peice and board[
                        r][c + 2] == peice and board[r][c + 3] == peice:
                    return True

        #vertical locations for win
        for c in range(COLUMN_COUNT):
            for r in range(ROW_COUNT - 3):
                if board[r][c] == peice and board[r + 1][c] == peice and board[
                        r + 2][c] == peice and board[r + 3][c] == peice:
                    return True

        #Check Positive Slope Diagonals
        for c in range(COLUMN_COUNT - 3):
            for r in range(ROW_COUNT - 3):
                if board[r][c] == peice and board[r + 1][
                        c + 1] == peice and board[r + 2][
                            c + 2] == peice and board[r + 3][c + 3] == peice:
                    return True

        #Check Negative Slope Diagonals
        for c in range(COLUMN_COUNT - 3):
            for r in range(3, ROW_COUNT):
                if board[r][c] == peice and board[r - 1][
                        c + 1] == peice and board[r - 2][
                            c + 2] == peice and board[r - 3][c + 3] == peice:
                    return True

    def drawBoard(board):
        for c in range(COLUMN_COUNT):
            for r in range(ROW_COUNT):
                pygame.draw.rect(
                    screen, BLUE,
                    (c * SQUARE, r * SQUARE + SQUARE, SQUARE, SQUARE))
                pygame.draw.circle(screen, BLACK,
                                   (int(c * SQUARE + SQUARE / 2),
                                    int(r * SQUARE + SQUARE + SQUARE / 2)),
                                   RADIUS)

        for c in range(COLUMN_COUNT):
            for r in range(ROW_COUNT):
                if board[r][c] == 1:
                    pygame.draw.circle(screen, RED,
                                       (int(c * SQUARE + SQUARE / 2),
                                        height - int(r * SQUARE + SQUARE / 2)),
                                       RADIUS)
                elif board[r][c] == 2:
                    pygame.draw.circle(screen, YELLOW,
                                       (int(c * SQUARE + SQUARE / 2),
                                        height - int(r * SQUARE + SQUARE / 2)),
                                       RADIUS)
        pygame.display.update()

    board = createBoard()
    game_over = False
    playerturn = 0

    pygame.init()

    SQUARE = 100
    RADIUS = int(SQUARE / 2 - 5)
    width = COLUMN_COUNT * SQUARE
    height = (ROW_COUNT + 1) * SQUARE

    size = (width, height)

    screen = pygame.display.set_mode(size)
    drawBoard(board)
    pygame.display.update()
    font = pygame.font.SysFont("monospace", 75)

    while not game_over:

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()

            if event.type == pygame.MOUSEMOTION:
                pygame.draw.rect(screen, BLACK, (0, 0, width, SQUARE))
                posx = event.pos[0]
                if playerturn == 0:
                    pygame.draw.circle(screen, RED, (posx, int(SQUARE / 2)),
                                       RADIUS)
                else:
                    pygame.draw.circle(screen, YELLOW, (posx, int(SQUARE / 2)),
                                       RADIUS)
                pygame.display.update()

            if event.type == pygame.MOUSEBUTTONDOWN:
                # print(event.pos)
                pygame.draw.rect(screen, BLACK, (0, 0, width, SQUARE))

                if playerturn == 0:
                    posx = event.pos[0]
                    col = int(math.floor(posx / SQUARE))
                    if isValidLocation(col, board):
                        row = getNextRow(col, board)
                        placePeice(col, board, row, 1)

                        if checkIfWon(board, 1):
                            print("Player 1 Wins!")
                            label = font.render("Player 1 Wins!!!", 1, RED)
                            screen.blit(label, (40, 10))
                            game_over = True

                else:
                    posx = event.pos[0]
                    col = int(math.floor(posx / SQUARE))
                    if isValidLocation(col, board):
                        row = getNextRow(col, board)
                        placePeice(col, board, row, 2)

                        if checkIfWon(board, 2):
                            print("Player 2 Wins!")
                            label = font.render("Player 2 Wins!!!", 1, YELLOW)
                            screen.blit(label, (40, 10))
                            game_over = True

                printBoard(board)
                drawBoard(board)
                playerturn += 1
                playerturn = playerturn % 2

                if game_over:
                    pygame.time.wait(3000)
                    menu.main()
Beispiel #41
0
def main():
    #Initialize all imported pygame modules.
    pygame.init()
    #Clock object used to control the fps.
    clock = pygame.time.Clock()

    #Display in fullscreen. Widescreen support. Will resize if necessary.
    screen = pygame.display.set_mode((1024, 640), pygame.FULLSCREEN, 32)
    background_path = os.path.join(image_dir, background_image_filename)
    #background = pygame.Surface(screen.get_size())
    background = pygame.image.load(background_path).convert()

    #Title of the game window if not in fullscreen.
    pygame.display.set_caption("Watch Out!")

    #Only the cursor sprite will display, not the mouse cursor.
    pygame.mouse.set_visible(False)

    #Initialize object sprites.
    cursor = Cursor()
    lives = Lives()
    hotdog1 = Hotdog()
    hotdog2 = Hotdog()
    hotdog3 = Hotdog()
    hotdog4 = Hotdog()
    hotdog5 = Hotdog()
    hotdog6 = Hotdog()
    hotdogs = [hotdog1, hotdog2, hotdog3, hotdog4, hotdog5, hotdog6] #Hotdog sprite list, easier to handle with iteration

    #Initialize display sprites.
    score = Score()
    livesDisplay = LivesDisplay()
    highScoreDisplay = HighScoreDisplay()

    #Animation objects.
    deathAnimation = DeathAnimation()
    lifeAnimation = LifeAnimation()

    #Sprite grouping.
    sprites = pygame.sprite.RenderPlain(score, cursor, lives, highScoreDisplay)
    spritesHotdogs = pygame.sprite.RenderPlain(hotdogs)
    deathSprite = pygame.sprite.RenderPlain(deathAnimation)
    lifeSprite = pygame.sprite.RenderPlain(lifeAnimation)

    #Initialize level class.
    level = Level()

    Run = True
    while Run:
        #Determines if an event occurs.
        for event in pygame.event.get():
            if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
                Run = False

        #Display background and call update function for sprite classes.
        screen.blit(background, (0,0))
        livesDisplay.update(screen, cursor.lives)
        sprites.update(screen)
        spritesHotdogs.update(screen, level.select(score.y))

        #Ensure that a hotdog doesn't take away multiple lives from one hit.
        if cursor.lives >= 1:
            for hotdog in hotdogs: #Iterate through hotdog sprite list.
                if pygame.sprite.collide_rect(hotdog, cursor) and hotdog.collided == False:
                    cursor.lives -= 1
                    hotdog.collided = True #When true, a hotdog cannot subtract from user lives.
                    deathSprite.update(screen)

            #Addes a life on collision, and ensure that more lives are not added for a single collision.
            if pygame.sprite.collide_rect(lives, cursor) and lives.collided == False:
                cursor.lives += 1
                lives.collided = True
                lifeSprite.update(screen)

        #User has run out of lives.
        else:
            Run = False
            score.highScore() #Call high score class
            menu.main() #Go back to menu screen.

        pygame.display.flip()
        clock.tick(15) #Clock set to 15ms, don't want to stress the CPU.
def main(screen):
    #initilisation phase
    pygame.init()

    fps_clock = pygame.time.Clock()

    start_img = pygame.image.load("Data/Images/Buttons/startbutton.png")
    back_img = pygame.image.load("Data/Images/Buttons/backbutton.png")
    select_img = pygame.image.load("Data/Images/selectionarrow.png")

    start_rect = start_img.get_rect()
    back_rect = back_img.get_rect()
    select_rect = select_img.get_rect()

    start_rect.topleft = (500, 550)
    back_rect.topleft = (500, 655)
    select_rect.midleft = (300, 410)

    tracks = glob.glob("Data/Tracks/*.txt")
    new_tracks = []
    for track in tracks:
        track = track[12:-4]
        new_tracks.append(track)
    tracks = new_tracks

    font = pygame.font.SysFont("Bookman", 23)
    track_labels = []
    for track in tracks:
        track_label = font.render(track, 1, (255, 255, 255))
        track_labels.append(track_label)
    selected_track = 0
    first_label_pos = 400
    list_animated = False

    end = False

    while 1:
        #event phase
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            elif event.type == pygame.MOUSEBUTTONDOWN:
                if start_rect.collidepoint(event.pos):
                    end = 'rhythm'
                elif back_rect.collidepoint(event.pos):
                    end = 'menu'
                elif not list_animated and event.pos[0] < 400:
                    if event.pos[1] < 400 and selected_track != 0:
                        list_animated = "Up"
                        selected_track -= 1
                        track_animate_i = 0
                    elif event.pos[1] > 400 and selected_track != len(
                            tracks) - 1:
                        list_animated = "Down"
                        selected_track += 1
                        track_animate_i = 0

        keys = pygame.key.get_pressed()
        if not list_animated:
            if keys[pygame.constants.K_UP] and selected_track != 0:
                list_animated = "Up"
                selected_track -= 1
                track_animate_i = 0
            elif keys[pygame.constants.
                      K_DOWN] and selected_track != len(tracks) - 1:
                list_animated = "Down"
                selected_track += 1
                track_animate_i = 0
        if keys[pygame.constants.K_RETURN]:
            end = 'rhythm'

        #logic phase
        if list_animated == "Up":
            first_label_pos += 5
            track_animate_i += 1
            if track_animate_i == 16:
                list_animated = False
        elif list_animated == "Down":
            first_label_pos -= 5
            track_animate_i += 1
            if track_animate_i == 16:
                list_animated = False

        #render phase

        screen.fill((0, 0, 0))  # background goes here later

        label_i = 0
        for track_label in track_labels:
            screen.blit(track_label, (50, (first_label_pos + 80 * label_i)))
            label_i += 1

        screen.blit(start_img, start_rect)
        screen.blit(back_img, back_rect)
        screen.blit(select_img, select_rect)

        pygame.display.flip()

        fps_clock.tick(60)

        if end:
            break

    if end == 'rhythm':
        rhythm.main(screen, tracks[selected_track])
    elif end == 'menu':
        menu.main(screen)
Beispiel #43
0
def handleQuit():
    menu.main()
    quit()
def play_game(save, back, check_b, is_loaded=1):
    """ Ta funkcja jest konieczna do odpalenia gry z poziomu menu, uzycie exec() na tym pliku
        nie dawalo oczekiwanych rezultatow. """
    global GAME_MODE
    pygame.init()
    screen_size = game_configs["screen_size"]
    background = colors["black"]
    pygame.display.set_caption(game_configs["display_caption"])
    game_font = pygame.freetype.Font(
        game_configs["font_path"], game_configs["font_size"]
    )
    screen = pygame.display.set_mode(screen_size)
    peg_num = None
    row_num = None
    if is_loaded:
        save_class.load_game(screen)
    elif not is_loaded:

        menu = GameSettingMenu(
            menu_configs["pos"], colors["aqua"], screen, menu_configs["size"]
        )

        menu.draw()  # pygame.Rect trójkątnych przycisków pojawiają się dopiero po narysowaniu
        clickable_rects_menu = menu.rects
        elements_menu = menu.elements
        engaged_rect = None
        while not (peg_num and row_num):
            """ Pętla menu wyboru parametrów gry """
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    sys.exit()
                if event.type == pygame.MOUSEBUTTONDOWN:
                    if pygame.mouse.get_pressed()[0]:
                        x, y = pygame.mouse.get_pos()
                        for rect in clickable_rects_menu:
                            if rect.collidepoint(x, y):
                                engaged_rect = rect
                    else:
                        engaged_rect = None
                if event.type == pygame.MOUSEBUTTONUP:
                    if engaged_rect:
                        x, y = pygame.mouse.get_pos()
                        if not pygame.mouse.get_pressed()[0] and engaged_rect.collidepoint(x, y):
                            for element in elements_menu:
                                if element.rect == engaged_rect:
                                    element.change()
                                    engaged_rect = None

                screen.fill(background)
                menu.draw()
                peg_num, row_num = menu.return_game_settings()
                pygame.display.flip()

    # dwa ify zapisujące statystyki rozegranych meczy w obu trybach
    if GAME_MODE == "Letter":
        data.played_matches += 1
        data.win_percentage = round((data.won_matches / data.played_matches) * 100)
        data.word_version += 1
        data.save_stats()
    elif GAME_MODE == "Peg":
        data.played_matches += 1
        data.win_percentage = round((data.won_matches / data.played_matches) * 100)
        data.normal_mastermind += 1
        data.save_stats()

    if is_loaded:
        peg_num = save_class.n_pegs
        row_num = save_class.rows
        GAME_MODE = save_class.game_type

    board = Board(
        board_configs["pos"],
        board_configs["size"],
        board_configs["color"],
        screen,
        peg_num,
        row_num,
        GAME_MODE  # wstawienie tutaj 'Letter' uruchamia tryb słowny, a 'Peg' tryb z kolorami
    )

    if is_loaded:
        board.rows_of_pegs = save_class.rows_of_pegs
        board.winning_pegs = save_class.winning_code
        board.active_row = save_class.active_row

    logbox = LogBox(
        logbox_configs["pos"],
        logbox_configs["size"],
        logbox_configs["background_color"],
        logbox_configs["text_color"],
        screen,
        logbox_configs["number_of_messages_displayed"],
    )

    if is_loaded:
        logbox.texts = save_class.texts

    end_game = False
    engaged_rect_lmb = None
    engaged_rect_rmb = None

    while True:
        """ Główna pętla gry """

        clickable_rects = board.rects
        elements = board.elements

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            if event.type == pygame.MOUSEBUTTONDOWN:
                pos = pygame.mouse.get_pos()
                if save.is_pointing(pos):
                    save_class.save_game(board.active_row, board.n_pegs, board.n_rows, GAME_MODE, board.rows_of_pegs,
                                         board.winning_pegs)
                    save_class.save_logbox(logbox.texts)
                elif back.is_pointing(pos):
                    pygame.display.quit()
                    main()
                elif end_game:
                    sys.exit()

            if event.type == pygame.MOUSEBUTTONDOWN:
                x, y = pygame.mouse.get_pos()
                if pygame.mouse.get_pressed()[0]:
                    for rect in clickable_rects:
                        if rect.collidepoint(x, y):
                            engaged_rect_lmb = rect
                            engaged_rect_rmb = None

                elif pygame.mouse.get_pressed()[2]:
                    for rect in clickable_rects:
                        if rect.collidepoint(x, y):
                            engaged_rect_rmb = rect
                            engaged_rect_lmb = None
                else:
                    engaged_rect_lmb = None
                    engaged_rect_rmb = None

            if event.type == pygame.MOUSEBUTTONUP:
                if engaged_rect_lmb:
                    x, y = pygame.mouse.get_pos()
                    if not pygame.mouse.get_pressed()[0] and engaged_rect_lmb.collidepoint(x, y):
                        for element in elements:
                            if element.rect == engaged_rect_lmb:
                                if isinstance(element, CheckButton):
                                    end_game = element.change(board)
                                else:
                                    element.change()
                                engaged_rect_lmb = None
                elif engaged_rect_rmb:
                    x, y = pygame.mouse.get_pos()
                    if not pygame.mouse.get_pressed()[2] and engaged_rect_rmb.collidepoint(x, y):
                        for element in elements:
                            if element.rect == engaged_rect_rmb:
                                if isinstance(element, Peg):
                                    element.change_reversed()
                                engaged_rect_rmb = None

        screen.fill(background)
        board.draw()
        save.draw(screen)
        back.draw(screen)
        check_b.draw(screen)
        logbox.load_text(board.message)
        logbox.print_text(game_font)
        pygame.display.flip()
Beispiel #45
0
#! /usr/bin/env python

import sys
import os


try:
    __file__
except NameError:
    pass
else:
    libdir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'lib'))
    sys.path.insert(0, libdir)

from menu import main
main()