Встречено 'as', а ожидался идентификатор - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Встречено 'as', а ожидался идентификатор 17 строка

Решение задачи: «Встречено 'as', а ожидался идентификатор»

textual
Листинг программы
program Sme;
 
uses
  crt;
 
type
  reca = record
    name: string[10];
    resultat: integer;
  end;
 
var
  aa: reca;
  Xz, Yz: array [1..40] of byte;
  us: array [1..11] of reca;
  i, k, k2, kk, och: integer;
  H, W, PlayE, Play: ShortInt;
  X1, Y1, d: byte;
  Kno, onk: Char;
  SL, Schot: Word;
  Ax, Ay, Bx, By, Ex, Ey, es, sa: Byte;
  f1: text;
  f2: file of integer;
  f3: text;
  f4: text;
  namen: string[10];
  resul: string[20];
  prav: string;
 
procedure stolknovenie;
var
  i: integer;
begin
  for i := 2 to d - 2 do
  begin
    if (Xz[i] = Xz[i + 2]) and (Yz[i] = Yz[i + 2]) then
      es := 0 else es := 1;
    sa := sa * es;
  end;
  for i := 1 to d - 3 do
  begin
    if (sa <> 0) and (xz[1] = xz[i + 3]) and (yz[1] = yz[i + 3]) then Play := 0;
  end;
  if (Xz[1] = 3) or (Xz[1] = 57) or (Yz[1] = 3) or (Yz[1] = 22) Then Play := 0;
end;
 
procedure Ramka(Xr, Yr: Byte; tt: string; c: byte);
var
  i: integer;
begin
  TextColor(c);
  GotoXY(Xr, Yr + 1);
  write(tt);
  for i := Xr to Xr + 20 do
  begin
    GotoXY(i, Yr);
    write('*');
    GotoXY(i, Yr + 2);
    write('*');
  end;
  for i := Yr to Yr + 2 do
  begin
    GotoXY(Xr, i);
    write('*');
    GotoXY(Xr + 20, i);
    write('*');
  end;
end;
 
procedure Izm(vv: byte);
begin
  Ax := Bx; Ay := By;
  Bx := Xz[vv]; By := Yz[vv];
  Xz[vv] := Ax; Yz[vv] := Ay;
end;
 
procedure menu2(q, qq, wq, qw: string);
var
  X1, Y1: integer;
begin
  Clrscr;
  TextBackground(0);
  TextColor(15);
  for X1 := 25 to 55 do
  begin
    GotoXY(X1, 4);
    Write('*');
    GotoXY(X1, 22);
    Write('*');
  end;
  for Y1 := 4 to 22 do
  begin
    GotoXY(25, Y1);
    Write('*');
    GotoXY(55, Y1);
    Write('*');
  end;
  GotoXY(31, 7);
  Write(q);
  K2 := 0;
  repeat
    K2 := k2 + kk;
    kk := 0;
    if k2 = 0 Then Ramka(30, 10, qq, 128) else
      Ramka(30, 10, qq, 15);
    if k2 = 1 then Ramka(30, 14, wq, 128) else
      Ramka(30, 14, wq, 15);
    if K2 = 2 Then Ramka(30, 18, qw, 128) else
      Ramka(30, 18, qw, 15);
    Kno := ReadKey;
    if Kno = #80 then begin if k2 < 2 then kk := 1 else kk := 0; end else
    if Kno = #72 then begin if k2 > 0 then kk := -1 else kk := 0; end;
  until Kno = chr(13);
end;
 
procedure Spravka;
var
  i, X1, Y1: Integer;
begin
  menu2('      СПРАВКА', '     ПРАВИЛА ИГРЫ   ', '     РАЗРАБОТЧИК    ', '        НАЗАД       ');
  if k2 = 0 then
  begin
    clrscr;
    assign(f4, 'd:\kkk\pravila.pas');
    reset(f4);
    i := 3;
    while not EOF(f4) do
    begin
      GotoXY(3, i);
      i := i + 2;
      readln(f4, prav);
      writeln(prav);
    end;
    readln;
  end;
  if k2 = 1 then
  begin
    clrscr;
    TextBackground(0);
    TextColor(4);
    for X1 := 3 to 77 do
    begin
      GotoXY(x1, 2);
      Write('*');
      GotoXY(X1, 23);
      write('*');
    end;
    for Y1 := 2 to 23 do
    begin
      GotoXY(3, Y1);
      Write('*');
      GotoXY(77, y1);
      Write('*');
    end;
    assign(f4, 'd:\kkk\avtor.pas');
    reset(f4);
    d := 7;
    while not EOF(f4) do
    begin
      textcolor(10);
      readln(f4, prav);
      GotoXY(19, d);
      Write(prav);
      d := d + 2;
      for i := 1 to 4 do
        Delay(59000);
    end;
    close(f4);
    readln;
  end;
  if k2 = 2 then
    TextBackground(0);
  textcolor(15);
end;
 
procedure Resultat;
var
  i, j: integer;
begin
  clrscr;
  reset(f1);
  for i := 1 to 10 do
  begin
    readln(f1, us[i].name);
  end;
  close(f1);
  reset(f2);
  for i := 1 to 10 do
    read(f2, us[i].resultat);
  close(f2);
  gotoXy(25, 12);
  if schot > us[10].resultat then
  begin
    writeln('Ваш результат составил: ', schot);
    gotoxy(30, 13);
    writeln('Введите ваше имя...');
    gotoxy(36, 14);
    read(namen);
  end
  else
  begin
    GotoXY(23, 13);
    writeln('Вы не побили самый худший результат!!! :(');
    GotoXY(13, 14);
    writeln('Но не огорчайтесь!!! Вы можете просто написать ваше имя!!!)))');
    GotoXY(36, 15);
    readln(namen);
  end;
  us[11].name := namen;
  us[11].resultat := schot;
  for i := 1 to 11 do
    for j := 2 to 11 do
    begin
      if us[j].resultat > us[j - 1].resultat then
      begin
        aa := us[j - 1];
        us[j - 1] := us[j];
        us[j] := aa;
      end;
    end;
  rewrite(f1);
  for i := 1 to 10 do
  begin
    write(f1, us[i].name);
    writeln(f1, ' ');
  end;
  close(f1);
  rewrite(f2);
  for i := 1 to 10 do
    write(f2, us[i].resultat);
  close(f2);
  rewrite(f3);
  for i := 1 to 10 do
    writeln(f3, i, ':  ', us[i].resultat, '  ', us[i].name);
  close(f3);
end;
 
begin
  assign(f3, 'd:\kkk\itog.txt');
  assign(f1, 'd:\kkk\imena.txt');
  assign(f2, 'd:\kkk\rec.dat');
  repeat
    repeat
      Clrscr;
      TextBackground(0);
      TextColor(15);
      for X1 := 25 to 55 do
      begin
        GotoXY(X1, 4);
        Write('*');
        GotoXY(X1, 22);
        Write('*');
      end;
      for Y1 := 4 to 22 do
      begin
        GotoXY(25, Y1);
        Write('*');
        GotoXY(55, Y1);
        Write('*');
      end;
      K := 0;
      repeat
        k := k + kk;
        kk := 0;
        if k = 0 Then Ramka(30, 6, '        ИГРАТЬ       ', 128) else
          Ramka(30, 6, '        ИГРАТЬ       ', 15);
        if k = 1 Then Ramka(30, 10, '       РЕКОРДЫ      ', 128) else
          Ramka(30, 10, '       РЕКОРДЫ       ', 15);
        if k = 2 then Ramka(30, 14, '       СПРАВКА       ', 128) else
          Ramka(30, 14, '       СПРАВКА       ', 15);
        if k = 3 then Ramka(30, 18, '        ВЫХОД        ', 128) else
          Ramka(30, 18, '        ВЫХОД       ', 15);
        Kno := ReadKey;
        if Kno = #80 then begin if k < 3 then kk := 1 else kk := 0; end else
        if Kno = #72 then begin if k > 0 then kk := -1 else kk := 0; end;
      until Kno = chr(13);
      if k = 1 then
      begin
        Clrscr;
        GotoXy(36, 5);
        writeln('РЕКОРДЫ');
        reset(f3);
        for i := 1 to 10 do
        begin
          readln(f3, resul);
          GotoXY(32, 7 + i);
          Write(resul);
        end;
        close(f3);
        Readln;
      end;
      if k = 2 then
        repeat
          spravka;
        until k2 = 2;
      if k = 3 then
        exit;
    until (k = 3) or (k = 0);
    if k = 0 then begin
      menu2('  УРОВЕНЬ СЛОЖНОСТИ', '        ГЛИСТ       ', '        ЗМЕЯ        ', '       АНАКОНДА     ');
    end;
    if K2 = 0 then begin Sl := 40000; och := 25; d := 5 end else if k2 = 1 then begin
      Sl := 30000; och := 50; d := 10 end else begin Sl := 20000; och := 100; d := 15 end;
    TextBackground(1);
    Textcolor(5);
    clrscr;
    schot := 0; playE := 1;
    Xz[1] := 30;
    Yz[1] := 13;
    for i := 2 to 40 do
    begin
      Xz[i] := Xz[1];
      Yz[i] := Yz[1];
    end;
    for X1 := 3 to 57 do
    begin
      GotoXY(x1, 2);
      Write('*');
      GotoXY(X1, 23);
      write('*');
    end;
    for Y1 := 2 to 23 do
    begin
      GotoXY(3, Y1);
      Write('*');
      GotoXY(57, y1);
      Write('*');
    end;
    Play := 1;
    GotoXY(60, 4);
    write('СЧЕТ: ');
    GotoXY(60, 6);
    write('Рост змеи: ');
    gotoXY(60, 8);
    write('Лучшие результаты:');
    reset(f3);
    for i := 1 to 3 do
    begin
      readln(f3, resul);
      GotoXY(60, 9 + i);
      Write(resul);
    end;
    close(f3);
    repeat
      if play = 1 then begin
        TextColor(4);
        Ax := xz[1]; Ay := Yz[1];
        Xz[1] := Xz[1] + H; Yz[1] := Yz[1] + W;
        Bx := Xz[2]; By := Yz[2];
        Xz[2] := Ax; Yz[2] := Ay;
        for i := 3 to 40 do
          izm(i);
        GotoXY(Xz[1], Yz[1]);
        write(chr(1));
        for i := 2 to d do
        begin
          GotoXY(Xz[i], Yz[i]);
          Write(chr(4));
        end;
        Delay(SL);
        Textcolor(1);
        GotoXY(Xz[1], Yz[1]);
        write(chr(1));
        for i := 2 to 40 do
        begin
          GotoXY(Xz[i], Yz[i]);
          Write(chr(4));
        end;
        randomize;
        if PlayE = 1 then
        begin
          Ex := Random(54) + 4;
          Ey := random(18) + 4;
          if (K2 = 0) and (schot <> 0) and ((schot mod 75) = 0) then
            d := d + 1;
          if (k2 = 0) and (schot <> 0) and ((schot mod 150) = 0) then
            Sl := Sl - 500;
          if (K2 = 1) and (schot <> 0) and ((schot mod 150) = 0) then
            d := d + 1;
          if (k2 = 1) and (schot <> 0) and ((schot mod 500) = 0) then
            Sl := Sl - 500;
          if (K2 = 2) and (schot <> 0) and ((schot mod 500) = 0) then
            d := d + 1;
          if (k2 = 2) and (schot <> 0) and ((schot mod 1000) = 0) then
            Sl := Sl - 500;
          PlayE := 0; end;
        Textcolor(6);
        GotoXY(Ex, Ey);
        write(chr(6));
        if (Xz[1] = Ex) and (Yz[1] = Ey) then
        begin
          schot := schot + och;
          PlayE := 1;
          Textcolor(1);
          GotoXy(Ex, Ey);
          write(' ');
        end;
        case Kno of
          #72: begin W := -1; H := 0;  end;
          #80: begin W := 1; H := 0;  end;
          #77: begin W := 0; H := 1;  end;
          #75: begin W := 0; h := -1; end;
        end;
        if Keypressed = true then begin onk := readkey;Kno := Readkey; end;
      end;
      GotoXY(66, 4);
      write(Schot);
      GotoXY(70, 6);
      write(d);
      sa := 10;
      stolknovenie;
    until Play = 0;
    if play = 0 then begin
      TextBackground(0);
      Textcolor(15);
      clrscr;
      GotoXY(6, 8);
      write(' *****   *****  *       * *******      *****  **   ** ******* ****** ');
      GotoXY(6, 9);
      write('******* ******* **     ** *******     ******* **   ** ******* *******');
      GotoXY(6, 10);
      write('**      **   ** ***   *** **          **   ** **   ** **      **   **');
      GotoXY(6, 11);
      write('**      **   ** **** **** **          **   ** **   ** **      **   **');
      GotoXY(6, 12);
      write('**      **   ** ** *** ** ****        **   ** **   ** ****    **   **');
      GotoXY(6, 13);
      write('**  **  ******* **  *  ** ****        **   ** **   ** ****    ****** ');
      GotoXY(6, 14);
      write('**  *** ******* **     ** **          **   ** **   ** **      ****   ');
      GotoXY(6, 15);
      write('**   ** **   ** **     ** **          **   **  ** **  **      ** **  ');
      GotoXY(6, 16);
      write('******* **   ** **     ** *******     *******   ***   ******* **  ** ');
      GotoXY(6, 17);
      write(' *****  **   ** **     ** *******      *****     *    ******* **   **');
      GotoXY(25, 23);
      Write('Для продолжения нажмите ENTER');
      repeat
        kno := readkey;
      until Kno = chr(13);
    end;
    resultat;
    H := 0; w := 0; k := 0; kk := 0;
  until k = 3; end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы