Make this a one player Y@htzee game against an AI. #include <stdio.h> #include <
ID: 3868575 • Letter: M
Question
Make this a one player Y@htzee game against an AI.
#include <stdio.h>
#include <time.h>
#include <stdlib.h> /*Defining my functions. */
int find(int x[], int a);
void score_1_to_6(int score[], int x[]);
int three_of_a_kind(int x[], int kind);
int four_of_a_kind(int x[], int kind);
void sort(int x[]);
int full_house(int x[]);
int main(void);
void change(int number1[], int number2[]);
int chance_sum(int x[]);
int small_straight(int x[]);
int large_straight(int x[]);
int chance_sum(int x[]);
int options(int taken1[], int x[], int choice[], int r[], int who);
void read_score(void);
void roll_dice(int dice[]);
void move(int number1[], int number2[], int taken1[], int taken2[], int turn, int r[], int who, int num[]);
int robot_decide(int taken2[], int choice[], int r[], int num[]);
enum names {Ones=0, Twos=1, Threes=2, Fours=3, Fives=4, Sixes=5, Three_of_a_Kind=6, Four_of_a_Kind=7, Full_House=8, Small_Straight=9, Large_Straight=10, Chance=11, Yahtzee=12} n;
int main(void)
{
int taken1[14];
int taken2[14];
int num[14]={0,1,2,3,4,5,6,7,8,9,10,12,11};
int who=0;
int r[14];
int turn=0;
srand (time(NULL));
int number1[]= {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; /* Wipes the score board clean. */
int number2[]= {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
change(number1, number2); /*Creates the clean file.*/
move(number1, number2, taken1, taken2, turn, r, who, num);
read_score(); /*Reads the current score sheet*/
move(number1, number2, taken1, taken2, turn+1, r, who+1, num);
read_score(); /*Reads the current score sheet*/
}
void move(int number1[], int number2[], int taken1[], int taken2[], int turn, int r[], int who, int num[]) {
int choice[3];
int dice[5];
int a;
char space[100];
if (who==0) {
if (turn!=0) { /*This fgets is used for the return from the previous move*/
fgets(space,100, stdin);
}
printf( "Press enter to start your turn. " );
fgets(space,100, stdin);
for (a=0; a<3; a++) {
roll_dice(dice);
printf("You Rolled the Following: %d, %d, %d, "
"%d, %d ",dice[0], dice[1], dice[2], dice[3], dice[4]);
}
sort(dice); /*Sorts the dice values into ascending order.*/
options(taken1,dice, choice, r, who); /*Determines what scoring options are allowed*/
number1[choice[0]]=choice[1];
taken1[choice[0]]=1;
}
if (who==1) {
for (a=0; a<3; a++) {
roll_dice(dice);
printf("The Computer Rolled the Following: %d, %d, %d, "
"%d, %d ",dice[0], dice[1], dice[2], dice[3], dice[4]);
}
sort(dice); /*Sorts the dice values into ascending order.*/
options(taken1,dice, choice, r, who); /*Determines what scoring options are allowed*/
robot_decide(taken2, choice, r, num);
number2[choice[0]]=choice[1];
taken2[choice[0]]=1;
}
change(number1, number2); /*Adds the new score to the score sheet*/
}
void change(int number1[], int number2[]) { /*This function saves any score sheet changes*/
FILE *fptr;
int a;
char option[]= {"abcdefghijklm"};
fptr=fopen("Yahtzee_game.txt", "w");
for (a=0; a<13; a++) {
n=a;
switch (n) {
case Ones:
fprintf(fptr, "Ones ");
break;
case Twos:
fprintf(fptr, "Twos ");
break;
case Threes:
fprintf(fptr, "Threes ");
break;
case Fours:
fprintf(fptr, "Fours ");
break;
case Fives:
fprintf(fptr, "Fives ");
break;
case Sixes:
fprintf(fptr, "Sixes ");
break;
case Three_of_a_Kind:
fprintf(fptr, "Three_of_a_Kind");
break;
case Four_of_a_Kind:
fprintf(fptr, "Four_of_a_Kind");
break;
case Full_House:
fprintf(fptr, "Full_House");
break;
case Small_Straight:
fprintf(fptr, "Small_Straight");
break;
case Large_Straight:
fprintf(fptr, "Large_Straight");
break;
case Chance:
fprintf(fptr, "Chance ");
break;
case Yahtzee:
fprintf(fptr, "Yahtzee ");
break;
}
fprintf(fptr, " %d %d ", number1[a], number2[a]);
}
fclose(fptr);
}
void score_1_to_6(int score[], int x[]) { /*Determines the scores for any of the six values*/
int *num, value, found, number=0;
for (num=&score[0]; num<&score[6]; num++) {
number+=1;
found=find(x, number);
*num=found*number;
}
}
int three_of_a_kind(int x[], int kind) { /*Determines if there is a three of a kind*/
int total_score, same=0;
same=find(x, kind);
if (same>=3) {
total_score=x[0]+x[1]+x[2]+x[3]+x[4];
}
else {
total_score=0;
}
return total_score;
}
int four_of_a_kind(int x[], int kind) { /*Determines if there is a four of a kind*/
int total, same=0;
same=find(x, kind);
if (same>=4) {
total=x[0]+x[1]+x[2]+x[3]+x[4];
}
else {
total=0;
}
return total;
}
int find(int x[], int a) { /*Determines if a value is present in the matrix*/
int *z, found=0;
for (z=&x[0]; z<&x[6]; z++) {
if (a==*z) {
found+=1;
}
}
return found;
}
void sort(int x[]) { /*Sorts the dice values into ascending order.*/
int *i, *y, a, z, moves=1;
while (moves!=0) {
moves=0;
for (i=&x[1]; i<&x[6]; i++) {
y=i-1;
if (*y>*i) {
z=*y;
a=*i;
*y=a;
*i=z;
moves+=1;
}
}
}
}
int small_straight(int x[]) { /*Determines if there is a small straight*/
int ss, *y, *z, count=0;
for (y=&x[1]; y<&x[6]; y++) {
z=(y-1);
if (*z==*y-1) {
count=count+1;
}
else {
if (*z==*y) {
count=count;
}
else {
if (y!=x[4]) {
count=0;
}
}
}
}
if (count>=3) {
ss=30;
} else {
ss=0;
}
return ss;
}
int large_straight(int x[]) { /*Determines if there is a large straight*/
int ss, *y, *z, count=0;
for (y=&x[1]; y<&x[6]; y++) {
z=(y-1);
if (*z==*y-1) {
count=count+1;
}
else {
if (*z==*y) {
count=count;
}
else {
count=0;
}
}
}
if (count>=4) {
ss=40;
} else {
ss=0;
}
return ss;
}
int yahtzee(int x[]) { /*Determines if there is a yahtzee*/
int f, num, yahtzee=0;
for (num=1; num<7; num++) {
f=find(x, num);
if (f==5) {
yahtzee=50;
}
}
return yahtzee;
}
int full_house(int x[]) { /*Determines if there is a full house*/
int num, house=0, f, found, three=0, two=2, element;
for (element=1; element<7; element++) {
f=find(x,element);
if (f==3) {
three=1;
}
if (f==2) {
two=1;
}
}
if (two==1 && three==1) {
house=25;
}
return house;
}
int chance_sum(int x[]) { /*Determines the chance value*/
int *a;
int sum=0;
for (a=&x[0]; a<&x[5]; a++) {
sum=sum+*a;
}
return sum;
}
int options(int taken[], int x[], int d[], int r[], int who) { /*Presents the user with all available options*/
int nums[7], kind3=0, kind4=0, house=0 ,s_straight, l_straight;
int chance=0, Yahtzee=0;
int a;
int *choice=&d[0];
int again=1;
int *value=&d[1];
char answer;
char header[100]=" Option Rule Points";
score_1_to_6(nums, x);
int *b=&r[0], *c=&r[1], *e=&r[2], *f=&r[3], *g=&r[4], *h=&r[5];
int *i=&r[6], *j=&r[7], *k=&r[8], *l=&r[9], *m=&r[10], *n=&r[12];
int *o=&r[11];
*b=nums[0], *c=nums[1], *e=nums[2], *f=nums[3], *g=nums[4], *h=nums[5];
*k=house=full_house(x);
for(a=1; a<7; a++) {
*i=kind3=three_of_a_kind(x, a);
*j=kind4=four_of_a_kind(x,a);
if (kind3!=0) {
break;
}
}
*l=s_straight=small_straight(x);
*m=l_straight=large_straight(x);
*n=chance=chance_sum(x);
*o=Yahtzee=yahtzee(x);
if (who==0) {
printf("You may choose one of the following options. ");
printf("%s ", header);
if (taken[0]!=1) {
printf(" a) Ones %d ", nums[0]);
}
if (taken[1]!=1) {
printf(" b) Twos %d ", nums[1]);
}
if (taken[2]!=1) {
printf(" c) Threes %d " , nums[2]);
}
if (taken[3]!=1) {
printf(" d) Fours %d ", nums[3]);
}
if (taken[4]!=1) {
printf(" e) Fives %d ", nums[4]);
}
if (taken[5]!=1) {
printf(" f) Sixes %d " ,nums[5]);
}
if (taken[6]!=1) {
printf(" g) Three of a kind %d " ,kind3);
}
if (taken[7]!=1) {
printf(" h) Four of a kind %d ", kind4);
}
if (taken[8]!=1) {
printf(" i) Full House %d " , house);
}
if (taken[9]!=1) {
printf(" j) Small Straight %d " ,s_straight);
}
if (taken[10]!=1) {
printf(" k) Large Straight %d ", l_straight);
}
if (taken[11]!=1) {
printf(" l) Chance %d ", chance);
}
if (taken[12]!=1) {
printf(" m) Yahtzee %d ", Yahtzee);
}
while (again==1) {
printf(" Please select your move by entering your option’s letter. " );
answer=getchar();
again=0;
switch (answer){
case 'a':
if (taken[0]!=1) {
*value=nums[0];
*choice=0;}
if (taken[0]==1) {
again=1;}
break;
case 'b':
if (taken[1]!=1) {
*value=nums[1];
*choice=1;}
if (taken[1]==1) {
again=1;}
break;
case 'c':
if (taken[2]!=1) {
*value=nums[2];
*choice=2;}
if (taken[2]==1) {
again=1;}
break;
case 'd':
if (taken[3]!=1) {
*value=nums[3];
*choice=3;}
if (taken[3]==1) {
again=1;}
break;
case 'e':
if (taken[4]!=1) {
*value=nums[4];
*choice=4;}
if (taken[4]==1) {
again=1;}
break;
case 'f':
if (taken[5]!=1) {
*value=nums[5];
*choice=5;}
if (taken[5]==1) {
again=1;}
break;
case 'g':
if (taken[6]!=1) {
*value=kind3;
*choice=6;}
if (taken[6]==1) {
again=1;}
break;
case 'h':
if (taken[7]!=1) {
*value=kind4;
*choice=7;}
if (taken[7]==1) {
again=1;}
break;
case 'i':
if (taken[8]!=1) {
*value=house;
*choice=8;}
if (taken[8]==1) {
again=1;}
break;
case 'j':
if (taken[9]!=1) {
*value=s_straight;
*choice=9;}
if (taken[9]!=1) {
again=1;}
break;
case 'k':
if (taken[10]!=1) {
*value=l_straight;
*choice=10;}
if (taken[10]==1) {
again=1;}
break;
case 'l':
if (taken[11]!=1) {
*value=chance;
*choice=11;}
if (taken[11]==1) {
again=1;}
break;
case 'm':
if (taken[12]!=1) {
*value=Yahtzee;
*choice=12;}
if (taken[12]==1) {
again=1;}
break;
}
if (again==1) {
answer=getchar();
}
}
}
}
void read_score(void) { /*Reads the current score card*/
int a;
FILE *fptr;
char line[200];
printf("Rule Player’s Score AI’s Score ");
fptr=fopen("Yahtzee_game.txt", "r");
for (a=0; a<13; a++) {
fgets(line, 200, fptr);
printf("%s" ,line);
}
fclose(fptr);
}
void roll_dice(int dice[]) { /*Generates six random numbers*/
int num;
int a;
int kept=0;
int saved[5]; /*Saved dice array*/
int n=5-kept; /*How many new dice to roll*/
int rolled[5];
for (a=0; a<n; a++) {
rolled[a]=(rand()%6)+1;
}
for (a=0; a<n; a++) {
dice[a]=rolled[a];
}
for (a=n; a<5; a++) {
dice[a]=saved[a-n];
}
}
int robot_decide(int taken2[], int choice[], int r[], int num[]) {
int c, d, e, f, moves=1;
int a, z, y;
for (a=0; a<13; a++) {
if (taken2[a]==1) {
r[a]=-1;
}
}
while (moves!=0) {
moves=0;
for (z=7; z<12; z++) {
y=z-1;
if (r[y]>r[z]) {
c=r[y];
d=r[z];
e=num[y];
f=num[z];
r[y]=d;
r[z]=c;
num[y]=f;
num[z]=e;
moves+=1;
}
}
}
if (r[11]>0) {
choice[0]=num[11];
choice[1]=r[11];
}
else {
moves=1;
while (moves!=0) {
moves=0;
for (z=1; z<6; z++) {
y=z-1;
if (r[y]>r[z]) {
c=r[y];
d=r[z];
e=num[y];
f=num[z];
r[y]=d;
r[z]=c;
num[y]=f;
num[z]=e;
moves+=1;
}
}
}
if (r[5]>0) {
choice[0]=num[5];
choice[1]=r[5];
}
else {
choice[0]=num[12];
choice[1]=r[12];
}
}
}
Explanation / Answer
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int find(int x[], int a);
void score_1_to_6(int score[], int x[]);
int three_of_a_kind(int x[], int kind);
int four_of_a_kind(int x[], int kind);
void sort(int x[]);
int full_house(int x[]);
int main(void);
void change(int number1[], int number2[]);
int chance_sum(int x[]);
int small_straight(int x[]);
int large_straight(int x[]);
int chance_sum(int x[]);
int options(int taken1[], int x[], int choice[], int r[], int who);
void read_score(void);
void roll_dice(int dice[]);
void move(int number1[], int number2[], int taken1[], int taken2[], int turn, int r[], int who, int num[]);
int robot_decide(int taken2[], int choice[], int r[], int num[]);
enum names {Ones=0, Twos=1, Threes=2, Fours=3, Fives=4, Sixes=5, Three_of_a_Kind=6, Four_of_a_Kind=7, Full_House=8, Small_Straight=9, Large_Straight=10, Chance=11, Yahtzee=12} n;
int main(void)
{
int taken1[14];
int taken2[14];
int num[14]={0,1,2,3,4,5,6,7,8,9,10,12,11};
int who=0;
int r[14];
int turn=0;
srand (time(NULL));
int number1[]= {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; /* Wipes the score board clean. */
int number2[]= {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
change(number1, number2);
move(number1, number2, taken1, taken2, turn, r, who, num);
read_score();
move(number1, number2, taken1, taken2, turn+1, r, who+1, num);
read_score();
}
void move(int number1[], int number2[], int taken1[], int taken2[], int turn, int r[], int who, int num[]) {
int choice[3];
int dice[5];
int a;
char space[100];
if (who==0) {
if (turn!=0) {
fgets(space,100, stdin);
}
printf( "Press enter to start your turn. " );
fgets(space,100, stdin);
for (a=0; a<3; a++) {
roll_dice(dice);
printf("You Rolled the Following: %d, %d, %d, "
"%d, %d ",dice[0], dice[1], dice[2], dice[3], dice[4]);
}
sort(dice);
options(taken1,dice, choice, r, who);
number1[choice[0]]=choice[1];
taken1[choice[0]]=1;
}
if (who==1) {
for (a=0; a<3; a++) {
roll_dice(dice);
printf("The Computer Rolled the Following: %d, %d, %d, "
"%d, %d ",dice[0], dice[1], dice[2], dice[3], dice[4]);
}
sort(dice);
options(taken1,dice, choice, r, who);
robot_decide(taken2, choice, r, num);
number2[choice[0]]=choice[1];
taken2[choice[0]]=1;
}
change(number1, number2);
}
void change(int number1[], int number2[]) {
FILE *fptr;
int a;
char option[]= {"abcdefghijklm"};
fptr=fopen("Yahtzee_game.txt", "w");
for (a=0; a<13; a++) {
n=a;
switch (n) {
case Ones:
fprintf(fptr, "Ones ");
break;
case Twos:
fprintf(fptr, "Twos ");
break;
case Threes:
fprintf(fptr, "Threes ");
break;
case Fours:
fprintf(fptr, "Fours ");
break;
case Fives:
fprintf(fptr, "Fives ");
break;
case Sixes:
fprintf(fptr, "Sixes ");
break;
case Three_of_a_Kind:
fprintf(fptr, "Three_of_a_Kind");
break;
case Four_of_a_Kind:
fprintf(fptr, "Four_of_a_Kind");
break;
case Full_House:
fprintf(fptr, "Full_House");
break;
case Small_Straight:
fprintf(fptr, "Small_Straight");
break;
case Large_Straight:
fprintf(fptr, "Large_Straight");
break;
case Chance:
fprintf(fptr, "Chance ");
break;
case Yahtzee:
fprintf(fptr, "Yahtzee ");
break;
}
fprintf(fptr, " %d %d ", number1[a], number2[a]);
}
fclose(fptr);
}
void score_1_to_6(int score[], int x[]) {
int *num, value, found, number=0;
for (num=&score[0]; num<&score[6]; num++) {
number+=1;
found=find(x, number);
*num=found*number;
}
}
int three_of_a_kind(int x[], int kind) {
int total_score, same=0;
same=find(x, kind);
if (same>=3) {
total_score=x[0]+x[1]+x[2]+x[3]+x[4];
}
else {
total_score=0;
}
return total_score;
}
int four_of_a_kind(int x[], int kind) {
int total, same=0;
same=find(x, kind);
if (same>=4) {
total=x[0]+x[1]+x[2]+x[3]+x[4];
}
else {
total=0;
}
return total;
}
int find(int x[], int a) {
int *z, found=0;
for (z=&x[0]; z<&x[6]; z++) {
if (a==*z) {
found+=1;
}
}
return found;
}
void sort(int x[]) {
int *i, *y, a, z, moves=1;
while (moves!=0) {
moves=0;
for (i=&x[1]; i<&x[6]; i++) {
y=i-1;
if (*y>*i) {
z=*y;
a=*i;
*y=a;
*i=z;
moves+=1;
}
}
}
}
int small_straight(int x[]) {
int ss, *y, *z, count=0;
for (y=&x[1]; y<&x[6]; y++) {
z=(y-1);
if (*z==*y-1) {
count=count+1;
}
else {
if (*z==*y) {
count=count;
}
else {
if (y!=x[4]) {
count=0;
}
}
}
}
if (count>=3) {
ss=30;
} else {
ss=0;
}
return ss;
}
int large_straight(int x[]) {
int ss, *y, *z, count=0;
for (y=&x[1]; y<&x[6]; y++) {
z=(y-1);
if (*z==*y-1) {
count=count+1;
}
else {
if (*z==*y) {
count=count;
}
else {
count=0;
}
}
}
if (count>=4) {
ss=40;
} else {
ss=0;
}
return ss;
}
int yahtzee(int x[]) {
int f, num, yahtzee=0;
for (num=1; num<7; num++) {
f=find(x, num);
if (f==5) {
yahtzee=50;
}
}
return yahtzee;
}
int full_house(int x[]) {
int num, house=0, f, found, three=0, two=2, element;
for (element=1; element<7; element++) {
f=find(x,element);
if (f==3) {
three=1;
}
if (f==2) {
two=1;
}
}
if (two==1 && three==1) {
house=25;
}
return house;
}
int chance_sum(int x[]) {
int *a;
int sum=0;
for (a=&x[0]; a<&x[5]; a++) {
sum=sum+*a;
}
return sum;
}
int options(int taken[], int x[], int d[], int r[], int who) {
int nums[7], kind3=0, kind4=0, house=0 ,s_straight, l_straight;
int chance=0, Yahtzee=0;
int a;
int *choice=&d[0];
int again=1;
int *value=&d[1];
char answer;
char header[100]=" Option Rule Points";
score_1_to_6(nums, x);
int *b=&r[0], *c=&r[1], *e=&r[2], *f=&r[3], *g=&r[4], *h=&r[5];
int *i=&r[6], *j=&r[7], *k=&r[8], *l=&r[9], *m=&r[10], *n=&r[12];
int *o=&r[11];
*b=nums[0], *c=nums[1], *e=nums[2], *f=nums[3], *g=nums[4], *h=nums[5];
*k=house=full_house(x);
for(a=1; a<7; a++) {
*i=kind3=three_of_a_kind(x, a);
*j=kind4=four_of_a_kind(x,a);
if (kind3!=0) {
break;
}
}
*l=s_straight=small_straight(x);
*m=l_straight=large_straight(x);
*n=chance=chance_sum(x);
*o=Yahtzee=yahtzee(x);
if (who==0) {
printf("You may choose one of the following options. ");
printf("%s ", header);
if (taken[0]!=1) {
printf(" a) Ones %d ", nums[0]);
}
if (taken[1]!=1) {
printf(" b) Twos %d ", nums[1]);
}
if (taken[2]!=1) {
printf(" c) Threes %d " , nums[2]);
}
if (taken[3]!=1) {
printf(" d) Fours %d ", nums[3]);
}
if (taken[4]!=1) {
printf(" e) Fives %d ", nums[4]);
}
if (taken[5]!=1) {
printf(" f) Sixes %d " ,nums[5]);
}
if (taken[6]!=1) {
printf(" g) Three of a kind %d " ,kind3);
}
if (taken[7]!=1) {
printf(" h) Four of a kind %d ", kind4);
}
if (taken[8]!=1) {
printf(" i) Full House %d " , house);
}
if (taken[9]!=1) {
printf(" j) Small Straight %d " ,s_straight);
}
if (taken[10]!=1) {
printf(" k) Large Straight %d ", l_straight);
}
if (taken[11]!=1) {
printf(" l) Chance %d ", chance);
}
if (taken[12]!=1) {
printf(" m) Yahtzee %d ", Yahtzee);
}
while (again==1) {
printf(" Please select your move by entering your option’s letter. " );
answer=getchar();
again=0;
switch (answer){
case 'a':
if (taken[0]!=1) {
*value=nums[0];
*choice=0;}
if (taken[0]==1) {
again=1;}
break;
case 'b':
if (taken[1]!=1) {
*value=nums[1];
*choice=1;}
if (taken[1]==1) {
again=1;}
break;
case 'c':
if (taken[2]!=1) {
*value=nums[2];
*choice=2;}
if (taken[2]==1) {
again=1;}
break;
case 'd':
if (taken[3]!=1) {
*value=nums[3];
*choice=3;}
if (taken[3]==1) {
again=1;}
break;
case 'e':
if (taken[4]!=1) {
*value=nums[4];
*choice=4;}
if (taken[4]==1) {
again=1;}
break;
case 'f':
if (taken[5]!=1) {
*value=nums[5];
*choice=5;}
if (taken[5]==1) {
again=1;}
break;
case 'g':
if (taken[6]!=1) {
*value=kind3;
*choice=6;}
if (taken[6]==1) {
again=1;}
break;
case 'h':
if (taken[7]!=1) {
*value=kind4;
*choice=7;}
if (taken[7]==1) {
again=1;}
break;
case 'i':
if (taken[8]!=1) {
*value=house;
*choice=8;}
if (taken[8]==1) {
again=1;}
break;
case 'j':
if (taken[9]!=1) {
*value=s_straight;
*choice=9;}
if (taken[9]!=1) {
again=1;}
break;
case 'k':
if (taken[10]!=1) {
*value=l_straight;
*choice=10;}
if (taken[10]==1) {
again=1;}
break;
case 'l':
if (taken[11]!=1) {
*value=chance;
*choice=11;}
if (taken[11]==1) {
again=1;}
break;
case 'm':
if (taken[12]!=1) {
*value=Yahtzee;
*choice=12;}
if (taken[12]==1) {
again=1;}
break;
}
if (again==1) {
answer=getchar();
}
}
}
}
void read_score(void) {
int a;
FILE *fptr;
char line[200];
printf("Rule Player’s Score AI’s Score ");
fptr=fopen("Yahtzee_game.txt", "r");
for (a=0; a<13; a++) {
fgets(line, 200, fptr);
printf("%s" ,line);
}
fclose(fptr);
}
void roll_dice(int dice[]) {
int num;
int a;
int kept=0;
int saved[5];
int n=5-kept;
int rolled[5];
for (a=0; a<n; a++) {
rolled[a]=(rand()%6)+1;
}
for (a=0; a<n; a++) {
dice[a]=rolled[a];
}
for (a=n; a<5; a++) {
dice[a]=saved[a-n];
}
}
int robot_decide(int taken2[], int choice[], int r[], int num[]) {
int c, d, e, f, moves=1;
int a, z, y;
for (a=0; a<13; a++) {
if (taken2[a]==1) {
r[a]=-1;
}
}
while (moves!=0) {
moves=0;
for (z=7; z<12; z++) {
y=z-1;
if (r[y]>r[z]) {
c=r[y];
d=r[z];
e=num[y];
f=num[z];
r[y]=d;
r[z]=c;
num[y]=f;
num[z]=e;
moves+=1;
}
}
}
if (r[11]>0) {
choice[0]=num[11];
choice[1]=r[11];
}
else {
moves=1;
while (moves!=0) {
moves=0;
for (z=1; z<6; z++) {
y=z-1;
if (r[y]>r[z]) {
c=r[y];
d=r[z];
e=num[y];
f=num[z];
r[y]=d;
r[z]=c;
num[y]=f;
num[z]=e;
moves+=1;
}
}
}
if (r[5]>0) {
choice[0]=num[5];
choice[1]=r[5];
}
else {
choice[0]=num[12];
choice[1]=r[12];
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.