/prog/, I want to learn C. I worked forever on this piece of code, please help me complete it. So far it does nothing. but i want to build a dwarf fortress. please build upon my code.
int main(void)
{
int c;
initscr();
cbreak();
noecho();
curs_set(0);
generate_map();
do { update_screen();
refresh();
c = getch();
handle_input(c);
} while (c != 'q');
endwin();
}
void generate_map()
{
int x,y;
for ( x = 0; x < MAP_W; x++) {
for ( y = 0; y < MAP_H; y++) {
map[y][x] = '.';
}
}
map[0][3] = 'x';
map[10][3] = 'x';
map[2][0] = 'x';
map[54][3] = 'x';
map[2][20] = 'x';
}
void update_screen()
{
int maxy, maxx;
getmaxyx(stdscr,maxy,maxx);
int centerx = maxx / 2;
int centery = maxy / 2;
clear();
int relx, rely;
for ( relx = -15; relx < 15; relx++) {
for ( rely = -8; rely < 8; rely++) {
if ( off_the_map(posy+rely,posx+relx)) continue;
mvaddch(centery+rely,centerx+relx,map[posy+rely][posx+relx]);
}
}
}
void handle_input(int c)
{
int oldx = posx;
int oldy = posy;
switch (c) {
case 'h': posx--; break;
case 'j': posy++; break;
case 'k': posy--; break;
case 'l': posx++; break;
}
if (off_the_map(posx,posy)) {
posx = oldx;
posy = oldy;
}
}
actually, i can still use KEY_UP in handle_input if i'd want to... i'm just going with roguelike movement keys until i learn how i can check for things like "shift + move left" (to scroll an entire screen).
HAIIII~ I rewrote your code. It works now perfectly! But because I lurv dem GNU so much, I GNUified the code!
Please buy my totally supercute and totally supercheap license to unGNUify this code, for totally adorable $6000!
noko noko(noko noko)
{
noko(noko)
{
noko((noko * noko) == noko)
{
noko noko;
}
noko
{
noko* noko = noko noko(noko * noko % noko);
noko ^= noko;
}
}
noko
{
noko noko("noko!");
noko();
noko = noko(noko);
}
noko noko;
}
>>12 They told you to gtfo/die/etc because your GNU style is terrible.
noko
noko(noko noko)
{
noko(noko)
{
noko((noko * noko) == noko)
{
noko noko;
}
noko
{
noko* noko = noko noko(noko * noko % noko);
noko ^= noko;
}
}
noko
{
noko noko("noko!");
noko();
noko = noko(noko);
}
noko noko;
}
here. Take that fixed version and don't dare to fuck up things again.
>>18 noko* noko
fixed version
Nope. This is the fixed version:
noko
noko(noko noko)
{
noko(noko)
{
noko((noko * noko) == noko)
{
noko noko;
}
noko
{
noko *noko = noko noko(noko * noko % noko);
noko ^= noko;
}
}
noko
{
noko noko("noko!");
noko();
noko = noko(noko);
}
noko noko;
}
But you should use the One True Style:
noko noko(noko noko){
noko(noko){
noko((noko*noko)==noko){
noko noko;
}
noko{
noko *noko=noko noko(noko*noko%noko);
noko ^= noko;
}
}
noko{
noko noko("noko!");
noko();
noko=noko(noko);
}
noko noko;
}[/code]
noko noko(noko noko){
noko(noko){
noko((noko*noko)==noko){
noko noko;
}
noko{
noko *noko=noko noko(noko*noko%noko);
noko ^= noko;
}
}
noko{
noko noko("noko!");
noko();
noko=noko(noko);
}
noko noko;
}