14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

p u b l i c s t r i n g DescribeBooks()<br />

s t r i n g whoHasW hichBooks =<br />

)<br />

{<br />

Так как в форм<strong>е</strong> долж<strong>е</strong>н отображаться<br />

список взяток, воспользу<strong>е</strong>мся<br />

м<strong>е</strong>тодом Р<strong>е</strong>5спЬ<strong>е</strong>Тк<strong>е</strong>Воок5()<br />

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

о строки.<br />

^<br />

f o r e a c h (V a lu e s v a lu e i n b o o k s.K e y s)<br />

whoHasW hichBooks += b o o k s [v a lu e ].N a m e + " h a s a book o f<br />

+ C a r d .P lu r a l( v a lu e ) + E n v iro n m en t.N ew L in e;<br />

r e t u r n whoH asW hichBooks;<br />

p u b l i c s t r i n g GetWinnerName() {<br />

D ic t io n a r y < s t r in g , i n t > w in n e r s = new D ic t io n a r y < s t r in g ,<br />

f o r e a c h (V a lu e s v a lu e i n b o o k s.K e y s) {<br />

s t r i n g name = b o o k s[v a lu e ].N a m e ;<br />

i f (w in n e r s.C o n ta in sK e y (n a m e ))<br />

w in n ers[n a m e] ++;<br />

e l s e<br />

w in n ers.A d d (n a m e, 1 );<br />

}<br />

i n t m ostB ook s = 0;<br />

f o r e a c h ( s t r i n g name i n w in n e r s . Keys)<br />

i f (w in n ers[n am e] > m ostB ooks)<br />

m ostB ook s = w in n e r s [name] ; ()<br />

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

тр<strong>е</strong>бу<strong>е</strong>тся опр<strong>е</strong>д<strong>е</strong>лить поб<strong>е</strong>дит<strong>е</strong>ля.<br />

Им<strong>е</strong>нно этим занима<strong>е</strong>тся м<strong>е</strong>тод<br />

GetWinnerNameQ на основ<strong>е</strong> информации<br />

из словаря winners. К л ю ч о м<br />

явля<strong>е</strong>тся имя игрока, а знач<strong>е</strong>ни<strong>е</strong>м -<br />

колич<strong>е</strong>ство взяток.<br />

b o o l t i e = f a l s e ; \ Зат<strong>е</strong>м опр<strong>е</strong>д<strong>е</strong>ля<strong>е</strong>тся<br />

максимально<strong>е</strong> колич<strong>е</strong>ство<br />

взяток. Оно пом<strong>е</strong>и^а<strong>е</strong>тся<br />

в п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нную mostBooks.<br />

{<br />

i f<br />

{<br />

( 'S tr in g .I s N u llO r E m p ty (w in n e r L is t)<br />

w in n e r L is t += " and ";<br />

t i e = t r u e ;<br />

}<br />

w in n e r L is t += name;<br />

}<br />

w in n e r L is t += " w it h " + m ostB ook s + " b o o k s " ;<br />

i f ( t i e )<br />

r e t u r n "A t i e b e tw e e n " + w in n e r L is t ;<br />

e l s e<br />

r e t u r n w in n e r L is t ;<br />

Т<strong>е</strong>п<strong>е</strong>рь, когда мы зна<strong>е</strong>м<br />

игрока с максимальным<br />

колич<strong>е</strong>ством взяток,<br />

можно выв<strong>е</strong>сти строку<br />

с им<strong>е</strong>н<strong>е</strong>м поб<strong>е</strong>дит<strong>е</strong>ля<br />

(или поб<strong>е</strong>дит<strong>е</strong>л<strong>е</strong>й).<br />

Ц <strong>е</strong>р <strong>е</strong>Б <strong>е</strong>р н ш п <strong>е</strong> сш р а н и п у U п р о д о д ж ш !<br />

дальш<strong>е</strong> ► 387

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

Saved successfully!

Ooh no, something went wrong!