mirror of
https://git.squeakyrat.moe/petratc/
synced 2026-11-04 18:35:43 +01:00
started maze game it's just a walking simulator for now
This commit is contained in:
1 parent
c96ea5f3eb
commit
a7f7b091f4
4 files changed
+100
-5
No files matched your search
@@ -3,5 +3,6 @@
|
||||
|
||||
void gameguess(void);
|
||||
void gamecatch(void);
|
||||
void gamemaze(void);
|
||||
|
||||
#endif
|
||||
+4
-4
@@ -38,9 +38,9 @@
|
||||
#define height getmaxy(stdscr)
|
||||
#define maxdrops 70
|
||||
|
||||
int running;
|
||||
int won;
|
||||
int howmany;
|
||||
static int running;
|
||||
static int won;
|
||||
static int howmany;
|
||||
|
||||
typedef struct{
|
||||
|
||||
@@ -71,7 +71,7 @@ void spawndrops() {
|
||||
}
|
||||
}
|
||||
|
||||
void stop() {
|
||||
static void stop() {
|
||||
clear();
|
||||
refresh();
|
||||
endwin();
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <ncurses.h>
|
||||
#include "../rat.h"
|
||||
|
||||
/*
|
||||
// i'm probably gonna use a loop erased random walk algorithm
|
||||
//the screen will start as 100% walls then slowly build a path
|
||||
//(i have no idea how many resources this will take, if it's slow i'll ask grok to multithread it)
|
||||
//
|
||||
// a couple ammount of cheeses will spawn in places where there are no walls
|
||||
// eating cheeses will add to the base addstat() but addstat() only will be called if 1 cheese is eaten
|
||||
// idk what else to do here.
|
||||
// you start at the top and end at the bottom if i ever wanna automate taking care of the rat
|
||||
*/
|
||||
|
||||
#define width getmaxx(stdscr)
|
||||
#define height getmaxy(stdscr)
|
||||
|
||||
static int running;
|
||||
static int won;
|
||||
static int found;
|
||||
|
||||
typedef struct{
|
||||
|
||||
int posy;
|
||||
int posx;
|
||||
char *face[1];
|
||||
|
||||
}cursor;
|
||||
|
||||
static void stop() {
|
||||
clear();
|
||||
refresh();
|
||||
endwin();
|
||||
if(won){addstat(&rat.hunger); addstat(&rat.fun); printf("the rat feels less hungry...\n\n");}
|
||||
won = 0;
|
||||
found = 0;
|
||||
running = 0;
|
||||
}
|
||||
//yes i stole the code from gamecatch shut up it works
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void gamemaze(){
|
||||
|
||||
srand(time(NULL));
|
||||
static int initialized = 0;
|
||||
if(initialized == 0){ initscr();}else{refresh();}
|
||||
++initialized;
|
||||
|
||||
found = 0;
|
||||
|
||||
noecho();
|
||||
cbreak();
|
||||
nodelay(stdscr, TRUE);
|
||||
keypad(stdscr, TRUE);
|
||||
curs_set(0);
|
||||
|
||||
cursor curs = {0, 0, {"@"}};
|
||||
|
||||
running = 1;
|
||||
|
||||
while (running) {
|
||||
if (!running) stop();
|
||||
int ch = getch();
|
||||
switch (ch) {
|
||||
case 'q': case 'Q': stop(); break;
|
||||
case 'a': case 'A': case KEY_LEFT:
|
||||
curs.posx -= 1; break;
|
||||
case 'd': case 'D': case KEY_RIGHT:
|
||||
curs.posx += 1; break;
|
||||
case 'w': case 'W': case KEY_UP:
|
||||
curs.posy -= 1; break;
|
||||
case 's': case 'S': case KEY_DOWN:
|
||||
curs.posy += 1; break;
|
||||
}
|
||||
|
||||
if (!running) break;
|
||||
clear();
|
||||
|
||||
mvaddstr(curs.posy, curs.posx, curs.face[0]);
|
||||
|
||||
refresh();
|
||||
usleep(50000);
|
||||
}
|
||||
|
||||
stop();
|
||||
}
|
||||
@@ -108,7 +108,7 @@ int truing = 1;
|
||||
printrat();
|
||||
|
||||
while(truing){
|
||||
printf("1: play a game! (fun up), 4: take a shower! (clean up), 9: print me!, 0: exit...\n");
|
||||
printf("1: play a game! (fun up), 2: go down to the maze... (hunger up), 4: take a shower! (clean up), 9: print me!, 0: exit...\n");
|
||||
|
||||
if(scanf("%d", &choice) != 1){
|
||||
while(getchar() != '\n'); //flush the bad input if you're a bad boy and put q instead of 1
|
||||
@@ -117,6 +117,7 @@ int truing = 1;
|
||||
switch(choice){
|
||||
|
||||
case 1: gameguess(); break;
|
||||
case 2: gamemaze(); break;
|
||||
case 4: gamecatch(); break;
|
||||
case 9: printrat(); break;
|
||||
case 0: truing = 0; break;
|
||||
|
||||
Reference in new issue
Block a user