Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Процедуры формы Form1 (модуля Unit1)




Процедуры формы Form3 (модуль Unit3)

Процедуры формы Form2 (модуль Unit2)

var Form2: Tform2; s,t:string; f:integer;

procedure Tform2.Button1Click(Sender: TObject); //кнопка «Подтвердите»

begin s:=DateToStr(Date); // преобразование текущей даты в строку

t:=Edit1.Text; f:=AnsiCompareText(s,t); //сравнение даты с введенным паролем

If f=0 then // пароль введен верно и форма Загадать становится видимой

begin Form3.Show; Form2.Close;end

else //ошибка в пароле, вывод сообщения

begin Application.MessageBox('Введен неправильный пароль', 'Внимание', mb_Ok+mb_IconError);

Edit1.SetFocus; //передача фокуса полю для ввода пароля

end;

end;

var Form3: Tform3; f:string; i,c:integer;

procedure Tform3.Button1Click(Sender: TObject); //кнопка «Сохранить»

begin

Form1.Label1.Caption:=Memo1.Text; //выводит на форму Поле Чудес вопрос

f:=Edit1.Text; c:=Length(f);

for i:=1 to c do begin

case i of //в зависимости от длины слова выводится нужное количество

1: Form1.Statictext1.Visible:=true; //компонентов StaticText

2: Form1.Statictext2.Visible:=true; 3: Form1.Statictext3.Visible:=true;

4: Form1.Statictext4.Visible:=true; 5: Form1.Statictext5.Visible:=true;

6: Form1.Statictext6.Visible:=true; 7: Form1.Statictext7.Visible:=true;

8: Form1.Statictext8.Visible:=true; 9: Form1.Statictext9.Visible:=true;

10: Form1.Statictext10.Visible:=true;

end;

end;

Form1.Show; Form3.Close;

end;

procedure Tform3.FormActivate(Sender: TObject);

begin Memo1.SetFocus; //передача фокуса полю Memo1

end;

Текст программы для C++ Builder

int z,c,i,k,y,x,t,a,g,w,u,l,x1,y1; String f,p,b,s,e; // объявление переменных

void __fastcall TForm1::FormCreate(TObject *Sender) // создание формы

{Series1->Add(10,"ПЕРЕХОД ХОДА",clSilver); // прорисовка барабана

Series1->Add(10,"*2",clBlue); // (диаграммы)

Series1->Add(10,"*4",clLime); Series1->Add(10,"500 очков",clFuchsia);

Series1->Add(10,"750 очков",clRed); Series1->Add(10,"100 очков",clWhite);

Series1->Add(10,"250 очков",clYellow); Series1->Add(10,"1000 очков",clGreen);

}

void __fastcall TForm1::Button1Click(TObject *Sender) / /кнопка «Выход»

{Close(); // процедура закрытия программы }

void __fastcall TForm1::Button3Click(TObject *Sender) // кнопка «Загадать»

{Form2->Visible=True; Form2->SetFocus(); Form1->Visible=false;

Button3->Visible=false; // скрывается кнопка «Загадать»

Button6->Visible=true; // визуализация кнопки "Вращать барабан",

Button4->Visible=true; // визуализация кнопки "Назвать слово"

Button5->Visible=true; // визуализация кнопки «Подтвердите выбор»

Label2->Visible=true; Label4->Visible=true;

Label5->Visible=true; // делает видимыми надписи

Label5->Caption=Label5->Caption+"0"; Label6->Visible=true;

Label6->Caption=Label6->Caption+"0";

Edit1->Visible=true; // делает видимым поле для ввода буквы

Edit1->Enabled=false; // блокируется поле для ввода буквы

c=f.Length(); // запоминается длина слова

for (i=1;i<=c;i++) // вывод соответствующего числа

{switch (i) // компонентов StaticText

{case 1: StaticText1->Visible=true; break;

case 2: StaticText2->Visible=true; break;

case 3: StaticText3->Visible=true; break;

case 4: StaticText4->Visible=true; break;

case 5: StaticText5->Visible=true; break;

case 6: StaticText6->Visible=true; break;

case 7: StaticText7->Visible=true; break;

case 8: StaticText8->Visible=true; break;

case 9: StaticText9->Visible=true; break;

case 10: StaticText10->Visible=true; break;}

}

}

void __fastcall TForm1::Button4Click(TObject *Sender) //кн.»Назвать слово»

{Button2->Visible=true;

Edit2->Visible=true; // делает видимым поле для ввода слова

Edit2->SetFocus(); // устанавливает на него фокус

}

void __fastcall TForm1::Button5Click(TObject *Sender) // Вращать барабан

{if (Label4->Caption=="Игрок1, Ваш ход") g=1;

else g=2; // запоминает, кто из игроков делает ход

Button4->Enabled=true; Edit1->Enabled=true;

Edit1->SetFocus(); // устанавливает курсор в поле для ввода буквы

Timer1->Enabled=true; // делает активным таймер

Edit1->Text=""; // очищает поле ввода буквы

}

void __fastcall TForm1::Button2Click(TObject *Sender)

{Edit2->Visible=false; // делает невидимым поле для ввода слова

Edit1->Enabled=true; s=Edit2->Text; // запоминается введенное слово

i=AnsiCompareText(f,s); // сравнение загаданного и введенного слов

if (i==0) // действия при вводе игроком верного ответа

{Label3->Caption="ВЫ УГАДАЛИ!!!"; Label4->Caption="";

Button4->Enabled=false; Button5->Enabled=false;}

else if(a==0) // a=0, если еще никто не пытался назвать слово

{if (g==1) // действия при вводе игроком 1 неверного ответа

{Label3->Caption="Игрок 1, Вы ошиблись";

Label4->Caption="Игрок 2, Вы должны назвать слово";

Edit2->Visible=true; Edit2->Text=""; Edit2->SetFocus(); a=a+1;

}

else

if (g==2) // действия при вводе игроком2 неверного ответа

{Label3->Caption="Игрок 2, Вы ошиблись";

Label4->Caption="Игрок 1, Вы должны назвать слово";

Edit2->Visible=true; Edit2->Text="";

Edit2->SetFocus(); a=a+1;

}

}

else // если один из игроков ввел неверное слово, то выводится

// сообщение об ошибке и другому предлагается назвать слово

{Label4->Visible=false; Edit2->Enabled=false;

Button5->Enabled=false;

if (Label4->Caption=="Игрок 1, Вы должны назвать слово")

Label3->Caption="Игрок 1, Вы ошиблись, игра окончена";

else if (Label4->Caption=="Игрок 2, Вы должны назвать слово")

Label3->Caption="Игрок 2, Вы ошиблись, игра окончена";

}

}

void __fastcall TForm1::Edit2Change(TObject *Sender)

{Button4->Enabled=false; // при вводе слова блокируются

Edit1->Enabled=false; } // кнопка «Назвать слово» и поле для ввода буквы

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{static x, y; // объявление статических переменных х и у

x=x1; y=y1; Button5->Enabled=false;// блокировка кнопки "Вращать барабан"

randomize(); z=random(150);

i=i+1; // в переменной считается количество поворотов

if (i<z)

{Series1->RotationAngle=Series1->RotationAngle+5; // поворот диаграммы

t=t+5;} // запоминание угла поворота

else

{switch (g) // переменная g показывает, кто сделал ход

{case 1: // проверяет, какой сектор выпал и производит

{if (t<=45) x=x+1000; // соответствующие действия

else if (t<=90) x=x+250; else if (t<=135) x=x+100;

else if (t<=180) x=x+750; else if (t<=225) x=x+500;

else if (t<=270) x=x*4; else if (t<=315) x=x*2;

else if (t<=360) {Label4->Caption="Игрок2, Ваш ход";

Button5->Enabled=true; Edit1->Enabled=false; i=-1;}

// переменная i – это флаг, указывающий на то, что выпал

// сектор «Переход хода» и не надо суммировать очки

if (i!=-1) {e=IntToStr(x); Label5->Caption="Игрок1, Ваш выигрыш - "+e;}}

// перевод количества набранных очков в строку для вывода на форму

break;

case 2:

{if (t<=45) y=y+1000; else if (t<=90) y=y+250;

else if (t<=135) y=y+100; else if (t<=180) y=y+750;

else if (t<=225) y=y+500; else if (t<=270) y=y*4;

else if (t<=315) y=y*2; else if (t<=360) {Label4->Caption="Игрок1, Ваш ход";

Button5->Enabled=true; Edit1->Enabled=false; i=-1; }

if (i!=-1){e=IntToStr(y); Label6->Caption="Игрок2, Ваш выигрыш - "+e;

}

} break;

}

Timer1->Enabled=false; // блокировка таймера

} x1=x; y1=y;

Series1->Clear(); // удаляет диаграмму

Series1->Add(10,"ПЕРЕХОД ХОДА",clSilver); // перерисовывает

Series1->Add(10,"*2",clBlue); // диаграмму, повернув ее на 5 град.

Series1->Add(10,"*4",clLime); Series1->Add(10,"500 очков",clFuchsia);

Series1->Add(10,"750 очков",clRed); Series1->Add(10,"100 очков",clWhite);

Series1->Add(10,"250 очков",clYellow); Series1->Add(10,"1000 очков",clGreen);

}

void __fastcall TForm1::Edit1Change(TObject *Sender)

{Button6->Enabled=true; Button5->Enabled=false;

// блокировка кнопок "Вращать барабан" и «Подтвердите выбор» }

void __fastcall TForm1::Button6Click(TObject *Sender) //кн. «Подтвердите»

{f=Form3->Edit1->Text; c=f.Length(); w=0;

b=Edit1->Text; // запоминается введенная буква

b=AnsiLowerCase(b); // возвращается буква в нижнем регистре

for (i=1;i<=c;i++) // в цикле введенная буква сравнивается с i-й

// буквой слова

{ p=f.SubString(i,1); // возвращает i-ю букву загаданного слова

p=AnsiLowerCase(p); // возвращается буква в нижнем регистре

if (p==b)

{u=u+1; // в переменной считается количество угаданных букв

w=w+1; // в переменной считается, сколько раз

// введенная буква встречается в слове

switch (i) // вывод угаданной буквы

{case 1: StaticText1->Caption=b; break;

case 2: StaticText2->Caption=b; break;

case 3: StaticText3->Caption=b; break;

case 4: StaticText4->Caption=b; break;

case 5: StaticText5->Caption=b; break;

case 6: StaticText6->Caption=b; break;

case 7: StaticText7->Caption=b; break;

case 8: StaticText8->Caption=b; break;

case 9: StaticText9->Caption=b; break;

case 10: StaticText10->Caption=b; break;}

}

}

Edit1->Enabled=false; Button5->Enabled=true;

if (w!=0)

switch (g)

{case 1: // умножение набранных очков, если буква // в слове встречается более одного раза

{x1=x1*w; e=IntToStr(x1);

Label5->Caption="Игрок1, Ваш выигрыш - "+e;} break;

case 2:

{y1=y1*w; e=IntToStr(y1);

Label6->Caption="Игрок2, Ваш выигрыш - "+e;} break;}

// если буква названа неверно, то ход передается другому игроку

else

if (Label4->Caption=="Игрок1, Ваш ход")

Label4->Caption="Игрок2, Ваш ход";

else Label4->Caption="Игрок1, Ваш ход";

if (u==c) {Label3->Caption="ВЫ УГАДАЛИ!!!";

Label4->Visible=false; Button4->Enabled=false; Button5->Enabled=false;}

Button6->Enabled=false;

// если количество угаданных букв совпадает с длиной слова, то

// выводится надпись «ВЫ УГАДАЛИ!!!» и блокируются все объекты

// кроме кнопки «Выход»

}

 




Поделиться с друзьями:


Дата добавления: 2014-12-08; Просмотров: 551; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.048 сек.