Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Ahoj, mam za ukol se poprat s nasledujicim ukolem :) Nemate nekdo nejake napady? Ci hotove reseni z drivejska??
Napište program, který po spuštění rozdá náhodným způsobem karty třem hráčům mariáše (při každém spuštění programu bude pochopitelně rozdání karet jiné). Program nečte žádné údaje ze vstupu, pro získání náhodného rozdání karet využívá generátor pseudonáhodných čísel. Výsledné rozdání karet vypište na obrazovku v přehledném tvaru, který si sami zvolíte. Nejprve vypište karty prvního hráče, pak odděleně karty druhého hráče a nakonec karty třetího hráče. Hodnoty jednotlivých karet si můžete na výstupu označit vhodnými symboly, lze použít například znaky vypůjčené z odpovídajících žolíkových karet (po řadě 7, 8, 9, X, J, Q, K, A).
Diky moc za tipy, rady a jine :)
Offline

Treba takhle, testoval jsem to trochu a funguje to. Pravidla mariase neznam, ten vypis neni moc prehledny. Predpokladam, ze tohle vezmes jen jako napad a napises to podle sebe :-)
program Marias;
type Karta = record
Cislo : byte;
Barva : byte;
end;
var Karty : array[0..32] of Karta;
Znaky : array[0..8] of char;
Barvy : array[0..3] of string;
ZbyvaKaret, i, j : integer;
procedure RozdejKartu;
var CisloKarty : integer;
begin
CisloKarty := random (ZbyvaKaret);
write (Znaky[Karty[CisloKarty].Cislo], ' ');
write (Barvy[Karty[CisloKarty].Barva], ' ');
Karty[CisloKarty] := Karty[ZbyvaKaret - 1];
ZbyvaKaret := ZbyvaKaret - 1;
end;
begin
randomize;
Barvy[0] := 'Srdce';
Barvy[1] := 'Piky';
Barvy[2] := 'Trefy';
Barvy[3] := 'Kara';
Znaky[0] := '7';
Znaky[1] := '8';
Znaky[2] := '9';
Znaky[3] := 'X';
Znaky[4] := 'J';
Znaky[5] := 'Q';
Znaky[6] := 'K';
Znaky[7] := 'A';
for i := 0 to 7 do begin
for j := 0 to 3 do begin
Karty[4*i+j].Cislo := i;
Karty[4*i+j].Barva := j;
end;
end;
ZbyvaKaret := 32;
writeln ('Hrac 1');
for i := 1 to 12 do RozdejKartu ();
writeln;
writeln ('Hrac 2');
for i := 1 to 10 do RozdejKartu ();
writeln;
writeln ('Hrac 3');
for i := 1 to 10 do RozdejKartu ();
end.
Offline
Ahoj! Díky moc ;-) Lehce jsem si to poupravil po grafické stránce a rozpracoval dále a jen ještě dotaz.... Nemá být v části kde je " Znaky : array[0..8] of char;" toto "Znaky : array[0..7] of char;" to je jen jediné co mě zarazilo.... Jinak strašně moc díky za pomoc ;-) Díky
Offline

Mas pravdu, samozrejme ze by tam melo byt "Znaky : array[0..7] of char;", (A taky "array[0..31] of Karta;" misto 32). Na pascal nejsem moc zvykly no, sry :-)
Offline
Stránky: 1