aboutsummaryrefslogtreecommitdiffstats
path: root/YetiHack/src
diff options
context:
space:
mode:
authorRay Hogenson <rayhogenson@gmail.com>2012-01-10 15:34:34 -0900
committerRay Hogenson <rayhogenson@gmail.com>2012-01-10 15:34:34 -0900
commit6a4082406f71e40541602473bb0003fe3879fcdd (patch)
tree3fca53b15b55aa2a062d3d5db89ab82d6ebc90b1 /YetiHack/src
parentMerge branch 'master' of github.com:rayhogenson/YetiHack (diff)
downloadyetihack-6a4082406f71e40541602473bb0003fe3879fcdd.tar.zst
Working yetihack
Diffstat (limited to 'YetiHack/src')
-rw-r--r--YetiHack/src/Makefile9
-rw-r--r--YetiHack/src/YetiHack.cpp407
-rw-r--r--YetiHack/src/yeti.cpp281
3 files changed, 0 insertions, 697 deletions
diff --git a/YetiHack/src/Makefile b/YetiHack/src/Makefile
deleted file mode 100644
index 4dd3f89..0000000
--- a/YetiHack/src/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-yetihack: YetiHack.o yeti.o
- g++ -o yetihack YetiHack.o yeti.o -lncurses
-
-YetiHack.o: YetiHack.cpp
- g++ -I../include -o YetiHack.o -c YetiHack.cpp
-
-yeti.o: yeti.cpp
- g++ -I../include -o yeti.o -c yeti.cpp
-
diff --git a/YetiHack/src/YetiHack.cpp b/YetiHack/src/YetiHack.cpp
deleted file mode 100644
index 958c1ea..0000000
--- a/YetiHack/src/YetiHack.cpp
+++ /dev/null
@@ -1,407 +0,0 @@
-#include <iostream>
-#include <curses.h>
-#include <cstdlib>
-#include <time.h>
-#include <vector>
-#include <cstring>
-#include <fstream>
-#include <sstream>
-#include "yeti.h"
-#define Linux
-using namespace std;
-void endCurses();
-void startCurses();
-int wait(int);
-int start(int, bool, bool, double);
-void story();
-const char* convert(int);
-void menu(bool);
-
-void endCurses()
-{
- if (!isendwin())
- endwin();
-}
-void startCurses()
-{
- initscr();
- cbreak();
- noecho();
- intrflush(stdscr, false);
- keypad(stdscr, true);
-}
-
-int wait(int seconds)
-{
- int snum;
- int initial = time(NULL);
- do
- {
- snum = time(NULL) - initial;
- } while (snum < seconds);
-}
-int start(int rate, bool immortal, bool story, double escapeturns)
-{
- int x, y;
- int sizex, sizey;
- getmaxyx(stdscr,y,x);
- escapeturns = escapeturns * x * y;
- sizey = y - 3;
- sizex = x;
- char input;
- int yetinum = 1;
- x = 1;
- y = 1;
- vector<yeti> yetis;
- yeti yeti1(sizex / 2, sizey / 2, sizex, sizey);
- yetis.push_back(yeti1);
- for (int i = 0; i < sizey; ++i)
- {
- for (int j = 0; j < sizex; ++j)
- {
- addch('.');
- }
- }
- move(y - 1, x - 1);
- addch('@');
- for (int i = 0; i < yetinum; ++i)
- {
- move(yetis[i].ypos() - 1, yetis[i].xpos() - 1);
- addch('y');
- }
- move(sizey, 0);
- refresh();
- int count = 0;
- move(sizey + 1, 0);
- addstr("count: 0");
- while (!story || count < escapeturns)
- {
- input = getch();
- move(y - 1, x - 1);
- addch('.');
- for (int i = 0; i < yetinum; ++i)
- {
- move(yetis[i].ypos() - 1, yetis[i].xpos() - 1);
- addch('.');
- }
- if (input == '4')
- {
- --x;
- }
- else if (input == '7')
- {
- --x;
- --y;
- }
- else if (input == '8')
- {
- --y;
- }
- else if (input == '9')
- {
- ++x;
- --y;
- }
- else if (input == '6')
- {
- ++x;
- }
- else if (input == '3')
- {
- ++x;
- ++y;
- }
- else if (input == '2')
- {
- ++y;
- }
- else if (input == '1')
- {
- ++y;
- --x;
- }
- ++count;
- // did you go off the side?
- if (x < 1)
- {
- x = sizex;
- }
- if (x > sizex)
- {
- x = 1;
- }
- if (y < 1)
- {
- y = sizey;
- }
- if (y > sizey)
- {
- y = 1;
- }
- // begin yeti Ai
- for(int i = 0; i < yetinum; ++i)
- {
- yetis[i].movetowards(x, y, yetis, i);
- }
- // End Yeti AI
- for (int i = 0; i < yetinum; ++i)
- {
- if (x == yetis[i].xpos() && y == yetis[i].ypos() && !immortal)
- {
- if (story)
- {
- return 1;
- }
- for (int i = 0; i < yetinum; ++i)
- {
- move(yetis[i].ypos() - 1, yetis[i].xpos() - 1);
- addch('y');
- }
- move(sizey, 0);
- addstr("You Died!\n");
- char buf[100];
- for (int j = 0; j < 100; ++j)
- {
- buf[j] = ' ';
- }
- sprintf(buf, "You survived %d turns\n", count);
- for(int j = 0; buf[j] != '\n'; ++j)
- {
- addch(buf[j]);
- }
- addstr("\nDo you want to play again?[y/n] ");
- refresh();
- char playagain = getch();
- while (playagain != 'y' && playagain != 'n')
- {
- playagain = getch();
- }
- erase();
- if (playagain == 'y')
- {
- #ifdef Windows
- system("cls");
- #endif
- return 1;
- }
- else
- {
- endCurses();
- #ifdef Windows
- system("cls");
- #endif
- cout << "You survived " << count << " turns" << endl;
- }
- return 0;
- }
- }
- for (int i = 0; i < yetinum; ++i)
- {
- move(yetis[i].ypos() - 1, yetis[i].xpos() - 1);
- addch('y');
- }
- move(y - 1, x - 1);
- addch('@');
- move(sizey + 1, 7);
- addstr(" ");
- move(sizey + 1, 7);
- addstr(convert(count));
- move(sizey, 0);
- addstr(" ");
- move(sizey, 0);
- refresh();
- if (count % rate == 0)
- {
- move((sizey / 2) - 1,(sizex / 2) - 1);
- addch('y');
- move(sizey, 0);
- addstr("A New Yeti Has Appeared!");
- refresh();
- ++yetinum;
- yetis.push_back(yeti1);
- }
- }
- addstr("\nYou Escaped!");
- do
- {
- input = getch();
- } while (input != '\n');
- return 0;
-}
-
-void story()
-{
- char input;
- addstr("One day, you are ambushed by yetis!\n");
- addstr("Press any key to fight them...\n");
- refresh();
- getch();
- erase();
- if (start(10, false, true, 0.0064020) == 1)
- {
- erase();
- addstr("You died!");
- do
- {
- input = getch();
- } while (input != '\n');
- return;
- }
- erase();
- addstr("You escaped, unfortunately, they attack again.\n");
- addstr("Press any key to fight them...\n");
- refresh();
- getch();
- erase();
- if (start(5, false, true, 0.012804) == 1)
- {
- erase();
- addstr("You died!");
- do
- {
- input = getch();
- } while (input != '\n');
- return;
- }
- erase();
- addstr("Now, you are attacked a third time!\n");
- addstr("Press any key to fight them...\n");
- refresh();
- getch();
- erase();
- if (start(2, false, true, 0.064020) == 1)
- {
- erase();
- addstr("You died!");
- do
- {
- input = getch();
- } while (input != '\n');
- return;
- }
- erase();
- addstr("There sure are a lot of yetis, because you are attacked again!\n");
- addstr("Press any key to fight them...\n");
- refresh();
- getch();
- erase();
- if (start(1, false, true, 0.10243) == 1)
- {
- erase();
- addstr("You died!");
- do
- {
- input = getch();
- } while (input != '\n');
- return;
- }
- erase();
- addstr("One last fight.\n");
- addstr("Press any key to fight them...\n");
- refresh();
- getch();
- erase();
- if (start(1, false, true, 0.12804) == 1)
- {
- erase();
- addstr("You died!");
- do
- {
- input = getch();
- } while (input != '\n');
- return;
- }
- erase();
- addstr("You won!!!!");
- getch();
-}
-
-const char* convert(int a)
-{
- stringstream convert;
- string out;
- convert << a;
- convert >> out;
- const char* caout = out.c_str();
- return caout;
-}
-
-void menu(bool immortal)
-{
- int a = 100;
- startCurses();
- char input;
- addstr("Welcome to yetihack!\n");
- addstr("\t1. Arcade mode (classic)\n");
- addstr("\t2. Story mode\n");
- addstr("Select an option to proceed: ");
- refresh();
- echo();
- input = getch();
- noecho();
- int rate = 0;
- switch(input)
- {
- case '1':
- addstr("\nEnter the yeti spawn rate: ");
- refresh();
- echo();
- input = '0';
- do
- {
- a = a + 1;
- if (input == 7)
- {
- int x, y;
- getyx(stdscr, y, x);
- move(y, 0);
- addstr(" ");
- move(y, 0);
- addstr("Enter the yeti spawn rate: ");
- rate /= 10;
- if (rate != 0)
- {
- addstr(convert(rate));
- }
- refresh();
- input = getch();
- }
- else
- {
- rate *= 10;
- rate += input - '0';
- input = getch();
- }
- } while (input != '\n');
- noecho();
- erase();
- while(start(rate, immortal, false, 0));
- break;
- case '2':
- erase();
- story();
- break;
- }
- addstr(convert(a));
-}
-
-int main(int argc, char* argv[])
-{
- /*startCurses();
- while (true)
- {
- char input = getch();
- int a = input;
- addstr(convert(a));
- }*/
- bool immortal = false;
- if (argc > 1 && strcmp(argv[1],"-c") == 0)
- {
- immortal = true;
- }
- srand(time(0));
- menu(immortal);
- endCurses();
- return 0;
-}
-
diff --git a/YetiHack/src/yeti.cpp b/YetiHack/src/yeti.cpp
deleted file mode 100644
index eda9d2c..0000000
--- a/YetiHack/src/yeti.cpp
+++ /dev/null
@@ -1,281 +0,0 @@
-#include "yeti.h"
-#include <cstdlib>
-#include <ctime>
-#include <vector>
-using namespace std;
-void yeti::moveleft()
-{
- --x;
-}
-void yeti::moveright()
-{
- ++x;
-}
-void yeti::moveup()
-{
- --y;
-}
-void yeti::movedown()
-{
- ++y;
-}
-yeti::yeti(int x1, int y1, int sizex1, int sizey1)
-{
- sizex = sizex1;
- sizey = sizey1;
- x = x1;
- y = y1;
-}
-void yeti::movetowards(int a, int b, vector<yeti> yetis, int i)
-{
- int random = rand() % 2;
- int left;
- int right;
- int real;
- if (random == 0)
- {
- left = (x) + (sizex - a);
- right = a + (sizex - x);
- real = absolute(x - a);
- if (left < right && left < real)
- {
- bool empty = true;
- for (int j = 0; j < yetis.size(); ++j)
- {
- int anew = x - 1;
- if (anew > sizex)
- {
- anew = 0;
- }
- if (anew < 1)
- {
- anew = sizex;
- }
- if (i != j && anew == yetis[j].xpos() && yetis[j].ypos() == y)
- {
- empty = false;
- }
- }
- if (empty)
- {
- moveleft();
- }
- }
- else if (right < left && right < real)
- {
- bool empty = true;
- for (int j = 0; j < yetis.size(); ++j)
- {
- int anew = x + 1;
- if (anew > sizex)
- {
- anew = 0;
- }
- if (anew < 1)
- {
- anew = sizex;
- }
- if (i != j && anew == yetis[j].xpos() && yetis[j].ypos() == y)
- {
- empty = false;
- }
- }
- if (empty)
- {
- moveright();
- }
- }
- else
- {
- if (x - a < 0)
- {
- bool empty = true;
- for (int j = 0; j < yetis.size(); ++j)
- {
- int anew = x + 1;
- if (anew > sizex)
- {
- anew = 0;
- }
- if (anew < 1)
- {
- anew = sizex;
- }
- if (i != j && anew == yetis[j].xpos() && yetis[j].ypos() == y)
- {
- empty = false;
- }
- }
- if (empty)
- {
- moveright();
- }
- }
- else if (x - a > 0)
- {
- bool empty = true;
- for (int j = 0; j < yetis.size(); ++j)
- {
- int anew = x - 1;
- if (anew > sizex)
- {
- anew = 0;
- }
- if (anew < 1)
- {
- anew = sizex;
- }
- if (i != j && anew == yetis[j].xpos() && yetis[j].ypos() == y)
- {
- empty = false;
- }
- }
- if (empty)
- {
- moveleft();
- }
- }
- }
- }
- // now for b
- else
- {
- left = (y) + (sizey - b);
- right = b + (sizey - y);
- real = absolute(y - b);
- if (left < right && left < real)
- {
- bool empty = true;
- for (int j = 0; j < yetis.size(); ++j)
- {
- int bnew = y - 1;
- if (bnew > sizey)
- {
- bnew = 0;
- }
- if (bnew < 1)
- {
- bnew = sizey;
- }
- if (i != j && x == yetis[j].xpos() && yetis[j].ypos() == bnew)
- {
- empty = false;
- }
- }
- if (empty)
- {
- moveup();
- }
- }
- else if (right < left && right < real)
- {
- bool empty = true;
- for (int j = 0; j < yetis.size(); ++j)
- {
- int bnew = y + 1;
- if (bnew > sizey)
- {
- bnew = 0;
- }
- if (bnew < 1)
- {
- bnew = sizey;
- }
- if (i != j && x == yetis[j].xpos() && yetis[j].ypos() == bnew)
- {
- empty = false;
- }
- }
- if (empty)
- {
- movedown();
- }
- }
- else
- {
- if (y - b < 0)
- {
- bool empty = true;
- for (int j = 0; j < yetis.size(); ++j)
- {
- int bnew = y + 1;
- if (bnew > sizey)
- {
- bnew = 0;
- }
- if (bnew < 1)
- {
- bnew = sizey;
- }
- if (i != j && x == yetis[j].xpos() && yetis[j].ypos() == bnew)
- {
- empty = false;
- }
- }
- if (empty)
- {
- movedown();
- }
- }
- else if (y - b > 0)
- {
- bool empty = true;
- for (int j = 0; j < yetis.size(); ++j)
- {
- int bnew = y - 1;
- if (bnew > sizey)
- {
- bnew = 0;
- }
- if (bnew < 1)
- {
- bnew = sizey;
- }
- if (i != j && x == yetis[j].xpos() && yetis[j].ypos() == bnew)
- {
- empty = false;
- }
- }
- if (empty)
- {
- moveup();
- }
- }
- }
- }
- // deal with going off the side
- if (x < 1)
- {
- x = sizex;
- }
- if (x > sizex)
- {
- x = 1;
- }
- if (y < 1)
- {
- y = sizey;
- }
- if (y > sizey)
- {
- y = 1;
- }
-}
-
-int yeti::xpos()
-{
- return x;
-}
-int yeti::ypos()
-{
- return y;
-}
-int yeti::absolute(int value)
-{
- if (value < 0)
- {
- value = 0 - value;
- }
- return value;
-}
-