30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

B.1 Implementationen der e<strong>in</strong>zelnen Klassen 555<br />

13 symbols ( num symbols rema<strong>in</strong><strong>in</strong>g , CharDeletor : : getInstance ( ) )<br />

14 {<br />

15 fillVectorWithSymbols ( ) ;<br />

16 distributeSymbolsRandomlyInVector ( ) ;<br />

17 }<br />

18<br />

19 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />

20 void MemoryCardSymbolGenerator : : fillVectorWithSymbols ( )<br />

21 {<br />

22 u<strong>in</strong>t32 count = num symbols rema<strong>in</strong><strong>in</strong>g ;<br />

23 char l e t t e r = ’A’ ;<br />

24 while ( count−−)<br />

25 {<br />

26 symbols . setElementAt ( count ,new char ( l e t t e r ) ) ;<br />

27 i f ( ( ( l e t t e r >= ’A’ ) && ( l e t t e r < ’ Z ’ ) ) | |<br />

28 ( ( l e t t e r >= ’ a ’ ) && ( l e t t e r < ’ z ’ ) ) | |<br />

29 ( ( l e t t e r >= ’ 0 ’ ) && ( l e t t e r < ’ 9 ’ ) ) )<br />

30 l e t t e r ++;<br />

31 else<br />

32 {<br />

33 switch ( l e t t e r )<br />

34 {<br />

35 case ’ Z ’ :<br />

36 l e t t e r = ’ a ’ ;<br />

37 break ;<br />

38 case ’ z ’ :<br />

39 l e t t e r = ’ 0 ’ ;<br />

40 break ;<br />

41 }<br />

42 }<br />

43 }<br />

44 }<br />

45<br />

46 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />

47 void MemoryCardSymbolGenerator : : distributeSymbolsRandomlyInVector ( )<br />

48 {<br />

49 // d i s t r i b u t e the symbols randomly by swapp<strong>in</strong>g them<br />

50 // <strong>in</strong> the vector . Please note that the f o l l o w i n g<br />

51 // implementation i s numerically weak <strong>in</strong> r e s p e c t to<br />

52 // the use of the random number generator .<br />

53 u<strong>in</strong>t32 count = num symbols rema<strong>in</strong><strong>in</strong>g ∗ SYMBOL SWAP FACTOR;<br />

54 srand ( count ) ; // s e t the seed ( should be done b e t t e r . . . )<br />

55 while ( count−−)<br />

56 {<br />

57 <strong>in</strong>t swap pos1 = rand () % num symbols rema<strong>in</strong><strong>in</strong>g ;<br />

58 <strong>in</strong>t swap pos2 = rand () % num symbols rema<strong>in</strong><strong>in</strong>g ;<br />

59 char ∗ swap help = static cast(<br />

60 symbols . getAndRemoveElementAt ( swap pos1 ) ) ;<br />

61 symbols . setElementAt ( swap pos1 , static cast(<br />

62 symbols . getAndRemoveElementAt (<br />

63 swap pos2 ) ) ) ;<br />

64 symbols . setElementAt ( swap pos2 , swap help ) ;<br />

65 }<br />

66 }<br />

67<br />

68 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />

69 char MemoryCardSymbolGenerator : : getNextSymbol ( )<br />

70 {<br />

71 i f ( num symbols rema<strong>in</strong><strong>in</strong>g )<br />

72 return (∗ static cast(<br />

73 symbols . getElementAt(−−num symbols rema<strong>in</strong><strong>in</strong>g ) ) ) ;<br />

74 return ( ’ \0 ’ ) ;<br />

75 }

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!