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
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: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ł.
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.
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?
tablica[x][y] := 0; i to wogóle nie działało?
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 ?
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??
Ten kod który zamieściłem wyźej wstawia '0' do liter wylosowanych, a nie do litery wpisanej do tabelki??
Wpisz na jej miejsce coś innego np. zero. I to bedzie znak, źe tam jest puste miejsce.
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
Zrobiłem takie cos, ale wymaga to fachowej przeróbki
bo literka ciągle nie znika
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;
Mias tego if(zmienna
Mias tego if(zmienna
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!
Będe wdzięczny za pomoc w poprawie.
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: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ę.
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ć??
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ć??
Dokładnie to:
Ale nie wiem czemu ???? Wydaje się źe wszystko jest OK :?Error 113: Error in statement
A ten błąd to ?
Podzieliłem graczy na 2 procedury (procedure gra11 i gra22):
chciałbym wstawić taki kodzik do procedury gra11 i gra22 wstawiam je na koniec i wychodzi mi błąd nie wiem czemu??
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)
A próbowałeś to sam napisać ?
To nie jest trudne, wystrczy pomyśleć.
To nie jest trudne, wystrczy pomyśleć.
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 ??)
Ale jak ? Do kolejnych komórek chcesz wpisać siedem literek ?
Z tym masz problem ?
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 ;
}
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.