[Pomoc] Kółko krzyżyk

0

Witam wszystkich :)
Na zadanie mam napisac kik 20 x 20 ble ble ble ale to ma być skrukturalne czyt bez goto i brake
(dowiedzialem sie o tym po napisaniu tego co wkleilem nizej ) i nie wiem teraz jak mam przerobic zeby dzialalo bez tego gotoxy...
mogł by ktoś mnie nakierowac pomoc czy co kolwiek :)

program kikik;
uses crt;

var
Plansza:array[1..20,1..20] of char; {Plansza do rozgrywki}
kursor_x,kursor_y,d:integer; {Gdzie aktualnie znajduje sie kursor}
koniec,wyjscie,jeszczeraz:boolean; {czy konczymy juz}
wynik:char;

procedure Czysc; {precedura zapelniajaca tablice znakiem .}
var i,j:integer;
begin
for i := 1 to 20 do
for j := 1 to 20 do
Plansza[i,j]:='.';
end;

procedure Rysuj; {procedura rysujaca plansze}
var
i,j:integer;
begin
{Ustalenie koloru tla}
TextBackGround(white);
for i := 1 to 20 do
for j := 1 to 20 do
begin
if(i=kursor_x)and(j=kursor_y)then
TextBackGround(red);
{Jeżeli i,j = kursor_x,kursorY wtedy zmien tlo}

gotoxy(i,j);

 textcolor(black);
 write(Plansza[i,j]);
 TextBackGround(white);

end;
end;

procedure kursor;
var znak:char;
begin
repeat
znak:=readkey;
{Tutaj obsluga klawisz zmiennianie zmiennych kursor_x i y}
case znak
of
'4'=kursor_x-1;
'6'=kursor_x+1;
'8'=kursor_y-1;
'2'=kursor_y+1;
end;
if(kursor_x>20)then kursor_x:=1;
if(kursor_x<1)then kursor_x:=20;
if(kursor_y>20)then kursor_y:=1;
if(kursor_y<1)then kursor_y:=20;
Rysuj;
until(koniec)or((znak=#13)and(plansza[kursor_x,kursor_y]='.'));
end;

procedure gracz1;
begin
Plansza[kursor_x,kursor_y]:='X';
Rysuj;
end;

procedure gracz2;
begin
Plansza[kursor_x,kursor_y]:='0';
Rysuj;
end;

function sprawdz:char;
var
i,j:integer;
begin
wynik:=' ';

   for j:=1 to 20 do

    begin

     for i:=1 to 20 do

      begin

       if (plansza[i,j]='X') and (plansza[i,i+1]='X') and (plansza[i,j+2]='X')
       and (plansza[i,j+3]='X') and(plansza[i,j+4]='X')
       then wynik:='X';

       if (plansza[i,j]='0') and (plansza[i,j+1]='0') and (plansza[i,j+2]='0')
       and (plansza[i,j+3]='0') and(plansza[i,j+4]='0')
       then wynik:='0';

      end;

    end;

    for i:=1 to 20 do

    begin

     for j:=1 to 20 do

      begin

       if (plansza[i,j]='X') and (plansza[i+1,j]='X') and (plansza[i+2,j]='X')
       and (plansza[i+3,j]='X') and(plansza[i+4,j]='X')
       then wynik:='X';

       if (plansza[i,j]='0') and (plansza[i+1,j]='0') and (plansza[i+2,j]='0')
       and (plansza[i+3,j]='0') and(plansza[i+4,j]='0')
       then wynik:='0';

      end;

    end;

end;

begin

Repeat
textcolor(white);
TextBackGround(black);
clrscr;
czysc;
kursor_x:=1;
kursor_y:=1;
write(#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#175);
write(' Menu ');
writeln(#174);
write(#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32);
writeln(' 8-w g˘r©');
write(#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32);
writeln(' 2-w d˘');
write(#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32);
writeln(' 4-w lewo');
write(#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32);
writeln(' 6-w prawo');
write(#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32);
writeln(' ENTER-zatwierd«');
write(#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32);
writeln(' T-Tak');
write(#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32#32);
writeln(' N-Nie');
writeln;
rysuj;
textcolor(white);
TextBackGround(black);
writeln;
repeat

kursor;
gracz1;
sprawdz;

if wynik='X' then

writeln('Wygra X!!!');
kursor;

if wynik='X' then
writeln('Wygra X!!!')
else
gracz2;
sprawdz;

if wynik='0' then
writeln('Wygra 0!!!');

until (wynik='X') or (wynik='0');
textcolor(white);
TextBackGround(black);
Writeln('Jeszcze raz? (T/N)');

until readkey='n';

end.

0

Spokojnie...
Miało być bez Goto, czy bez GotoXY ?

0

i tego i tego...
gdyby moglo byc goto to w sumie mogl bym oddac programik ale niestety bez goto sie sypie juz kombinowalem ale hmmm nic z tego nie wyszlo

0

Przede wszystkim przeczytaj, co to jest Programowanie strukturalne. Dowiesz się wtedy, że nie o procedurę **GotoXY ** tutaj chodzi.

Twój kod się kompiluje, więc w sumie mógłbyś oddać programik, ale niestety - z instrukcją goto, czy bez niej - program ma jeszcze dużo błędów

0

no jesli chodzi o bledy to spoko( nie mowie ze to jest jakies mega cudo)..to jest wersja robocza do oddania mam pare dni i poprawie co jeszcze nie zostalo

1 użytkowników online, w tym zalogowanych: 0, gości: 1