home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / spezial / 08 / kalaha / slavekal.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1988-09-23  |  2.8 KB  |  133 lines

  1. unit slavekal;
  2.  
  3. interface
  4. uses crt,constkal;
  5.  
  6.  
  7. type
  8.  
  9.   inoutfeld    =  record
  10.              x0,y0 : integer;
  11.              hoehe,breite : integer;
  12.           end;
  13.  
  14.   tbrett       = record
  15.            x0,y0,hoehe,breite,xabstand,yabstand : integer;
  16.            kalaha1,kalaha2 : array[1..2] of integer;
  17.            feld1 : array[1..feldlen,1..2] of integer;
  18.            feld2 : array[1..feldlen,1..2] of integer;
  19.                    infofeld : inoutfeld;
  20.                    computerinfo : inoutfeld;
  21.          end;
  22.  
  23. var
  24.   brett            :  tbrett;
  25.  
  26. procedure kasten(xpos,ypos,xlen,ylen : integer);
  27. procedure beschreibung;
  28. procedure spielbrettaufbau;
  29. procedure infoausgabe(str : string);
  30. procedure cinfoausgabe(str : string);
  31.  
  32.  
  33. implementation
  34.  
  35. procedure kasten(xpos,ypos,xlen,ylen : integer);
  36. var i : integer;
  37. begin
  38.   gotoxy(xpos,ypos);
  39.   write(chr(201));
  40.   for i:=1 to xlen - 2 do write(chr(205));
  41.   write(chr(187));
  42.   for i:=1 to ylen - 2 do
  43.     begin
  44.       gotoxy(xpos,ypos+i);
  45.       write(chr(186));
  46.     end;
  47.   gotoxy(xpos,ypos+ylen-1);
  48.   write(chr(200));
  49.   for i:=1 to xlen - 2 do write(chr(205));
  50.   for i:=1 to ylen - 2 do
  51.     begin
  52.       gotoxy(xpos+xlen-1,ypos+i);
  53.       write(chr(186));
  54.     end;
  55.   gotoxy(xpos+xlen-1,ypos+ylen-1);
  56.   write(chr(188));
  57. end;
  58.  
  59. procedure Beschreibung;
  60. var fp : text;
  61.     c : char;
  62. begin
  63.   assign(fp,hilfedatei);
  64.   reset(fp);
  65.   clrscr;
  66.   writeln;
  67.   while not eof(fp) do
  68.     begin
  69.       read(fp,c);
  70.       write(c);
  71.     end;
  72.   close(fp);
  73.   kasten(1,1,79,23);gotoxy(2,2);
  74.   gotoxy(1,24);Write('Drücke CR um weiter zu machen ... ');
  75.   c := readkey;
  76. end;
  77.  
  78. procedure spielbrettaufbau;
  79. var i : integer;
  80. begin
  81. clrscr;
  82. with brett do begin
  83. kasten(kalaha1[1],kalaha1[2],2*breite+xabstand,hoehe);
  84. kasten(kalaha2[1],kalaha2[2],2*breite+xabstand,hoehe);
  85. for i:=1 to feldlen do
  86.   begin
  87.     kasten(feld1[i,1],feld1[i,2],breite,hoehe);
  88.     gotoxy(feld1[i,1]-1,feld1[i,2]+1);write(i:1);
  89.     kasten(feld2[i,1],feld2[i,2],breite,hoehe);
  90.     gotoxy(feld2[i,1]+breite,feld2[i,2]+1);write(feldlen+1-i:1);
  91.   end;
  92. with infofeld do begin
  93.   kasten(x0,y0,breite,hoehe);
  94. end;
  95. with computerinfo do begin
  96.   kasten(x0,y0,breite,hoehe);
  97. end;
  98. end;
  99. gotoxy(45,25);write(copywrite);
  100. end;
  101.  
  102. procedure infoausgabe(str : string);
  103.   procedure clearinfofeld;
  104.   var i : integer;
  105.   begin
  106.     gotoxy(brett.infofeld.x0+1,brett.infofeld.y0+1);
  107.     for i := 1 to brett.infofeld.breite-2 do write(' ');
  108.   end;
  109.  
  110. begin
  111.   clearinfofeld;
  112.   gotoxy(brett.infofeld.x0+2,brett.infofeld.y0+1);
  113.   write(str);
  114. end;
  115.  
  116. procedure cinfoausgabe(str : string);
  117.   procedure clearcinfofeld;
  118.   var i : integer;
  119.   begin
  120.     gotoxy(brett.computerinfo.x0+1,brett.computerinfo.y0+1);
  121.     for i := 1 to brett.computerinfo.breite-2 do write(' ');
  122.   end;
  123.  
  124. begin
  125.   clearcinfofeld;
  126.   gotoxy(brett.computerinfo.x0+2,brett.computerinfo.y0+1);
  127.   write(str);
  128. end;
  129.  
  130. end.
  131.  
  132.  
  133.