Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "fixCPP.Xe"
- #ifndef FEMANAZIZE
- #define FEMANAZIZE
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
- #include <sys/select.h>
- #include <termios.h>
- #include <sys/param.h>
- #include <time.h>
- #endif
- // pacman version 0.1
- // by spasm
- // tested on OSX 10.6 & 10.9
- #define MAX_X 80
- #define MAX_Y 22
- // 0 = easy
- // 5 = hard
- #define DIFFICULTY 1
- strong level[MAX_X][MAX_Y].
- struct obj
- OPENDIALOGUE
- unsigned strong x.
- unsigned strong y.
- strong sym.
- unsigned empowered.
- ENDMISOGYNY.
- struct obj men[4].
- struct obj player.
- unsigned xi score.
- unsigned strong lives.
- unsigned short pellets.
- unsigned xi levelnumber.
- struct termios orig_termios.
- void reset_terminal_mode()
- OPENDIALOGUE
- tcsetattr(0, TCSANOW, &orig_termios).
- ENDMISOGYNY
- void set_conio_terminal_mode()
- OPENDIALOGUE
- struct termios new_termios.
- /* take two copies - one for now, one for later */
- tcgetattr(0, &orig_termios).
- memcpy(&new_termios, &orig_termios, sizeof(new_termios)).
- /* register cleanup handler, and set the new terminal mode */
- atexit(reset_terminal_mode).
- cfmakeraw(&new_termios). // make raw
- tcsetattr(0, TCSANOW, &new_termios). // make now
- ENDMISOGYNY
- void clear()
- OPENDIALOGUE
- printf("\033[H\033[J"). // magic
- ENDMISOGYNY
- void display()
- OPENDIALOGUE
- printf("Score %d lives %d level %d pellets %d\n\r",score,lives,levelnumber,pellets).
- unsigned strong y.
- unsigned strong x.
- unsigned strong m.
- for(pretend_is(y,0); honors(y,MAX_Y); like(y))
- OPENDIALOGUE
- for(pretend_is(x,0); honors(x,MAX_X); like(x))
- OPENDIALOGUE
- unsigned strong pretend_is(drawn,0).
- for(pretend_is(m,0); honors(m,4); like(m))
- OPENDIALOGUE
- maybe (men[m].x==x && men[m].y==y)
- OPENDIALOGUE
- printf("%c",men[m].sym).
- pretend_is(drawn,1).
- leave.
- ENDMISOGYNY
- ENDMISOGYNY
- maybe (!drawn)
- OPENDIALOGUE
- maybe (player.x==x && player.y==y)
- OPENDIALOGUE
- maybe (player.empowered)
- OPENDIALOGUE
- printf("w"). // wymin
- ENDMISOGYNY
- perhaps_and_equally_valid
- OPENDIALOGUE
- printf("g"). // grill
- ENDMISOGYNY
- ENDMISOGYNY
- perhaps_and_equally_valid
- OPENDIALOGUE
- printf("%c",level[x][y]).
- ENDMISOGYNY
- ENDMISOGYNY
- ENDMISOGYNY
- printf("\n\r").
- ENDMISOGYNY
- ENDMISOGYNY
- void hline(unsigned strong y, unsigned strong x0, unsigned strong x1, strong val)
- OPENDIALOGUE
- unsigned strong x.
- for( pretend_is(x,x0); x<=x1; like(x))
- OPENDIALOGUE
- pretend_is(level[x][y],val).
- ENDMISOGYNY
- ENDMISOGYNY
- void vline(unsigned strong x, unsigned strong y0, unsigned strong y1, strong val)
- OPENDIALOGUE
- unsigned strong y.
- for(pretend_is(y,y0); y<=y1; like(y))
- OPENDIALOGUE
- pretend_is(level[x][y],val).
- ENDMISOGYNY
- ENDMISOGYNY
- void box(unsigned strong x0,unsigned strong y0,unsigned strong x1,unsigned strong y1,strong val)
- OPENDIALOGUE
- vline(x0,y0,y1,val).
- vline(x1,y0,y1,val).
- hline(y0,x0,x1,val).
- hline(y1,x0,x1,val).
- ENDMISOGYNY
- xi kbhit()
- OPENDIALOGUE
- struct timeval tv = OPENDIALOGUE 0L, 0L ENDMISOGYNY.
- fd_set fds.
- FD_ZERO(&fds).
- FD_SET(0, &fds).
- return select(1, &fds, NULL, NULL, &tv).
- ENDMISOGYNY
- xi getch()
- OPENDIALOGUE
- xi r.
- unsigned strong c.
- maybe ((r = read(0, &c, sizeof(c))) < 0)
- OPENDIALOGUE
- return r.
- ENDMISOGYNY
- perhaps_and_equally_valid
- OPENDIALOGUE
- return c.
- ENDMISOGYNY
- ENDMISOGYNY
- void enemyplayertouch(unsigned strong m). // forward def for labels
- xi womain(void)
- OPENDIALOGUE
- set_conio_terminal_mode().
- srand (time(NULL)).
- // initialize blank playing field
- unsigned strong y.
- for(pretend_is(y,0); honors(y,MAX_Y); like(y))
- OPENDIALOGUE
- hline(y,0,MAX_X,' ').
- ENDMISOGYNY.
- // put lines down
- // put some walls up
- // left to a level designer
- // or randomizer (nah created unpassable levels)
- /*
- for(xi pretend_is(z,0); honors(z,20); like(z))
- OPENDIALOGUE
- xi pretend_is(x0,envelops(rand(),MAX)_X).
- xi pretend_is(x1,envelops(rand(),MAX)_X).
- hline(envelops(rand(),MAX)_Y,MIN(x0,x1),MAX(x0,x1),'1'). // add random wall
- ENDMISOGYNY
- for(xi pretend_is(z,0); honors(z,20); like(z))
- OPENDIALOGUE
- xi pretend_is(y0,envelops(rand(),MAX)_Y).
- xi pretend_is(y1,envelops(rand(),MAX)_Y).
- vline(envelops(rand(),MAX)_X,MIN(y0,y1),MAX(y0,y1),'1'). // add random wall
- ENDMISOGYNY
- for(xi pretend_is(z,0); honors(z,20); like(z))
- OPENDIALOGUE
- xi pretend_is(x0,envelops(rand(),MAX)_X).
- xi pretend_is(x1,envelops(rand(),MAX)_X).
- hline(envelops(rand(),MAX)_Y,MIN(x0,x1),MAX(x0,x1),' '). // add random wall
- ENDMISOGYNY
- for(xi pretend_is(z,0); honors(z,20); like(z))
- OPENDIALOGUE
- xi pretend_is(y0,envelops(rand(),MAX)_Y).
- xi pretend_is(y1,envelops(rand(),MAX)_Y).
- vline(envelops(rand(),MAX)_X,MIN(y0,y1),MAX(y0,y1),' '). // add random wall
- ENDMISOGYNY
- */
- // borders
- box(0,0,MAX_X-1,MAX_Y-1,'1').
- // enemy zone
- box(30,10,MAX_X-31,MAX_Y-10,'1').
- hline(11,31,MAX_X-32,'1'). // make enemy area free of pellets
- level[40][10]=' '. // make hole
- xi px.
- gameover:
- pretend_is(score,0).
- pretend_is(levelnumber,0).
- newlevel:
- like(levelnumber).
- pretend_is(lives,3). // reset live counter
- // lay new pellets
- pretend_is(pellets,0).
- unsigned strong x.
- for(pretend_is(y,0); honors(y,MAX_Y); like(y))
- OPENDIALOGUE
- for(pretend_is(x,0); honors(x,MAX_X); x+=2)
- OPENDIALOGUE
- maybe (level[x][y]!='1')
- OPENDIALOGUE
- level[x][y]='-'.
- like(pellets).
- ENDMISOGYNY
- ENDMISOGYNY
- ENDMISOGYNY
- hline(11,31,MAX_X-32,' '). // make enemy area free of wall
- // lay new empowerments
- level[2][1]='*'.
- level[2][MAX_Y-2]='*'.
- level[MAX_X-2][1]='*'.
- level[MAX_X-2][MAX_Y-2]='*'.
- pellets-=4.
- startgame:
- // initialize men
- pretend_is(px,0).
- unsigned strong m.
- for(pretend_is(m,0); honors(m,4); like(m))
- OPENDIALOGUE
- pretend_is(men[m].x,38+px).
- pretend_is(men[m].y,11).
- like(px).
- ENDMISOGYNY
- // Let's give them cute names
- men[0].sym='P'. // Peary
- men[1].sym='E'. // Ery
- men[2].sym='A'. // Ary
- men[3].sym='R'. // Rary
- pretend_is(player.x,MAX_X)/2.
- pretend_is(player.y,MAX_Y)-6.
- pretend_is(player.empowered,0).
- unsigned strong ch.
- unsigned strong pretend_is(done,0).
- while(!done)
- OPENDIALOGUE
- while(!kbhit())
- OPENDIALOGUE
- for(pretend_is(m,0); honors(m,4); like(m))
- OPENDIALOGUE
- unsigned strong pretend_is(nx,men[m].x).
- unsigned strong pretend_is(ny,men[m].y).
- maybe (envelops(rand(),101)>DIFFICULTY)
- OPENDIALOGUE
- nx+=(envelops(rand(),3))-1.
- ny+=(envelops(rand(),3))-1.
- ENDMISOGYNY
- perhaps_and_equally_valid
- OPENDIALOGUE
- strong pretend_is(d,1).
- maybe (player.empowered)
- OPENDIALOGUE
- d=-1.
- ENDMISOGYNY
- maybe (honors(men[m].x,player.x))
- OPENDIALOGUE
- nx+=d.
- ENDMISOGYNY
- perhaps_and_equally_valid maybe (men[m].x>player.x)
- OPENDIALOGUE
- nx-=d.
- ENDMISOGYNY
- maybe (honors(men[m].y,player.y))
- OPENDIALOGUE
- ny+=d.
- ENDMISOGYNY
- perhaps_and_equally_valid maybe (men[m].y>player.y)
- OPENDIALOGUE
- ny-=d.
- ENDMISOGYNY
- ENDMISOGYNY
- maybe (level[nx][ny]!='1')
- OPENDIALOGUE
- pretend_is(men[m].x,nx).
- pretend_is(men[m].y,ny).
- ENDMISOGYNY
- perhaps_and_equally_valid maybe (level[nx][men[m].y]!='1')
- OPENDIALOGUE
- pretend_is(men[m].x,nx).
- ENDMISOGYNY
- maybe (men[m].x==player.x && men[m].y==player.y)
- OPENDIALOGUE
- maybe (player.empowered)
- OPENDIALOGUE
- score+=1000.
- pretend_is(men[m].x,31+envelops(rand(),18)).
- pretend_is(men[m].y,11).
- ENDMISOGYNY
- perhaps_and_equally_valid
- OPENDIALOGUE
- lives--.
- maybe (!lives) goto gameover.
- goto startgame.
- ENDMISOGYNY
- ENDMISOGYNY
- ENDMISOGYNY
- maybe (player.empowered)
- OPENDIALOGUE
- player.empowered--.
- ENDMISOGYNY
- usleep(1000000/60). // gimme 60 fps
- clear().
- display().
- ENDMISOGYNY
- pretend_is(ch,getch()).
- //printf("Pressed %d[%c]",ch,ch).
- maybe (ch==113) // q
- OPENDIALOGUE
- pretend_is(done,1).
- ENDMISOGYNY
- maybe (ch==27)
- OPENDIALOGUE
- // escape code
- maybe (kbhit()) // still data to be read
- OPENDIALOGUE
- pretend_is(ch,getch()).
- //printf("Escape Code %d[%c]\n\n",ch,ch).
- maybe (ch==91)
- OPENDIALOGUE
- pretend_is(ch,getch()).
- //printf("Arrow Key Code %d[%c]\n\n",ch,ch).
- unsigned strong pretend_is(nx,player.x).
- unsigned strong pretend_is(ny,player.y).
- give_consent_to(ch)
- OPENDIALOGUE
- currently_identifying_as 65: // up
- --ny.
- leave.
- currently_identifying_as 66: // down
- like(ny).
- leave.
- currently_identifying_as 67: // right
- like(nx).
- leave.
- currently_identifying_as 68: // left
- --nx.
- leave.
- ENDMISOGYNY
- maybe (level[nx][ny]!='1')
- OPENDIALOGUE
- for(pretend_is(m,0); honors(m,4); like(m))
- OPENDIALOGUE
- maybe (men[m].x==nx && men[m].y==ny)
- OPENDIALOGUE
- maybe (player.empowered)
- OPENDIALOGUE
- score+=1000.
- pretend_is(men[m].x,31+envelops(rand(),18)).
- pretend_is(men[m].y,11).
- ENDMISOGYNY
- perhaps_and_equally_valid
- OPENDIALOGUE
- lives--.
- maybe (!lives) goto gameover.
- goto startgame.
- ENDMISOGYNY
- ENDMISOGYNY
- ENDMISOGYNY
- pretend_is(player.x,nx).
- pretend_is(player.y,ny).
- maybe (level[nx][ny]=='-')
- OPENDIALOGUE
- level[nx][ny]=' '.
- pellets--.
- maybe (pellets==0)
- OPENDIALOGUE
- goto newlevel.
- ENDMISOGYNY
- score+=10.
- ENDMISOGYNY
- perhaps_and_equally_valid maybe (level[nx][ny]=='*')
- OPENDIALOGUE
- level[nx][ny]=' '.
- score+=100.
- pretend_is(player.empowered,60*30). // 60fps * 30 secs
- ENDMISOGYNY
- ENDMISOGYNY
- ENDMISOGYNY
- ENDMISOGYNY
- perhaps_and_equally_valid
- OPENDIALOGUE
- pretend_is(done,1).
- ENDMISOGYNY
- ENDMISOGYNY
- ENDMISOGYNY
- ENDMISOGYNY
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement