iki boyutlu diziler için örnek

Başlatan command, 10 Kasım 2009 - 22:19:15

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

command


uses crt;

var sat,sut,i,c : integer;
tahta : array [1..8,1..8] of integer;
satir,sutun:integer;

BEGIN
highvideo;
clrscr;
for sat:=1 to 8 do
for sut:=1 to 8 do
tahta[sat,sut]:=0;

write('Hedef : ');
readln(satir,sutun);
tahta[satir,sutun]:=1;// dizideki hedef

for i:=1 to 8 do
begin
for c:=1 to 8 do
begin
if tahta[i,c]=1 then textcolor(9) else textcolor(8);
write(tahta[i,c]:02);
end;
writeln;
end;
normvideo;
halt(0);
END.

command

biraz daha gelişmiş hali iki boyutlu dizi içerisinde a,s,d,w tuslarını kullanarak dizide istediğimiz noktaya hareket etme :)

program satranc;

uses crt;

var sat,sut,i,c,satir,sutun : integer;
tahta : array [1..8,1..8] of integer;
tus:char;

label tekrar,son;

BEGIN
highvideo;
clrscr;
satir:=1;sutun:=1;
for sat:=1 to 8 do
for sut:=1 to 8 do
tahta[sat,sut]:=0;

tahta[1,1]:=1;// başlangıç noktası...

tekrar:

tahta[satir,sutun]:=1;// hareket...
clrscr;
for i:=1 to 8 do
begin
for c:=1 to 8 do
begin
if tahta[i,c]=1 then textcolor(9) else textcolor(8);
write(tahta[i,c]:02);
end;
writeln;
end;
tus:=readkey;
case tus of
'a' : sutun:=sutun-1;
's' : satir:=satir+1;
'd' : sutun:=sutun+1;
'w' : satir:=satir-1;
#27 : goto son;
end;
if tus='a' then tahta[satir,sutun+1]:=0;
if tus='s' then tahta[satir-1,sutun]:=0;
if tus='d' then tahta[satir,sutun-1]:=0;
if tus='w' then tahta[satir+1,sutun]:=0;
goto tekrar;
son:
normvideo;
halt(0);
END.

command

yukardaki örnekte yaşanan dizi dışına çıkma sorunu düzeltilmiş hali :)


program satranc;

uses crt;

var i,c,satir,sutun: integer;
tahta : array [1..8,1..8] of integer;
pointer,freez:integer;
tus:char;

label tekrar,son;

BEGIN
highvideo;
satir:=1;sutun:=1; // oyuncunun başlangıç noktası
pointer:=1; // dizideki oyuncumuz esas oğlan
freez:=0; // sahne dekoru


tekrar:
clrscr;
textcolor(14);
writeln('Str ',satir:02,' Stn ',sutun:02,' ESC');
tahta[satir,sutun]:=pointer;// ve motor :)
for i:=1 to 8 do
begin
for c:=1 to 8 do
begin
if tahta[i,c]=pointer then textcolor(9) else textcolor(8);
write(tahta[i,c]:02);
end;
writeln;
end;

tus:=readkey;
case tus of
'a' : sutun:=sutun-1;
's' : satir:=satir+1;
'd' : sutun:=sutun+1;
'w' : satir:=satir-1;
#27 : goto son;
end;
// iz silme
if tus='a' then tahta[satir,sutun+1]:=freez;
if tus='s' then tahta[satir-1,sutun]:=freez;
if tus='d' then tahta[satir,sutun-1]:=freez;
if tus='w' then tahta[satir+1,sutun]:=freez;
// sınır
if satir>8 then satir:=8 else if satir<1 then satir:=1;
if sutun>8 then sutun:=8 else if sutun<1 then sutun:=1;



goto tekrar;

son:
normvideo;
clrscr;
halt(0);
END.


erginemr

Elinize sağlık. Bayağı kapsamlı bir oyun programı oldu.

Bu programları FreePascal'de mi derliyorsunuz?

command

Teşekkür ederim evet Free Pascal derleyicisini kullanıyorum ide olarakta geany , Yavaş yavaş öğreniyorum kısıtlı sayıdaki dökümanlarla bir şeyler yapıp buraya koyuyorum umarım ilgilenenler için faydalı olur, kapsam konusunda pekte kapsamlı değil ama olacak inşallah ilerde :)

heartsmagic

Alıntı yapılan: command - 05 Aralık 2009 - 22:07:17
Teşekkür ederim evet Free Pascal derleyicisini kullanıyorum ide olarakta geany , Yavaş yavaş öğreniyorum kısıtlı sayıdaki dökümanlarla bir şeyler yapıp buraya koyuyorum umarım ilgilenenler için faydalı olur, kapsam konusunda pekte kapsamlı değil ama olacak inşallah ilerde :)
Alıntı Yap
Damlaya damlaya göl olur

Atasözlerinden gidiyoruz bu akşam :) Eline sağlık @command.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

command

GNU/linux dünyası çok kapsamlı umarım bir gün bu sayfalara bakar hep beraber hey gidi günler diyebiliriz:)