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 />

іажн<strong>е</strong>ни<strong>е</strong><br />

'<strong>е</strong>ш<strong>е</strong>ни<strong>е</strong><br />

c l a s s Deck {<br />

В о т код д ля класса, хранящ <strong>е</strong>го инф о р м ацию о колод<strong>е</strong> карт, а такж<strong>е</strong> д л я использую<br />

щ <strong>е</strong>й этот класс ф орм ы<br />

p r i v a t e L ist< C a rd > c a r d s;<br />

p r i v a t e Random random = new Random( );<br />

p u b l i c D eckO {<br />

}<br />

c a r d s = new L ist () ;<br />

f o r ( i n t s u i t = 0; s u i t ( i n i t i a l C a r d s ) ;<br />

}<br />

p u b l i c i n t Count { g e t { r e t u r n c a r d s.C o u n t;<br />

p u b l i c v o id Add(Card cardToAdd) {<br />

}<br />

c a r d s.A d d (c a r d T o A d d );<br />

p u b l i c Card D e a l ( i n t in d ex ) {<br />

Card CardToDeal = c a r d s [ in d e x ]<br />

c a r d s . R e m o v e A t(in d e x );<br />

r e t u r n C ardT oD eal;<br />

}<br />

p u b lic v o id S h u f f l e 0 {<br />

}<br />

L ist< C a rd > NewCards = new L is t< C a r d > ( ) ; -----<br />

w h ile (c a r d s.C o u n t > 0 ) {<br />

i n t CardToMove = r a n d o m .N e x t(c a r d s . Count)<br />

N ew C ard s.A d d (card s[C ard T oM ove]);<br />

c a r d s . Rem oveA t(C ardT oM ove);<br />

}<br />

c a r d s = NewCards;<br />

p u b lic IE n u m e ra b le < strin g > G etC ardN am es() {<br />

}<br />

s t r i n g [] CardNames = new s t r i n g [ c a r d s . C o u n t];<br />

( i n t i = 0; i < c a r d s .C o u n t; i++ )<br />

C ardN am es[i] = c a r d s [i] .Name;<br />

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

p u b l i c v o id S o r t O {<br />

c a r d s . S o r t(n e w C a rd C o m p a rer_ b y S u it( ) ) ;<br />

Э т о т конструктор созда<strong>е</strong>т колодц<br />

из SZ карт. Он использу<strong>е</strong>т влож<strong>е</strong>нный<br />

цикл for. Вн<strong>е</strong>шний цикл оси-<br />

^<strong>е</strong>рсбор ч<strong>е</strong>тыр<strong>е</strong>х маст<strong>е</strong>й.<br />

/ ^ ^ ‘^^<strong>е</strong>т ст в<strong>е</strong>нно, внутр<strong>е</strong>нний цикл,<br />

j п<strong>е</strong>р<strong>е</strong>бирающий 13 знач<strong>е</strong>ний карт, за<br />

разу на каждую масть.<br />

<strong>е</strong> с т ь n o<br />

Это второй конструктор.<br />

-------- Данны й класс сод<strong>е</strong>ржит<br />

два п<strong>е</strong>р<strong>е</strong>груж<strong>е</strong>нных конструктора<br />

с различными<br />

J J парам<strong>е</strong>трами.<br />

^^oд Add ^ л і<strong>е</strong> -<br />

" с им<strong>е</strong>н<strong>е</strong>м NewCards<br />

ИЗ п о л я Cards и пом<strong>е</strong>ш,а<strong>е</strong>т в к м -<br />

СагГн<strong>е</strong>^‘^"^<br />

^aras н<strong>е</strong> опуст<strong>е</strong><strong>е</strong>т. Посл<strong>е</strong> этого<br />

н о в ' Л ^ Т ' ' ' ^ ^<br />

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

оста<strong>е</strong>тся, он удаля<strong>е</strong>тся.<br />

М <strong>е</strong>т о Э й О а С а гс1 Ы а т <strong>е</strong> $ {) нуж н о с о з д а т ь<br />

Ъ ^ а т о ч н о б о л ь ш о й м а с с и в , ч т о б ы в<br />

н <strong>е</strong> го п о м <strong>е</strong> с т и л и с ь и м <strong>е</strong> н а в с <strong>е</strong> х ^<br />

Т т о г Т и с п о л ь з у <strong>е</strong> т с я ц и к л<br />

ч а р <strong>е</strong> ш а <strong>е</strong> м а и с п о М о ш р ю ц и к л а \о г<strong>е</strong>ас)л .<br />

ня<br />

372 глава 8

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

Saved successfully!

Ooh no, something went wrong!