HugoNikanors blogg‽

A blog about nothing, but mostly itself.

Hugo Hornquist 04 Aug 2015

Program av alla de slag

Jag har skrivit några program av ifrågasättningsbar användbarhet. Alla programmen är testade och kompilerar utan problem på min Linux maskin. Hur vida de fungerar på Windows, eller över huvud taget, är upp till någon annan att testa.

Allting är skrivet i c++.


Alla ord

Ett litet program som skapar en textfil med alla bokstavskombinationer av en satt längd från de 26 (A - Z) bokstäverna.
Jag har lyckats köra programmet med 6 bokstäver. Då fick jag 26⁶ (308 915 776) olika kombinationer. Dock kunde jag inte se på allting då min textredigerare crashade. Körtiden var då 8 minuter.

Notera att programmet kör mycket snabbare om du har en SSD istället för en HDD.

Ett stycke av outputen:

...
cgib
cgic
cgid
cgie
cgif
cgig
cgih
cgii
cgij
cgik
cgil
...

Programmet var inspirerat av de böcker som nämndes i den, för tillfället, senaste videon från VSauce.


Yathzee simulator

Ett litet program som försöker slå yathzee (alla tärningar har samma sida upp) med ett av användaren bestämt nummer av tärningar. Programmet matar sedan ut hur många slag det tog, och de vinnande ögonen. Statistik på det får du göra själv.

Programmet get tyvärr inte någon output då det saktade ner det avsevärt. Om man vill kan man dock ganska enkelt redigera källkodsfilen för att få output.

Det mest anmärkningsvärda med ett annars oanmärkningsvärt program är testet om man har fått en Yathzee.

do {
    count++;
    for(int i = 0; i < noDices; i++) {
        dices[i] = rand() % 6 + 1;
        if(i != 0) {
            if(dices[i] != dices[i - 1]) {
                break;
            } else if(i == noDices - 1) {
                yathzee = true;
            }
        }
    }
} while(!yathzee);

Koden ovan visar hur programmet rullar en tärning åt gången, och kollar sedan om den har samma "värde" som den innan. Om den har det rullar programmet nästa tärning. Annars så börjar det om. En sidoeffekt av det systemet jag har är att man kan inte köra programmet med 1 tärning. Varför man nu skulle vilja det.


ASCIItabell

Och slutligen ett program som har så pass stor nytta att jag redan skrev det för länge sedan. Nu har jag bara piffat upp det lite grand.

Programmet skriver ut alla tecken i ASCII-8 tabellen. De tecken enkelt tillgängliga i c++. : Det jag nu har lagt till är möjlighet att få numreringen båda hexadecimalt och decimalt. Samt möjlighet att välja vid programkörning. Jag har dock noterat att åtminstone på min version av Ubuntu är stödet för tecken i ASCIItabellen högre än 127 nonexistent.

Tabellen ser ut enligt följande för er som inte själva vill köra programmet:

1f.     20.      21. !    22. "    23. #    24. $    
25. %    26. &    27. '    28. (    29. )    2a. *    
2b. +    2c. ,    2d. -    2e. .    2f. /    30. 0    
31. 1    32. 2    33. 3    34. 4    35. 5    36. 6    
37. 7    38. 8    39. 9    3a. :    3b. ;    3c. <    
3d. =    3e. >    3f. ?    40. @    41. A    42. B    
43. C    44. D    45. E    46. F    47. G    48. H    
49. I    4a. J    4b. K    4c. L    4d. M    4e. N    
4f. O    50. P    51. Q    52. R    53. S    54. T    
55. U    56. V    57. W    58. X    59. Y    5a. Z    
5b. [    5c. \    5d. ]    5e. ^    5f. _    60. \`    
61. a    62. b    63. c    64. d    65. e    66. f    
67. g    68. h    69. i    6a. j    6b. k    6c. l    
6d. m    6e. n    6f. o    70. p    71. q    72. r    
73. s    74. t    75. u    76. v    77. w    78. x    
79. y    7a. z    7b. {    7c. |    7d. }    7e. ~

Majoriteten av övriga tecken visas med en sifferrepresentation av tecknet, eller med tecknet för saknat unicode tecken (�).

Nedladdning på GitHub


Disclaimer

Inget av programmen är garanterade att fungera.
Jag tillhandahåller ingen officiell support för dem.
Vid frågor kan det hända att jag har svar.

About Contact Legal Q&A