Hello everyone,
I'm having a bit of trouble with my code following through with the rest of a particular function. I've done some printf tests throughout and am finding that it doesn't seem to be doing anything after the user presses enter to continue on with the game.
I know my code is long and not very efficient, but I only need to be able to present a functional program this time around and not focus on function separation and whatnot. I believe it's hung up in the diceRoll function. Any insight would be greatly appreciated
PS - I worked in the Java environment about a year ago and haven't touched on it at all since, and am starting in C without ever having programmed in it before. I know that Java derives from C, but there's quite a bit of difference from what I can see. It wouldn't surprise me if it was something entirely mundane that I was forgetting.
Code:
#include <stdio.h>#include <stdlib.h>
#include <time.h>
char player_1[20], player_2[20];
int player_start, points_to_win, currentPlayer, win, player1TotalScore;
int player2TotalScore, rollScore, turnScore;
int dice[5];
void threePair();
void singles();
void sixOKind();
void fiveOKind();
void fourOKind();
void triples();
void straight();
void six1();
void winning();
void diceRoll();
int main()
{
int i;
player1TotalScore = 0;
player2TotalScore = 0;
win = 0;
printf("**********************************\n");
printf("** Welcome to the Game of Greed **\n");
printf("**********************************\n\n");
printf("Name of player 1? ");
scanf("%s", player_1);
fflush(stdout);
printf("Name of player 2? ");
scanf("%s", player_2);
fflush(stdout);
printf("Player to start the game (1 of %s, 2 for %s)? ", player_1, player_2);
scanf("%d", &player_start);
fflush(stdout);
printf("Points to win the game? ");
scanf("%d", &points_to_win);
fflush(stdout);
for(i = 0; i < 6; i++)
dice[i] = 20;
diceRoll();
return 0;
}
void diceRoll()
{
char c;
currentPlayer = player_start;
while((win == 0) && (player1TotalScore < points_to_win) && (player2TotalScore < points_to_win)) {
if(currentPlayer == 1) {
printf("%s's Turn >> Press Enter to roll the dice", player_1);
getch();
srand(time(NULL));
int i;
for(i = 0; i < 6; i++) {
if(dice[i] == 20 || dice[i] != 0) {
dice[i] = rand() % 6 + 1;
}
}
printf("\n%i ", dice[0]);
printf("%i ", dice[1]);
printf("%i ", dice[2]);
printf("%i ", dice[3]);
printf("%i ", dice[4]);
printf("%i\t", dice[5]);
six1();
straight();
threePair();
sixOKind();
fiveOKind();
fourOKind();
triples();
singles();
printf("Roll Score: %i\t", rollScore);
printf("Turn Score: %i\n", turnScore);
} else if(currentPlayer == 2) {
printf("%s's Turn >> Press Enter to roll the dice", player_2);
getch();
srand(time(NULL));
int i;
for(i = 0; i < 6; i++) {
dice[i] = rand() % 6 + 1;
}
printf("\n%i ", dice[0]);
printf("%i ", dice[1]);
printf("%i ", dice[2]);
printf("%i ", dice[3]);
printf("%i ", dice[4]);
printf("%i ", dice[5]);
six1();
straight();
threePair();
sixOKind();
fiveOKind();
fourOKind();
triples();
singles();
printf("Roll Score: %i\t", rollScore);
printf("Turn Score: %i\n", turnScore);
}
winning();
if(win != 1) {
if(rollScore != 0) {
printf("Would you like to roll ");
printf("again (Y/y, N/n)?");
c = getchar();
if(c == 'Y' || c == 'y') {
rollScore = 0;
diceRoll();
} else if(c == 'N' || c == 'n') {
rollScore = 0;
turnScore = 0;
if(currentPlayer == 1)
currentPlayer = 2;
else
currentPlayer = 1;
}
} else if(rollScore == 0) {
if(currentPlayer == 1) {
player1TotalScore = player1TotalScore - turnScore;
currentPlayer = 2;
} else if(currentPlayer == 2) {
player2TotalScore = player2TotalScore - turnScore;
currentPlayer = 1;
}
}
}
}
if(currentPlayer == 1) {
printf("Congratulations %s!", player_1);
printf("You won the game!");
}
else if(currentPlayer == 2) {
printf("Congratulations %s!", player_2);
printf("You won the game!");
}
}
void winning()
{
if(currentPlayer == 1) {
if(player1TotalScore >= points_to_win)
win = 1;
else
win = 0;
} else if(currentPlayer == 2) {
if(player2TotalScore >= points_to_win)
win = 2;
else
win = 0;
}
}
void six1()
{
printf("test");
int i;
int j;
int counter = 0;
for(i = 0; i < 6; i++) {
if(dice[i] == 1)
counter = counter + 1;
}
if(counter == 6) {
for(j = 0; j < 6; j++)
dice[i] = 0;
if(currentPlayer == 1) {
player1TotalScore = player1TotalScore + 8000;
rollScore = rollScore + 8000;
turnScore = turnScore + 8000;
}
else if(currentPlayer == 2) {
player2TotalScore = player2TotalScore + 8000;
rollScore = rollScore + 8000;
turnScore = turnScore + 8000;
}
}
}
void straight()
{
printf("test");
int one_define = 0;
int two_define = 0;
int three_define = 0;
int four_define = 0;
int five_define = 0;
int six_define = 0;
int i;
int j;
for(i = 0; i < 6; i++) {
if(dice[i] == 1 && one_define == 0)
one_define = 1;
else if(dice[i] == 2 && two_define == 0)
two_define = 1;
else if(dice[i] == 3 && three_define == 0)
three_define = 1;
else if(dice[i] == 4 && four_define == 0)
four_define = 1;
else if(dice[i] == 5 && five_define == 0)
five_define = 1;
else if(dice[i] == 6 && six_define == 0)
six_define = 1;
else
break;
}
if(one_define == 1 && two_define == 1 && three_define == 1 && four_define == 1
&& five_define == 1 && six_define == 1) {
for(j = 0; j < 6; j++)
dice[j] = 0;
if(currentPlayer == 1) {
rollScore = rollScore + 1200;
turnScore = turnScore + 1200;
player1TotalScore = player1TotalScore + 1200;
} else if(currentPlayer == 2) {
rollScore = rollScore + 1200;
turnScore = turnScore + 1200;
player2TotalScore = player2TotalScore + 1200;
}
}
}
void threePair() {
printf("test");
int one_define = 0;
int two_define = 0;
int three_define = 0;
int four_define = 0;
int five_define = 0;
int six_define = 0;
int i;
int j;
int k;
int l;
int counter = 0;
for(i = 0; i < 6; i++) {
if(dice[i] == 1 && one_define != 2)
one_define = one_define + 1;
else if(dice[i] == 2 && two_define != 2)
two_define = two_define + 1;
else if(dice[i] == 3 && three_define != 2)
three_define = three_define + 1;
else if(dice[i] == 4 && four_define != 2)
four_define = four_define + 1;
else if(dice[i] == 5 && five_define != 2)
five_define = five_define + 1;
else if(dice[i] == 6 && six_define != 2)
six_define = six_define + 1;
else
break;
}
int defineArray[5];
for(j = 0; j < 6; j++) {
if(j == 0)
defineArray[j] = one_define;
if(j == 1)
defineArray[j] = two_define;
if(j == 2)
defineArray[j] = three_define;
if(j == 3)
defineArray[j] = four_define;
if(j == 4)
defineArray[j] = five_define;
if(j == 5)
defineArray[j] = six_define;
}
for(k = 0; k < 6; k++) {
if(defineArray[k] == 2)
counter = counter + 1;
}
if(counter == 3) {
for(l = 0; l < 6; l++)
dice[l] = 0;
if(currentPlayer == 1) {
player1TotalScore = player1TotalScore + 800;
rollScore = rollScore + 800;
turnScore = turnScore + 800;
} else if (currentPlayer == 2) {
player2TotalScore = player2TotalScore + 800;
rollScore = rollScore + 800;
turnScore = turnScore + 800;
}
}
}
void sixOKind()
{
printf("test");
int one_define = 0;
int two_define = 0;
int three_define = 0;
int four_define = 0;
int five_define = 0;
int six_define = 0;
int i;
int j;
int k;
int l;
int scoreMultiplier;
for(i = 0; i < 6; i++) {
if(dice[i] == 1)
one_define = one_define + 1;
else if(dice[i] == 2)
two_define = two_define + 1;
else if(dice[i] == 3)
three_define = three_define + 1;
else if(dice[i] == 4)
four_define = four_define + 1;
else if(dice[i] == 5)
five_define = five_define + 1;
else if(dice[i] == 6)
six_define = six_define + 1;
else
break;
}
int defineArray[5];
for(j = 0; j < 6; j++) {
if(j = 0)
defineArray[j] = one_define;
else if(j = 1)
defineArray[j] = two_define;
else if(j = 2)
defineArray[j] = three_define;
else if(j = 3)
defineArray[j] = four_define;
else if(j = 4)
defineArray[j] = five_define;
else if(j = 6)
defineArray[j] = six_define;
}
for(k = 0; k < 6; k++) {
if(defineArray[k] == 6) {
for(l = 0; l < 6; l++)
dice[l] = 0;
if(k == 0)
scoreMultiplier = 8000;
else if(k == 1)
scoreMultiplier = 1600;
else if(k == 2)
scoreMultiplier = 2400;
else if(k == 3)
scoreMultiplier = 3200;
else if(k == 4)
scoreMultiplier = 4000;
else if(k = 5)
scoreMultiplier = 4800;
}
if(currentPlayer == 1) {
player1TotalScore = player1TotalScore +
scoreMultiplier;
rollScore = rollScore + scoreMultiplier;
turnScore = turnScore + scoreMultiplier;
} else if (currentPlayer == 2) {
player2TotalScore = player2TotalScore +
scoreMultiplier;
rollScore = rollScore + scoreMultiplier;
turnScore = turnScore + scoreMultiplier;
}
}
}
void fiveOKind()
{
printf("test");
int one_define = 0;
int two_define = 0;
int three_define = 0;
int four_define = 0;
int five_define = 0;
int six_define = 0;
int i;
int j;
int k;
int l;
int scoreMultiplier;
for(i = 0; i < 6; i++) {
if(dice[i] == 1)
one_define = one_define + 1;
else if(dice[i] == 2)
two_define = two_define + 1;
else if(dice[i] == 3)
three_define = three_define + 1;
else if(dice[i] == 4)
four_define = four_define + 1;
else if(dice[i] == 5)
five_define = five_define + 1;
else if(dice[i] == 6)
six_define = six_define + 1;
else
break;
}
int defineArray[5];
for(j = 0; j < 6; j++) {
if(j = 0)
defineArray[j] = one_define;
else if(j = 1)
defineArray[j] = two_define;
else if(j = 2)
defineArray[j] = three_define;
else if(j = 3)
defineArray[j] = four_define;
else if(j = 4)
defineArray[j] = five_define;
else if(j = 6)
defineArray[j] = six_define;
}
for(k = 0; k < 6; k++) {
if(defineArray[k] == 5) {
if(k == 0) {
scoreMultiplier = 4000;
for(l = 0; l < 6; l++) {
if(dice[l] == 1)
dice[l] = 0;
}
}
else if(k == 1) {
scoreMultiplier = 800;
for(l = 0; l < 6; l++) {
if(dice[l] == 2)
dice[l] = 0;
}
}
else if(k == 2) {
scoreMultiplier = 1200;
for(l = 0; l < 6; l++) {
if(dice[l] == 3)
dice[l] = 0;
}
}
else if(k == 3) {
scoreMultiplier = 1600;
for(l = 0; l < 6; l++) {
if(dice[l] == 4)
dice[l] = 0;
}
}
else if(k == 4) {
scoreMultiplier = 2000;
for(l = 0; l < 6; l++) {
if(dice[l] == 5)
dice[l] = 0;
}
}
else if(k = 5) {
scoreMultiplier = 2400;
for(l = 0; l < 6; l++) {
if(dice[l] == 6)
dice[l] = 0;
}
}
}
}
if(currentPlayer == 1) {
player1TotalScore = player1TotalScore +
scoreMultiplier;
rollScore = rollScore + scoreMultiplier;
turnScore = turnScore + scoreMultiplier;
} else if (currentPlayer == 2) {
player2TotalScore = player2TotalScore +
scoreMultiplier;
rollScore = rollScore + scoreMultiplier;
turnScore = turnScore + scoreMultiplier;
}
}
void fourOKind()
{
printf("test");
int one_define = 0;
int two_define = 0;
int three_define = 0;
int four_define = 0;
int five_define = 0;
int six_define = 0;
int i;
int j;
int k;
int l;
int scoreMultiplier;
for(i = 0; i < 6; i++) {
if(dice[i] == 1)
one_define = one_define + 1;
else if(dice[i] == 2)
two_define = two_define + 1;
else if(dice[i] == 3)
three_define = three_define + 1;
else if(dice[i] == 4)
four_define = four_define + 1;
else if(dice[i] == 5)
five_define = five_define + 1;
else if(dice[i] == 6)
six_define = six_define + 1;
else
break;
}
int defineArray[5];
for(j = 0; j < 6; j++) {
if(j = 0)
defineArray[j] = one_define;
else if(j = 1)
defineArray[j] = two_define;
else if(j = 2)
defineArray[j] = three_define;
else if(j = 3)
defineArray[j] = four_define;
else if(j = 4)
defineArray[j] = five_define;
else if(j = 6)
defineArray[j] = six_define;
}
for(k = 0; k < 6; k++) {
if(defineArray[k] == 4) {
if(k == 0) {
scoreMultiplier = 2000;
for(l = 0; l < 6; l++) {
if(dice[l] == 1)
dice[l] = 0;
}
}
else if(k == 1) {
scoreMultiplier = 400;
for(l = 0; l < 6; l++) {
if(dice[l] == 2)
dice[l] = 0;
}
}
else if(k == 2) {
scoreMultiplier = 600;
for(l = 0; l < 6; l++) {
if(dice[l] == 3)
dice[l] = 0;
}
}
else if(k == 3) {
scoreMultiplier = 800;
for(l = 0; l < 6; l++) {
if(dice[l] == 4)
dice[l] = 0;
}
}
else if(k == 4) {
scoreMultiplier = 1000;
for(l = 0; l < 6; l++) {
if(dice[l] == 5)
dice[l] = 0;
}
}
else if(k = 5) {
scoreMultiplier = 1200;
for(l = 0; l < 6; l++) {
if(dice[l] == 6)
dice[l] = 0;
}
}
}
}
if(currentPlayer == 1) {
player1TotalScore = player1TotalScore +
scoreMultiplier;
rollScore = rollScore + scoreMultiplier;
turnScore = turnScore + scoreMultiplier;
} else if (currentPlayer == 2) {
player2TotalScore = player2TotalScore +
scoreMultiplier;
rollScore = rollScore + scoreMultiplier;
turnScore = turnScore + scoreMultiplier;
}
}
void triples()
{
printf("test");
int one_define = 0;
int two_define = 0;
int three_define = 0;
int four_define = 0;
int five_define = 0;
int six_define = 0;
int i;
int j;
int k;
int l;
int scoreMultiplier;
for(i = 0; i < 6; i++) {
if(dice[i] == 1)
one_define = one_define + 1;
else if(dice[i] == 2)
two_define = two_define + 1;
else if(dice[i] == 3)
three_define = three_define + 1;
else if(dice[i] == 4)
four_define = four_define + 1;
else if(dice[i] == 5)
five_define = five_define + 1;
else if(dice[i] == 6)
six_define = six_define + 1;
else
break;
}
int defineArray[5];
for(j = 0; j < 6; j++) {
if(j = 0)
defineArray[j] = one_define;
else if(j = 1)
defineArray[j] = two_define;
else if(j = 2)
defineArray[j] = three_define;
else if(j = 3)
defineArray[j] = four_define;
else if(j = 4)
defineArray[j] = five_define;
else if(j = 6)
defineArray[j] = six_define;
}
for(k = 0; k < 6; k++) {
if(defineArray[k] == 3) {
if(k == 0) {
scoreMultiplier = scoreMultiplier
+ 1000;
for(l = 0; l < 6; l++) {
if(dice[l] == 1)
dice[l] = 0;
}
}
if(k == 1) {
scoreMultiplier = scoreMultiplier
+ 200;
for(l = 0; l < 6; l++) {
if(dice[l] == 2)
dice[l] = 0;
}
}
if(k == 2) {
scoreMultiplier = scoreMultiplier
+ 300;
for(l = 0; l < 6; l++) {
if(dice[l] == 3)
dice[l] = 0;
}
}
if(k == 3) {
scoreMultiplier = scoreMultiplier
+ 400;
for(l = 0; l < 6; l++) {
if(dice[l] == 4)
dice[l] = 0;
}
}
if(k == 4) {
scoreMultiplier = scoreMultiplier
+ 500;
for(l = 0; l < 6; l++) {
if(dice[l] == 5)
dice[l] = 0;
}
}
if(k = 5) {
scoreMultiplier = scoreMultiplier
+ 600;
for(l = 0; l < 6; l++) {
if(dice[l] == 6)
dice[l] = 0;
}
}
}
}
if(currentPlayer == 1) {
player1TotalScore = player1TotalScore +
scoreMultiplier;
rollScore = rollScore + scoreMultiplier;
turnScore = turnScore + scoreMultiplier;
} else if (currentPlayer == 2) {
player2TotalScore = player2TotalScore +
scoreMultiplier;
rollScore = rollScore + scoreMultiplier;
turnScore = turnScore + scoreMultiplier;
}
}
void singles()
{
printf("test");
int one_define = 0;
int five_define = 0;
int i;
int j;
int k;
int l;
int scoreMultiplier;
for(i = 0; i < 6; i++) {
if(dice[i] == 1)
one_define = one_define + 1;
else if(dice[i] == 5)
five_define = five_define + 1;
}
int defineArray[1];
for(j = 0; j < 1; j++) {
if(j = 0)
defineArray[0] = one_define;
else if(j = 1)
defineArray[1] = five_define;
}
for(k = 0; k < 1; k++) {
if(k == 0) {
scoreMultiplier = scoreMultiplier
+ 100;
for(l = 0; l < 6; l++) {
if(dice[l] == 1)
dice[l] = 0;
}
}
if(k == 1) {
scoreMultiplier = scoreMultiplier
+ 50;
for(l = 0; l < 6; l++) {
if(dice[l] == 5)
dice[l] = 0;
}
}
}
if(currentPlayer == 1) {
player1TotalScore = player1TotalScore +
scoreMultiplier;
rollScore = rollScore + scoreMultiplier;
turnScore = turnScore + scoreMultiplier;
} else if (currentPlayer == 2) {
player2TotalScore = player2TotalScore +
scoreMultiplier;
rollScore = rollScore + scoreMultiplier;
turnScore = turnScore + scoreMultiplier;
}
}