14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем 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>ния<br />

О Это код дюрмы<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 Form l : Form {<br />

p u b l i c F o r m l() {<br />

I n it i a l iz e C o m p o n e n t () ;<br />

}<br />

p r i v a t e Game gam e;<br />

Это <strong>е</strong>динств<strong>е</strong>нный класс, с которым<br />

взаимод<strong>е</strong>йству<strong>е</strong>т фо^>ма. Им<strong>е</strong>нно он<br />

управля<strong>е</strong>т вс<strong>е</strong>й игрои.<br />

Свойство<br />

B n a b le d<br />

Включа<strong>е</strong>т и<br />

о т к л ю ч а <strong>е</strong> т<br />

э л <strong>е</strong> м <strong>е</strong> н т ы<br />

у п р а в л <strong>е</strong> н и я<br />

ф орм ьь<br />

Этот м<strong>е</strong>тод<br />

очища<strong>е</strong>т т <strong>е</strong>кстово<strong>е</strong><br />

пол<strong>е</strong><br />

от пр<strong>е</strong>дыдущ<strong>е</strong>го<br />

списка и<br />

заполня<strong>е</strong>т <strong>е</strong>го<br />

набором карт<br />

для новой игры.<br />

p r i v a t e v o id buttonStart_Click(object se n d e r , E v en tA rg s e) {<br />

i f (S tr in g .I s N u llO r E m p t y ( t e x t N a m e .T e x t ) ){<br />

M e ssa g e B o x .S h o w (" P le a se e n t e r y o u r name<br />

r e tu r n ;<br />

"C an't s t a r t t h e game y e t" )<br />

}<br />

game new G a m e(tex tN a m e.T ex t, new L i s t < s t r i n g > { "Joe", "Bob" }, t e x t P r o g r e s s )<br />

A u t t o n S t a r t .E n a b l e d = f a l s e ;<br />

(te x tN a m e .E n a b le d = f a l s e ;<br />

b u tto n A s k .E n a b le d = t r u e ;<br />

U pdateForm O ;<br />

p r i v a t e v o i d UpdateFormO {<br />

l i s t H a n d . I t e m s . C l e a r ();<br />

f o r e a c h<br />

( S t r in g cardName i n g a m e.G etP la y erC a rd N a m es()<br />

lis tH a n d .I te m s .A d d (c a r d N a m e );<br />

t e x tB o o k s .T e x t = g a m e .D e s c r ib e B o o k s 0 ;<br />

t e x t P r o g r e s s .T e x t += g a m e .D e s c r ib e P la y e r H a n d s ( ) ;<br />

t e x t P r o g r e s s . S e l e c t i o n S t a r t = t e x t P r o g r e s s .T e x t .L e n g t h ;<br />

t e x t P r o g r e s s . S c r o ll T o C a r e t ( );<br />

p r i v a t e v o i d buttonAsk_Click(object se n d e r , E v en tA rg s e) {<br />

t e x t P r o g r e s s .T e x t = "";<br />

i f ( l is t H a n d .S e le c t e d l n d e x < 0) {<br />

}<br />

i f<br />

M e ssa g e B o x .S h o w (" P le a se s e l e c t a c a r d " );<br />

r e tu r n ;<br />

При начал<strong>е</strong> новой игры созда<strong>е</strong>тся экз<strong>е</strong>мпляр<br />

класса Game, становится доступной<br />

кнопка Ask, пропада<strong>е</strong>т достцп<br />

к кнопк<strong>е</strong> S ta rt Game, посл<strong>е</strong> ч<strong>е</strong>го форма<br />

п<strong>е</strong>р<strong>е</strong>рисовыва<strong>е</strong>тся.<br />

(g a m e .P la y O n e R o u n d ( lis t H a n d .S e le c t e d ln d e x ) ) {<br />

t e x t P r o g r e s s .T e x t += "The w in n er i s . . . + gam e. G etW innerNam e()<br />

t e x t B o o k s .T e x t = g a m e .D e s c r ib e B o o k s 0 ;<br />

b u tto n A s k .E n a b le d = rf a lis e ;<br />

e l s e<br />

A<br />

UpdateForm O ;<br />

Свойство SelectionStart<br />

и м<strong>е</strong>тод ScrollToCaretO<br />

позволяют прокручи -<br />

бать т<strong>е</strong>кст, <strong>е</strong>сли он н<strong>е</strong><br />

ум<strong>е</strong>ща<strong>е</strong>тся в т<strong>е</strong>кстово<strong>е</strong><br />

) пол<strong>е</strong>.<br />

Свойство SelectionStart<br />

опр<strong>е</strong>д<strong>е</strong>ля<strong>е</strong>т начало выо<strong>е</strong>л<strong>е</strong>нного<br />

фрагм<strong>е</strong>нта,<br />

посл<strong>е</strong> этого м<strong>е</strong>тод<br />

ScrollToCaretQ прокручива<strong>е</strong>т<br />

сод<strong>е</strong>ржимо<strong>е</strong> т <strong>е</strong>кстового<br />

поля до м<strong>е</strong>ста<br />

нахожд<strong>е</strong>ния курсора.<br />

Игрок выбира<strong>е</strong>т карту и щ<strong>е</strong>лка<strong>е</strong>т на кнопк<strong>е</strong><br />

Ask, чтобы узнать, <strong>е</strong>сть ли данная карта<br />

У кого-нибудь из соп<strong>е</strong>рников. Класс Game игра<strong>е</strong>т<br />

с помощью м<strong>е</strong>тода PlayOneRoundQ.<br />

380 глава 8

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!