Exemple #1
0
def get_encode(message_bytes, key):
    if len(message_bytes) > 248:
        return
    key_pos = random_int(0, len(key))
    res = bytearray(256)
    res[0] = key_pos & 255
    res[1] = (key_pos >> 8) & 255
    res[2] = (key_pos >> 16) & 255
    res[3] = len(message_bytes)
    curpos = 4
    trash_size = (248 - len(message_bytes)) // 2
    for i in range(
            curpos,
            curpos + trash_size - 1 + ((248 - len(message_bytes)) % 2) + 1):
        res[i] = random_int(0, 255)
    curpos += trash_size + ((248 - len(message_bytes)) % 2)
    res[curpos:curpos + len(message_bytes)] = message_bytes[:]
    curpos += len(message_bytes)
    for i in range(curpos, curpos + trash_size):
        res[i] = random_int(0, 255)
    curpos += trash_size
    msg_hash = get_message_hash(res, 4)
    res[curpos:curpos + len(msg_hash)] = msg_hash[:]
    for i in range(3, len(res)):
        res[i] = res[i] ^ key[(key_pos + i) % len(key)]
    return res
Exemple #2
0
 def on_touch_down(self, touch):
     if self.position == 'menu' or self.position == 'game_over':
         Clock.unschedule(self.main_loop)
         self.menu_sound.stop()
         self.score = 0
         self.position = 'menu'
         self.w, self.h = Window.size
         self.w = int(self.w)
         self.h = int(self.h)
         self.snake = [[5, 2], [4, 2], [3, 2]]
         self.apple = [
             random_int(0,
                        int(self.w / self.grid) - 1),
             random_int(0,
                        int(self.h / self.grid) - 1)
         ]
         self.score = 0
         self.snake_vector = 'right'
         self.last_arrow = 'right'
         self.fps = self.default_fps
         self.position = 'game'
         if touch.x < self.size[0] / 2:
             self.new_move_type = True
         else:
             self.new_move_type = False
         Clock.schedule_interval(self.main_loop, 1 / self.fps)
     elif self.position == 'game':
         if self.new_move_type:
             ws = touch.x / self.size[0]
             hs = touch.y / self.size[1]
             aws = 1 - ws
             if ws > hs and aws > hs:
                 if not self.snake_vector == 'up':
                     self.last_arrow = 'down'
             elif ws > hs >= aws:
                 if not self.snake_vector == 'left':
                     self.last_arrow = 'right'
             elif ws <= hs < aws:
                 if not self.snake_vector == 'right':
                     self.last_arrow = 'left'
             else:
                 if not self.snake_vector == 'down':
                     self.last_arrow = 'up'
         else:
             if touch.x < self.size[0] / 4:
                 if not self.snake_vector == 'right':
                     self.last_arrow = 'left'
             elif touch.x < self.size[0] / 2:
                 if not self.snake_vector == 'left':
                     self.last_arrow = 'right'
             elif touch.y < self.size[1] / 2:
                 if not self.snake_vector == 'up':
                     self.last_arrow = 'down'
             else:
                 if not self.snake_vector == 'down':
                     self.last_arrow = 'up'
Exemple #3
0
def redraw_logo():
    canvas.delete("all")
    img = logos[random_int(0, len(logos) - 1)]
    canvas.create_image((logo_size // 2, logo_size // 2),
                        image=img,
                        state="normal")
    canvas.after(200, redraw_logo)
	def _jump(self, particle): #create
		speed = 1.0
		s = random_int(10,20)
		s = float(s/10)

		particle.animation.y.speed = -s
		particle.animation.y.vel = 0.1
Exemple #5
0
def ai(request):
    if not 'player1' in request.session:
        print "player 1 missing - redirecting to /"
        return HttpResponseRedirect(redirect_to="/")
    if not 'player2' in request.session:
        request.session['player2'] = ChessUser.objects.get(
            username="******")

    if request.method == "GET" and 'new_game' in request.GET:
        player1 = request.session.get("player1", "ANONYMOUS")
        player2 = request.session.get("player2", "ANONYMOUS")

        #player1 is white, swap then randomly before assigning
        if random_int(1, 10) > 5:
            player1, player2 = player2, player1

        ab = init_bricks()
        data = json.dumps(ab)
        cg = ChessGame(ab=data,
                       player_white_pk=player1['pk'],
                       player_black_pk=player2['pk'])
        cg.save()
        request.session['game_id'] = cg.pk
        return HttpResponseRedirect("/ai/")

    if not 'game_id' in request.session:
        return HttpResponseRedirect("/ai/?new_game=1")

    #get game object
    cg = ChessGame.objects.get(pk=int(request.session['game_id']))

    #make ai move (will only move if its his turn)
    make_ai_move.delay(int(cg.pk))

    if request.method == "GET" and 'move' in request.GET:
        response = do_move(request)
        make_ai_move.delay(int(cg.pk))
        return response

    context = {
        'bricks': cg.ab,
        'board': generate_board(),
        'turn': cg.turn,
        'player_white': cg.player_white_pk,
        'player_black': cg.player_black_pk,
        'game_over': cg.game_over,
        'player1': json.dumps(request.session['player1']),
        'player1pk': request.session['player1']['pk'],
        'player1name': request.session['player1']['username'],
        'player2': json.dumps(request.session['player2']),
        'player2pk': request.session['player2']['pk'],
        'player2name': request.session['player2']['username'],
        'game_id': request.session['game_id']
    }

    return render_to_response("game.html",
                              context,
                              context_instance=RequestContext(request))
Exemple #6
0
def create_room(room_name, admin_username, pwd_hash):
    admin_username = admin_username.lower()
    if not re_match(r'^[A-z0-9._А-яЁё]{3,30}', admin_username):
        return "Invalid room name"
    if not re_match(r'^[A-z0-9._]{3,16}', admin_username):
        return "Invalid admin username"
    room_id = random_int(-2000000000, 2000000000)
    while sql_exec(f"""SELECT * FROM rooms WHERE room_id = {room_id}"""):
        room_id = random_int(-2000000000, 2000000000)
    sql_exec(f"""INSERT INTO rooms VALUES(
                {room_id},
                '{room_name}',
                '{admin_username}',
                '{admin_username};{pwd_hash}',
                '0',
                {int(time())}
            );""")
    return room_id
Exemple #7
0
def prepare_logo():
    for f in range(10):
        img = PhotoImage(width=logo_size, height=logo_size)
        img.blank()
        for y in range((124) // 2):
            for x in range(logo[-1]):
                if isbitset(logo, x, y):
                    img.put("green" if random_int(0, 2) else "lime",
                            (x << 2, y << 2))
        logos.append(img)
Exemple #8
0
def game_over():
    global typer
    global fps
    global speed_gameover
    speed_gameover = fps
    typer = 'game_over'
    fps = 60
    if music == True:
        pygame.mixer.music.stop()
        pygame.mixer.music.load('fail' + str(random_int(1, 3)) + '.wav')
        pygame.mixer.music.play()
 def random_move():
     num = random_int(1, 4)
     if num == 1:
         action = slap
     elif num == 2:
         action = punch
     elif num == 3:
         action = kick
     elif num == 4:
         action = flying_kick
     return action
Exemple #10
0
    def test_text(self):
        """Test of adding text to elements
        """
        s = random_str()
        for cls in _get_elements_classes(
                except_subcls=htmler.SingleTagElement):
            self._test_render(cls, s, htmler.Text(s))
            self._test_render(cls, s, s)

        # Pass not str as first argument
        n = random_int(0, 65535)
        assert htmler.Text(n).render() == str(n)
Exemple #11
0
def ai(request):
    if not 'player1' in request.session:
        print "player 1 missing - redirecting to /"
        return HttpResponseRedirect(redirect_to="/")
    if not 'player2' in request.session:
        request.session['player2'] = ChessUser.objects.get(username="******")

    if request.method == "GET" and 'new_game' in request.GET:
        player1 = request.session.get("player1", "ANONYMOUS")
        player2 = request.session.get("player2", "ANONYMOUS")

        #player1 is white, swap then randomly before assigning
        if random_int(1, 10) > 5:
            player1, player2 = player2, player1

        ab = init_bricks()
        data = json.dumps(ab)
        cg = ChessGame(ab=data, player_white_pk=player1['pk'], player_black_pk=player2['pk'])
        cg.save()
        request.session['game_id'] = cg.pk
        return HttpResponseRedirect("/ai/")

    if not 'game_id' in request.session:
        return HttpResponseRedirect("/ai/?new_game=1")

    #get game object
    cg = ChessGame.objects.get(pk=int(request.session['game_id']))

    #make ai move (will only move if its his turn)
    make_ai_move.delay(int(cg.pk))

    if request.method == "GET" and 'move' in request.GET:
        response = do_move(request)
        make_ai_move.delay(int(cg.pk))
        return response

    context = {'bricks':cg.ab,
                'board':generate_board(),
                'turn':cg.turn,
                'player_white':cg.player_white_pk,
                'player_black':cg.player_black_pk,
                'game_over':cg.game_over,
                'player1':json.dumps(request.session['player1']),
                'player1pk':request.session['player1']['pk'],
                'player1name':request.session['player1']['username'],
                'player2':json.dumps(request.session['player2']),
                'player2pk':request.session['player2']['pk'],
                'player2name':request.session['player2']['username'],
                'game_id':request.session['game_id']
                }

    return render_to_response("game.html", context, context_instance=RequestContext(request))
 def random_opponent():
     num = random_int(1, 5)
     if num == 1:
         opponent = Iron_man
     elif num == 2:
         opponent = Captain_America
     elif num == 3:
         opponent = Hawkeye
     elif num == 4:
         opponent = Thor
     elif num == 5:
         opponent = Hulk
     return opponent
Exemple #13
0
	def _rocking_animation(self): #init
		if self.sprite == None: return

		#randomize axis
		sprite = self.sprite
		number = random_int(0,1)
		choice = [sprite.animation.x, sprite.animation.y]
		animation = choice[number]

		if sprite != None \
		and sprite.animation.x.stopped\
		and sprite.animation.y.stopped:

			#choose correct end point
			end_choice = [self.x, self.y]
			animation.end = end_choice[number]

			#randomize direction
			speed, vel = +0.5, -0.1
			if random_int(0,1) == 1:
				speed, vel = -speed, -vel
			animation.speed = speed
			animation.vel = vel
	def create(self, amt=1, area=(0,0,0,0)):
	#Randomly speckle the sprites within an area.
		
		#Only allow it to do so in the proper intervals.
		if self.clock.elapsed_time.seconds < self.interval:
			return

		self.clock.restart()

		#Create the particles.
		texture = MyTexture("assets/effects/dust.PNG")
		for i in range(amt):
			sprite = MySprite(texture)
			sprite.clip.set(10,10)

			#random CLIP
			c = random_int(0,3)
			sprite.clip.use(c,0)

			#Random AREA.
			x1, y1, x2, y2 = area
			x2 -= sprite.w
			y2 -= sprite.h
			if x2 < x1: x2 = x1
			if y2 < y1: y2 = y1

			x = random_int(x1, x2)
			y = random_int(y1, y2)
			sprite.x, sprite.y = x, y
			#

			#animate
			self._jump(sprite)
			self._fade(sprite)
			#

			self.particles.append(sprite)
Exemple #15
0
 def wait(self, led=None):
     while self.reconnect:
         try:
             if wifi.is_connected():
                 self.connect()
                 while True:
                     gc_collect()
                     try:
                         self.mqtt.wait_msg()
                     except RxEx:
                         pass
             else:
                 print('No WiFi')
         except Exception as e:
             print('MQTT' + ':')
             print_exception(e)
             self.discon()
         if self.reconnect:
             if led:
                 led.slow_blink()
                 sleep(random_int(5))
                 led.off()
             else:
                 sleep(random_int(8))
Exemple #16
0
    def game(self):
        quit = False
        choise = {1: "rock", 2: "paper", 3: "scissors"}
        while (quit is False):
            user_input = int(
                input("Enter 1 for rock, 2 for paper, and 3 for scissors: "))
            win = False
            tie = False
            cpu = random_int(1, 3)
            if user_input is 1 and cpu is 3:
                win = True
            elif user_input is 2 and cpu is 1:
                win = True
            elif user_input is 3 and cpu is 2:
                win = True
            elif user_input is cpu:
                tie = True
            elif user_input != 1 or 2 or 3:
                print("Not Valid Input")
            else:
                win = False
            if win is True:
                print("You won!")
            elif tie is True:
                print("You tied!")
            else:
                print("You Lost!")
            print('Your Choise %s' % (choise[user_input]))
            print('Computer\'s Choise %s' % (choise[cpu]))

            keep_playing = int(
                input("Enter 1 to keep playing, enter 2 to stop playing "))
            if keep_playing is 1:
                quit = False
            elif keep_playing is 2:
                quit = True
            else:
                print("Not Valid input")
def rock_paper_scissors():
    quit = False
    hand = {1: "rock", 2: "paper", 3: "scissers"}
    while (quit is False):
        user_input = int(
            input("Enter 1 for rock, 2 for paper, and 3 for scissors: "))
        cpu = random_int(1, 3)
        tie = False
        win = False
        if (user_input is 1 and cpu is 3):
            # if user inputs rock and cpu enters scissors, then player wins
            win = True
        elif (user_input is 2 and cpu is 1):
            #if user inputs paper, and cpu enters rock, then player wins
            win = True
        elif (user_input is 3 and cpu is 2):
            #if player enters scissers, and cpu enters paper, then player wins
            win = True
        elif (user_input is cpu):
            tie = True
        else:
            win is False

        if win is True:
            print("You win")
        elif tie is True:
            print("Tie")
        else:
            print("You loose")
        print('user_input %s' % (hand[user_input]))
        print('cpu %s' % (hand[cpu]))
        go_on = int(input("Do you want to quit? 1 is Yes, 2 is No "))
        if go_on is 1:
            quit = True
        else:
            quit = False
Exemple #18
0
        flip = random.randint(0, 1) #flip a coin to decide the AI's choice (0 = cooperate, 1 = cheat)
        if ai_behavior == 0:
            if last_choice == 0 and flip == 1:
                flip = random.randint(0, 1) #reroll to try and match player
            elif last_choice == 1 and flip == 0:
                flip = random.randint(0, 1)
        elif ai_behavior == 1:
            if last_choice == 0 and flip == 0:
                flip = random.randint(0, 1)
            elif last_choice == 1 and flip == 1:
                flip = random.randint(0, 1)
        elif ai_behavior == 2:
            flip = random.randint(0, 1)

        if ai_trust >= random.randint(1, 7) and flip == 0: #cheat cheating players more often, despite behavioral tendencies
            flip = random.random_int(0, 1)
            if ai_trust >= 7 and flip == 0: #cheat REALLY cheating players VERY often
                flip = random.random_int(0, 1)
        if ai_trust == 0 and random.randint(0, 1) == 0 and flip == 1: #cooperate with cooperative players more often, despite behavioral tendencies
            flip = random.randint(0, 1)
            if flip == 0 and ai_trust == 0 and random.randint(0, 10) == 0: #1-in-11 chance to catch "suckers" (overly cooperative players)
                ai_trust = 7

        if choice in choices_list:
            rounds += 1
            if choice == 'cooperate':
                last_choice = 0
                ai_trust -= 2
                if flip == 0:
                    yomi += cooperate_value*flag
                    ai_yomi += cooperate_value*flag
Exemple #19
0
def evaluation(silent, simulation_rounds, malicious_devices_prop,
               devices_per_cluster, eval_time, malicious_frequency_multiplier,
               threshold_ratio, periodicity_error, results_file):
    global counter_lock, counter

    show_pbar = not silent and counter_lock is not None and counter is not None

    aggregated_data_sent_array = []
    data_sent_threshold_array = []
    num_malicious_array = []
    for i in range(simulation_rounds):
        # Updating progress bar
        if show_pbar:
            with counter_lock:
                counter.value += 1

        # Creating the cluster (devices in a flow)
        iot_devices = []
        distribution_device_classes = [
            random_int(0,
                       len(device_classes) - 1)
            for _ in range(devices_per_cluster)
        ]
        distribution_malicious = binomial(1, malicious_devices_prop,
                                          devices_per_cluster)
        for type_id, is_malicious in zip(distribution_device_classes,
                                         distribution_malicious):
            iot_devices.append(device_classes[type_id](
                is_malicious, eval_time, periodicity_error,
                malicious_frequency_multiplier))

        # Preloading random arrays
        uniform_first_tx = list(uniform(0, 1, devices_per_cluster))
        gaussian_jitter = list(normal(0, 1, devices_per_cluster))

        # Computing estimated throughput (data sent within an evaluation period)
        data_sent_threshold = 0
        distribution_devices_counter = dict(
            Counter(distribution_device_classes))
        for device_type_id, device_type_count in distribution_devices_counter.items(
        ):
            data_sent_threshold += device_type_count * threshold_ratio * (
                eval_time /
                get_class_from_type_id(device_type_id).legacy_period) * (
                    get_class_from_type_id(device_type_id).data_burst)

        # Simulation
        aggregated_data_sent = 0
        for device in iot_devices:
            # First tranmsission in U(0, tx_period)
            # Assuming tx_period < eval_time
            accumulated_time = uniform_first_tx.pop() * device.period
            # [2,n-1] transmissions
            num_txs = 1 + int((eval_time - accumulated_time) / device.period)
            remainder = (eval_time - accumulated_time) % device.period
            # Last transmission (with jitter)
            standard_deviation = device.period * (periodicity_error / 2) / 2
            last_transmission_time = standard_deviation * gaussian_jitter.pop(
            ) + device.period
            if (last_transmission_time < remainder):
                num_txs += 1
            # Adding the data of this device to the aggregated data sent in this period
            aggregated_data_sent += num_txs * device.data_burst

        aggregated_data_sent_array.append(aggregated_data_sent)
        data_sent_threshold_array.append(data_sent_threshold)
        num_malicious_array.append(sum(distribution_malicious))

    # Results
    result = {
        "eval_time":
        eval_time,
        "malicious_devices_prop":
        malicious_devices_prop,
        "devices_per_cluster":
        devices_per_cluster,
        "malicious_frequency_multiplier":
        malicious_frequency_multiplier,
        "threshold_ratio":
        threshold_ratio,
        "periodicity_error":
        periodicity_error,
        "simulation_rounds":
        simulation_rounds,
        "aggregated_data_sent_array":
        aggregated_data_sent_array,
        "data_sent_threshold_array":
        data_sent_threshold_array,
        "malicious_quarantined_array": [
            int(num_malicious) if
            (aggregated_data_sent > data_sent_threshold) else 0
            for aggregated_data_sent, data_sent_threshold, num_malicious in
            zip(aggregated_data_sent_array, data_sent_threshold_array,
                num_malicious_array)
        ],
        "malicious_array": [int(x) for x in num_malicious_array],
        "legitimate_quarantined_array": [
            int(devices_per_cluster - num_malicious) if
            (aggregated_data_sent > data_sent_threshold) else 0
            for aggregated_data_sent, data_sent_threshold, num_malicious in
            zip(aggregated_data_sent_array, data_sent_threshold_array,
                num_malicious_array)
        ],
        "legitimate_array":
        [devices_per_cluster - int(x) for x in num_malicious_array]
    }
    return result
Exemple #20
0
pygame.mixer.init()
menu_color_back = False
menu_color_count = 50
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption('Pixelsuft Snake')
pygame.display.set_icon(pygame.image.load('favicon.ico').convert())
if music == True:
    pygame.mixer.music.load('menu.wav')
    pygame.mixer.music.play()
running = True
typer = 'menu'
menu_font = pygame.font.SysFont('Segoe Script', 26, bold=True)
score_font = pygame.font.SysFont('Segoe Script', 15, bold=True)
game_over_font = pygame.font.SysFont('Segoe Script', 40, bold=True)
snake = [[5, 2], [4, 2], [3, 2]]
apple = [random_int(0, grid_width - 3), random_int(0, grid_height - 3)]
score = 0
snake_vector = 'right'
clock = pygame.time.Clock()
speed_gameover = 0


def game_over():
    global typer
    global fps
    global speed_gameover
    speed_gameover = fps
    typer = 'game_over'
    fps = 60
    if music == True:
        pygame.mixer.music.stop()
Exemple #21
0
def genkey(bytes_size, file_path):
    key = bytearray([random_int(0, 255) for _ in range(bytes_size)])
    with open(file_path, 'wb') as f:
        f.write(key)
    messagebox.showinfo(title="Generated key",
                        message=f"New key file: ({file_path})")
Exemple #22
0
def game(request):
    if not 'player1' in request.session:
        return HttpResponseRedirect(redirect_to="/")

    if 'challenge' in request.GET:
        ch = Challenge.objects.get(pk=request.GET['challenge'])
        p1 = request.session['player1']['pk']
        p2 = ch.player1.pk

        if random_int(1, 10) > 5:
            p1, p2 = p2, p1

        ab = init_bricks()
        data = json.dumps(ab)
        cg = ChessGame(ab=data, player_white_pk=p1, player_black_pk=p2)
        cg.save()
        request.session['game_id'] = cg.pk
        ch.delete()
        return HttpResponseRedirect(redirect_to="/game/")

    if 'new_game' in request.GET:
        #start a new game
        player1 = request.session.get("player1", "ANONYMOUS")
        player2 = request.session.get("player2", "ANONYMOUS")

        #player1 is white, swap then randomly before assigning
        if random_int(1, 10) > 5:
            player1, player2 = player2, player1

        ab = init_bricks()
        data = json.dumps(ab)
        cg = ChessGame(ab=data,
                       player_white_pk=player1['pk'],
                       player_black_pk=player2['pk'])
        cg.save()
        request.session['game_id'] = cg.pk
        return HttpResponseRedirect(redirect_to="/game/")

    if 'continue_game' in request.GET:
        #continue a game
        game = ChessGame.objects.get(pk=int(request.GET['continue_game']))
        request.session['game_id'] = game.pk
        return HttpResponseRedirect(redirect_to="/game/")

    if 'replace' in request.GET:
        replace = request.GET['replace']
        cg = ChessGame.objects.get(pk=request.session['game_id'])
        ab = json.loads(cg.ab)
        hb = ab['hb']
        sb = ab['sb']
        if cg.pawn_over and (replace in ["D", "H", "T", "L"]):
            if cg.turn == "hvit":
                hb = replace_pawn(hb, replace)
                cg.turn = "svart"
            else:
                sb = replace_pawn(sb, replace)
                cg.turn = "hvit"
            cg.pawn_over = False
        ab = {'hb': hb, 'sb': sb}
        cg.ab = json.dumps(ab)
        cg.save()
        return HttpResponseRedirect(redirect_to="/game/")

    if 'move' in request.GET:
        return do_move(request)

    all_b = ChessGame.objects.get(pk=request.session['game_id'])
    template = 'game.html'
    matches = get_active_matches(request)
    context = {
        'bricks': all_b.ab,
        'board': generate_board(),
        'turn': all_b.turn,
        'player_white': all_b.player_white_pk,
        'player_black': all_b.player_black_pk,
        'game_over': all_b.game_over,
        'player1': json.dumps(request.session['player1']),
        'player1pk': request.session['player1']['pk'],
        'player1name': request.session['player1']['username'],
        'matches': matches,
        'game_id': request.session['game_id']
    }

    if 'player2' in request.session:
        context['player2'] = json.dumps(request.session['player2'])
        context['player2pk'] = request.session['player2']['pk']
        context['player2name'] = request.session['player2']['username']
    else:
        if str(request.session['player1']['pk']) == str(all_b.player_white_pk):
            context['player2pk'] = all_b.player_black_pk
            context['player2name'] = ChessUser.objects.get(
                pk=context['player2pk']).username
        else:
            context['player2pk'] = all_b.player_white_pk
            context['player2name'] = ChessUser.objects.get(
                pk=context['player2pk']).username

    return render_to_response(template,
                              context,
                              context_instance=RequestContext(request))
Exemple #23
0
def game(request):
    if not 'player1' in request.session:
        return HttpResponseRedirect(redirect_to="/")

    if 'challenge' in request.GET:
        ch = Challenge.objects.get(pk=request.GET['challenge'])
        p1 = request.session['player1']['pk']
        p2 = ch.player1.pk

        if random_int(1, 10) > 5:
            p1, p2 = p2, p1

        ab = init_bricks()
        data = json.dumps(ab)
        cg = ChessGame(ab=data, player_white_pk=p1, player_black_pk=p2)
        cg.save()
        request.session['game_id'] = cg.pk
        ch.delete()
        return HttpResponseRedirect(redirect_to="/game/")


    if 'new_game' in request.GET:
        #start a new game
        player1 = request.session.get("player1", "ANONYMOUS")
        player2 = request.session.get("player2", "ANONYMOUS")

        #player1 is white, swap then randomly before assigning
        if random_int(1, 10) > 5:
            player1, player2 = player2, player1

        ab = init_bricks()
        data = json.dumps(ab)
        cg = ChessGame(ab=data, player_white_pk=player1['pk'], player_black_pk=player2['pk'])
        cg.save()
        request.session['game_id'] = cg.pk
        return HttpResponseRedirect(redirect_to="/game/")

    if 'continue_game' in request.GET:
        #continue a game
        game = ChessGame.objects.get(pk=int(request.GET['continue_game']))
        request.session['game_id'] = game.pk
        return HttpResponseRedirect(redirect_to="/game/")


    if 'replace' in request.GET:
        replace = request.GET['replace']
        cg = ChessGame.objects.get(pk=request.session['game_id'])
        ab = json.loads(cg.ab)
        hb = ab['hb']
        sb = ab['sb']
        if cg.pawn_over and (replace in ["D", "H", "T", "L"]):
            if cg.turn == "hvit":
                hb = replace_pawn(hb, replace)
                cg.turn = "svart"
            else:
                sb = replace_pawn(sb, replace)
                cg.turn = "hvit"
            cg.pawn_over = False
        ab = {'hb':hb, 'sb':sb}
        cg.ab = json.dumps(ab)
        cg.save()
        return HttpResponseRedirect(redirect_to="/game/")

    if 'move' in request.GET:
        return do_move(request)

    all_b = ChessGame.objects.get(pk=request.session['game_id'])
    template = 'game.html'
    matches = get_active_matches(request)
    context = {'bricks':all_b.ab,
                'board':generate_board(),
                'turn':all_b.turn,
                'player_white':all_b.player_white_pk,
                'player_black':all_b.player_black_pk,
                'game_over':all_b.game_over,
                'player1':json.dumps(request.session['player1']),
                'player1pk':request.session['player1']['pk'],
                'player1name':request.session['player1']['username'],
                'matches':matches,
                'game_id':request.session['game_id']
                }

    if 'player2' in request.session:
        context['player2'] = json.dumps(request.session['player2'])
        context['player2pk'] = request.session['player2']['pk']
        context['player2name'] = request.session['player2']['username']
    else:
        if str(request.session['player1']['pk']) == str(all_b.player_white_pk):
            context['player2pk'] = all_b.player_black_pk
            context['player2name'] = ChessUser.objects.get(pk=context['player2pk']).username
        else:
            context['player2pk'] = all_b.player_white_pk
            context['player2name'] = ChessUser.objects.get(pk=context['player2pk']).username
    

    return render_to_response(template, context, context_instance=RequestContext(request))
Exemple #24
0
                           ':' + str(port))
    os.kill(os.getpid(), SIGTERM)
sock.settimeout(None)
try:
    fpublicity_button("Create Room", window_create_room).place(x=5,
                                                               y=5,
                                                               width=200,
                                                               height=70)
    fpublicity_button("Enter Room", window_enter_room).place(x=5,
                                                             y=85,
                                                             width=200,
                                                             height=70)
    fpublicity_button("Register Room", window_register_room).place(x=5,
                                                                   y=165,
                                                                   width=200,
                                                                   height=70)
    fpublicity_button(
        "Generate Key",
        lambda: genkey(1024**2, 'key' + str(random_int(1000000, 9999999)) +
                       '.bin')).place(x=5, y=245, width=200, height=70)
    fpublicity_button("Help", window_help).place(x=5,
                                                 y=325,
                                                 width=200,
                                                 height=70)
except:
    os.kill(os.getpid(), SIGTERM)
root.protocol("WM_DELETE_WINDOW", lambda: os.kill(os.getpid(), SIGTERM))
canvas.after(100, redraw_logo)
prepare_logo()
root.mainloop()
Exemple #25
0
class SnakeWidget(Widget):
    fps = 60
    default_fps = 2
    score = 0
    position = 'menu'
    w, h = Window.size
    w = int(w)
    h = int(h)
    snake = [[5, 2], [4, 2], [3, 2]]
    grid = 15
    apple = [
        random_int(0,
                   int(w / grid) - 1),
        random_int(0,
                   int(h / grid) - 1)
    ]
    score = 0
    snake_vector = 'right'
    max_speed = 25
    menu_color_back = False
    menu_color_count = 50
    over_fps = fps
    over_score = score
    last_arrow = 'right'
    menu_sound = SoundLoader.load(f'{cur_dir()}/menu.wav')
    new_move_type = False

    def set_speed(self, vared):
        self.default_fps = vared

    def set_max_speed(self, vared):
        self.max_speed = vared

    def set_grid(self, vared):
        self.grid = vared

    def __init__(self, **kwargs):
        super(SnakeWidget, self).__init__(**kwargs)
        txt_cfg = 'self.set_speed(2)\nself.set_max_speed(18)\nself.set_grid(15)'
        if file_exists('config.txt', file_exists_param):
            temp_f = open('config.txt', 'r')
            txt_cfg = temp_f.read()
            temp_f.close()
        else:
            temp_f = open('config.txt', 'w')
            temp_f.write(txt_cfg)
            temp_f.close()
        self.load_config(txt_cfg)
        self.menu_sound.play()
        Clock.schedule_interval(self.main_loop, 1 / self.fps)

    def game_over(self):
        self.over_fps = self.fps
        self.over_score = self.score
        self.fps = 60
        self.position = 'game_over'

    def load_config(self, cfg):
        for i in cfg.split('\n'):
            if not i == '':
                eval(str(i))

    def main_loop(self, sec):
        with self.canvas:
            if self.position == 'menu':
                self.canvas.clear()
                if self.menu_color_back == False:
                    if self.menu_color_count < 0:
                        self.menu_color_count = 50
                        self.menu_color_back = True
                    else:
                        Color(0, 0, 0, 1)
                        Rectangle(size=(143, 30),
                                  pos=((self.width / 2) - (143 / 2),
                                       (self.height / 2) - (30 / 2)))
                        Color(0, 1, 0, 1)
                        lab1 = CoreLabel(text="Tap To Start!",
                                         font_size=25,
                                         color=(0, 1, 0, 1))
                        lab1.refresh()
                        Rectangle(texture=lab1.texture,
                                  size=(143, 30),
                                  pos=((self.width / 2) - (143 / 2),
                                       (self.height / 2) - (30 / 2)))
                        self.menu_color_count -= 1
                else:
                    if self.menu_color_count < 0:
                        self.menu_color_count = 50
                        self.menu_color_back = False
                    else:
                        Color(0, 1, 0, 1)
                        Rectangle(size=(143, 30),
                                  pos=((self.width / 2) - (143 / 2),
                                       (self.height / 2) - (30 / 2)))
                        Color(1, 0, 0, 1)
                        lab2 = CoreLabel(text="Tap To Start!",
                                         font_size=25,
                                         color=(0, 0, 0, 1))
                        lab2.refresh()
                        Rectangle(texture=lab2.texture,
                                  size=(143, 30),
                                  pos=((self.width / 2) - (143 / 2),
                                       (self.height / 2) - (30 / 2)))
                        self.menu_color_count -= 1
            elif self.position == 'game_over':
                self.canvas.clear()
                Color(0, 1, 0, 1)
                label1 = CoreLabel(text="Game Over:(",
                                   font_size=25,
                                   color=(0, 1, 0, 1))
                label1.refresh()
                label1_size = list(label1.size)
                Rectangle(texture=label1.texture,
                          size=label1_size,
                          pos=((self.width / 2) - (label1_size[0] / 2),
                               (self.height / 2) - 30 + 39))
                label2 = CoreLabel(text="Score: " + str(self.over_score),
                                   font_size=25,
                                   color=(0, 1, 0, 1))
                label2.refresh()
                label2_size = list(label2.size)
                Rectangle(texture=label2.texture,
                          size=label2_size,
                          pos=((self.width / 2) - (label2_size[0] / 2),
                               (self.height / 2) - 60 + 39))
                label3 = CoreLabel(text="Speed: " + str(self.over_fps),
                                   font_size=25,
                                   color=(0, 1, 0, 1))
                label3.refresh()
                label3_size = list(label3.size)
                Rectangle(texture=label3.texture,
                          size=label3_size,
                          pos=((self.width / 2) - (label3_size[0] / 2),
                               (self.height / 2) - 90 + 39))
            elif self.position == 'game':
                self.snake_vector = self.last_arrow
                self.canvas.clear()
                Color(0, 1, 0, 1)
                lab_score = CoreLabel(text="Score: " + str(self.score),
                                      font_size=25,
                                      color=(0, 1, 0, 1))
                lab_score.refresh()
                Rectangle(texture=lab_score.texture,
                          size=list(lab_score.size),
                          pos=(5, self.height - 35))
                no_delete = False
                for i in range(len(self.snake)):
                    j = len(self.snake) - 1
                    if not j == 0:
                        self.snake[j][0] = self.snake[j - 1][0]
                        self.snake[j][1] = self.snake[j - 1][1]
                if self.snake[0][0] == self.apple[0] and self.snake[0][
                        1] == self.apple[1]:
                    no_delete = True
                    self.score += 1
                    self.apple = [
                        random_int(0,
                                   int(self.w / self.grid) - 1),
                        random_int(0,
                                   int(self.h / self.grid) - 1)
                    ]
                    if self.fps <= self.max_speed:
                        Clock.unschedule(self.main_loop)
                        self.fps += random_int(0, 2)
                        Clock.schedule_interval(self.main_loop, 1 / self.fps)
                if self.snake_vector == 'left':
                    if self.snake[0][0] > 0:
                        if no_delete == False:
                            self.snake.remove(self.snake[len(self.snake) - 1])
                        self.snake.insert(
                            0, [self.snake[0][0] - 1, self.snake[0][1]])
                    else:
                        self.game_over()
                elif self.snake_vector == 'right':
                    if self.snake[0][0] < self.width / self.grid:
                        if no_delete == False:
                            self.snake.remove(self.snake[len(self.snake) - 1])
                        self.snake.insert(
                            0, [self.snake[0][0] + 1, self.snake[0][1]])
                    else:
                        self.game_over()
                elif self.snake_vector == 'down':
                    if self.snake[0][1] > 0:
                        if no_delete == False:
                            self.snake.remove(self.snake[len(self.snake) - 1])
                        self.snake.insert(
                            0, [self.snake[0][0], self.snake[0][1] - 1])
                    else:
                        self.game_over()
                elif self.snake_vector == 'up':
                    if self.snake[0][1] < self.height / self.grid:
                        if no_delete == False:
                            self.snake.remove(self.snake[len(self.snake) - 1])
                        self.snake.insert(
                            0, [self.snake[0][0], self.snake[0][1] + 1])
                    else:
                        self.game_over()
                for i in range(len(self.snake)):
                    if int(self.snake[0][0]) == int(self.snake[i][0]) and int(
                            self.snake[0][1] == self.snake[i]
                        [1]) and not i == 0:
                        self.game_over()
                for i in range(len(self.snake)):
                    if i == 0:
                        Color(1, 0, 0, 1)
                        Rectangle(pos=(self.snake[i][0] * self.grid,
                                       self.snake[i][1] * self.grid),
                                  size=(self.grid, self.grid))
                    else:
                        Color(0, 1, 0, 1)
                        Rectangle(pos=(self.snake[i][0] * self.grid,
                                       self.snake[i][1] * self.grid),
                                  size=(self.grid, self.grid))
                Color(1, 0, 0, 1)
                Rectangle(pos=(self.apple[0] * self.grid,
                               self.apple[1] * self.grid),
                          size=(self.grid, self.grid))

    def on_touch_down(self, touch):
        if self.position == 'menu' or self.position == 'game_over':
            Clock.unschedule(self.main_loop)
            self.menu_sound.stop()
            self.score = 0
            self.position = 'menu'
            self.w, self.h = Window.size
            self.w = int(self.w)
            self.h = int(self.h)
            self.snake = [[5, 2], [4, 2], [3, 2]]
            self.apple = [
                random_int(0,
                           int(self.w / self.grid) - 1),
                random_int(0,
                           int(self.h / self.grid) - 1)
            ]
            self.score = 0
            self.snake_vector = 'right'
            self.last_arrow = 'right'
            self.fps = self.default_fps
            self.position = 'game'
            if touch.x < self.size[0] / 2:
                self.new_move_type = True
            else:
                self.new_move_type = False
            Clock.schedule_interval(self.main_loop, 1 / self.fps)
        elif self.position == 'game':
            if self.new_move_type:
                ws = touch.x / self.size[0]
                hs = touch.y / self.size[1]
                aws = 1 - ws
                if ws > hs and aws > hs:
                    if not self.snake_vector == 'up':
                        self.last_arrow = 'down'
                elif ws > hs >= aws:
                    if not self.snake_vector == 'left':
                        self.last_arrow = 'right'
                elif ws <= hs < aws:
                    if not self.snake_vector == 'right':
                        self.last_arrow = 'left'
                else:
                    if not self.snake_vector == 'down':
                        self.last_arrow = 'up'
            else:
                if touch.x < self.size[0] / 4:
                    if not self.snake_vector == 'right':
                        self.last_arrow = 'left'
                elif touch.x < self.size[0] / 2:
                    if not self.snake_vector == 'left':
                        self.last_arrow = 'right'
                elif touch.y < self.size[1] / 2:
                    if not self.snake_vector == 'up':
                        self.last_arrow = 'down'
                else:
                    if not self.snake_vector == 'down':
                        self.last_arrow = 'up'
Exemple #26
0
def main_loop():
    global typer
    global score
    global snake
    global snake_vector
    global apple
    keys = pygame.key.get_pressed()
    for event in pygame.event.get():
        if event.type == pygame.QUIT or keys[pygame.K_ESCAPE] == 1:
            global running
            running = False
    pygame.draw.rect(screen, pygame.Color('#000000'), (0, 0, width, height))
    if typer == 'menu':
        global menu_color_back
        global menu_color_count
        if menu_color_back == False:
            if menu_color_count < 0:
                menu_color_count = 50
                menu_color_back = True
            else:
                pygame.draw.rect(screen, pygame.Color('#000000'),
                                 ((width / 2) - (286 / 2) - 15,
                                  (height / 2) - (25 / 2) - 15, 400, 80))
                render_menu_text = menu_font.render('Press Space to Start...',
                                                    1, pygame.Color('#00ff00'))
                screen.blit(render_menu_text,
                            ((width / 2) - (286 / 2), (height / 2) - (25 / 2)))
                menu_color_count -= 1
        else:
            if menu_color_count < 0:
                menu_color_count = 50
                menu_color_back = False
            else:
                pygame.draw.rect(screen, pygame.Color('#00ff00'),
                                 ((width / 2) - (286 / 2) + 3,
                                  (height / 2) - (25 / 2) + 5, 286, 30))
                render_menu_text = menu_font.render('Press Space to Start...',
                                                    1, pygame.Color('#000000'))
                screen.blit(render_menu_text,
                            ((width / 2) - (286 / 2), (height / 2) - (25 / 2)))
                menu_color_count -= 1
        if keys[pygame.K_SPACE]:
            global fps
            fps = default_fps
            if music == True:
                pygame.mixer.music.stop()
            typer = 'game'
    elif typer == 'game_over':
        render_menu_text1 = game_over_font.render('Game Over :(', 1,
                                                  pygame.Color('#00ff00'))
        render_menu_text2 = game_over_font.render('Score: ' + str(score) + '.',
                                                  1, pygame.Color('#00ff00'))
        render_menu_text3 = game_over_font.render(
            'Speed: ' + str(speed_gameover) + '.', 1, pygame.Color('#00ff00'))
        render_menu_text4 = game_over_font.render('R - Restart, ESC - Exit', 1,
                                                  pygame.Color('#00ff00'))
        screen.blit(render_menu_text1, (20, 20))
        screen.blit(render_menu_text2, (20, 80))
        screen.blit(render_menu_text3, (20, 140))
        screen.blit(render_menu_text4, (20, 200))
        if keys[pygame.K_r]:
            fps = default_fps
            if music == True:
                pygame.mixer.music.stop()
            snake = [[5, 2], [4, 2], [3, 2]]
            apple = [
                random_int(0, grid_width - 3),
                random_int(0, grid_height - 3)
            ]
            score = 0
            snake_vector = 'right'
            typer = 'game'
    elif typer == 'game':
        no_delete = False
        if keys[pygame.K_d] or keys[pygame.K_RIGHT]:
            if not snake_vector == 'right' and not snake_vector == 'left':
                snake_vector = 'right'
        elif keys[pygame.K_a] or keys[pygame.K_LEFT]:
            if not snake_vector == 'right' and not snake_vector == 'left':
                snake_vector = 'left'
        elif keys[pygame.K_w] or keys[pygame.K_UP]:
            if not snake_vector == 'up' and not snake_vector == 'down':
                snake_vector = 'up'
        elif keys[pygame.K_s] or keys[pygame.K_DOWN]:
            if not snake_vector == 'up' and not snake_vector == 'down':
                snake_vector = 'down'
        for i in range(len(snake)):
            j = len(snake) - 1
            if not j == 0:
                snake[j][0] = snake[j - 1][0]
                snake[j][1] = snake[j - 1][1]

        if snake[0][0] == apple[0] and snake[0][1] == apple[1]:
            no_delete = True
            score += 1
            apple = [
                random_int(1, grid_width - 3),
                random_int(2, grid_height - 3)
            ]
            if fps <= max_speed:
                fps += random_int(0, 2)

        if snake_vector == 'left':
            if snake[0][0] > 0:
                if no_delete == False:
                    snake.remove(snake[len(snake) - 1])
                snake.insert(0, [snake[0][0] - 1, snake[0][1]])
            else:
                game_over()
        elif snake_vector == 'right':
            if snake[0][0] < grid_width:
                if no_delete == False:
                    snake.remove(snake[len(snake) - 1])
                snake.insert(0, [snake[0][0] + 1, snake[0][1]])
            else:
                game_over()
        elif snake_vector == 'up':
            if snake[0][1] > 0:
                if no_delete == False:
                    snake.remove(snake[len(snake) - 1])
                snake.insert(0, [snake[0][0], snake[0][1] - 1])
            else:
                game_over()
        elif snake_vector == 'down':
            if snake[0][1] < grid_height:
                if no_delete == False:
                    snake.remove(snake[len(snake) - 1])
                snake.insert(0, [snake[0][0], snake[0][1] + 1])
            else:
                game_over()
        for i in range(len(snake)):
            if int(snake[0][0]) == int(snake[i][0]) and int(
                    snake[0][1] == snake[i][1]) and not i == 0:
                game_over()
        pygame.draw.rect(screen, pygame.Color('#ff0000'),
                         (apple[0] * grid, apple[1] * grid, grid, grid))

        for i in range(len(snake)):
            if i == 0:
                pygame.draw.rect(
                    screen, pygame.Color('#ff0000'),
                    (snake[i][0] * grid, snake[i][1] * grid, grid, grid))
            else:
                pygame.draw.rect(
                    screen, pygame.Color('#00ff00'),
                    (snake[i][0] * grid, snake[i][1] * grid, grid, grid))
        render_score_text = score_font.render('Score: ' + str(score), 1,
                                              pygame.Color('#00ff00'))
        screen.blit(render_score_text, (5, 5))
    pygame.display.flip()
 def random_chance():
     var = random_int(1, 2)
     if var == 1:
         return 1
     elif var == 2:
         return 2
Exemple #28
0
def genkey(bytes_size, file_path):
    key = bytearray([random_int(0, 255) for _ in range(bytes_size)])
    with open(file_path, 'wb') as f:
        f.write(key)
    print(f"Info: Generated key. New key file: ({file_path})")
Exemple #29
0
def generate_key_window():
    genkey(1024**2, 'key' + str(random_int(1000000, 9999999)) + '.bin')
#test_disp_ids, header = read_data('/Users/naveenkumar2703/Documents/Dirty/DM/Outbrain_Click_Prediction/training_display_ids.csv',False)

test_disp_ids = test_disp_ids[0]  #[:100]
#test_disp_ids.extend(cvtest_disp_ids) # both
#test_disp_ids = cvtest_disp_ids # cv
#test_disp_ids = []
#test_disp_ids = test_disp_ids[:10000]

#test_disp_ids = [15700928,15639744, 1412726, 3379977, 9090726, 9848706,10537413,14947016,  652944,  692755, 5877640, 6755742, 9164491,16810619,16814377,16814450,16844019,  305943,  306965,  717070, 4643034, 4697333, 8900426,15294423, 1338074, 1503522, 1508326, 1581950, 1616938, 1629363, 1647318, 1860863, 2099616, 3288800, 4667221, 4717123, 7279988,14354602]

# this is to validate randomly from train_data
random_test_disp_ids = []
added_data = []
cvadded_data = []
for index in range(10000):
    curr_data_index = random_int(0, (len(test_disp_ids) - 1))
    while curr_data_index in added_data:
        curr_data_index = random_int(0, (len(test_disp_ids) - 1))
    added_data.append(curr_data_index)
    random_test_disp_ids.append(test_disp_ids[curr_data_index])
    curr_data_index = random_int(0, (len(cvtest_disp_ids) - 1))
    while curr_data_index in cvadded_data:
        curr_data_index = random_int(0, (len(cvtest_disp_ids) - 1))
    cvadded_data.append(curr_data_index)
    random_test_disp_ids.append(cvtest_disp_ids[curr_data_index])
added_data = None
cvadded_data = None
#
test_disp_ids = random_test_disp_ids

print('running chunk - on cv')
Exemple #31
0
 def main_loop(self, sec):
     with self.canvas:
         if self.position == 'menu':
             self.canvas.clear()
             if self.menu_color_back == False:
                 if self.menu_color_count < 0:
                     self.menu_color_count = 50
                     self.menu_color_back = True
                 else:
                     Color(0, 0, 0, 1)
                     Rectangle(size=(143, 30),
                               pos=((self.width / 2) - (143 / 2),
                                    (self.height / 2) - (30 / 2)))
                     Color(0, 1, 0, 1)
                     lab1 = CoreLabel(text="Tap To Start!",
                                      font_size=25,
                                      color=(0, 1, 0, 1))
                     lab1.refresh()
                     Rectangle(texture=lab1.texture,
                               size=(143, 30),
                               pos=((self.width / 2) - (143 / 2),
                                    (self.height / 2) - (30 / 2)))
                     self.menu_color_count -= 1
             else:
                 if self.menu_color_count < 0:
                     self.menu_color_count = 50
                     self.menu_color_back = False
                 else:
                     Color(0, 1, 0, 1)
                     Rectangle(size=(143, 30),
                               pos=((self.width / 2) - (143 / 2),
                                    (self.height / 2) - (30 / 2)))
                     Color(1, 0, 0, 1)
                     lab2 = CoreLabel(text="Tap To Start!",
                                      font_size=25,
                                      color=(0, 0, 0, 1))
                     lab2.refresh()
                     Rectangle(texture=lab2.texture,
                               size=(143, 30),
                               pos=((self.width / 2) - (143 / 2),
                                    (self.height / 2) - (30 / 2)))
                     self.menu_color_count -= 1
         elif self.position == 'game_over':
             self.canvas.clear()
             Color(0, 1, 0, 1)
             label1 = CoreLabel(text="Game Over:(",
                                font_size=25,
                                color=(0, 1, 0, 1))
             label1.refresh()
             label1_size = list(label1.size)
             Rectangle(texture=label1.texture,
                       size=label1_size,
                       pos=((self.width / 2) - (label1_size[0] / 2),
                            (self.height / 2) - 30 + 39))
             label2 = CoreLabel(text="Score: " + str(self.over_score),
                                font_size=25,
                                color=(0, 1, 0, 1))
             label2.refresh()
             label2_size = list(label2.size)
             Rectangle(texture=label2.texture,
                       size=label2_size,
                       pos=((self.width / 2) - (label2_size[0] / 2),
                            (self.height / 2) - 60 + 39))
             label3 = CoreLabel(text="Speed: " + str(self.over_fps),
                                font_size=25,
                                color=(0, 1, 0, 1))
             label3.refresh()
             label3_size = list(label3.size)
             Rectangle(texture=label3.texture,
                       size=label3_size,
                       pos=((self.width / 2) - (label3_size[0] / 2),
                            (self.height / 2) - 90 + 39))
         elif self.position == 'game':
             self.snake_vector = self.last_arrow
             self.canvas.clear()
             Color(0, 1, 0, 1)
             lab_score = CoreLabel(text="Score: " + str(self.score),
                                   font_size=25,
                                   color=(0, 1, 0, 1))
             lab_score.refresh()
             Rectangle(texture=lab_score.texture,
                       size=list(lab_score.size),
                       pos=(5, self.height - 35))
             no_delete = False
             for i in range(len(self.snake)):
                 j = len(self.snake) - 1
                 if not j == 0:
                     self.snake[j][0] = self.snake[j - 1][0]
                     self.snake[j][1] = self.snake[j - 1][1]
             if self.snake[0][0] == self.apple[0] and self.snake[0][
                     1] == self.apple[1]:
                 no_delete = True
                 self.score += 1
                 self.apple = [
                     random_int(0,
                                int(self.w / self.grid) - 1),
                     random_int(0,
                                int(self.h / self.grid) - 1)
                 ]
                 if self.fps <= self.max_speed:
                     Clock.unschedule(self.main_loop)
                     self.fps += random_int(0, 2)
                     Clock.schedule_interval(self.main_loop, 1 / self.fps)
             if self.snake_vector == 'left':
                 if self.snake[0][0] > 0:
                     if no_delete == False:
                         self.snake.remove(self.snake[len(self.snake) - 1])
                     self.snake.insert(
                         0, [self.snake[0][0] - 1, self.snake[0][1]])
                 else:
                     self.game_over()
             elif self.snake_vector == 'right':
                 if self.snake[0][0] < self.width / self.grid:
                     if no_delete == False:
                         self.snake.remove(self.snake[len(self.snake) - 1])
                     self.snake.insert(
                         0, [self.snake[0][0] + 1, self.snake[0][1]])
                 else:
                     self.game_over()
             elif self.snake_vector == 'down':
                 if self.snake[0][1] > 0:
                     if no_delete == False:
                         self.snake.remove(self.snake[len(self.snake) - 1])
                     self.snake.insert(
                         0, [self.snake[0][0], self.snake[0][1] - 1])
                 else:
                     self.game_over()
             elif self.snake_vector == 'up':
                 if self.snake[0][1] < self.height / self.grid:
                     if no_delete == False:
                         self.snake.remove(self.snake[len(self.snake) - 1])
                     self.snake.insert(
                         0, [self.snake[0][0], self.snake[0][1] + 1])
                 else:
                     self.game_over()
             for i in range(len(self.snake)):
                 if int(self.snake[0][0]) == int(self.snake[i][0]) and int(
                         self.snake[0][1] == self.snake[i]
                     [1]) and not i == 0:
                     self.game_over()
             for i in range(len(self.snake)):
                 if i == 0:
                     Color(1, 0, 0, 1)
                     Rectangle(pos=(self.snake[i][0] * self.grid,
                                    self.snake[i][1] * self.grid),
                               size=(self.grid, self.grid))
                 else:
                     Color(0, 1, 0, 1)
                     Rectangle(pos=(self.snake[i][0] * self.grid,
                                    self.snake[i][1] * self.grid),
                               size=(self.grid, self.grid))
             Color(1, 0, 0, 1)
             Rectangle(pos=(self.apple[0] * self.grid,
                            self.apple[1] * self.grid),
                       size=(self.grid, self.grid))