#include "random32.h" static const unsigned long x[8][55] = { { 1410651636UL, 3012776752UL, 3497475623UL, 2892145026UL, 1571949714UL, 3253082284UL, 3489895018UL, 387949491UL, 2597396737UL, 1981903553UL, 3160251843UL, 129444464UL, 1851443344UL, 4156445905UL, 224604922UL, 1455067070UL, 3953493484UL, 1460937157UL, 2528362617UL, 317430674UL, 3229354360UL, 117491133UL, 832845075UL, 1961600170UL, 1321557429UL, 747750121UL, 545747446UL, 810476036UL, 503334515UL, 4088144633UL, 2824216555UL, 3738252341UL, 3493754131UL, 3672533954UL, 29494241UL, 1180928407UL, 4213624418UL, 33062851UL, 3221315737UL, 1145213552UL, 2957984897UL, 4078668503UL, 2262661702UL, 65478801UL, 2527208841UL, 1960622036UL, 315685891UL, 1196037864UL, 804614524UL, 1421733266UL, 2017105031UL, 3882325900UL, 810735053UL, 384606609UL, 2393861397UL }, { 249823215UL, 996554382UL, 405646651UL, 90565232UL, 498412416UL, 2498651335UL, 432465613UL, 11651332UL, 116305432UL, 1984610654UL, 465413545UL, 50655465UL, 21165513UL, 11654300UL, 54681307UL, 532512513UL, 506555416UL, 206546013UL, 23684055UL, 57161644UL, 2213215UL, 70321654UL, 20491651UL, 81346513UL, 81613315UL, 41321323UL, 1985132133UL, 1068761512UL, 406546833UL, 2777465477UL, 187900568UL, 706546831UL, 3065465165UL, 344656UL, 2132159811UL, 60971561UL, 61156156UL, 216761065UL, 33246565UL, 9791566UL, 3312502554UL, 80616546UL, 687513131UL, 1564686465UL, 37651616UL, 989643210UL, 706165654UL, 169411681UL, 40651656UL, 1032165468UL, 606546889UL, 51650665UL, 1065646518UL, 698654161UL, 35416486UL }, { 25581315UL, 86405514UL, 10512815UL, 10101989UL, 57106669UL, 81904845UL, 77375919UL, 93169520UL, 89556033UL, 59834848UL, 8735946UL, 2738049UL, 84201545UL, 9008874UL, 41874139UL, 21522130UL, 24605952UL, 62478206UL, 63912001UL, 22298615UL, 48812329UL, 16080178UL, 5055855UL, 81881579UL, 83579173UL, 58591086UL, 53993947UL, 54725003UL, 29637765UL, 55185610UL, 2183616UL, 41804303UL, 42597312UL, 85522505UL, 33689061UL, 72243957UL, 4670024UL, 54997336UL, 74359159UL, 4437578UL, 93339818UL, 5231023UL, 87438517UL, 7350948UL, 812533UL, 76026798UL, 5488233UL, 63864521UL, 90491612UL, 17442028UL, 84757058UL, 41469393UL, 8863356UL, 30232597UL, 16408509UL, }, { 55236414UL, 95210507UL, 95052255UL, 41638109UL, 97774256UL, 20128957UL, 78297228UL, 27036733UL, 88524796UL, 89757715UL, 32489778UL, 35931990UL, 33884574UL, 96016176UL, 67775972UL, 21978216UL, 81577167UL, 67961183UL, 51141066UL, 88344485UL, 26677932UL, 15028506UL, 71207411UL, 96116770UL, 85146805UL, 29322981UL, 28471308UL, 44966342UL, 36267846UL, 75665351UL, 90954239UL, 80775207UL, 82090748UL, 39581569UL, 77272538UL, 27552398UL, 19777518UL, 96952533UL, 88907962UL, 30027754UL, 84777729UL, 627756UL, 39848654UL, 96016425UL, 84654903UL, 29691300UL, 58713522UL, 8118312UL, 20098028UL, 64165820UL, 58040421UL, 95530527UL, 75465307UL, 11105459UL, 55636200UL, }, { 59080732UL, 28091621UL, 93952090UL, 82903987UL, 64416763UL, 54503947UL, 24680524UL, 4498598UL, 68808738UL, 593715UL, 75947355UL, 83705617UL, 6452160UL, 45894026UL, 5461877UL, 43877477UL, 93469795UL, 42590627UL, 5194026UL, 37136293UL, 78123362UL, 14035325UL, 16952571UL, 48384481UL, 70093489UL, 52432885UL, 48760856UL, 7663595UL, 46115250UL, 91044173UL, 81120058UL, 64687526UL, 84557047UL, 23106751UL, 44246728UL, 69618769UL, 1664846UL, 65479903UL, 76975468UL, 27192390UL, 57522801UL, 81158920UL, 98833623UL, 99560997UL, 95839353UL, 50962895UL, 83808359UL, 19716731UL, 39857375UL, 26683187UL, 34831407UL, 61128045UL, 82055393UL, 58079032UL, 54234902UL, }, { 93190456UL, 38367802UL, 80912439UL, 59912190UL, 10543990UL, 97115257UL, 1628124UL, 62180101UL, 79128806UL, 80735750UL, 79960UL, 44527329UL, 44975902UL, 9317514UL, 91434256UL, 34396166UL, 93101185UL, 73074946UL, 55597452UL, 9909806UL, 99656022UL, 4351484UL, 26548995UL, 66644048UL, 25638831UL, 27067883UL, 87779270UL, 36858645UL, 61332547UL, 4482243UL, 5930529UL, 83733064UL, 53912913UL, 56974046UL, 7672552UL, 49901153UL, 28274697UL, 32347467UL, 87009638UL, 85416730UL, 97792091UL, 93588623UL, 77619910UL, 25619678UL, 41202144UL, 22995698UL, 64181090UL, 4065486UL, 28139377UL, 20632873UL, 31785025UL, 20475911UL, 47444896UL, 62308619UL, 91240534UL, }, { 25885112UL, 66001829UL, 59963685UL, 30601471UL, 88943853UL, 53456778UL, 69492168UL, 54009215UL, 48155587UL, 24708056UL, 51504365UL, 97396067UL, 52462959UL, 28149490UL, 57224555UL, 50172721UL, 72967201UL, 45409786UL, 43636246UL, 45471916UL, 68563107UL, 65072272UL, 76240184UL, 69219751UL, 11112030UL, 61380032UL, 86581406UL, 94055611UL, 19294628UL, 57231114UL, 55676554UL, 894997UL, 26614030UL, 57512563UL, 28189518UL, 90542159UL, 9182925UL, 5737591UL, 77637194UL, 95185248UL, 37955047UL, 72299724UL, 98704238UL, 52569456UL, 89514346UL, 19965902UL, 56643126UL, 90156293UL, 49607773UL, 7247951UL, 21603428UL, 90402530UL, 94037066UL, 44637129UL, 63922669UL, }, { 56964333UL, 14952820UL, 71976653UL, 26257488UL, 41039216UL, 37697694UL, 28224922UL, 57492690UL, 58296025UL, 35972307UL, 57444015UL, 40093127UL, 92928846UL, 87593379UL, 45372324UL, 34409029UL, 51593116UL, 71407826UL, 72922064UL, 8628672UL, 93234753UL, 14489331UL, 4179408UL, 56435997UL, 17522852UL, 85032861UL, 96707829UL, 58554514UL, 47439715UL, 51071090UL, 77787916UL, 44320688UL, 43162155UL, 41008880UL, 45492906UL, 9010856UL, 53928882UL, 16202648UL, 48844480UL, 60180553UL, 95038075UL, 63176413UL, 55342574UL, 97627221UL, 5521623UL, 9011378UL, 98576110UL, 37103710UL, 41894585UL, 99208457UL, 87514263UL, 12548173UL, 85262642UL, 33961589UL, 53980295UL, } }; static unsigned long y[8][55]; static int vj, vk; void init_Random32(void) { int i,j; for (i = 0; i < 8; i++) for (j = 0; j < 55; j++) y[i][j] = x[i][j]; vj = 24 - 1; vk = 55 - 1; } unsigned int Random32(int idx) { unsigned long ul = (y[idx][vk] += y[idx][vj]); if (--vj < 0) vj = 55 - 1; if (--vk < 0) vk = 55 - 1; return ((unsigned int) ul); } unsigned int Randcard(int idx) { return Random32(idx) % 13; }