Name: Anonymous 2012-11-11 1:20
Consider the following:
Your mission, should you choose to accept it, is to implement a superior roguelike in which the main mode of interaction with other beings is not to kill them, but instead to fuck them like a rake. You may choose another language or user interface library if you like. The only requirement is that your entry be reasonably portable (it builds on most *nixen).
You may implement novel types of creatures. This bestiary is a serving suggestion.
#include <ncurses.h>
#include <stdlib.h>
#include <time.h>
#define NUM_MOBS 10
typedef enum {
kMOB_PLAYER = '@',
kMOB_TENTACLES = '&',
kMOB_WOMAN = 'F',
kMOB_MAN = 'M',
} mob_kind;
typedef struct {
mob_kind kind;
int x, y;
} mob_t;
mob_t mobs[NUM_MOBS];
mob_t player;
void mob_init(mob_t *this, mob_kind kind);
void mob_move(mob_t *this, int y, int x);
void mob_draw(mob_t *this);
int main(int argc, char **argv) {
int i, y, x;
srandom(time(NULL));
initscr();
noecho();
curs_set(0);
mob_init(&player, kMOB_PLAYER);
y = getmaxy(stdscr) / 2;
x = getmaxx(stdscr) / 2;
for (i = 0; i < NUM_MOBS; i++) {
mob_kind k;
switch (random() % 3) {
case 0:
k = kMOB_WOMAN;
break;
case 1:
k = kMOB_MAN;
break;
default:
k = kMOB_TENTACLES;
break;
}
mob_init(mobs + i, k);
mob_move(mobs + i, random()%y + y/2, random()%x + x/2);
}
while (TRUE) {
mob_move(&player, y, x);
mob_draw(&player);
for (i = 0; i < NUM_MOBS; i++) {
if (player.x == mobs[i].x && player.y == mobs[i].y) {
erase();
move(0, 0);
switch (mobs[i].kind) {
case kMOB_MAN:
printw(
"You fondle the ADULT MALE HUMAN'S oily bara body.\n"
"The two of you take turns plundering each other "
"up the butt.\nGAME OVER\n");
break;
case kMOB_WOMAN:
printw(
"You hike up the FEMALE HUMAN'S skirt and rail her "
"doggy-style.\nShe moans and weeps from the pleasure "
"of being cummed inside.\nYou have succeeded in "
"getting her pregnant.\nGAME OVER\n");
break;
default:
printw(
"The TENTACLE MONSTER ravages you unrepentantly.\n"
"After forty-eight hours of blissful tentacle sex, "
"you die of thirst.\nBAD END\n");
break;
}
refresh();
getch();
endwin();
exit(EXIT_SUCCESS);
} else {
mob_draw(mobs + i);
}
}
refresh();
switch (getch()) {
case 'q':
endwin();
exit(EXIT_SUCCESS);
case 'h':
x--;
break;
case 'j':
y++;
break;
case 'k':
y--;
break;
case 'l':
x++;
break;
case 'y':
y--;
x--;
break;
case 'u':
y--;
x++;
break;
case 'b':
y++;
x--;
break;
case 'n':
y++;
x++;
break;
}
mvaddch(player.y, player.x, ' ');
}
}
void mob_init(mob_t *this, mob_kind kind) {
this->kind = kind;
}
void mob_move(mob_t *this, int y, int x) {
this->y = y;
this->x = x;
}
void mob_draw(mob_t *this) {
mvaddch(this->y, this->x, this->kind);
}Your mission, should you choose to accept it, is to implement a superior roguelike in which the main mode of interaction with other beings is not to kill them, but instead to fuck them like a rake. You may choose another language or user interface library if you like. The only requirement is that your entry be reasonably portable (it builds on most *nixen).
You may implement novel types of creatures. This bestiary is a serving suggestion.