Add configure #1

Merged
nakidai merged 10 commits from configure into master 2023-10-30 21:57:12 +03:00
5 changed files with 57 additions and 10 deletions

View File

@ -1,9 +1,6 @@
OUT = game
CFLAGS =
LDFLAGS =
include config.mk
INCLUDE = -Iinclude
CC = cc
LD = ld
RM = rm -f
SRCDIR = src
OBJDIR = obj

4
config.mk Normal file
View File

@ -0,0 +1,4 @@
CC = cc
CFLAGS =
LDFLAGS =
OUT = game

42
configure vendored Executable file
View File

@ -0,0 +1,42 @@
#!/bin/sh
if [[ "$*" == *"--help"* ]] || [[ "$*" == *"-h"* ]]
then
echo "Use environment variables to pass values:
CC - compiler (default: cc)
CFLAGS - flags for compiler
LDFLAGS - flags for linker
OUT - out file (default: game
SIZE - size of game field
DEFX - start x
DEFY - start y"
exit 1
fi
CC=${CC:-cc}
CFLAGS=${CFLAGS:-}
LDFLAGS=${LDFLAGS:-}
OUT=${OUT:-game}
SIZE=${SIZE:-10}
DEFX=${DEFX:-0}
DEFY=${DEFY:-0}
echo "Makefile configuration:"
echo "Compiler: $CC"
echo "CFLAGS: $CFLAGS"
echo "LDFLAGS: $LDFLAGS"
echo "Out file: $OUT"
echo
echo "Code configuration:"
echo "Size: $SIZE"
echo "Start x: $DEFX"
echo "Start y: $DEFY"
echo "CC = $CC
CFLAGS = $CFLAGS
LDFLAGS = $LDFLAGS
OUT = $OUT" > config.mk
echo "#define SIZE $SIZE
#define DEFX $DEFX
#define DEFY $DEFY" > include/config.h

3
include/config.h Normal file
View File

@ -0,0 +1,3 @@
#define SIZE 10
#define DEFX 0
#define DEFY 0

View File

@ -8,6 +8,7 @@
#include "screen.h"
#include "player.h"
#include "food.h"
#include "config.h"
void drawPlayer(Player *player, Screen *screen)
{
@ -21,7 +22,7 @@ Food generateFood(Player *player)
Food food;
do
{
food = (Food){random() % 10, random() % 10};
food = (Food){random() % SIZE, random() % SIZE};
} while (playerCheckFoodCollision(player, food));
return food;
}
@ -34,8 +35,8 @@ void resetCoordinates(void)
int main(int argc, char **argv)
{
srandom(time(NULL));
Player *player = playerCreate(DOWN, 0, 0, 0);
Screen *screen = screenCreate(10, 10, ' ');
Player *player = playerCreate(DOWN, DEFX, DEFY, 0);
Screen *screen = screenCreate(SIZE, SIZE, ' ');
PlayerNode *node;
thrd_t input_thread;
int i;
@ -72,7 +73,7 @@ int main(int argc, char **argv)
}
head_x = player->head->x;
head_y = player->head->y;
if (head_x >= 10 || head_x < 0 || head_y >= 10 || head_y < 0)
if (head_x >= SIZE || head_x < 0 || head_y >= SIZE || head_y < 0)
{
*running = false;
break;
@ -83,7 +84,7 @@ int main(int argc, char **argv)
*screenGetPoint(screen, food.x, food.y) = '@';
resetCoordinates();
screenShow(screen);
for (i = 0; i < 20; ++i) putchar('-');
for (i = 0; i < SIZE*2; ++i) putchar('-');
printf("\nScore: %d\n", player->score);
thrd_sleep(&(struct timespec){.tv_sec=1}, NULL);