ZigClimb

From RogueBasin
Jump to navigation Jump to search
ZigClimb
Developer flend
Theme Egypt
Influences A Journey to Hell
Status released
Released Jan 10 2010
Updated -
Licensing GPL
P. Language C
Platforms Windows, UNIX
Interface
Game Length 20 minutes
Official site of ZigClimb
ZigClimb is a coffeebreak roguelike


ZigClimb is a 1KBRL that sees the adventurer climbing a ziggurat, fighting monsters, collecting weapon and armour upgrades and ultimately escaping with a stash of gems.

Story

You listened eagerly to the old man at the fireside as he described the ancient temple and the riches to be found there. His dire warnings about the fate of the others who had tried to plunder the temple and never returned, however, fell on deaf ears...

As you entered the base of the ziggurat, the heavy stone door slammed behind you. You grasp your dagger and wooden shield tightly for reassurance. It seems that the only way out is through...

Features

  • Monsters of different strengths, represented by later alphabet letters
  • Weapons and armour upgrades
  • Monster versus monster combat
  • 10 levels to explore and a reward level
  • Fully commented source code

Tips

  • Harder monsters require higher level weapons to hit
  • Monster versus monster combat can be used to defeat high level monsters

Downloads

Source code

(1024 bytes, requires curses, source broken at 80 chars)

#include <ncurses.h>
#define F(v,h)for(v=0;v<h;v++)
#define D(i)F(y,T)F(x,S){i;}
#define G M[x][y]
#define H M[x+a][y+b]
#define Z(n)n<0?-1:(n>0?1:0)
#define r rand()
int x,y,f,g,c=53,q,S=40,T=20,M[40][20],e=46,o=192,l=0,w=1,s=1,h=10,z=0;char L[]=
"@<!%(";E(t){while(M[x=r%S][y=r%T]-e);G=t;}i(){D(G=x+y?e:64)}d(x,y) {int i,j;if(
x>0&&y>0&&x<S-1&&y<T-1&&G-e){G=e;F(i,3)F(j,3)r%5<4||d(x+i-1,y+j-1);}}n(){q=0;whi
le(q<30200){D(G=35)d(r%S,r%T);q=0;D(q+=G)}F(q,5)E(L[q]);F(q,2*l+r%9)E(97+r%7+l);
}m(a,b){G-64?q=G-97,H^o||(q+r%5-s<3||h--):(q=w,H^33||(h=10,H=e),H^60||(l++,l<10?
n():i(),clear()),H^37||(s=l+r%7,H=e),H^40||(w=l+r%5,H=e),H^42||(z+=l+r%3,H=e)),H
^o&&(H<96||(q+r%5<((H&127)-97)||(H=42)));G|=128;H-e||(H=G,G=e);}main(){srand(tim
e(0));initscr();n();while(c-81&&h>0){D(c<49||c>57||G-64||m((c-1)%3-1,(49-c)/3+1)
)D((G&127)-64||(f=x,g=y))D(G<97||G>122||m(Z(f-x),Z(g-y)))D(G&=127)D((f-x)*(f-x)+
(g-y)*(g-y)>25||mvaddch(y,x,G))mvprintw(T,0,"H:%d L:%d WA:%d/%d *:%d %s%s",h,l,w
,s,z,h?"":";(",l>9?"OUT":"");c=getch();}endwin();}