31 char keyStrokeName[2];
32 keyStrokeName[1] =
'\0';
45 output(
"Please enter a name for Player 1: \n");
50 keyStrokeName[0] = getch();
52 if ((keyStrokeName[0] ==
'\b') && (strlen(
player1)) > 0) {
56 else if (keyStrokeName[0] ==
'\r') {}
57 else if ((keyStrokeName[0] ==
'\b') && (strlen(
player1)) == 0) {}
62 }
while(((keyStrokeName[0] !=
'\r') && (
player1[0] !=
'\0') && !(strlen(
player1)>15)) || (strlen(
player1)<3));
73 output(
"Please enter a name for Player 1: \n");
75 output(
"Please enter a name for Player 2: \n");
80 keyStrokeName[0] = getch();
82 if ((keyStrokeName[0] ==
'\b') && (strlen(
player2)) > 0) {
86 else if (keyStrokeName[0] ==
'\r') {}
87 else if ((keyStrokeName[0] ==
'\b') && (strlen(
player2)) == 0) {}
92 }
while(((keyStrokeName[0] !=
'\r') && (
player2[0] !=
'\0') && !(strlen(
player2)>15)) || (strlen(
player2)<3));
100 output(
"Thank you %s and %s! The game will start now.\n\nPlease press enter to continue...",
player1,
player2);
119 output(
"Press any key to continue to Hall of Shame...\n");
136 output(
"Press any key to continue to Hall of Shame...\n");
150 output(
"Game ended with a draw...\n\n");
151 output(
"Press any key to continue to Hall of Shame...\n");
195 char *spaceBetweenNames;
198 if (spaceBetweenNames==NULL) {
243 free(spaceBetweenNames);
253 int lowestCoin = 0, i;
302 if (pos < gameFieldWidth || pos > 1) {
320 strcat(canvas,
")\n");
406 int neighbourRow(
int x,
int y ,
int xMovement,
int yMovement,
char player){
408 return 1 +
neighbourRow(x+xMovement,y+yMovement,xMovement,yMovement,player);
434 double r = e - a + 1;
435 return a + (int)(r * rand()/(RAND_MAX+1.0));
459 unsigned int currY=currBoard->
height-1;
464 if(currY!=currBoard->
height-1){
477 for(x=0;x<1000000;x++){
void showHallOfShame(int highlight, int startFrom)
char getField(struct board *target, int x, int y)
int neighbourRow(int x, int y, int xMovement, int yMovement, char player)
const int EXITCODE_OUTOFMEMORY
void clearBoard(struct board *target)
void setLineAlign(int align)
void setField(struct board *target, int x, int y, char value)
void startBuffer(int maxTextLength)
char checkForWinner(int x, int y, char player)
void throwCoin(int pos, char player)
int updateSaveHoS(char *victor, char *victim, int moves)
char lower_to_upper(char ch1)
void animateFalling(struct board *currBoard, unsigned int xPos, char CoinType)
char * calcFieldAddress(struct board *target, int x, int y)
void freeBoard(struct board *target)
void drawCoin(int pos, char CoinType)
int newBoard(struct board *target, unsigned int width, unsigned int height)
void drawBoard(struct board *target)
int output(const char *input,...)