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