Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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;

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

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

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

}

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.