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