Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

sicp.c

Name: Anonymous 2015-02-10 0:35

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>

int main(void)
{
int i, j;

struct { char *name; int num, min, max; } invs[2][4] =
{{{ "", -1, -1, -1 },
{ "HANDFUL OF PARENTHESES", 10, 5, 5 },
{ "HARDCOVER COPY OF SICP", 5, 15, 15 },
{ "SICP VIDEO LECTURES ON YOUR IPOD", 20, 5, 25 }},
{{ "UNINDENTED JAVASCRIPT", 30, 5, 5 },
{ "EARNEST DEFENSE OF SEPPLES", 5, 10, 5 },
{ "EXPERT WEB DEVELOPMENT SOLUTION", 3, 8, 40 }}};

int hps[2] = { 100, 100 };
char *faces[2][4][10] =
{{{ "_ ___.....___ ",
" `.__ ,-' ,-.`-, ",
" `''-------' ( p ) `._ ",
" `-' ( ",
" \\ ",
" . \\ ",
" \\---..,--' ",
"................._ --...--, ",
" `-.._ _.-' ",
" `'-----'' " },
{ "_ ___.....___ ",
" `.__ ,-' ,-.`-, ",
" `''-------' ( p ) `._ ",
" `-' ( ",
" \\ ",
" \\ ",
" .---..,--' ",
"................._ |--...--, ",
" `-.._ _.-' ",
" `'-----'' " },
{ "_ ___.....___ ",
" `.__ ,-' .-' \\ ",
" `''-------' / o ) `._ ",
" `-' ( ",
" \\ ",
" \\",
" ______)",
"................._ .-'' / ",
" `-.._ _.-' ",
" `'-----'' " },
{ "_ ___.....___ ",
" `.__ ,-' ,-.`-, ",
" `''-------' ( x ) `._ ",
" `-' ( ",
" \\ ",
" \\ ",
" ---..,--' ",
"................._ /--...--, ",
" `-.._ ` _.-' ",
" `'-----'' " }},
{{ " ",
" /-------._ ",
" .´ ''-. ",
" .´ .-. +----------",
" .´ ( o ) ",
" / '-´ / ",
": .------´ ",
"+------´ .--------",
" '---------------------´ ",
" " },
{ " ",
" /-------._ ",
" .´ ''-. ",
" .´ .-. +----------",
" .´ ( o ) ",
" / '-´ ",
": .------ ",
"+------´ .--------",
" '---------------------´ ",
" " },
{ " ",
" /-------._ ",
" .´ ''-. ",
" .´ .-. +----------",
" .´ ( o ) ",
" / '-´ ",
": ",
"+------ .--------",
" '---------------------´ ",
" " },
{ " ",
" /-------._ ",
" .´ ''-. ",
" .´ .-. +----------",
" .´ ( X ) ",
" / '-´ ",
": ",
"+------ .--------",
" '---------------------´ ",
" " }}};

srand((unsigned int)time(NULL));

for (;;) {
int acted = 0;
char action;

printf("\033[2J\033[0;0H\n"
" "
"PROGSNAKE FITE\n\n");

for (i = 0; i < 10; ++i)
printf("%s %s\n", faces[0][3 - (hps[0] + 32) * 3 / 100][i],
faces[1][3 - (hps[1] + 32) * 3 / 100][i]);
printf("\n");

switch (rand() % 2) {
case 0:
if (rand() % 100 > 40) {
j = rand() % 16 + 8;

printf("Opponent attacks, and hits you for %d HP!\n", j);
hps[0] -= j;

} else
printf("Opponent attacks, but misses!\n");

break;

case 1:
i = rand() % 3;

if (invs[1][i].num == 0) {
printf("Opponent wanted to use %s, but doesn't have any!\n",
invs[1][i].name);

} else {
j = rand() % invs[1][i].max + invs[1][i].min;

printf("Opponent uses %s! You lose %d HP!\n",
invs[1][i].name, j);
hps[0] -= j;
--invs[1][i].num;

}

break;
}

sleep(1);
if (hps[0] <= 0) break;

printf("\nYou have %d HP. Your opponent has %d HP.\n", hps[0], hps[1]);

do {
printf("\nWhat do? [F]ight, [I]tem, [A]bility, [R]un: ");

action = (char)getchar();
action &= 0xdf;

while (getchar() != 10);

printf("\n");

switch (action) {
case 'F':
if (rand() % 100 > 40) {
j = rand() % 16 + 10;
printf("You attack, dealing %d damage!\n", j);
hps[1] -= j;

} else
printf("You try to attack, but miss!\n");

acted = 1;
break;

case 'I':
printf("Inventory:\n");

for (i = 1; i < 4; ++i) {
printf("\t%d. %35s (%d)\n", i, invs[0][i].name,
invs[0][i].num);
}

printf("\nWhich will you use? [1-3] ");

do {
action = (char)getchar();
} while (action < 48 || action > 57);

while (getchar() != 10);

i = action - 48;

switch (i) {
case 1:
case 2:
case 3:
if (invs[0][i].num > 0) {
j = rand() % invs[0][i].max + invs[0][i].min;

printf("\nYou use %s! ", invs[0][i].name);

if (i == 3) {
printf("You gain %d HP!\n", j);
hps[0] += j;
} else {
printf("Opponent loses %d HP!\n", j);
hps[1] -= j;
}

--invs[0][i].num;

} else
printf("\nYou try to use %s, but don't have any!\n",
invs[0][i].name);

acted = 1;
break;

default:
break;
}
break;

case 'A':
printf("You have not yet reached Satori, so you do not "
"have any special abilities!\n");
break;

case 'R':
printf("Real men don't back down!\n");
break;

default:
printf("I don't understand that.\n");
}

} while (!acted);

sleep(2);
if (hps[1] <= 0) break;

}

printf("\033[2J\033[0;0H\n\t\t\t\tGAME OVER\n\n");

for (i = 0; i < 10; ++i)
printf("\t\t\t%s\n", faces[hps[0] > 0 ? 1 : 0][3][i]);

printf(hps[0] > 0 ? "\n\t\t\tYou have defeated your opponent!\n\n"
: "\n\t\t\tYou have been defeated.\n\n");

return 0;
}

Name: Anonymous 2015-02-13 15:58

>>15

He's big in Japan.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List