ブロック崩しっぽいもの。
cygwin + g++ で動いた。
g++ -Wall -O3 hogehoge.cc -lcurses
でコンパイル。
でも12行。

#include <curses.h> // argument1 means a seed of rand()
#include <cstdlib> // h: move to left, l: move to right
int a,i,u,e,o,c,m,k,q=1,w=1,N=80,X=40,Y=40;WINDOW*s;struct T{int x,y,f;void K()
{mvwprintw(s,y,x,"%c",f?'#':' ');}T(){x=rand()%(X-1);x=x?x:1;y=rand()%Y/4;y=y?y
:1;f=1;}};int main(int M,char**v){e=X-2;m=X/2;k=Y/2;o=a=X-9;u=Y-4;srand(atoi(v[
1]));initscr();noecho();cbreak();s=newwin(Y,X,0,0);box(s,'|','-');T g[N];while(
k<=u&&(c=wgetch(s))!='Q'){wrefresh(s);wtimeout(s,100);mvwaddch(s,k,m,' ');m+=q,
k+=w;if(m<2||m>e)q*=-1,m=m<2?2:e;if(k<2||m>=o&&m<o+8&&k>u-1)w*=-1,k=k<2?1:u-1;
for(;i<N;){T&F=g[i++];if(F.f&&(k-1==F.y||k+1==F.y)&&m==F.x)w*=-1,F.f=0;}mvwadd\
ch(s,k,m,'O');mvwprintw(s,u,o,"%8s"," ");if(c=='h'&&--o<2)o=1;if(c=='l'&&++o>a)
o=a;mvwaddstr(s,u,o,"========");for(;i>0;g[--i].K());wmove(s,0,0);}delwin(s);e\
ndwin();return 0;}