Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int bluefield=0, greenfield=0, orangefield=0, yellowfield=0, whitefield=0;
void stacki(int *fields[], int indeks[], int colour, int die)
{int i=0;
for (i=0;i<5;i++)
{ if (i!=colour && indeks[colour]==i)
{
*fields[i]+=die+1;
stacki(fields, indeks, i, die);
return;
}
}
}
int main ()
{
srand(time(NULL));
int indeks[]={-1 , -1, -1, -1, -1};//tak jak w kolorach
while(bluefield < 17 && greenfield < 17 && orangefield < 17 && yellowfield < 17 && whitefield <17)
{
int colour = rand()%5, die = rand()%3;
/* printf("Jaki kolor kosci wypadl\n");
scanf ("%d",&colour);
printf("Ile oczek wypadlo\n");
scanf ("%d", &die);*/
const char *tablicaKolor[] = {"niebieska", "zielona", "pomaranczowa", "zolta", "biala"};
int *fields[] = {&bluefield, &greenfield, &orangefield, &yellowfield, &whitefield};
*fields[colour] += die +1;
int i=0;
for (i=0;i<5;i++)
{
if (i != colour && indeks[i] == colour) indeks[i]=-1;
}
i=0;
for (i=0;i<5;i++)
{
if (i!=colour && *fields[i]==*fields[colour]&& indeks[i]==-1) indeks[i]=colour;
}
stacki(fields, indeks, colour, die);
printf ("Wypadla kość %s, %d oczk%c\n",tablicaKolor[colour], die+1, (die==0)? 'o' : 'a');
printf ("blue %d green %d orange %d yellow %d white %d indeks blue %d indeks green %d indeks orange %d indeks yellow %d indeks white %d\n\n",bluefield, greenfield, orangefield, yellowfield, whitefield, indeks[0], indeks[1], indeks[2], indeks[3], indeks[4]);
}
printf("blue %i green %i orange %i yellow %i white %i\n", bluefield, greenfield, orangefield, yellowfield, whitefield);
return 0;
}