Matematické Fórum

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

#1 30. 11. 2010 23:50

paces
Zelenáč
Příspěvky: 14
Reputace:   
 

Nahodne rozdani karet [Pascal]

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

  • (téma jako vyřešené označil(a) paces)

#2 01. 12. 2010 13:55

Lumikodlak
Místo: Praha
Příspěvky: 212
Pozice: Programator nebo tak neco :-)
Reputace:   19 
 

Re: Nahodne rozdani karet [Pascal]

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

 

#3 06. 12. 2010 11:05

paces
Zelenáč
Příspěvky: 14
Reputace:   
 

Re: Nahodne rozdani karet [Pascal]

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

 

#4 06. 12. 2010 11:47

Lumikodlak
Místo: Praha
Příspěvky: 212
Pozice: Programator nebo tak neco :-)
Reputace:   19 
 

Re: Nahodne rozdani karet [Pascal]

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

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson