Matlab ile Yılan Oyunu

Çoğumuzun bildiği gibi yılan oyunu genellikle oyuncunun yılanın kafasını yönlendirdiği bir oyun türüdür. Oyuncu yılanın yönünü belirleyerek yılanın kafasını hareket ettirir ve yılanın kafası nereye giderse yılan da o yönde hareket eder.

Yılanın amacı, yılanın kafasını yönlendirerek oyunda rastgele yerleştirilen yemleri yemek ve yılanın boyunu uzatmaktır. Yılanın kafası veya vücudu, oyun alanının kenarlarına veya kendisine dokunduğunda oyun biter.

Aşağıda sizlerle paylaştığım Matlab kodu, oyuncunun yılanın kafasını yöneltmesini sağlayacak klavye kontrollerini sağlar ve yılanın hareketini işler. Ayrıca yemek oluşturma, yılanın uzunluğunu kontrol etme ve oyunun bitişini kontrol etme gibi işlevleri de sağlar. Bu şekilde, oyuncu yılanı yönlendirerek oyunu oynar ve yılanın boyunu uzatırken, yılanın kendisine veya oyun alanının kenarlarına çarpmasını önlemeye çalışır. 

Yılan oyununun Matlab kodunu aşağıda bulabilirsiniz. Bu kod, Python'da olduğu gibi Pygame kütüphanesi gibi bir kütüphane ile yazılmamıştır. Ancak bu kez, MATLAB'ın grafik işleme işlevlerini kullanarak oyun ekranını çiziyoruz. Yılanın ve yemeğin konumlarını çizdirmek için plot işlevini kullanıyoruz ve xlim ve ylim işlevleri ile oyun ekranının sınırlarını belirliyoruz. pause işlevi ile de oyun hızını ayarlıyoruz.

MATLAB ile yılan oyununu yazmak, Python ile yazmaktan biraz daha farklı bir yaklaşım gerektiriyor, ancak yine de basit bir şekilde yazılabilir.

% Yılan oyunu

% Ekran boyutu
SCREEN_WIDTH = 500;
SCREEN_HEIGHT = 500;

% Yılanın başlangıç boyutu ve konumu
snake = [25 25; 25 26; 25 27];
dir = 'r'; % Yılanın başlangıç yönü sağa doğru

% Yemek oluşturma
food = [randi([1 SCREEN_WIDTH/10])*10 randi([1 SCREEN_HEIGHT/10])*10];

% Oyun döngüsü
while true
    
    % Klavyeden okunan tuşa göre yön belirleme
    if kbhit
        key = getkey;
        if strcmp(key,'uparrow') && ~strcmp(dir,'d')
            dir = 'u';
        elseif strcmp(key,'downarrow') && ~strcmp(dir,'u')
            dir = 'd';
        elseif strcmp(key,'leftarrow') && ~strcmp(dir,'r')
            dir = 'l';
        elseif strcmp(key,'rightarrow') && ~strcmp(dir,'l')
            dir = 'r';
        end
    end
    
    % Yılanın yeni konumu belirleme
    if strcmp(dir,'u')
        new_head = [snake(1,1)-10 snake(1,2)];
    elseif strcmp(dir,'d')
        new_head = [snake(1,1)+10 snake(1,2)];
    elseif strcmp(dir,'l')
        new_head = [snake(1,1) snake(1,2)-10];
    else
        new_head = [snake(1,1) snake(1,2)+10];
    end
    
    % Yılanın başının konumu kontrol edilir
    if new_head(1) < 1 || new_head(1) > SCREEN_WIDTH || ...
            new_head(2) < 1 || new_head(2) > SCREEN_HEIGHT || ...
            any(all(bsxfun(@eq,new_head,snake),2))
        break % Oyun biter
    end
    
    % Yılanın yeni konumuna göre yılanın boyutunu güncelleme
    snake = [new_head; snake];
    if ~all(new_head==food)
        snake(end,:) = []; % Yılanın kuyruğunu kısaltma
    else
        food = [randi([1 SCREEN_WIDTH/10])*10 randi([1 SCREEN_HEIGHT/10])*10]; % Yeni yemek oluşturma
    end
    
    % Oyun ekranını çizdirme
    clf
    hold on
    plot(food(1),food(2),'r.','MarkerSize',20)
    plot(snake(:,1),snake(:,2),'k-','LineWidth',2)
    xlim([0 SCREEN_WIDTH])
    ylim([0 SCREEN_HEIGHT])
    set(gca,'XTick',0:10:SCREEN_WIDTH,'YTick',0:10:SCREEN_HEIGHT)
    drawnow
    
    % Oyun hızını ayarlama
    pause(0.1)
end

NOT: Aynı oyunun Python ile yazılmış halini görmek için TIKLAYINIZ ;)

matlab, 'matlab yılan oyunu', 'matlab ile oyun', 'matlab snake game', 'matlab yılan oyunu kodları', 'matlab yılan oyunu kodu',  'matlab pygame kütüphanesi', matlab,  'oyun kodlama örnekleri', 'örnek oyun kodu', 'matlab örnek oyun kodu'

 

Bilgilendirme

www.aliosmangokcan.com sayfasına gösterdiğiniz ilgiden dolayı teşekkür ederim. İçeriklerle ilgili duygu ve düşüncelerinizi mail adresim üzerinden iletebilirsiniz...

 

İstatistikler

  • Kullanıcılar 1
  • Makaleler 112
  • Makale Görüntüleme 876604