🎮 C ile Tetris Oyunu Geliştirme Adımları ve Kodlama 🚀

fsKS

Üye
11 Şub 2023
137
74
🕹️👾🧑‍💻🚀 Tetris oyunu için kod yazmak heyecan verici! Aşağıdaki adımları takip ederek kendi Tetris oyununuzu oluşturabilirsiniz:
C:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include "menu.h"
#include "board.h"
#include "blocks.h"
#include "game.h"
#include "engine.h"

int main()
{
    srand(time(NULL));
    showMenu(); // Ana menüyü göster

    return 0;
}

📋 İlk olarak, oyunun ana menüsünü oluşturmanız gerekiyor. Bu menüde, oyuncuların oyunu başlatması, seçenekleri değiştirmesi veya oyunu kapatması gibi seçenekler yer alacaktır.
C:
void showMenu()
{
    int choice;

    do {
        system("cls");
        printf("\n\n\t\tTETRIS OYUNU\n");
        printf("\n\t\t1. Oyuna Basla");
        printf("\n\t\t2. Ayarlar");
        printf("\n\t\t3. Yapimci Hakkinda");
        printf("\n\t\t4. Cikis");
        printf("\n\t\tSeciminiz: ");
        scanf("%d", &choice);

        switch (choice) {
            case 1:
                startGame(); // Oyunu başlat
                break;
            case 2:
                showSettings(); // Ayarları göster
                break;
            case 3:
                showAbout(); // Yapımcı hakkında bilgi göster
                break;
            case 4:
                exit(0); // Programdan çıkış yap
            default:
                printf("\n\t\tGecersiz secim! Tekrar deneyin.\n");
        }
        getch();
    } while (choice != 4);
}

void showSettings()
{
    system("cls");
    printf("\n\n\t\tAYARLAR\n");
    printf("\n\t\t1. Ses Ayarları");
    printf("\n\t\t2. Grafik Ayarları");
    printf("\n\t\t3. Kontrol Ayarları");
    printf("\n\t\t4. Geri");
}

void showAbout()
{
    system("cls");
    printf("\n\n\t\tYAPIMCI HAKKINDA\n");
    printf("\n\t\tAd: fsKS");
    printf("\n\t\tE-posta: [email protected]");
    printf("\n\t\tWeb Sitesi: www.instagram.com/ahmeteminsezen");
    printf("\n\n\t\tTETRIS OYUNU (C) 2023 fsKS.");
}

🎲 Tetris oyunu, blokların aşağıya düşürüldüğü bir oyun tahtası kullanır. Bu tahtayı oluşturmak için "board.h" adında bir dosya oluşturun ve tahta boyutlarını belirleyin.
C:
#define BOARD_WIDTH 10
#define BOARD_HEIGHT 20

int board[BOARD_HEIGHT][BOARD_WIDTH];

void initBoard();
void drawBoard();
void clearBoard();
void updateBoard(int x, int y, int value);
int isBlockOnBoard(int x, int y);
int isRowFull(int y);
void deleteRow(int y);
void shiftRows(int y);
C:
#include "board.h"

void initBoard()
{
    int i, j;
    for (i = 0; i < BOARD_HEIGHT; i++) {
        for (j = 0; j < BOARD_WIDTH; j++) {
            board[i][j] = 0;
        }
    }
}

void drawBoard()
{
    int i, j;
    for (i = 0; i < BOARD_HEIGHT; i++) {
        for (j = 0; j < BOARD
🧊 Tetris oyunu, farklı şekillerdeki blokların kullanımına dayanır. Bu blokların her birinin farklı bir şekli vardır ve bloklar tahtanın üst kısmından aşağıya doğru düşer. Blokları oluşturmak için "blocks.h" adında bir dosya oluşturun ve blokların şekillerini, renklerini ve diğer özelliklerini belirleyin.
C:
#ifndef BLOCKS_H
#define BLOCKS_H

typedef struct {
    int x;
    int y;
    int shape[4][4];
    int color;
} Block;

Block get_random_block(void);

#endif

🧠 Tetris oyununun temel mantığı, blokları tahtanın altına düşürmek ve blokların şeklini değiştirerek tahtadaki diğer bloklarla eşleştirmektir. Oyun mantığını oluşturmak için "game.h" adında bir dosya oluşturun ve oyunun temel kurallarını, puanlama sistemi ve diğer özellikleri belirleyin.
C:
#ifndef GAME_H
#define GAME_H

#include <stdbool.h>
#include "blocks.h"
#include "board.h"

#define LEVEL_THRESHOLD 10

typedef struct {
    int score;
    int level;
} GameStats;

void init_game(Board board, GameStats* stats);
void update_stats(GameStats* stats, int lines_completed);
void update_game(Board board, Block* current_block, GameStats* stats, int* dx, int* dy, int* rotation, bool* is_paused);
void move_left(Block* block, int* dx, Board board);
void move_right(Block* block, int* dx, Board board);
void rotate(Block* block, int* rotation, Board board);
void drop(Block* block, int* dy, Board board);
int calculate_score(int lines_completed, int level);
void display_game_over_screen(Board board, GameStats stats);

#endif

🎮 Son olarak, oyunun motorunu oluşturmanız gerekiyor. Bu motor, oyuncuların tetris bloklarını hareket ettirmelerini, döndürmelerini ve tahtadaki bloklarla etkileşime girmelerini sağlar. Motoru oluşturmak için "engine.h" adında bir dosya oluşturun ve oyunun işleyişini sağlayacak fonksiyonları burada tanımlayın.
C:
#ifndef ENGINE_H
#define ENGINE_H

#include "blocks.h"
#include "board.h"

void draw_board(Board board);
void draw_block(Block block, int x, int y);
bool is_valid_move(Block block, int x, int y, Board board);
void add_block_to_board(Block block, int x, int y, Board board);
bool is_game_over(Block block, Board board);
void remove_completed_rows(Board board);

#endif

👨‍💻 Tetris oyununu bu adımları takip ederek oluşturabilirsiniz. Oyunu çalıştırmak için "main.c" adında bir dosya oluşturun ve ana menüden oyunu başlatın. İyi şanslar ve keyifli kodlamalar!
C:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "menu.h"
#include "board.h"
#include "blocks.h"
#include "game.h"
#include "engine.h"

int main() {
  // Rastgele sayıları üretmek için seed ayarla
  srand(time(NULL));
 
  // Ana menüyü göster
  showMenu();
 
  // Oyun tahtasını ve blokları oluştur
  Board board;
  initBoard(&board);
 
  Block currentBlock;
  initBlock(&currentBlock);
 
  Block nextBlock;
  initBlock(&nextBlock);
 
  // Oyunu başlat
  int score = 0;
  int level = 1;
  int speed = 1000;
 
  int isGameOver = 0;
 
  while (!isGameOver) {
    // Blokun hareket etmesini sağla
    moveBlock(&board, &currentBlock, &nextBlock, &score, &level, &speed, &isGameOver);
   
    // Tahtayı ekrana yazdır
    printBoard(&board);
   
    // Skor ve seviye bilgilerini ekrana yazdır
    printf("\nScore: %d\n", score);
    printf("Level: %d\n", level);
   
    // Hızı uyku ile ayarla
    usleep(speed * 1000);
  }
 
  printf("\nGame over! Your score is %d\n", score);
 
  return 0;
}
 
Son düzenleme:

Zreaoz

Üye
21 Haz 2021
165
54
🕹️👾🧑‍💻🚀 Tetris oyunu için kod yazmak heyecan verici! Aşağıdaki adımları takip ederek kendi Tetris oyununuzu oluşturabilirsiniz:
C:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include "menu.h"
#include "board.h"
#include "blocks.h"
#include "game.h"
#include "engine.h"

int main()
{
    srand(time(NULL));
    showMenu(); // Ana menüyü göster

    return 0;
}

📋 İlk olarak, oyunun ana menüsünü oluşturmanız gerekiyor. Bu menüde, oyuncuların oyunu başlatması, seçenekleri değiştirmesi veya oyunu kapatması gibi seçenekler yer alacaktır.
C:
void showMenu()
{
    int choice;

    do {
        system("cls");
        printf("\n\n\t\tTETRIS OYUNU\n");
        printf("\n\t\t1. Oyuna Basla");
        printf("\n\t\t2. Ayarlar");
        printf("\n\t\t3. Yapimci Hakkinda");
        printf("\n\t\t4. Cikis");
        printf("\n\t\tSeciminiz: ");
        scanf("%d", &choice);

        switch (choice) {
            case 1:
                startGame(); // Oyunu başlat
                break;
            case 2:
                showSettings(); // Ayarları göster
                break;
            case 3:
                showAbout(); // Yapımcı hakkında bilgi göster
                break;
            case 4:
                exit(0); // Programdan çıkış yap
            default:
                printf("\n\t\tGecersiz secim! Tekrar deneyin.\n");
        }
        getch();
    } while (choice != 4);
}

void showSettings()
{
    system("cls");
    printf("\n\n\t\tAYARLAR\n");
    printf("\n\t\t1. Ses Ayarları");
    printf("\n\t\t2. Grafik Ayarları");
    printf("\n\t\t3. Kontrol Ayarları");
    printf("\n\t\t4. Geri");
}

void showAbout()
{
    system("cls");
    printf("\n\n\t\tYAPIMCI HAKKINDA\n");
    printf("\n\t\tAd: fsKS");
    printf("\n\t\tE-posta: [email protected]");
    printf("\n\t\tWeb Sitesi: www.instagram.com/ahmeteminsezen");
    printf("\n\n\t\tTETRIS OYUNU (C) 2023 fsKS.");
}

🎲 Tetris oyunu, blokların aşağıya düşürüldüğü bir oyun tahtası kullanır. Bu tahtayı oluşturmak için "board.h" adında bir dosya oluşturun ve tahta boyutlarını belirleyin.
C:
#define BOARD_WIDTH 10
#define BOARD_HEIGHT 20

int board[BOARD_HEIGHT][BOARD_WIDTH];

void initBoard();
void drawBoard();
void clearBoard();
void updateBoard(int x, int y, int value);
int isBlockOnBoard(int x, int y);
int isRowFull(int y);
void deleteRow(int y);
void shiftRows(int y);
C:
#include "board.h"

void initBoard()
{
    int i, j;
    for (i = 0; i < BOARD_HEIGHT; i++) {
        for (j = 0; j < BOARD_WIDTH; j++) {
            board[i][j] = 0;
        }
    }
}

void drawBoard()
{
    int i, j;
    for (i = 0; i < BOARD_HEIGHT; i++) {
        for (j = 0; j < BOARD
🧊 Tetris oyunu, farklı şekillerdeki blokların kullanımına dayanır. Bu blokların her birinin farklı bir şekli vardır ve bloklar tahtanın üst kısmından aşağıya doğru düşer. Blokları oluşturmak için "blocks.h" adında bir dosya oluşturun ve blokların şekillerini, renklerini ve diğer özelliklerini belirleyin.
C:
#ifndef BLOCKS_H
#define BLOCKS_H

typedef struct {
    int x;
    int y;
    int shape[4][4];
    int color;
} Block;

Block get_random_block(void);

#endif

🧠 Tetris oyununun temel mantığı, blokları tahtanın altına düşürmek ve blokların şeklini değiştirerek tahtadaki diğer bloklarla eşleştirmektir. Oyun mantığını oluşturmak için "game.h" adında bir dosya oluşturun ve oyunun temel kurallarını, puanlama sistemi ve diğer özellikleri belirleyin.
C:
#ifndef GAME_H
#define GAME_H

#include <stdbool.h>
#include "blocks.h"
#include "board.h"

#define LEVEL_THRESHOLD 10

typedef struct {
    int score;
    int level;
} GameStats;

void init_game(Board board, GameStats* stats);
void update_stats(GameStats* stats, int lines_completed);
void update_game(Board board, Block* current_block, GameStats* stats, int* dx, int* dy, int* rotation, bool* is_paused);
void move_left(Block* block, int* dx, Board board);
void move_right(Block* block, int* dx, Board board);
void rotate(Block* block, int* rotation, Board board);
void drop(Block* block, int* dy, Board board);
int calculate_score(int lines_completed, int level);
void display_game_over_screen(Board board, GameStats stats);

#endif

🎮 Son olarak, oyunun motorunu oluşturmanız gerekiyor. Bu motor, oyuncuların tetris bloklarını hareket ettirmelerini, döndürmelerini ve tahtadaki bloklarla etkileşime girmelerini sağlar. Motoru oluşturmak için "engine.h" adında bir dosya oluşturun ve oyunun işleyişini sağlayacak fonksiyonları burada tanımlayın.
C:
#ifndef ENGINE_H
#define ENGINE_H

#include "blocks.h"
#include "board.h"

void draw_board(Board board);
void draw_block(Block block, int x, int y);
bool is_valid_move(Block block, int x, int y, Board board);
void add_block_to_board(Block block, int x, int y, Board board);
bool is_game_over(Block block, Board board);
void remove_completed_rows(Board board);

#endif

👨‍💻 Tetris oyununu bu adımları takip ederek oluşturabilirsiniz. Oyunu çalıştırmak için "main.c" adında bir dosya oluşturun ve ana menüden oyunu başlatın. İyi şanslar ve keyifli kodlamalar!
C:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "menu.h"
#include "board.h"
#include "blocks.h"
#include "game.h"
#include "engine.h"

int main() {
  // Rastgele sayıları üretmek için seed ayarla
  srand(time(NULL));
 
  // Ana menüyü göster
  showMenu();
 
  // Oyun tahtasını ve blokları oluştur
  Board board;
  initBoard(&board);
 
  Block currentBlock;
  initBlock(&currentBlock);
 
  Block nextBlock;
  initBlock(&nextBlock);
 
  // Oyunu başlat
  int score = 0;
  int level = 1;
  int speed = 1000;
 
  int isGameOver = 0;
 
  while (!isGameOver) {
    // Blokun hareket etmesini sağla
    moveBlock(&board, &currentBlock, &nextBlock, &score, &level, &speed, &isGameOver);
  
    // Tahtayı ekrana yazdır
    printBoard(&board);
  
    // Skor ve seviye bilgilerini ekrana yazdır
    printf("\nScore: %d\n", score);
    printf("Level: %d\n", level);
  
    // Hızı uyku ile ayarla
    usleep(speed * 1000);
  }
 
  printf("\nGame over! Your score is %d\n", score);
 
  return 0;
}
eline saglik
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.