. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
типы и ссылки<br />
Класс, отсл<strong>е</strong>живающий статистику игры<br />
Так как в форм<strong>е</strong> должно отображаться общ<strong>е</strong><strong>е</strong> колич<strong>е</strong>ство нажатых, пропущ<strong>е</strong>нных<br />
и правильно нажатых клавиш, а такж<strong>е</strong> точность, значит, мы должны<br />
отсл<strong>е</strong>живать вс<strong>е</strong> эти данны<strong>е</strong>. Каж<strong>е</strong>тся, нам потр<strong>е</strong>бу<strong>е</strong>тся новый класс!<br />
Назовит<strong>е</strong> <strong>е</strong>го S t a t s . Он буд<strong>е</strong>т сод<strong>е</strong>ржать ч<strong>е</strong>тыр<strong>е</strong> поля типа i n t с им<strong>е</strong>нами<br />
T o t a l (Вс<strong>е</strong>го), M i s s e d (Пропущ<strong>е</strong>но), C o r r e c t (Правильно) и A c c u r a c y<br />
(Точность), а такж<strong>е</strong> м<strong>е</strong>тод U p d a t e с одним парам<strong>е</strong>тром типа b o o l , который<br />
получа<strong>е</strong>т знач<strong>е</strong>ни<strong>е</strong> t r u e , <strong>е</strong>сли нажатая игроком клавиша совпала с буквой,<br />
появивш<strong>е</strong>йся в окн<strong>е</strong> ListBox, и знач<strong>е</strong>ни<strong>е</strong> f a ls e , <strong>е</strong>сли игрок ошибся.<br />
c l a s s S t a t s<br />
{<br />
p u b l i c i n t T o t a l = 0;<br />
p u b l i c i n t M isse d = 0;<br />
p u b l i c i n t C o r r e c t = 0;<br />
p u b l i c i n t A c cu ra c y = 0;<br />
p u b l i c v o id U p d a te (b o o l c o r r e c tK e y )<br />
{<br />
T o t a l ++;<br />
i f ( ! c o r r e c tK e y )<br />
{<br />
M isse d + + ;<br />
}<br />
e l s e<br />
{<br />
}<br />
C o r r e c t ++;<br />
При каждом вызов<strong>е</strong> м<strong>е</strong>тода<br />
UpdateQ вычисля<strong>е</strong>тся проц<strong>е</strong>нт<br />
правильных попаданий,<br />
а р<strong>е</strong>зультат этих вычисл<strong>е</strong>ний<br />
пом<strong>е</strong>ица<strong>е</strong>тся в пол<strong>е</strong> Accuracy.<br />
}<br />
}<br />
A c cu ra c y = 100 * C o r r e c t / (M issed + C o r r e c t) ;<br />
Поля для отсл<strong>е</strong>живания объ<strong>е</strong>ктов Stats и Random<br />
Вам потр<strong>е</strong>бу<strong>е</strong>тся экз<strong>е</strong>мпляр класса Stats для хран<strong>е</strong>ния информации, поэтому добавьт<strong>е</strong> пол<strong>е</strong><br />
stats. Как вы уж<strong>е</strong> вид<strong>е</strong>ли, пол<strong>е</strong> random, сод<strong>е</strong>ржащ<strong>е</strong><strong>е</strong> объ<strong>е</strong>кт Random, пока отсутству<strong>е</strong>т.<br />
Напишит<strong>е</strong> в в<strong>е</strong>рхн<strong>е</strong>й части кода формы:<br />
p u b l i c p a r t i a l c l a s s Forml<br />
{<br />
: Form<br />
Random random = new Random();<br />
Stats stats = new Stats();<br />
Пр<strong>е</strong>жд<strong>е</strong> ч<strong>е</strong>м продолжить, присвойт<strong>е</strong> свойству<br />
Enabled тайм<strong>е</strong>ра знач<strong>е</strong>ни<strong>е</strong> True. Для эл<strong>е</strong>м<strong>е</strong>нта<br />
ProgressBar сд<strong>е</strong>лайт<strong>е</strong> свойство Maximum<br />
равным 701, а для свойства KeyPreview<br />
формы выб<strong>е</strong>рит<strong>е</strong> знач<strong>е</strong>ни<strong>е</strong> True. Попробуйт<strong>е</strong><br />
отв<strong>е</strong>тить на вопрос, что буд<strong>е</strong>т,<br />
<strong>е</strong>сли это н<strong>е</strong> сд<strong>е</strong>лать?<br />
дальш<strong>е</strong> ► 189