Ç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'