Найти - Пользователи
Полная версия: Попытка сделать змейку. Буксую на сортировке.
Начало » Python для новичков » Попытка сделать змейку. Буксую на сортировке.
1 2
sergeek
def snake(width, height, pos=1):
    way = [pos]
          
    shift = lambda offset : lambda : pos + offset
    up, down, right = shift(-width), shift(width), shift(1)
  
    is_top    = lambda : pos in range(1, width+1)
    is_bottom = lambda : pos in range(width*(height-1) + 1, width*height)
    is_end    = lambda : pos == width*height
 
    def go(where):
        nonlocal pos
        pos = where()
        way.append(pos)
    
    direction = down
     
    while not is_end():
        go(direction)
        
        if is_bottom():
            go(right)
            direction = up
 
        elif is_top():
            go(right)
            direction = down
             
    return way
print(snake(5,4))    

может так понятней будет
Euler
Ну вы приколисты, тогда чтобы уже совсем всё “понятно” было:
from math import *
S, w, h = 1, 5, 4
def nextdif(n):
	f = lambda n, p=h: sum([cos(-2*pi*n*k/p)/p for k in range(p)])
	return round((-1+2*floor(((n+h-1)%(2*h))/h))*(w*((f(n)+1)%2)+f(n))+2*f(n,2*h))
for n in range(w*h-1):
	print(S, end=', '); S += nextdif(n+1)
print(S)
sergeek
Euler
Ну вы приколисты, тогда чтобы уже совсем всё “понятно” было:
но для меня оно действительно выглядит значительно понятнее остальных решений
hronorog
всем спасибо, я в небольшом шоке.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB