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.

п<strong>е</strong>р<strong>е</strong>числ<strong>е</strong>ния и колл<strong>е</strong>кции<br />

c l a s s C ardC om parer_bySuit : IComparer<br />

{<br />

p u b l i c<br />

{<br />

i n t Com pare(Card x . Card y)<br />

i f ( x .S u i t > y . S u i t )<br />

r e t u r n 1;<br />

i f ( x .S u i t < y . S u i t )<br />

r e t u r n -1 ;<br />

i f (x .V a lu e > y .V a lu e )<br />

r e t u r n 1;<br />

i f (x .V a lu e < y .V a lu e )<br />

r e t u r n -1 ;<br />

r e t u r n 0;<br />

Deck d e c k l;<br />

D eck d e c k 2 ;<br />

Random random =<br />

new Random()<br />

С о р т и р о в к а no м а с т и н а т м и -<br />

н а <strong>е</strong> т с о р т и р о в к у п о с т а р ш и н ­<br />

с т в у . Е д и н с т в <strong>е</strong> н н о <strong>е</strong> о т л и ч и <strong>е</strong><br />

в т о м , ч т о м а с т и с р а в н и ­<br />

в а ю т с я п <strong>е</strong> р в ы м и , а с р а в н <strong>е</strong> н и <strong>е</strong><br />

знач<strong>е</strong>нии к д р т происходит<br />

т о л ь к о п р и с о в п а д <strong>е</strong> н и и м а с т <strong>е</strong> й .<br />

Вм<strong>е</strong>сто конструкции if/else if<br />

мы использовали набор оп<strong>е</strong>раторов<br />

if. Это работа<strong>е</strong>т, так<br />

как каждьш сл<strong>е</strong>дуюший one<br />

ратор if выполня<strong>е</strong>тся только<br />

в случа<strong>е</strong> н<strong>е</strong>выполн<strong>е</strong>ния пр<strong>е</strong>дыдущ<strong>е</strong>го.<br />

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

I n it ia liz e C o m p o n e n t О ;<br />

}<br />

R e s e tD e c k (1 );<br />

R e s e tD e c k (2 );<br />

R edraw D eck(1 );<br />

R edraw D eck(2 );<br />

Конструктор формы сна<br />

чала возвраща<strong>е</strong>т колоды<br />

в исходно<strong>е</strong> состояни<strong>е</strong> —<br />

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

п о т о м<br />

p r i v a t e v o id R e s e t D e c k ( in t deckNumber) {<br />

}<br />

i f (deckNumber = = 1 ) {<br />

i n t num berO fCards = random .N e x t (1 , 1 1 );<br />

d e c k l = new D eck (new C ard[] { } ) ;<br />

f o r ( i n t i = 0; i < num berO fCards; i++)<br />

d e c k l.A d d (n e w C a r d ( ( S u it s ) r a n d o m .N e x t ( 4 ) ,<br />

(V a lu e s )r a n d o m .N e x t(1, 1 4 ) ) ) ;<br />

d e c k l . S o r t ( );<br />

} e l s e<br />

d eck2 = new D e c k ()<br />

l4emod RedrawPeckQ<br />

вам уж<strong>е</strong> встр<strong>е</strong>чался.<br />

Vпользу<strong>е</strong>тся м<strong>е</strong>тод random Nextn и п . / ’<br />

созда<strong>е</strong>тся пистая<br />

посл<strong>е</strong> ч<strong>е</strong>го<br />

For туда добавляются г ‘^омощи цикла<br />

сл<strong>е</strong>док оста<strong>е</strong>тся пров<strong>е</strong>ст Тгп^',^ карты. Напостановить<br />

колоди ^с>ртировку. Воссоздать<br />

экз<strong>е</strong>мпляр D ecl^ '^Р°'Ч<strong>е</strong>. Достаточно<br />

У <strong>е</strong> р <strong>е</strong> ^ <strong>е</strong> р н и т п <strong>е</strong> с т р а н и ц у и 1 ^ о Д о Л ж и м !<br />

дальш<strong>е</strong> > 373

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

Saved successfully!

Ooh no, something went wrong!