Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2017, 11:54   #1
kir_18000
Новичок
Джуниор
 
Регистрация: 18.03.2017
Сообщений: 2
По умолчанию Программа "Угадай слово"

Пытался разобрать программу, но почему то показывает ошибку не пойму почему. Помогите пожалуйста разобраться
Вложения
Тип файла: pdf PR_11_Word.pdf (1.00 Мб, 40 просмотров)
kir_18000 вне форума Ответить с цитированием
Старый 18.03.2017, 12:31   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Легкотня! Во вложении подробно рассказано!
Я бы попроще сделал. Это полегче, чем писать тетрис!
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 18.03.2017, 17:29   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

kir_18000, запакуйте исходники своего проекта в архив и выложите на форум.
Телепаты ещё в зимней спячке...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.03.2017, 13:13   #4
kir_18000
Новичок
Джуниор
 
Регистрация: 18.03.2017
Сообщений: 2
По умолчанию

Вот архив
Вложения
Тип файла: rar PR_11_Word.rar (845.8 Кб, 19 просмотров)
kir_18000 вне форума Ответить с цитированием
Старый 20.03.2017, 13:21   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от kir_18000 Посмотреть сообщение
Вот архив
а Вы забавный...
Зачем архив с вашим PDF файлом?
сам PDF и в первом сообщении темы доступен.
Где исходники проекта? (это файлы с раширениями .PAS, .DFM, .DPR).
Вы вообще запускали Delphi? создавали проект, копировали туда исходный текст?
Или Вы думаете, что оно само из PDF исходники на Delphi создаст?

Цитата:
Сообщение от kir_18000 Посмотреть сообщение
почему то показывает ошибку
кто показывает Вам ошибку и какую именно?
Приведите, пожалуйста, скриншот ошибки.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.03.2017, 11:42   #6
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

На, горе мое луковое...
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
    Button2: TButton;
    Panel1: TPanel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure BtnClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

Const
   M=100; //Максимальное количество записей в массиве
   N=32; //Количество букв-кнопок алфавита
   Attempt=10; //Максимальное количество попыток
TYPE
   T_R = Record //Структура записи массива
      Que:string[250];
      Ans:string[30];
   end;
   R=array[1..M]of T_R;
   STR_30=Array[1..30] of TUTF8Char;
Var
   AQ:R; //Массив Вопросов и Ответов
   Questions_F:TextFile; //Файловая переменная
   KOL_QUE:Integer; //Количество вопросов в файле
   Btn: TButton; // Переменной для создания кнопок
   STR_N:STR_30;
   CHAR_:TUTF8Char; // Нажатая клавиша
   Size_WORD:Integer; // Размер отгадываемого слова
   // Массив букв для кодирования кнопок
   POISK_WORD,POISK_WORD_NEW:String; // Отгадываемое слово
   N_Attempt:Integer; //Количество ошибок
   iw,ih: integer; // Первоначальный размер компонента Image
   AFile: String; // Имя картинки

procedure Read_File;
//Чтение информации из файла и запись в массив
Var KOL, I:Integer;
begin
   Assignfile(Questions_F,'Questions.txt');
   Reset(Questions_F);
   KOL:=1; I:=1;
   While not Eof(Questions_F) do
   begin
      if (KOL mod 2)=1 then Readln (Questions_F, AQ[I].QUE)
      else
      begin
         Readln(Questions_F, AQ[I].ANS);
         Inc(I);
      end;
      Inc(KOL);
   end;
   KOL_QUE:=I;
   closefile(Questions_F);
end;

Procedure POISK;
//Поиск буквы в слове и «открытие» ее
Var I:Integer;
    Flag:Boolean; // Флаг - найдена ли в слове нажатая буква
begin
   Flag:=False;
   For I:=1 to Size_WORD do // Поиск буквы в слове
      If AnsitoUTF8(POISK_WORD[I])=CHAR_ then // Буква найдена
      begin
         STR_N[I]:=CHAR_; // Вставка найденной буквы в закодированное слово
         Flag:=True;
      end;
   If Flag=False Then // Буква не найдена
   begin
      N_Attempt:=N_Attempt+1;
      Form1.Label4.Caption:=IntToStr(N_Attempt);
   end
   Else
   // Изменение выводимой информации на экран
   begin
      POISK_WORD_NEW:='';
      For I:=1 to Size_WORD do
         POISK_WORD_NEW:=POISK_WORD_NEW+STR_N[I];
      Form1.Label2.Caption:=POISK_WORD_NEW;
   end;
   If UTF8ToAnsi(POISK_WORD_NEW)=POISK_WORD then
   //Игра окончена - отгадано все слово
   begin
      With Form1.Panel1 do
      begin
         Visible:=True;
         Font.Color:=clBlack;
         Caption:='Вы выиграли!';
      end;
      Form1.Button1.Enabled:=True;
   end;
   If N_Attempt=Attempt then
   //Игра окончена - количество ошибок равно количеству попыток
   begin
      With Form1.Panel1 do
      begin
         Visible:=True;
         Font.Color:=clRed;
         Caption:='Вы проиграли...';
      end;
      Form1.Button1.Enabled:=True;
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
// Формирование элементов формы
   With Form1 do
   begin
      Caption:='Угадай слово';
      Height:=450;
      Width:=500;
      Color:=clWhite;
   end;
   With Button1 do
   begin
      Caption:='Начать';
      Height:=40;
      Width:=75;
      Top:=20;
      Left:=400;
      Font.Size := 9;
   end;
   With Button2 do
   begin
      Caption:='Выход';
      Height:=40;
      Width:=75;
      Top:=360;
      Left:=400;
      Font.Size := 9;
   end;
   With Label1 do
   begin
      Caption:='';
      Height:=40;
      Width:=250;
      Top:=70;
      Left:=40;
      Font.Style:=[fsBold];
      Font.Size := 10;
   end;
   With Label2 do
   begin
      Caption:='';
      Height:=40;
      Width:=75;
      Top:=110;
      Left:=40;
      Font.Style:=[fsBold];
      Font.Size := 12;
   end;
   With Label3 do
   begin
      Caption:='';
      Height:=40;
      Width:=75;
      Top:=180;
      Left:=40;
      Font.Size := 9;
   end;
   With Label4 do
   begin
      Caption:='';
      Height:=40;
      Width:=75;
      Top:=180;
      Left:=300;
      Font.Style:=[fsBold];
      Font.Size := 10;
   end;
   With Panel1 do
   begin
      Caption:='';
      Height:=45;
      Width:=185;
      Top:=15;
      Left:=110;
      Font.Style:=[fsBold];
      Font.Size:= 10;
      Visible:=False;
   end;
   Read_File; //Процедура чтения информации из файла
end;

procedure TForm1.Button1Click(Sender: TObject);
Var I,NUMBER:integer;
    SYMBOL: Array[1..N] of TUTF8Char;
begin
   // Таблица для кодирования создаваемых кнопок
   SYMBOL[1]:='А'; SYMBOL[2]:='Б'; SYMBOL[3]:='В'; SYMBOL[4]:='Г'; SYMBOL[5]:='Д';
   SYMBOL[6]:='Е'; SYMBOL[7]:='Ж'; SYMBOL[8]:='З'; SYMBOL[9]:='И'; SYMBOL[10]:='Й';
   SYMBOL[11]:='К';SYMBOL[12]:='Л';SYMBOL[13]:='М';SYMBOL[14]:='Н';SYMBOL[15]:='О';
   SYMBOL[16]:='П';SYMBOL[17]:='Р';SYMBOL[18]:='С';SYMBOL[19]:='Т';SYMBOL[20]:='У';
   SYMBOL[21]:='Ф';SYMBOL[22]:='Х';SYMBOL[23]:='Ц';SYMBOL[24]:='Ч';SYMBOL[25]:='Ш';
   SYMBOL[26]:='Щ';SYMBOL[27]:='Ъ';SYMBOL[28]:='Ы';SYMBOL[29]:='Ь';SYMBOL[30]:='Э';
   SYMBOL[31]:='Ю';SYMBOL[32]:='Я';
   for I:=1 to N do // Цикл по созданию кнопок на форме
   begin
      // Создаем кнопку на Form1
      Btn:=TButton.Create(Form1);
      with Btn do
      begin
         Parent:= Form1; // Определение родителя (Form1), т.е. где создаются кнопки
         // Определение свойств создаваемых кнопок
         Height := 30;
         Width := 30;
         // Определяем место положение кнопки на форме
         Top := 200+((I-1) div 8)*40;
         Left := ((I-1) mod 8) * 40 + 30;
         Font.Size := 9;
         Font.Style:=[fsBold];
         // Определение буквы, которая будет изображена на кнопке
         Caption := SYMBOL[I];
         // Определение имени процедуры, обрабатывающей событие нажатия кнопки
         OnClick := @FORM1.BtnClick;
      end;
   end;
   Form1.Panel1.Visible:=False;
   Label3.Caption:='Количество неправильных ответов';
   N_Attempt:=0;
   Label4.Caption:=IntToStr(N_Attempt);
   Randomize;
   NUMBER:=Random(KOL_QUE-1)+1; //Случайное число – номер записи
   Label1.Caption:=UTF8ToAnsi(AQ[NUMBER].QUE);
   POISK_WORD:=AQ[NUMBER].ANS;
   POISK_WORD_NEW:='';
   POISK_WORD:=UTF8ToAnsi(POISK_WORD);
   Size_WORD:= Length(POISK_WORD); //Длина отгадываемого слова
   POISK_WORD_NEW:='';
   For I:=1 to Size_WORD do
   begin
      STR_N[I]:='*';
      POISK_WORD_NEW:=POISK_WORD_NEW+'*';
   end;
   Label2.Caption:=POISK_WORD_NEW;
   Form1.Button1.Enabled:=False;
end;

procedure TForm1.BtnClick(Sender: TObject);
// Процедура обработки события нажатия созданных кнопок
begin
// Переменная Sender содержит имя объекта, которому соответствует данное событие
   CHAR_:=(Sender as TButton).Caption;
   POISK; //Обращение процедуре поиска буквы
   (Sender as TButton).Enabled:=False; //Кнопка буквы недоступна
end;

end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23
Программа "угадай фильм по картинке" в си шарп МашКав Помощь студентам 1 13.05.2014 22:03
Машина Тьюринга: Определите, имеются ли в слове Х две одинаковые буквы, идущие подряд, если слово состоит из букв "C" и "D" Елешечка Помощь студентам 8 06.04.2014 17:19
Игра"Угадай число" в Паскале.(вставка таблицы рекордов) valli Помощь студентам 1 03.01.2011 14:04
Игра "Угадай слово" Женишгуль Помощь студентам 4 21.03.2010 03:28