mirror of
https://codeberg.org/scip/golsky.git
synced 2025-12-16 20:20:57 +01:00
added C test
This commit is contained in:
2
various-tests/raygol/.gitignore
vendored
Normal file
2
various-tests/raygol/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
golsky
|
||||||
|
*.o
|
||||||
33
various-tests/raygol/Makefile
Normal file
33
various-tests/raygol/Makefile
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
CFLAGS = -Wall -Wextra -Werror -O2 -g
|
||||||
|
LDFLAGS= -L/usr/local/lib -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 -g
|
||||||
|
CC = clang
|
||||||
|
OBJS = main.o game.o grid.o
|
||||||
|
DST = golsky
|
||||||
|
PREFIX = /usr/local
|
||||||
|
UID = root
|
||||||
|
GID = 0
|
||||||
|
MAN = udpxd.1
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
all: $(DST)
|
||||||
|
|
||||||
|
$(DST): $(OBJS)
|
||||||
|
$(CC) $(OBJS) $(LDFLAGS) -o $(DST)
|
||||||
|
|
||||||
|
%.o: %.c
|
||||||
|
$(CC) -c $(CFLAGS) $*.c -o $*.o
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
rm -f *.o $(DST)
|
||||||
|
|
||||||
|
.PHONY: install
|
||||||
|
install: $(DST)
|
||||||
|
install -d -o $(UID) -g $(GID) $(PREFIX)/sbin
|
||||||
|
install -d -o $(UID) -g $(GID) $(PREFIX)/man/man1
|
||||||
|
install -o $(UID) -g $(GID) -m 555 $(DST) $(PREFIX)/sbin/
|
||||||
|
install -o $(UID) -g $(GID) -m 444 $(MAN) $(PREFIX)/man/man1/
|
||||||
|
|
||||||
|
.PHONY: run
|
||||||
|
run:
|
||||||
|
LD_LIBRARY_PATH=/usr/local/lib ./golsky
|
||||||
48
various-tests/raygol/game.c
Normal file
48
various-tests/raygol/game.c
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
#include "game.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
Game *Init(int width, int height, int gridwidth, int gridheight, int density) {
|
||||||
|
struct Game *game = malloc(sizeof(struct Game));
|
||||||
|
|
||||||
|
game->ScreenWidth = width;
|
||||||
|
game->ScreenHeight = height;
|
||||||
|
game->Cellsize = width / gridwidth;
|
||||||
|
game->Width = gridwidth;
|
||||||
|
game->Height = gridheight;
|
||||||
|
|
||||||
|
InitWindow(width, height, "golsky");
|
||||||
|
SetTargetFPS(60);
|
||||||
|
|
||||||
|
game->Grid = NewGrid(gridwidth, gridheight, density);
|
||||||
|
|
||||||
|
return game;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update(Game *game) {
|
||||||
|
if (IsKeyDown(KEY_Q)) {
|
||||||
|
game->Done = true;
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Draw(Game *game) {
|
||||||
|
BeginDrawing();
|
||||||
|
|
||||||
|
ClearBackground(RAYWHITE);
|
||||||
|
|
||||||
|
for (int y = 0; y < game->Width; y++) {
|
||||||
|
for (int x = 0; x < game->Height; x++) {
|
||||||
|
if (game->Grid->Data[y][x] == 1) {
|
||||||
|
DrawRectangle(x * game->Cellsize, y * game->Cellsize, game->Cellsize,
|
||||||
|
game->Cellsize, GREEN);
|
||||||
|
} else {
|
||||||
|
DrawRectangle(x * game->Cellsize, y * game->Cellsize, game->Cellsize,
|
||||||
|
game->Cellsize, RAYWHITE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DrawText("TEST", game->ScreenWidth / 2, 10, 20, RED);
|
||||||
|
|
||||||
|
EndDrawing();
|
||||||
|
}
|
||||||
25
various-tests/raygol/game.h
Normal file
25
various-tests/raygol/game.h
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#ifndef _HAVE_GAME_H
|
||||||
|
#define _HAVE_GAME_H
|
||||||
|
|
||||||
|
#include "grid.h"
|
||||||
|
#include "raylib.h"
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
typedef struct Game {
|
||||||
|
// Camera2D Camera;
|
||||||
|
int ScreenWidth;
|
||||||
|
int ScreenHeight;
|
||||||
|
int Cellsize;
|
||||||
|
|
||||||
|
// Grid dimensions
|
||||||
|
int Width;
|
||||||
|
int Height;
|
||||||
|
bool Done;
|
||||||
|
Grid *Grid;
|
||||||
|
} Game;
|
||||||
|
|
||||||
|
Game *Init(int width, int height, int gridwidth, int gridheight, int density);
|
||||||
|
void Update(Game *game);
|
||||||
|
void Draw(Game *game);
|
||||||
|
|
||||||
|
#endif
|
||||||
28
various-tests/raygol/grid.c
Normal file
28
various-tests/raygol/grid.c
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#include "grid.h"
|
||||||
|
|
||||||
|
Grid *NewGrid(int width, int height, int density) {
|
||||||
|
Grid *grid = malloc(sizeof(struct Grid));
|
||||||
|
grid->Width = width;
|
||||||
|
grid->Height = height;
|
||||||
|
grid->Density = density;
|
||||||
|
|
||||||
|
grid->Data = malloc(height * sizeof(int *));
|
||||||
|
for (int y = 0; y < grid->Height; y++) {
|
||||||
|
grid->Data[y] = malloc(width * sizeof(int *));
|
||||||
|
}
|
||||||
|
|
||||||
|
FillRandom(grid);
|
||||||
|
|
||||||
|
return grid;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FillRandom(Grid *grid) {
|
||||||
|
int r;
|
||||||
|
for (int y = 0; y < grid->Width; y++) {
|
||||||
|
for (int x = 0; x < grid->Height; x++) {
|
||||||
|
r = GetRandomValue(0, grid->Density);
|
||||||
|
if (r == 1)
|
||||||
|
grid->Data[y][x] = r;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
18
various-tests/raygol/grid.h
Normal file
18
various-tests/raygol/grid.h
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#ifndef _HAVE_GRID_H
|
||||||
|
#define _HAVE_GRID_H
|
||||||
|
|
||||||
|
#include "raylib.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
typedef struct Grid {
|
||||||
|
int Width;
|
||||||
|
int Height;
|
||||||
|
int Density;
|
||||||
|
int **Data;
|
||||||
|
} Grid;
|
||||||
|
|
||||||
|
Grid *NewGrid(int width, int height, int density);
|
||||||
|
void FillRandom(Grid *grid);
|
||||||
|
|
||||||
|
#endif
|
||||||
15
various-tests/raygol/main.c
Normal file
15
various-tests/raygol/main.c
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#include "game.h"
|
||||||
|
#include "raylib.h"
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
Game *game = Init(800, 800, 10, 10, 8);
|
||||||
|
|
||||||
|
while (!WindowShouldClose()) {
|
||||||
|
Update(game);
|
||||||
|
Draw(game);
|
||||||
|
}
|
||||||
|
|
||||||
|
CloseWindow();
|
||||||
|
free(game);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user