Turbo Pascal prosze o sprawdzenie

Prosze kogoś o podpowiedź w sprawie tego zadania:
program jjj;
uses CRT;
var t:array[1..10,1..10] of integer;
l:array['a'..'z'] of char;
x,y:integer;

begin
ClrScr;
writeln(' x1–x2–x3–x4–x5–x6–x7–x8–x9–x10');
writeln('y1 ');
writeln('| ');
writeln('y2 ');
writeln('| ');
writeln('y3 ');
writeln('| ');
writeln('y4 ');
writeln('| ');
writeln('y5 ');
writeln('| ');
writeln('y6 ');
writeln('| ');
writeln('y7 ');
writeln('| ');
writeln('y8 ');
writeln('| ');
writeln('y9 ');
writeln('| ');
writeln('y10 ');
writeln(' x1–x2–x3–x4–x5–x6–x7–x8–x9–x10');
writeln('');
x:=0;
y:=0;
writeln('Podaj wartosc X : ');
readln(x);
writeln('Podaj wartosc Y : ');
readln(y);
begin
if (x=1) and (y=1) then
GoToXY(1*x,2*y);
write(l);
readln;
end;
end.


PROBLEM DOTYCZY WPISYWANIA LITER W ODPOWIEDNIE MIEJSCE TEJ TABELI

Odpowiedzi: 20

Zrobiłem juź!!! tylko nie wiem czemu litery nie chca sie uzupełniać po rundzie?
program przerobka;
uses CRT;

const min = 65;
maks = 90;
var t:array[1..15,1..15] of char;

licznik, losowana, x, y, p, j, sp, tt:integer;
punkty: array[1..2] of integer;
i,menu:word;
gracze: array[1..2, 1..7] of char;
ktora: byte;
m, g: char;
slowo : string;
Procedure koniec;
begin
ClrScr;
Writeln('Do zobaczenia!!!');
readkey;
end;

Procedure pokazTab;
begin
for x := 1 to 15 do
write('x', x,' ');
writeln;
for y := 1 to 15 do begin
for x := 1 to 15 do begin
if t[x,y] = '' then write(' ')
else write(t[x,y], ' ');
if x > 9 then write(' ');
end;
write('y', y);
writeln;
end;
end;

Procedure losujLiterki(gracz: byte);
var znPuste: byte; c: char; pkt: byte;
begin
writeln('');
TextColor(white);
repeat
znPuste := 0;
for i := 7 downto 1 do
if gracze[gracz][i] = #0 then znPuste := i;
if znPuste > 0 then begin
losowana := random(maks – min + 1) + min;
c := chr(losowana);

pkt := losowana div 20; { zmniejszenie kodu ASCII }

gracze[gracz][znPuste] := c;
end;
until znPuste = 0;
end;

Procedure sprawdz(s:integer);
begin
for i:=1 to length(slowo) do
slowo[i]:=UpCase(slowo[i]);
tt:=0;
for j:=1 to length(slowo) do
begin
sp:=0;
for i:=1 to 7 do
begin
if gracze[s][i]=slowo[j] then begin;sp:=1;gracze[s][i]:=' ';end;
end;
if sp=0 then tt:=1;
end;
end;
Procedure gra11;
begin

losujLiterki(1);
Inc(licznik);
writeln('');
writeln('');
TextColor(lightcyan);
write('Gracz 1: Oto twoje litery ');
for i := 1 to 7 do
write(gracze[1][i]);
writeln;

TextColor(lightgreen);
writeln('Wpisz slowo ktore chcesz wpisac :');
readln(slowo);
sprawdz(1);
if tt=1 then begin; writeln('Blad! !!!');gra11;end;
writeln('Wpisz liczbe dla X [poziomo] : ');
readln(x);
writeln('Wpisz liczbe dla Y [pionowo]: ');
readln(y);
writeln('Poziomo czy pionowo [0/1]');
readln(p);
if (p=0) and((x+length(slowo))>15) then begin;writeln('Blad!');gra11;end;
if (p=1) and ((y+length(slowo))>15) then begin;writeln('Blad!');gra11;end;
writeln('OK wpisze ',slowo, ' w ',x, ' poziomo i ',y,' pionowo');
readln;
TextColor(lightred);
Inc(punkty[1], Ord(slowo[1]) div 20);
writeln('GRACZ 1 twoj aktualny wynik: ',punkty[1]);
writeln(t[x][y], slowo); {przypisuje warto˜ci x i y do tablicy}
for i:=0 to length(slowo)–1 do
begin
if p=0 then t[x+i][y] := slowo[i+1];
if p<>0 then t[x][y+i] := slowo[i+1];
end;
slowo:='';

readln;
Clrscr;
pokazTab;
writeln('Gracz 2, zgadzasz sie na to ustawienie ? (T/N)');
m := UpCase(ReadKey);
if (m = 'N') then
gracze[1][ktora]:= '0';


if (m = 'T') then
writeln('Gracz 1, grasz dalej ? (T/N) : ');
g := UpCase(ReadKey);
if (g = 'T') then
gra11;
if (g = 'N') then
writeln('Gracz 2 ! Twoja kolej !');

readln;

end;

Procedure gra22;
begin

losujLiterki(2);
inc(licznik);

writeln('');
writeln('');
TextColor(lightcyan);
write('Gracz 2: Oto twoje litery ');
for i := 1 to 7 do
write(gracze[2][i]);
writeln;

TextColor(lightgreen);
writeln('Wpisz slowo ktore chcesz wpisac :');
readln(slowo);
sprawdz(2);
if tt=1 then begin; writeln('Blad! !!!');gra22;end;
writeln('Wpisz liczbe dla X [poziomo] : ');
readln(x);
writeln('Wpisz liczbe dla Y [pionowo]: ');
readln(y);
writeln('Poziomo czy pionowo [0/1]');
readln(p);
if (p=0) and((x+length(slowo))>15) then begin;writeln('Blad!');gra22;end;
if (p=1) and ((y+length(slowo))>15) then begin;writeln('Blad!');gra22;end;


writeln('OK wpisze ',slowo, ' w ',x, ' poziomo i ',y,' pionowo');
readln;
TextColor(lightred);
Inc(punkty[2], Ord(slowo[1]) div 20);
writeln('GRACZ 2 twoj aktualny wynik: ', punkty[2]);
writeln(t[x][y], slowo);
for i:=0 to length(slowo)–1 do
begin
if p=0 then t[x+i][y] := slowo[i+1];
if p<>0 then t[x][y+i] := slowo[i+1];
end;
slowo:='';





readln;
ClrScr;
pokazTab;
writeln('Gracz 1, zgadzasz sie na to ustawienie ? (T/N)');
m := UpCase(ReadKey);
if (m = 'N') then
gracze[1][ktora]:= '0';


if (m = 'T') then
writeln('Gracz 2, grasz dalej ? (T/N) : ');
g := UpCase(ReadKey);
if (g = 'T') then
gra22;
if (g = 'N') then
writeln('Gracz 1 ! Twoja kolej !');
readln;

end;


Procedure gra;
var ktora: byte;
begin
ClrScr;
licznik := 0;
punkty[1] := 0;
punkty[2] := 0;
randomize;
for x := 1 to 2 do
for y := 1 to 7 do
gracze[x, y] := #0;
x := 0;
y := 0;
repeat
gra11;
gra22;

TextColor(yellow);
if punkty[2] >= punkty[1] then
writeln('Gracz 2 wygrywa !');
if punkty[2]
writeln('Gracz 1 wygrywa!!!');


Until (x = 0) or (y = 0);
end;

Procedure menuu;
begin
repeat
ClrScr;
writeln('');
TextColor(yellow);
writeln('Wybierz co chcesz zrobi ');
writeln;
writeln('1 – Nowa gra');
writeln('2 – Koniec');
readln(menu);
if (menu=1) then gra;
if (menu=2) then koniec;
until(menu=2)
end;

begin
ClrScr;
menuu;
readln;
end.
hastic
Dodano
09.02.2006 11:13:29
hastic:
Witam wszystkich, prosze kogoś o skompilowanie sobie tego programu, i prosze o jakąś podpowiedź.

Czy Ty czasem nie przesadzasz ? Rozumie, źe ktoś moźe mieć problem, ale Twój program wałkowany jest juź 4 stronę, a Ty nadal oczekujesz, źe ktoś Ci będzie pisał fragmenty, a Ty tylko (ewentualnie) będziesz przerabiał.
Skoro piszesz program na zaliczenie / zdanie jakiegoś przedmiotu, łotewa to pewnie miałeś jakieś wykłady / lekcje i zapewne literatura teź została podana, źe o notatkach nie wspomnę.
hastic:
Musze przerobić ten program tak aby wprowadzać do tabelki juź poskładane słowa z wylosowanych 7 liter a nie pojedyncze literki

To nie moźna było tak odrazu ?
hastic:
problem tkwi w tym źe program musi sprawdzić jakie losowane litery mam i jeśli uźyje jakiejś literki której nie mam to musi pojawić się komunikat o błędzie:((

Pętla repeat i zagnieźdźony if.
hastic:
program powinien powiadomić nas równieź jeśli wykroczy się poza obszar tabelki

Pewnie if'em wystarczy.
hastic:
(np. mam wylosowane 7 liter : P S I G E S S, i z tych liter moge ułoźyć słowo PIES. Podaje współźędne (x,y) tylko dla P a pozostałe litery powiny juź automatycznie zająć miejsce w następnych polach tabelki.

To tak trudno sobie wyobrazić (albo narysować na kartce) tabelkę i zrobić tak:
Podaję jako miejsce wpisania 'P' komórkę o indeksie 1 , 1 i potem poziomo wpisuję resztę liter – czyli pierwszy* indeks inkrementuję a drugi zostawiam w spokoju, jednoczesnie sprawdzam czy nie wyskoczyłem poza tabelkę.

* – Zaleźy od sposobu implementacji, bo równie dobrze moźna drugi indeks zwiększać i teź wpisywać poziomo.

P.S: Bolda wywaliłem, bo brzydko wyglądał.
Anonymous
Dodano
09.02.2006 10:10:35
Witam wszystkich, prosze kogoś o skompilowanie sobie tego programu, i prosze o jakąś podpowiedź. Musze przerobić ten program tak aby wprowadzać do tabelki juź poskładane słowa z wylosowanych 7 liter a nie pojedyncze literki, problem tkwi w tym źe program musi sprawdzić jakie losowane litery mam i jeśli uźyje jakiejś literki której nie mam to musi pojawić się komunikat o błędzie:(( program powinien powiadomić nas równieź jeśli wykroczy się poza obszar tabelki (np. mam wylosowane 7 liter : P S I G E S S, i z tych liter moge ułoźyć słowo PIES. Podaje współźędne (x,y) tylko dla P a pozostałe litery powiny juź automatycznie zająć miejsce w następnych polach tabelki.
program przerobka;
uses CRT;

const min = 65;
maks = 90;

var t:array[1..15,1..15] of char;

licznik, losowana, x, y:integer;
punkty: array[1..2] of integer;
i,menu:word;
gracze: array[1..2, 1..7] of char;
ktora: byte;
m, g: char;

Procedure koniec;
begin
ClrScr;
Writeln('Do zobaczenia!!!');
readkey;
end;

Procedure pokazTab;
begin
for x := 1 to 15 do
write('x', x,' ');
writeln;
for y := 1 to 15 do begin
for x := 1 to 15 do begin
if t[x,y] = '' then write(' ')
else write(t[x,y], ' ');
if x > 9 then write(' ');
end;
write('y', y);
writeln;
end;
end;

Procedure losujLiterki(gracz: byte);
var znPuste: byte; c: char; pkt: byte;
begin
writeln('');
TextColor(white);
repeat
znPuste := 0;
for i := 7 downto 1 do
if gracze[gracz][i] = #0 then znPuste := i;
if znPuste > 0 then begin
losowana := random(maks – min + 1) + min;
c := chr(losowana);

pkt := losowana div 20; { zmniejszenie kodu ASCII }

gracze[gracz][znPuste] := c;
end;
until znPuste = 0;
end;

Procedure gra11;
begin

losujLiterki(1);
Inc(licznik);

writeln('');
writeln('');
TextColor(lightcyan);
write('Gracz 1: Oto twoje litery ');
for i := 1 to 7 do
write(gracze[1][i]);
writeln;

TextColor(lightgreen);
writeln('Wpisz ktora literke (1–7) chcesz wpisac :');
readln(ktora);
writeln('Wpisz liczbe dla X [poziomo] : ');
readln(x);
writeln('Wpisz liczbe dla Y [pionowo]: ');
readln(y);
writeln('OK wpisze ',gracze[1][ktora], ' w ',x, ' poziomo i ',y,' pionowo');
readln;
TextColor(lightred);
Inc(punkty[1], Ord(gracze[1][ktora]) div 20);
writeln('GRACZ 1 twoj aktualny wynik: ',punkty[1]);
writeln(t[x][y], gracze[1][ktora]); {przypisuje warto˜ci x i y do tablicy}
t[x][y] := gracze[1][ktora];
gracze[1][ktora] := #0;
readln;
Clrscr;
pokazTab;
writeln('Gracz 2, zgadzasz sie na to ustawienie ? (T/N)');
m := UpCase(ReadKey);
if (m = 'N') then
gracze[1][ktora]:= '0' ;


if (m = 'T') then
writeln('Gracz 1, grasz dalej ? (T/N) : ');
g := UpCase(ReadKey);
if (g = 'T') then
gra11;
if (g = 'N') then
writeln('Gracz 2 ! Twoja kolej !');

readln;

end;

Procedure gra22;
begin

losujLiterki(2);
inc(licznik);

writeln('');
writeln('');
TextColor(lightcyan);
write('Gracz 2: Oto twoje litery ');
for i := 1 to 7 do
write(gracze[2][i]);
writeln;

TextColor(lightgreen);
writeln('Wpisz ktora literke (1–7) chcesz wpisac :');
readln(ktora);
writeln('Wpisz liczbe dla X [poziomo] : ');
readln(x);
writeln('Wpisz liczbe dla Y [pionowo]: ');
readln(y);
writeln('OK wpisze ',gracze[2][ktora], ' w ',x, ' poziomo i ',y,' pionowo');
readln;
TextColor(lightred);
Inc(punkty[2], Ord(gracze[2][ktora]) div 20);
writeln('GRACZ 2 twoj aktualny wynik: ', punkty[2]);
writeln(t[x][y], gracze[2][ktora]);
t[x][y] := gracze[2][ktora];
gracze[2][ktora] := #0;
readln;
ClrScr;
pokazTab;
writeln('Gracz 1, zgadzasz sie na to ustawienie ? (T/N)');
m := UpCase(ReadKey);
if (m = 'N') then
gracze[1][ktora]:= '0' ;


if (m = 'T') then
writeln('Gracz 2, grasz dalej ? (T/N) : ');
g := UpCase(ReadKey);
if (g = 'T') then
gra22;
if (g = 'N') then
writeln('Gracz 1 ! Twoja kolej !');
readln;

end;


Procedure gra;
var ktora: byte;
begin
ClrScr;
licznik := 0;
punkty[1] := 0;
punkty[2] := 0;
randomize;
for x := 1 to 2 do
for y := 1 to 7 do
gracze[x, y] := #0;
x := 0;
y := 0;
repeat
gra11;
gra22;

TextColor(yellow);
if punkty[2] >= punkty[1] then
writeln('Gracz 2 wygrywa !!!');
if punkty[2]
writeln('Gracz 1 wygrywa!!!');


Until (x = 0) or (y = 0);
end;

Procedure menuu;
begin
repeat
ClrScr;
writeln('');
TextColor(yellow);
writeln('Wybierz co chcesz zrobi ');
writeln;
writeln('1 – Nowa gra');
writeln('2 – Koniec');
readln(menu);
if (menu=1) then gra;
if (menu=2) then koniec;
until(menu=2)
end;

begin
ClrScr;
menuu;
readln;
end.
hastic
Dodano
08.02.2006 20:48:13
tylko źe to musi być "uniwersalne", przecieź nie wiem w której kolumnie i w którym wierszu mam zastępować '0'?
tablica[x][y] := 0; i to wogóle nie działało?
hastic
Dodano
08.02.2006 13:04:22
hastic:
Tylko jak zastąpić taką litere wpisaną juź do tabelki
Ten kod który zamieściłem wyźej wstawia '0' do liter wylosowanych, a nie do litery wpisanej do tabelki??

Normalnie przypisać do konkretnej komórki sie nie da ?
tablica[1][1] = 0 ?
Anonymous
Dodano
08.02.2006 12:56:57
Tylko jak zastąpić taką litere wpisaną juź do tabelki
Ten kod który zamieściłem wyźej wstawia '0' do liter wylosowanych, a nie do litery wpisanej do tabelki??
hastic
Dodano
08.02.2006 12:48:33
Wpisz na jej miejsce coś innego np. zero. I to bedzie znak, źe tam jest puste miejsce.
Anonymous
Dodano
08.02.2006 11:28:46
Męcze się teraz z pewną waźna sprawą, otóź po kaźdym wpisaniu literki przez gracza drugi gracz ma potwierdzić czy zgadza się z ruchem przeciwnika. Potwierdzenie udało mi się juź zrobić, ale mam problem z tym jeśli gracz się nie zgodzi.
Chciałbym zrobić tak, źe jeśli gracz2 nie zgodzi na wpisanie jakiejś literki to ta wpisana literka zniknie z tabelki i i gracz1, będzie musiał to poprawić.
PROBLEM TKWI W TYM ŻE NIE WIEM JAK USUNĄĆ JUŻ WPISANĄ LITERKE DO TABELKI
Procedure gra11;
begin

losujLiterki(1);
Inc(licznik);

writeln('');
writeln('');
TextColor(lightcyan);
write('Gracz 1: Oto twoje litery ');
for i := 1 to 7 do
write(gracze[1][i]);
writeln;

TextColor(lightgreen);
writeln('Wpisz ktora literke (1–7) chcesz wpisac :');
readln(ktora);
writeln('Wpisz liczbe dla X [poziomo] : ');
readln(x);
writeln('Wpisz liczbe dla Y [pionowo]: ');
readln(y);
writeln('OK wpisze ',gracze[1][ktora], ' w ',x, ' poziomo i ',y,' pionowo');
readln;
TextColor(lightred);
Inc(punkty[1], Ord(gracze[1][ktora]) div 20);
writeln('GRACZ 1 twoj aktualny wynik: ',punkty[1]);
writeln(t[x][y], gracze[1][ktora]); {przypisuje warto˜ci x i y do tablicy}
t[x][y] := gracze[1][ktora];
gracze[1][ktora] := #0;
readln;
Clrscr;
pokazTab;
writeln('Gracz 2, zgadzasz sie na to ustawienie ? (T/N)');
m := UpCase(ReadKey);
if (m = 'N') then
{TU JEST TeN PROBLEM !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}

if (m = 'T') then
writeln('Gracz 1, grasz dalej ? (T/N) : ');
g := UpCase(ReadKey);
if (g = 'T') then
gra11;
if (g = 'N') then
writeln('Gracz 2 ! Twoja kolej !');

readln;

end;


Zrobiłem takie cos, ale wymaga to fachowej przeróbki
bo literka ciągle nie znika

writeln('Gracz 2, zgadzasz sie na to ustawienie ? (T/N)');
m := UpCase(ReadKey);
until m <> 'N';
gracze[1][ktora] := #0;

writeln('Gracz 1, grasz dalej ? (T/N) : ');
g := UpCase(ReadKey);
if (g = 'T') then
gra11;
if (g = 'N') then
writeln('Gracz 2 ! Twoja kolej !');
readln;
hastic
Dodano
08.02.2006 11:21:43
Mias tego if(zmienna
Anonymous
Dodano
07.02.2006 16:02:10
Mias tego if(zmienna
Anonymous
Dodano
07.02.2006 16:02:10
Poprawiłem troszke tą "pętle" ale wciąź coś wymaga poprawy, poniewaź wciskam 'T' za kaźdym razem i dalej moźna grać, a powinno przejść za 7 razem do gracza 2!
if zmienna
begin
writeln('Grasz dalej ? (T/N) : ');
repeat
g := UpCase(ReadKey);
if (g = 'T') then
begin
gra11;
Inc(zmienna);
end;
if (g = 'N') then
begin
writeln('Gracz 2 ! Twoja kolej ! ');
zmienna:=0;
end;
until (x=0);
end;
else
begin
writeln('Gracz 2 ! Twoja kolej ! ');
zmienna:=0;
end;

Będe wdzięczny za pomoc w poprawie.
hastic
Dodano
07.02.2006 14:54:45
hastic:
Chciałbym się jeszcze zapytać czy moźna jakoś ograniczyć ruch gracza, aby w nieskończoność nie mógł kontynuować gry? (maximum 6 razy moźe wcisnąć "T") czy da się to zrobić??

Da się.
Anonymous
Dodano
07.02.2006 12:05:51
Poradziłęm juź sobie, wystarczyło usunąć repeat
Chciałbym się jeszcze zapytać czy moźna jakoś ograniczyć ruch gracza, aby w nieskończoność nie mógł kontynuować gry? (maximum 6 razy moźe wcisnąć "T") czy da się to zrobić??
hastic
Dodano
07.02.2006 11:47:23
Dokładnie to:
Error 113: Error in statement
Ale nie wiem czemu ???? Wydaje się źe wszystko jest OK :?
hastic
Dodano
07.02.2006 10:44:35
A ten błąd to ?
Anonymous
Dodano
07.02.2006 10:39:16
Podzieliłem graczy na 2 procedury (procedure gra11 i gra22):
uses CRT;

const min = 65;
maks = 90;

var t:array[1..15,1..15] of char;

licznik, losowana, x, y:integer;
punkty: array[1..2] of integer;
i,menu:word;
gracze: array[1..2, 1..7] of char;
ktora: byte;
g:char;
Procedure koniec;
begin
ClrScr;
Writeln('Do zobaczenia!!!');
readkey;
end;

procedure pokazTab;
begin
for x := 1 to 15 do
write('x', x,' ');
writeln;
for y := 1 to 15 do begin
for x := 1 to 15 do begin
if t[x,y] = '' then write(' ')
else write(t[x,y], ' ');
if x > 9 then write(' ');
end;
write('y', y);
writeln;
end;
end;

procedure losujLiterki(gracz: byte);
var znPuste: byte; c: char; pkt: byte;
begin
writeln('');
TextColor(white);
repeat
znPuste := 0;
for i := 7 downto 1 do
if gracze[gracz][i] = #0 then znPuste := i;
if znPuste > 0 then begin
losowana := random(maks – min + 1) + min;
c := chr(losowana);

writeln('Wylosowana lczba to: ', losowana); { wypisanie wylosowanej cyfry }
writeln('Kod ASCII: ', c); { zamiana cyfry na kod ASCII }
pkt := losowana div 20; { zmniejszenie kodu ASCII }
writeln('Litera: ', c, ' ma ', pkt , ' punktow'); { wypisanie punktow }
gracze[gracz][znPuste] := c;
end;
until znPuste = 0;
end;

Procedure gra11;
begin

losujLiterki(1);
Inc(licznik);

writeln('');
writeln('');
TextColor(lightcyan);
write('Gracz 1: Oto twoje litery ');
for i := 1 to 7 do
write(gracze[1][i]);
writeln;

TextColor(lightgreen);
writeln('Wpisz ktora literke (1–7) chcesz wpisac :');
readln(ktora);
writeln('Wpisz liczbe dla X [poziomo] : ');
readln(x);
writeln('Wpisz liczbe dla Y [pionowo]: ');
readln(y);
writeln('OK wpisze ',gracze[1][ktora], ' w ',x, ' poziomo i ',y,' pionowo');
readln;
TextColor(lightred);
Inc(punkty[1], Ord(gracze[1][ktora]) div 20);
writeln('GRACZ 1 twoj aktualny wynik: ',punkty[1]);
writeln(t[x][y], gracze[1][ktora]); {przypisuje warto˜ci x i y do tablicy}
t[x][y] := gracze[1][ktora];
gracze[1][ktora] := #0;
readln;
Clrscr;
pokazTab;
readln;

end;

Procedure gra22;
begin

losujLiterki(2);
inc(licznik);

writeln('');
writeln('');
TextColor(lightcyan);
write('Gracz 2: Oto twoje litery ');
for i := 1 to 7 do
write(gracze[2][i]);
writeln;

TextColor(lightgreen);
writeln('Wpisz ktora literke (1–7) chcesz wpisac :');
readln(ktora);
writeln('Wpisz liczbe dla X [poziomo] : ');
readln(x);
writeln('Wpisz liczbe dla Y [pionowo]: ');
readln(y);
writeln('OK wpisze ',gracze[2][ktora], ' w ',x, ' poziomo i ',y,' pionowo');
readln;
TextColor(lightred);
Inc(punkty[2], Ord(gracze[2][ktora]) div 20);
writeln('GRACZ 2 twoj aktualny wynik: ', punkty[2]);
writeln(t[x][y], gracze[2][ktora]);
t[x][y] := gracze[2][ktora];
gracze[2][ktora] := #0;
readln;
ClrScr;
pokazTab;
readln;
end;


Procedure gra;
var ktora: byte;
begin
ClrScr;
licznik := 0;
punkty[1] := 0;
punkty[2] := 0;
randomize;
for x := 1 to 2 do
for y := 1 to 7 do
gracze[x, y] := #0;
x := 0;
y := 0;
repeat
gra11;
gra22;
Until (x = 0) or (y = 0);
end;

Procedure menuu;
begin
repeat
ClrScr;
writeln('');
TextColor(yellow);
writeln('Wybierz co chcesz zrobi ');
writeln;
writeln('1 – Nowa gra');
writeln('2 – Koniec');
readln(menu);
if (menu=1) then gra;
if (menu=2) then koniec;
until(menu=2)
end;

begin
ClrScr;
menuu;
readln;
end.


chciałbym wstawić taki kodzik do procedury gra11 i gra22 wstawiam je na koniec i wychodzi mi błąd nie wiem czemu??

writeln('Grasz dalej ? (T/N) : '); {TU START NOWEGO}
repeat
g := UpCase(ReadKey);
if (g = 'T') then
repeat gra11;
if (g = 'N') then
writeln('Gracz 2 ! Twoja kolej ! ');
until (x=0)
hastic
Dodano
06.02.2006 22:43:58
A próbowałeś to sam napisać ?
To nie jest trudne, wystrczy pomyśleć.
Anonymous
Dodano
06.02.2006 13:01:38
Narazie mam takie coś, źe gracz moźe wpisać do tabelki 1 litere z 7 wylosowanych, a ja chciałbym aby mógł wykorzystać dowolną ilość (spośród tych 7 liter), i podczas 1 rundy wpisać nawet 5 albo 7 liter do tabelki w róźne miejsce (czyli dla kaźdej kolejnej literki trzeba znowu podawać miejsce w tabeli poziom pion). Moźe po wpisaniu 1 literki komputer powinien pytać czy dalej wpisywać litery, czy kończyć runde i następnie przejść do gracza 2 (tylko nie wiem czy wtedy podzielić graczy na 2 procedury: gracz1, gracz2 ??)
hastic
Dodano
06.02.2006 12:16:24
Ale jak ? Do kolejnych komórek chcesz wpisać siedem literek ?

Z tym masz problem ?

#include
using namespace std ;
int main(void)
{
char znaki ;
const int zakres = 7 ;
char tablica[zakres] ;
for(int licznik = 0 ; licznik
{
cout <<<
cin >> znaki ;
tablica[licznik] = znaki ;
}
for(int licz = 0 ; licz
cout <<
return 0 ;
}
Anonymous
Dodano
06.02.2006 12:04:01
Poradziłem sobie z większością błędów, takźe z losowaniem 7 liter na raz, losowaniem liczb tylko z przedziału 67 – 90. Nie wiem tylko jak zrobić aby gracz mógł dopisać do tabelki nie jedną tylko tyle liter ile chce (max 7) Oto kod całego programu:
uses CRT;

const min = 65;
maks = 90;

var t:array[1..15,1..15] of char;

licznik, losowana, x, y:integer;
punkty: array[1..2] of integer;
i,menu:word;
gracze: array[1..2, 1..7] of char;


Procedure koniec;
begin
ClrScr;
Writeln('Do zobaczenia!!!');
readkey;
end;

procedure pokazTab;
begin
for x := 1 to 15 do
write('x', x,' ');
writeln;
for y := 1 to 15 do begin
for x := 1 to 15 do begin
if t[x,y] = '' then write(' ')
else write(t[x,y], ' ');
if x > 9 then write(' ');
end;
write('y', y);
writeln;
end;
end;

procedure losujLiterki(gracz: byte);
var znPuste: byte; c: char; pkt: byte;
begin
writeln('');
TextColor(white);
repeat
znPuste := 0;
for i := 7 downto 1 do
if gracze[gracz][i] = #0 then znPuste := i;
if znPuste > 0 then begin
losowana := random(maks – min + 1) + min;
c := chr(losowana);

writeln('Wylosowana lczba to: ', losowana); { wypisanie wylosowanej cyfry }
writeln('Kod ASCII: ', c); { zamiana cyfry na kod ASCII }
pkt := losowana div 20; { zmniejszenie kodu ASCII }
writeln('Litera: ', c, ' ma ', pkt , ' punktow'); { wypisanie punktow }
gracze[gracz][znPuste] := c;
end;
until znPuste = 0;
end;

Procedure gra;
var ktora: byte;
begin
ClrScr;
licznik := 0;
punkty[1] := 0;
punkty[2] := 0;
randomize;
for x := 1 to 2 do
for y := 1 to 7 do
gracze[x, y] := #0;
x := 0;
y := 0;
{GRACZ 1}
repeat
losujLiterki(1);
Inc(licznik);

writeln('');
writeln('');
TextColor(lightcyan);
write('Gracz 1: Oto twoje litery ');
for i := 1 to 7 do
write(gracze[1][i]);
writeln;

TextColor(lightgreen);
writeln('Wpisz ktora literke (1–7) chcesz wpisac :');
readln(ktora);
writeln('Wpisz liczbe dla X [poziomo] : ');
readln(x);
writeln('Wpisz liczbe dla Y [pionowo]: ');
readln(y);
writeln('OK wpisze ',gracze[1][ktora], ' w ',x, ' poziomo i ',y,' pionowo');
readln;
TextColor(lightred);
Inc(punkty[1], Ord(gracze[1][ktora]) div 20);
writeln('GRACZ 1 twoj aktualny wynik: ',punkty[1]);
writeln(t[x][y], gracze[1][ktora]); {przypisuje warto˜ci x i y do tablicy}
t[x][y] := gracze[1][ktora];
gracze[1][ktora] := #0;
readln;
Clrscr;
pokazTab;
readln;

{GRACZ 2}
losujLiterki(2);
inc(licznik);

writeln('');
writeln('');
TextColor(lightcyan);
write('Gracz 2: Oto twoje litery ');
for i := 1 to 7 do
write(gracze[2][i]);
writeln;

TextColor(lightgreen);
writeln('Wpisz ktora literke (1–7) chcesz wpisac :');
readln(ktora);
writeln('Wpisz liczbe dla X [poziomo] : ');
readln(x);
writeln('Wpisz liczbe dla Y [pionowo]: ');
readln(y);
writeln('OK wpisze ',gracze[2][ktora], ' w ',x, ' poziomo i ',y,' pionowo');
readln;
TextColor(lightred);
Inc(punkty[2], Ord(gracze[2][ktora]) div 20);
writeln('GRACZ 2 twoj aktualny wynik: ', punkty[2]);
writeln(t[x][y], gracze[2][ktora]);
t[x][y] := gracze[2][ktora];
gracze[2][ktora] := #0;
readln;
ClrScr;
pokazTab;
readln;

Until (x = 0) or (y = 0);
end;

Procedure menuu;
begin
repeat
ClrScr;
writeln('');
TextColor(lightred);
writeln(' UWAGA ! ! ! ');
writeln('');
writeln('');
writeln('Gracz otrzyma litere jesli wylosuje liczbe z przedzialu 65 – 90');
writeln('W przeciwnym razie traci szanse na dopisanie litery i zdobycie punktow');
writeln('');
writeln('');
TextColor(yellow);
writeln('Wybierz co chcesz zrobi ');
writeln;
writeln('1 – Nowa gra');
writeln('2 – Koniec');
readln(menu);
if (menu=1) then gra;
if (menu=2) then koniec;
until(menu=2)
end;

begin
ClrScr;
menuu;
readln;
end.
hastic
Dodano
06.02.2006 11:00:15
hastic
Dodano:
28.12.2005 12:24:29
Komentarzy:
20
Strona 1 / 3