ok also ich poste einfach mal den c code, wichtig zu sagen ich habe den nicht geschrieben, sondern ein guter freund.
Idee war z.B. drei mal einen Taster zu drücken (für 3 würfel) und sich das ergebnis vom RP6 oder irgendwann von er Wand abzulesen.
Code:
#include <stdio.h>
#include <stdlib.h> // include atoi funktion
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, char *argv[]) {
int rdev;
int one, five, six;
unsigned int seed;
unsigned int pool;
unsigned int dice;
unsigned int face;//würgelfläche
unsigned int hold;//threshhold hälfte des "pool" würfelzahl aufgerundet
if(argc == 2)//prgrammname übergeben und ein "echtes" Agrument /
pool = atoi(argv[1]);//charackter to integer/ anzahl des pools
else {
fprintf(stderr, "fuck you i'm a robot!\n");
return 1;
}
one = five = six = 0;
rdev = open("/dev/random", O_RDONLY);
if(rdev < 0) {
fprintf(stderr, "cannot open /dev/random\n");
return 1;
}
read(rdev, &seed, sizeof(seed));//übernimmt zufallszahl aus dev/random für die erste zahl
close(rdev);
for(dice=0; dice<pool; dice++) {
face = (int)( (float)(6) * (rand_r(&seed)) / (RAND_MAX + 1.0)) + 1;
printf("%i ", face);//zur kontrolle nochmal alle würfelergebnisse
switch(face) {
case 1:
one++;
break;
case 5:
five++;
break;
case 6:
six++;
break;
default:
break;
}
}
printf("[anzahl der 1er %i/anzahl der 6er %i]\n", one, six);
if(five+six == 1)
printf("you have one hit.\n");
else
printf("you have %i hits.\n", five+six);
hold = pool/2;
if(pool%2 == 1)
hold++;
if(one >= hold) {
if(five+six == 0)
printf("\n you have a critical glitch!!\n\n");
else
printf("you have a glitch!\n\n");
}
return 0;
}
Lesezeichen