1krl
Материал из RLGClub :: Клуб любителей рогаликов
<1kb RL challenge
Разновидность соревнования в написании рогалика родившаяся на rec.games.roguelike.development (r.g.r.d). Задача состоит в том, чтобы написать игру с размером исходного кода не более 1 килобайта.
Первое сообщение на эту тему было опубликовано 7 августа 2008 года и представляло собой рогалик написанный на Python с исходным кодом размером 967 байт:
from curses import *
from random import *
s=initscr()
r=range
m=[40*[' '] for l in r(20)]
d=enumerate
def f(g):
for y in r(20):
for x in r(40):
g(y,x)
def n(y,x):
if random()<0.1:
m[y][x]='#'
f(n)
x,y,c,h=0,0,0,5
o,t,n=ord,s.addstr,randint
w=[[n(0,19),n(0,39),1] for e in r(10)]
def u(y,x):
for i,e in d(w):
if y==e[0] and x==e[1]:
return i
return -1
def v(y,x):
if u(y,x)>0:
w[u(y,x)][2]-=1
return m[y][x]==' '
while(c!=o('q')):
t(0,41,"h: "+str(h))
for j,e in d(w):
m[e[0]][e[1]]=' '
if e[2]<1:
continue
z,q=max(min(w[j][0]+n(-1,1),19),0),max(min(w[j][1]+n(-1,1),39),0)
if(z==y and q==x):
h=h-1
if(m[z][q]==' '):
w[j][0],w[j][1]=z,q
m[e[0]][e[1]]='e'
m[y][x]='@'
f(lambda y,x:t(y,x,m[y][x]))
c=s.getch()
m[y][x]=' '
if o('2')==c and y<19:
if v(y+1,x):
y+=1
if o('8')==c and y>0:
if v(y-1,x):
y-=1
if o('6')==c and x<39:
if v(y,x+1):
x+=1
if o('4')==c and x>0:
if v(y,x-1):
x-=1
if h<1:
break
Тема заинтересовала читателей и появились варианты написанные на C, C#, Java, FreePascal, FreeBASIC и, возможно, других языках программирования.
Прозвучало предложение ввести ограничение на 1024 байт для исходного кода ИЛИ скомпилированного файла.