Добавить графический интерфейс

Kesha777

Сделайте графический интерфейс для игры
5 ответов

Kesha777

Графику добавил. Что вы понимаете под графическим интерфейсом?
program biki_i_korovi;
 
uses
  Graph, Crt;
 
var
  a, b: array [1..4] of integer;
  i, com1, com2: integer;
  output: text;
 
procedure outdata;
begin
  assign(output, 'output.txt');
  rewrite(output);
end;
 
procedure zag;
var
  a: array [1..4] of integer;
  i, j, num: integer;
  flag: boolean;
begin
  randomize;
  for i := 1 to 4 do
  begin
    flag := true;
    while flag do
    begin
      num := random(9);
      flag := false;
      for j := 1 to i - 1 do
        if a[j] = num then
        begin
          flag := true;
          break;
        end;
    end;
    a[i] := num;
  end;
  outdata;
  for i := 1 to 4 do 
  begin
    b[i] := a[i];
    write(output, a[i]);
  end;
  close(output);
end;
 
procedure vvod;
var
  num, i, io: integer;
  s: array[1..4] of integer;
var
  gd,gm:integer;
begin
  gd:=VGA;
  gm:=VGAHi;
  InitGraph(gd,gm,'');
  DirectVideo:=False;
  writeln('Введите четырехзначное число');
  readln(num);
  s[4] := num mod 10;
  io := num div 10;
  for i := 3 downto 1 do
  begin
    s[i] := io mod 10;
    io := io div 10;
  end;
  for i := 1 to 4 do
    a[i] := s[i];
end;
 
procedure bulls;
var
  bull, i: integer;
begin
  bull := 0;
  for i := 1 to 4 do
  begin
    if b[i] = a[1] then inc(bull);
  end;
  for i := 1 to 4 do
  begin
    if b[i] = a[2] then inc(bull);
  end;
  for i := 1 to 4 do
  begin
    if b[i] = a[3] then inc(bull);
  end;
  for i := 1 to 4 do
  begin
    if b[i] = a[4] then inc(bull);
  end;
  writeln('Быков = ', bull);
  if bull = 4 then
    com1 := 1;
end;
 
procedure cows ;
var
  cow: integer;
begin
  cow := 0;
  if b[1] = a[1] then
    inc(cow);
  if b[2] = a[2] then
    inc(cow);
  if b[3] = a[3] then
    inc(cow);
  if b[4] = a[4] then
    inc(cow);
  writeln('Коров = ', cow);
  if cow = 4 then
    com2 := 1;
end;
 
procedure game;
var
  vihod, happy: integer;
begin
  zag;
  repeat
    vvod;
    bulls;
    cows;
    writeln;
    if (com1 = 1) and (com2 = 1) then
      happy := 1;
    if happy = 1 then begin
      writeln('ПОЗДРАВЛЯЕМ, ВЫ ПОБЕДИЛИ!!!');
      writeln('Выход из игры - введите "0"');
      writeln('Начать новую игру - введите "1"');
      readln(vihod);
    end;
    if vihod = 1 then game;
  until vihod = 0;
end;
 
begin
  writeln('Здравствуйте, это игра "Быки и коровы"');
  writeln('Правила игры очень просты.');
  writeln('1. Программа загадывает четырехзначное число. Цифры в числе не повторяются. Число может начинаться с нуля.');
  writeln('2. Вы пытаетесь это число угадать, называя свои варианты загаданного числа.');
  writeln('3. На каждую вашу попытку угадать, программа вам сообщает количество "быков" и "коров":');
  writeln('"Быки" - это те цифры вашего числа, которые присутствуют в загаданном числе,');
  writeln('"Коровы" - это те цифры, расположение которых совпадает с расположением в загаданном числе');
  writeln('Вы можете посмотреть загаданное число для проверки честности в файле "output.txt"');
  writeln('Если вы поняли правила и готовы начать игру, нажмите Enter');
  readln;
  game;
  CloseGraph; 
end.


Kesha777

ну сделать игру в графе а не в консольке. попробовал но что то не работает, в графе ничего нетможете добавить в игру хотя бы три кнопки в графике 1. Начать игру 2. Информация 3. Выход. Ну и при выборе (стрелочками с клавиатуры)


Kesha777

Kesha777, вам это действительно нужно именно для ТП? Графический интерфейс для Турбо Паскаля - нетривиальная задача, так скажем.


Kesha777

ZX Spectrum-128, да, именно на турбо паскаль 6.0


Kesha777

ZX Spectrum-128, вот этот интерфейс к моей игре добавить попробуйте