- 11 Şub 2023
- 137
- 74
Adım: Ana Menü Öncelikle, "menu.h" adında bir dosya oluşturarak ana menüyü oluşturabilirsiniz. Ana menüde, oyunu başlatma seçeneği, seçenekleri değiştirme seçeneği ve oyunu kapatma seçeneği olabilir.
Adım: Oyun Tahtası Rasgele sayılar, bir oyun tahtası üzerinde oluşturulabilir. Bu tahtayı oluşturmak için "board.h" adında bir dosya oluşturabilirsiniz. Tahta boyutlarını belirleyebilir ve rasgele sayıların konumunu takip etmek için bir dizi kullanabilirsiniz.
Adım: Rasgele Sayılar Rasgele sayılar, C'de "rand()" fonksiyonu kullanılarak oluşturulabilir. Bu fonksiyon, "stdlib.h" kütüphanesi altında yer alır. "srand()" fonksiyonu ile rasgele sayılar için bir başlangıç değeri belirleyebilirsiniz.
Adım: Oyun Mantığı Rasgele sayı bulmaca oyununun mantığı, oyuncunun rasgele bir sayıyı tahmin etmesi ve doğru sayıyı bulmaya çalışmasıdır. Oyun mantığını "game.h" dosyasında tanımlayabilirsiniz. Oyunun temel kurallarını, puanlama sistemini ve diğer özellikleri belirleyebilirsiniz.
Adım: Oyun Motoru Son olarak, oyunun motorunu oluşturmanız gerekiyor. Bu motor, oyuncunun tahminlerini alacak, doğru tahmini kontrol edecek ve puanlama sistemini işletecek. Motoru "engine.h" dosyasında tanımlayabilirsiniz.
Rasgele sayı bulmaca oyununu bu adımları takip ederek oluşturabilirsiniz. "main.c" dosyasında ana menüyü çağırarak oyunu başlatabilirsiniz. İyi şanslar ve keyifli kodlamalar!
C:
#ifndef MENU_H
#define MENU_H
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void display_menu() {
printf("------------------------------\n");
printf("| RASGELE SAYI OYUNU |\n");
printf("------------------------------\n");
printf("| 1. Yeni Oyun |\n");
printf("| 2. En İyi Skorlar |\n");
printf("| 3. Kurallar |\n");
printf("| 4. Çıkış |\n");
printf("------------------------------\n");
printf("Seçiminiz: ");
}
void new_game() {
// Yeni oyun başlatmak için gerekli kodlar
}
void show_highscores() {
// En iyi skorları göstermek için gerekli kodlar
}
void show_rules() {
// Kuralları göstermek için gerekli kodlar
}
#endif /* MENU_H */
Adım: Oyun Tahtası Rasgele sayılar, bir oyun tahtası üzerinde oluşturulabilir. Bu tahtayı oluşturmak için "board.h" adında bir dosya oluşturabilirsiniz. Tahta boyutlarını belirleyebilir ve rasgele sayıların konumunu takip etmek için bir dizi kullanabilirsiniz.
C:
#ifndef BOARD_H
#define BOARD_H
#define BOARD_WIDTH 20 // Oyun tahtasının genişliği
#define BOARD_HEIGHT 20 // Oyun tahtasının yüksekliği
typedef struct {
int x;
int y;
} Pozisyon;
typedef enum {
BOS,
YILAN,
YEM,
DUVAR
} HucreTipi;
HucreTipi board[BOARD_HEIGHT][BOARD_WIDTH]; // Oyun tahtası
void board_olustur(); // Oyun tahtasını oluşturur
void board_guncelle(Pozisyon* yilan_pozisyonlari, int yilan_uzunlugu, Pozisyon yem_pozisyonu); // Oyun tahtasını günceller
#endif /* BOARD_H */
Adım: Rasgele Sayılar Rasgele sayılar, C'de "rand()" fonksiyonu kullanılarak oluşturulabilir. Bu fonksiyon, "stdlib.h" kütüphanesi altında yer alır. "srand()" fonksiyonu ile rasgele sayılar için bir başlangıç değeri belirleyebilirsiniz.
C:
#ifndef BOARD_H
#define BOARD_H
#include <stdlib.h> // random, srand
#include <time.h> // time
// Oyun tahtası boyutunu belirleyen sabitler
#define BOARD_ROWS 10
#define BOARD_COLS 10
// Tahta üzerindeki her bir hücreyi temsil eden struct
typedef struct {
int row; // Hücrenin satırı
int col; // Hücrenin sütunu
} Cell;
// Tahta üzerindeki her bir hücrenin değerini temsil eden enum
typedef enum {
EMPTY, // Hücre boş
FOOD // Hücrede yemek var
} CellValue;
// Oyun tahtasını temsil eden struct
typedef struct {
CellValue cells[BOARD_ROWS][BOARD_COLS]; // Tahtanın hücrelerinin değerleri
int food_row; // Yemek hücresinin satırı
int food_col; // Yemek hücresinin sütunu
} Board;
// Oyun tahtasını oluşturmak için kullanılan fonksiyon
Board create_board();
// Yemek hücresini tahtaya yerleştirmek için kullanılan fonksiyon
void place_food(Board *board);
#endif
Adım: Oyun Mantığı Rasgele sayı bulmaca oyununun mantığı, oyuncunun rasgele bir sayıyı tahmin etmesi ve doğru sayıyı bulmaya çalışmasıdır. Oyun mantığını "game.h" dosyasında tanımlayabilirsiniz. Oyunun temel kurallarını, puanlama sistemini ve diğer özellikleri belirleyebilirsiniz.
C:
#ifndef GAME_H
#define GAME_H
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// Rasgele sayı üretimi için kullanılacak aralıkların minimum ve maksimum değerleri
#define MIN_NUMBER 1
#define MAX_NUMBER 100
// Oyunun mevcut durumunu tutacak olan struct
struct GameState {
int number_to_guess;
int guess_count;
int guess_limit;
};
// Yeni bir oyun durumu yaratma fonksiyonu
struct GameState new_game_state(int guess_limit) {
// Oyun durumu için gerekli değişkenleri tanımlama
struct GameState game_state;
int number_to_guess;
// Rastgele sayı üretimi
srand(time(NULL));
number_to_guess = rand() % (MAX_NUMBER - MIN_NUMBER + 1) + MIN_NUMBER;
// Oyun durumu değişkenlerini başlatma
game_state.number_to_guess = number_to_guess;
game_state.guess_count = 0;
game_state.guess_limit = guess_limit;
return game_state;
}
// Tahmin kontrolü yapma fonksiyonu
int check_guess(struct GameState *game_state, int guess) {
// Tahmin sayısını artırma
game_state->guess_count++;
// Tahminin doğru olup olmadığını kontrol etme
if (guess == game_state->number_to_guess) {
return 1;
} else if (guess < game_state->number_to_guess) {
printf("Daha yüksek bir sayı girin.\n");
} else {
printf("Daha düşük bir sayı girin.\n");
}
// Tahmin hakkı kalmadıysa oyunu kaybettin mesajını gösterme
if (game_state->guess_count >= game_state->guess_limit) {
printf("Oyunu kaybettiniz. Doğru sayı: %d\n", game_state->number_to_guess);
return -1;
}
// Tahmin hakkı kaldıysa oyun devam ediyor
return 0;
}
#endif
Adım: Oyun Motoru Son olarak, oyunun motorunu oluşturmanız gerekiyor. Bu motor, oyuncunun tahminlerini alacak, doğru tahmini kontrol edecek ve puanlama sistemini işletecek. Motoru "engine.h" dosyasında tanımlayabilirsiniz.
C:
#ifndef ENGINE_H
#define ENGINE_H
#include <stdlib.h>
#include <time.h>
// Rasgele sayı üretmek için kullanılan fonksiyon
int generate_random_number(int min_num, int max_num)
{
static int init_flag = 0;
if (!init_flag) {
srand(time(NULL));
init_flag = 1;
}
return (rand() % (max_num - min_num + 1)) + min_num;
}
#endif // ENGINE_H
Rasgele sayı bulmaca oyununu bu adımları takip ederek oluşturabilirsiniz. "main.c" dosyasında ana menüyü çağırarak oyunu başlatabilirsiniz. İyi şanslar ve keyifli kodlamalar!
C:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "board.h"
#include "engine.h"
#include "menu.h"
int main() {
srand(time(NULL)); // rastgele sayı üretmek için başlangıç zamanını kullan
int board_size = get_board_size(); // kullanıcıdan oyun tahtasının boyutunu iste
int target = get_target(); // kullanıcıdan hedef sayıyı iste
Board board = create_board(board_size); // oyun tahtasını oluştur
initialize_board(&board); // tahtayı başlangıç değerleriyle doldur
printf("Oyun tahtası:\n");
print_board(&board); // oyun tahtasını yazdır
Engine engine = create_engine(&board, target); // oyun motorunu oluştur
int num_moves = 0; // hamle sayısı
int result = -1; // oyun sonucu
do {
int row, col, val;
get_move(&row, &col, &val); // kullanıcıdan hamle girişini iste
int move_result = make_move(&engine, row, col, val); // hamleyi yap ve sonucu kaydet
if (move_result == -1) {
printf("Geçersiz hamle. Lütfen tekrar deneyin.\n");
} else if (move_result == 0) {
printf("Bu hamle sonucu, hedefe ulaşamayacaksınız.\n");
} else if (move_result == 1) {
printf("Tebrikler! Hedef sayıya ulaştınız.\n");
result = 1;
break;
} else {
printf("Hamle kabul edildi.\n");
num_moves++;
}
printf("Oyun tahtası:\n");
print_board(&board); // güncellenmiş oyun tahtasını yazdır
} while (num_moves < board_size * board_size); // oyun bitti mi kontrol et
if (result == -1) {
printf("Oyun bitti. Hedef sayıya ulaşamadınız.\n");
} else {
printf("Oyun bitti. %d hamlede hedef sayıya ulaştınız.\n", num_moves);
}
destroy_board(&board); // oyun tahtasını serbest bırak
destroy_engine(&engine); // oyun motorunu serbest bırak
return 0;
}