Avatar billede svinehund Nybegynder
29. oktober 2001 - 16:45 Der er 2 kommentarer og
1 løsning

Craps i Pascal!!!

Hejsa
Er der en som har eller kan lave et spil(craps) i Pascal(ja ja ja jeg ved godt det er håbløst forældet).

Der skal slåes med 2 terninger, hvis summen af de to tal er 7 eller 11 så vinder man og får mulighed for et ekstra slag.
Hvis summen er 2, 3, 12 så taber man.
I alle andre tilfælde skal man kaste terningerne igen indtil man får enten 7 som taber eller den første sum man fik og dermed vinde.

Derefter skal det være muligt at starte et helt nyt spil!

Håber i kan hjælpe!!!
Avatar billede jakoba Nybegynder
29. oktober 2001 - 22:20 #1
Det er godt nok et par dage siden, men her er en i wirth-padcal:

program craps ( input, output );

(*  Craps i Pascal!!!  29/10 2001 16:45:25  svinehund

Der skal slåes med 2 terninger, hvis summen af de to tal er 7 eller 11 så vinder
man og får mulighed for et ekstra slag.

Hvis summen er 2, 3, 12 så taber man.

I alle andre tilfælde skal man kaste terningerne igen indtil man får enten 7 som
taber eller den første sum man fik og dermed vinde.

Derefter skal det være muligt at starte et helt nyt spil!

*)

var pung    : integer;

var seeded  : boolean;
var curSeed : integer;

function random ( max : integer ); (* findes sikkert predefineret i din pascal version *)
  const A = 25173;  (* Multiplier *)
  const C = 13849;  (* Increment  *)
  const M = 65536;  (* Modulus    *)
  var  r : real;
  begin
    if not seeded
    then
      begin
        seeded := true;
        curseed := clock mod M;
      end;
    curSeed := ( A * curSeed + C ) mod M;
    r := curSeed;
    r := ( r / M ) * max;
    random := trunc( r ) + 1;    (* 1..max *)
  end;


function bekreft : boolean;
  var ch : char;
  begin
    write( ( \"Vil du spille igen > \" );
    readln( ch );
    if (ch=\'j\') or (ch=\'J\') or (ch=\'y\') or (ch=\'Y\')
    then
      bekreft := true
    else
      bekreft := false;
  end;


function spil : integer;  (* eet spil *)
  var slag, slag2 integer;
  function slaa2tern : integer; (* et terningkast *)
    begin
      slaa2tern := random(6) + random(6);
    end;
  begin
    slag := slaa2tern;
    write( \"Første slag: \", slag );
    if ( slag = 7 ) or ( slag = 11 )
    then spil := 1;
    if ( slag = 2 ) or ( slag = 3 ) or ( slag = 12 )
    then spil := -1;
    repeat
      slag2 := slaa2tern;
      write( \" nyt slag: \", slag2 );
      if slag2 = 7
      then spil := -1;
      if slag2 = slag
      then spil := 1;
    until true;
  end;


begin (* hovedprogrammet *)

  pung := 10;

  repeat
    seeded := false;
    pung := pung +spil;
    writeln( \"  Du har nu \", pung, \" pengører\". );
  until ( pung <= 0 ) or not bekreft(1);

  if pung <= 0
  then
    writeln( \"Bedre held næste gang. Farvel.\" )
  else
    writeln( \"Tak for spillet. Kom snart igen.\" );

end.

mvh JakobA
Avatar billede svinehund Nybegynder
30. oktober 2001 - 20:33 #2
Hej Jacoba, 1000 mange tak du har fortjent dine point, var lige ved, at tro, at der ikke kom svar på denne!!!
Avatar billede jakoba Nybegynder
30. oktober 2001 - 20:37 #3
anytime :-))
kunne du virkelig finde en compiler så gammel at den kunne kompilere det?

mvh JakobA
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester