Merge pull request 'Add cmake, remove non-standard random' (#2) from neko/csnake:cmake into master

Reviewed-on: https://nakidai.ddns.net/nakidai/csnake/pulls/2
Size of CMake is over 70M :O
fix-mingw
nakidai 2023-10-31 06:40:45 +03:00
commit 460e4e33ed
3 changed files with 28 additions and 2 deletions

23
CMakeLists.txt Normal file
View File

@ -0,0 +1,23 @@
cmake_minimum_required(VERSION 3.5)
project(csnake VERSION 0.1.0 LANGUAGES C)
if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)
message(FATAL_ERROR "In-source builds are not allowed.")
endif()
add_executable(csnake
src/main.c
src/screen.c
src/input.c
src/player.c
)
set_target_properties(csnake PROPERTIES C_STANDARD 11)
set_target_properties(csnake PROPERTIES C_EXTENSIONS FALSE)
target_include_directories(csnake PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
set(SIZE 10 CACHE STRING "Size of game field")
set(DEFX 0 CACHE STRING "Start x")
set(DEFY 0 CACHE STRING "Start y")
configure_file(include/config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/include/config.h)

3
include/config.h.in Normal file
View File

@ -0,0 +1,3 @@
#define SIZE ${SIZE}
#define DEFX ${DEFX}
#define DEFY ${DEFY}

View File

@ -22,7 +22,7 @@ Food generateFood(Player *player)
Food food;
do
{
food = (Food){random() % SIZE, random() % SIZE};
food = (Food){rand() % SIZE, rand() % SIZE};
} while (playerCheckFoodCollision(player, food));
return food;
}
@ -34,7 +34,7 @@ void resetCoordinates(void)
int main(int argc, char **argv)
{
srandom(time(NULL));
srand(time(NULL));
Player *player = playerCreate(DOWN, DEFX, DEFY, 0);
Screen *screen = screenCreate(SIZE, SIZE, ' ');
PlayerNode *node;