![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Процедуры формы 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; // если количество угаданных букв совпадает с длиной слова, то // выводится надпись «ВЫ УГАДАЛИ!!!» и блокируются все объекты // кроме кнопки «Выход» }
|