Ładny brzuch

mam taki sobie problem ze nie weim jak ma pokazac jaki gracz dosta jakie karty w sopb losowy liczba graczy podana z kalwy z zakresu 1 do 52 jak ktos moze pomc z gry wielkie dzieki pozdrawiam

program karty;
{$APPTYPE CONSOLE}

uses
SysUtils;
type kolor = (P,T,C,K); {P - PIK, K - KIER, T - TREFL, C - CARO}
wysokosc = 2..14;
karta = record
w: wysokosc;
k: kolor
end;
var
talia : array[0..51] of karta;
gracz : array [wysokosc,kolor] of boolean;
i : integer;
tmp : karta;

procedure losowa(i,j:byte); { wypelnic talie po kolei: AP, AK AC AT KP KK KC KT }
{tasowanie}

begin
for i := 0 to 51 do
begin
i := random(52);
tmp := talia[i];
talia[i] := talia[j];
talia[j] := tmp
end
end;
begin

writeln ('Podaj liczbe graczy: ');
readln (i);
if i = 1 then begin
writeln ('Otrzymujesz wszystkie karty');
readln;
end;
if i<1 then begin
writeln ('Podales bledne dane');
readln;
end;
end.



Podaj ci przykad na 12 kart.Na 52 karty musisz zmieni wpisy.

uses crt;
const max_kart:integer=12;
const karty:array[1..12]of string=('AP','AC','AK','AT','DP','DC','DK','DT','WP','WC','WK','WT');

var x,poile,il,i,j,k,n:integer;
rand:array[1..12]of integer;
begin
clrscr;
n:=1;
randomize;
repeat
k:=random(13);if k=0 then k:=1;
for j:=1 to n do
if (k=rand[j]) then break else
begin if j=n then begin rand[n]:=k;n:=n+1;end;end;
until n=13;
write('podaj ilosc graczy ');readln(il);
k:=max_kart mod il;{ile pozostalo kart po rownym rozdzieleniu}
poile:=max_kart div il; {po ile kart rozdac przy rownym rozdziale}
x:=1;j:=poile;
repeat
for n:=x to j do begin
write(karty[rand[n]],' ');
end;writeln('');
x:=n+1;j:=j+poile;
i:=i+1;
until i=il;
write('pozostalo nierozdanych kart: ',k);
readkey;
end.

Ed

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •