Exemplo n.º 1
0
/* Main */
int main(int argc, char * argv[]) {

	resizeScreen();

	printf("Hello Army!\n\n");

	/* Create board */
	cell ** board = createBoard(width, height);

	/* Clear board */
	cleanBoard(board);

	/* Read board from file */
	readBoard(board);

	for (int i = 0; i < 1000; i++) {

		/* Print board */
		printBoard(board);

		/* Day */
		day(board);

		/* Wait for enter */
		char c = getchar();
	}
		
	/* Delete board */
	deleteBoard(board);

	/* stop the program from exiting */
	char c = getchar();
}
Exemplo n.º 2
0
bool mergeLeft(struct tile **board, int size, int pos_rel, int multi) {
    bool plus = false;
    int current_row, current_col;
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            if (j != size - 1 && board[i][j].value != 0) {
                //move from left to right
                if (board[i][j].value == board[i][j + 1].value) {
                    board[i][j].value = 2 * board[i][j].value;
                    plus = true;
                    current_row = i;
                    current_col = j;
                    win(board[i][j].value);
                    board[i][j + 1].value = 0;
                    //calculate points for 2 people
                    if (pos_rel == SHIFT_RIGHT) {
                        score += board[current_row][current_col].value;
                    } else {
                        score_p2 += board[current_row][current_col].value;
                    }
                    printScore(score, score_p2, multi);
                }
            }
        }
    }
    cleanBoard(board, size, pos_rel);
    return plus;
}
Exemplo n.º 3
0
bool mergeDown(struct tile **board, int size, int pos_rel, int multi) {
    bool plus = false;
    int current_row, current_col;
    for (int col = 0; col < size; col++) {
        for (int row = size - 1; row >= 0; row--) {
            if (row != 0 && board[row][col].value != 0) {
                if (board[row][col].value == board[row - 1][col].value) {
                    board[row][col].value = 2 * board[row][col].value;
                    plus = true;
                    current_row = row;
                    current_col = col;
                    win(board[row][col].value);
                    board[row - 1][col].value = 0;
                    if (pos_rel == SHIFT_RIGHT) {
                        score += board[current_row][current_col].value;
                    } else {
                        score_p2 += board[current_row][current_col].value;
                    }
                    printScore(score, score_p2, multi);
                }
            }
        }
    }
    cleanBoard(board, size, pos_rel);
    return plus;
}
Exemplo n.º 4
0
bool mergeRight(struct tile **board, int size, int pos_rel, int multi) {
    bool plus = false;
    int current_col;
    int current_row;
    for (int i = 0; i < size; i++) {
        for (int j = size - 1; j >= 0; j--) {
            //if the tile is not the first column keep going from right to left
            if (j != 0 && board[i][j].value != 0) {
                if (board[i][j].value == board[i][j - 1].value) {
                    board[i][j].value = 2 * board[i][j].value;
                    plus = true;
                    board[i][j - 1].value = 0;
                    current_row = i;
                    current_col = j;
                    //check if the added value == goal
                    win(board[i][j].value);
                    //update score
                    if (pos_rel == SHIFT_RIGHT) {
                        score += board[current_row][current_col].value;
                    } else {
                        score_p2 += board[current_row][current_col].value;
                    }
                    printScore(score, score_p2, multi);
                }
            }
        }
    }
    //clean the board 
    cleanBoard(board, size, pos_rel);
    return plus;
}