a3
This commit is contained in:
parent
769b03e733
commit
144f6b6ecd
51
a3/world.c
51
a3/world.c
@ -1,19 +1,44 @@
|
|||||||
#include <stdio.h>
|
#include "world.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "snake.h"
|
#include <stdio.h>
|
||||||
|
|
||||||
void render(const struct state* state) {
|
// Initializes the game world, including the snake and the placement of food
|
||||||
system("clear");
|
void init_world(struct state* world, int width, int height){
|
||||||
|
world->width = width;
|
||||||
|
world->height = height;
|
||||||
|
world->sx = 1;
|
||||||
|
world->sy = 0;
|
||||||
|
|
||||||
// Малюємо поле
|
// Initialize snake at the center of the world
|
||||||
for (int y = 0; y < state->height; y++) {
|
world->snake = add_snake(NULL, width / 2, height / 2);
|
||||||
for (int x = 0; x < state->width; x++) {
|
|
||||||
if (is_snake(state->snake, x, y)) {
|
// Place food randomly
|
||||||
printf("O");
|
for(int i = 0; i < FOOD_COUNT; i++){
|
||||||
} else if (is_food_at(state, x, y)) {
|
world->foodx[i] = rand() % (width - 2) + 1;
|
||||||
printf("@");
|
world->foody[i] = rand() % (height - 2) + 1;
|
||||||
} else {
|
}
|
||||||
printf(" ");
|
}
|
||||||
|
|
||||||
|
// Prints the current state of the game world, including snake and food
|
||||||
|
void print_world(struct state* world){
|
||||||
|
for(int y = 0; y < world->height; y++){
|
||||||
|
for(int x = 0; x < world->width; x++){
|
||||||
|
if(x == 0 || y == 0 || x == world->width - 1 || y == world->height - 1){
|
||||||
|
printf("#"); // Print walls around the game area
|
||||||
|
}else if(is_snake(world->snake, x, y)){
|
||||||
|
printf("O"); // Print snake parts
|
||||||
|
}else{
|
||||||
|
int food_found = 0;
|
||||||
|
for(int i = 0; i < FOOD_COUNT; i++){
|
||||||
|
if(world->foodx[i] == x && world->foody[i] == y){
|
||||||
|
printf("*"); // Print food
|
||||||
|
food_found = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!food_found){
|
||||||
|
printf(" "); // Empty space
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user