Skip to content

Commit

Permalink
Fix here & there
Browse files Browse the repository at this point in the history
  • Loading branch information
ikhsan3adi committed Dec 12, 2024
1 parent 5906281 commit e8653d3
Show file tree
Hide file tree
Showing 8 changed files with 33 additions and 28 deletions.
14 changes: 6 additions & 8 deletions food.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,9 @@
// Mengembalikan objek makanan baru bertipe Food
Food create_food(int screen_width, int screen_height, Snake *snake)
{
// Buat posisi untuk makanan
Vector2 food_pos = food_generate_position(screen_width, screen_height, snake);

// Buat objek makanan
Food new_food = {food_pos};
// Kamus
Vector2 food_pos = food_generate_position(screen_width, screen_height, snake); // Buat posisi untuk makanan
Food new_food = {food_pos}; // Buat objek makanan dengan posisi `food_pos`

return new_food;
}
Expand All @@ -30,9 +28,9 @@ Food create_food(int screen_width, int screen_height, Snake *snake)
// Mengembalikan posisi makanan yang valid bertipe Vector2
Vector2 food_generate_position(int screen_width, int screen_height, Snake *snake)
{
// Deklarasi variabel untuk menyimpan posisi makanan
Vector2 new_position;
bool valid_position; // variabel untuk menyimpan status validitas posisi
// Kamus
Vector2 new_position; // Deklarasi variabel untuk menyimpan posisi makanan
bool valid_position; // variabel untuk menyimpan status validitas posisi

do
{
Expand Down
7 changes: 4 additions & 3 deletions game.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
Game game_create(int screen_width, int screen_height, GameData *game_data)
{
// Kamus data
Game new_game;
Game new_game; // Objek permainan baru

// Inisialisasi dimensi layar
new_game.screen_width = screen_width;
Expand Down Expand Up @@ -85,7 +85,8 @@ void game_update(Game *game)
// Mengembalikan true jika permainan berakhir, false jika tidak
bool is_game_over(Game *game)
{
Snake *snake = &game->game_snake;
// Kamus
Snake *snake = &game->game_snake; // Ambil reference snake dari game

// Cek jika tabrakan dengan ular itu sendiri
if (snake_collides_with_self(snake))
Expand All @@ -105,7 +106,7 @@ bool is_game_over(Game *game)
// game_data: parameter output passing by reference, tipe GameData*, menunjuk ke objek data permainan
void game_restart(Game *game, GameData *game_data)
{
*game = game_create(game->screen_width, game->screen_height, game_data);
*game = game_create(game->screen_width, game->screen_height, game_data); // assign game dengan game baru
}

// Prosedur untuk menangani input dari pengguna untuk mengubah arah pergerakan ular
Expand Down
7 changes: 5 additions & 2 deletions gamedata.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,14 @@ void save_game_data(const char *filename, GameData *game_data)
fclose(file);
}

// Prosedur untuk memuat data permainan dari file biner
// Fungsi untuk memuat data permainan dari file biner
// filename: parameter input passing by value, tipe const char*, nama file untuk dimuat datanya
// Mengembalikan GameData dari file atau GameData dengan nilai default
GameData load_game_data(const char *filename)
{
GameData game_data;
// kamus
GameData game_data; // tempat menyimpan data game dari file

FILE *file = fopen(filename, "rb"); // Membuka file dalam mode read binary
if (file != NULL)
{
Expand Down
3 changes: 2 additions & 1 deletion gamedata.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@ typedef struct
// game_data: parameter input passing by reference, tipe GameData*, pointer ke objek GameData yang akan disimpan
void save_game_data(const char *filename, GameData *game_data);

// Prosedur untuk memuat data permainan dari file biner
// Fungsi untuk memuat data permainan dari file biner
// filename: parameter input passing by value, tipe const char*, nama file untuk dimuat datanya
// Mengembalikan GameData dari file atau GameData dengan nilai default
GameData load_game_data(const char *filename);

//! Prosedur untuk menghapus data permainan (belum dipakai)
Expand Down
6 changes: 4 additions & 2 deletions score.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@
// Mengembalikan objek Score
Score create_score(int score, char *player_name)
{
Score new_score;
// Kamus
Score new_score; // Deklarasi objek Score baru

strcpy(new_score.player_name, player_name); // salin player_name ke new_score.player_name
new_score.score = score;
new_score.score = score; // assign score ke new_score.score

return new_score;
}
Expand Down
19 changes: 9 additions & 10 deletions snake.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,13 @@
// Mengembalikan objek ular baru bertipe Snake
Snake create_snake(int start_x, int start_y)
{
Snake new_snake = {0}; // buat objek ular
// Kamus
Snake new_snake; // buat objek ular baru

new_snake.head = vector2_create(start_x, start_y); // buat posisi kepala ular
new_snake.direction = vector2_create(1, 0); // arah ular
new_snake.length = 1; // panjang awal

new_snake.segments[0] = new_snake.head; // simpan posisi kepala ke dalam array segment
new_snake.segments[0] = new_snake.head; // simpan posisi kepala ke dalam segment pertama

return new_snake;
}
Expand Down Expand Up @@ -56,7 +57,7 @@ bool snake_collides_with_self(Snake *snake)
// Mengembalikan true jika ular berhasil tumbuh, false jika tidak (misalnya, jika sudah mencapai panjang maksimum)
bool snake_grow(Snake *snake)
{
if (snake->length < MAX_SNAKE_LENGTH)
if (snake->length < MAX_SNAKE_LENGTH) // Cek apakah ular sudah mencapai panjang maksimum
{
snake->length = snake->length + 1; // Tambahkan satu segmen baru
return true;
Expand All @@ -69,15 +70,13 @@ bool snake_grow(Snake *snake)
// Mengembalikan karakter yang merepresentasikan kepala ular ('>', '<', 'v', '^')
char get_snake_head_symbol(Snake *snake)
{
Vector2 dir = snake->direction;

if (dir.x == 1)
if (snake->direction.x == 1)
return '>'; // kanan
if (dir.x == -1)
if (snake->direction.x == -1)
return '<'; // kiri
if (dir.y == 1)
if (snake->direction.y == 1)
return 'v'; // bawah
if (dir.y == -1)
if (snake->direction.y == -1)
return '^'; // atas

return '>'; // default
Expand Down
1 change: 1 addition & 0 deletions ui.c
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,7 @@ void show_game_over_ui(Game *game)
// game: parameter input/output passing by reference, menunjuk ke objek Game yang akan diperbarui berdasarkan input
void get_player_name(Game *game)
{
// Kamus
char player_name[50]; // Buffer untuk menyimpan nama pemain
//
attron(COLOR_PAIR(2)); // Menggunakan warna hijau
Expand Down
4 changes: 2 additions & 2 deletions vector.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
// Mengembalikan vektor baru dengan koordinat (x, y) bertipe Vector2
Vector2 vector2_create(int x, int y)
{
Vector2 vec = {x, y};
Vector2 vec = {x, y}; // Inisialisasi vektor baru dengan koordinat (x, y)
return vec;
}

Expand All @@ -32,7 +32,7 @@ bool vector2_equals(Vector2 a, Vector2 b)
// Mengembalikan hasil penjumlahan kedua vektor bertipe Vector2
Vector2 vector2_add(Vector2 a, Vector2 b)
{
Vector2 vec = {a.x + b.x, a.y + b.y};
Vector2 vec = {a.x + b.x, a.y + b.y}; // Inisialisasi hasil penjumlahan dengan koordinat (a.x + b.x, a.y + b.y)
return vec;
}

Expand Down

0 comments on commit e8653d3

Please sign in to comment.