tenho que fazer um código de um lig4 ou conect4 em c++ e tenho que fazer com que ele não aceite letr

1. tenho que fazer um código de um lig4 ou conect4 em c++ e tenho que fazer com que ele não aceite letr

Lucas Maciel Castolde
legend666777

(usa Outra)

Enviado em 10/12/2023 - 16:04h

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#define ROWS 6
#define COLS 7



void setColor(int color) {

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);

}

void resetColor() {

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);

}

void initializeBoard(char board[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
board[i][j] = ' ';
}
}
}

void printBoard(char board[ROWS][COLS]) {
system("cls"); // Limpar a tela (Windows)

printf(" 1 2 3 4 5 6 7\n");
printf("----------------\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (board[i][j] == ' ') {
setColor(13); // Cor roxa para espaço vazio
} else if (board[i][j] == '#') {
setColor(9); // Cor azul para jogador 1
} else {
setColor(12); // Cor vermelha para jogador 2
}

printf("|%c", board[i][j]);
resetColor();
}
printf("|\n");
}
printf("----------------\n");
}

int dropPiece(char board[ROWS][COLS], int col, char piece) {
for (int i = ROWS - 1; i >= 0; i--) {
if (board[i][col] == ' ') {
board[i][col] = piece;
return i;
}
}
return -1; // Coluna cheia
}

int checkWinner(char board[ROWS][COLS], int row, int col, char piece) {
// Verificar vitória em linhas, colunas e diagonais
int count;

// Verificar horizontal
count = 0;
for (int j = 0; j < COLS; j++) {
if (board[row][j] == piece) {
count++;
if (count == 4) return 1;
} else {
count = 0;
}
}

// Verificar vertical
count = 0;
for (int i = 0; i < ROWS; i++) {
if (board[i][col] == piece) {
count++;
if (count == 4) return 1;
} else {
count = 0;
}
}

// Verificar diagonal principal (/)
count = 0;
for (int i = row, j = col; i < ROWS && j < COLS; i++, j++) {
if (board[i][j] == piece) {
count++;
if (count == 4) return 1;
} else {
break;
}
}
for (int i = row - 1, j = col - 1; i >= 0 && j >= 0; i--, j--) {
if (board[i][j] == piece) {
count++;
if (count == 4) return 1;
} else {
break;
}
}

// Verificar diagonal secundária (\)
count = 0;
for (int i = row, j = col; i >= 0 && j < COLS; i--, j++) {
if (board[i][j] == piece) {
count++;
if (count == 4) return 1;
} else {
break;
}
}
for (int i = row + 1, j = col - 1; i < ROWS && j >= 0; i++, j--) {
if (board[i][j] == piece) {
count++;
if (count == 4) return 1;
} else {
break;
}
}

return 0; // Nenhum vencedor ainda
}

int isBoardFull(char board[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (board[i][j] == ' ') {
return 0; // O tabuleiro não está cheio
}
}
}
return 1; // O tabuleiro está cheio
}

int getPlayerMove(char piece) {
int col;
do{

printf("Jogador %c, insira sua jogada (coluna 1-7): ", piece);
scanf("%d", &col);
} while(col >= 7);
return col - 1; // Ajustar índice da coluna
}

void playGame() {
char board[ROWS][COLS];
int player1Wins = 0;
int player2Wins = 0;
int draws = 0;
int currentPlayer;
int gameOver = 0;
int col, row;

srand(time(NULL));

while (1) {
initializeBoard(board);
currentPlayer = 1; // Jogador 1 começa
gameOver = 0;

while (!gameOver) {
printBoard(board);

col = getPlayerMove((currentPlayer == 1) ? '#' : 'O');
row = dropPiece(board, col, (currentPlayer == 1) ? '#' : 'O');

if (row == -1) {
printf("Coluna cheia. Tente novamente.\n");
continue;
}

if (checkWinner(board, row, col, (currentPlayer == 1) ? '#' : 'O')) {
printBoard(board);
printf("Jogador %d vence!\n", currentPlayer);
(currentPlayer == 1) ? player1Wins++ : player2Wins++;
gameOver = 1;
} else if (isBoardFull(board)) {
printBoard(board);
printf("Empate!\n");
draws++;
gameOver = 1;
}

currentPlayer = (currentPlayer == 1) ? 2 : 1;
}

printf("Jogador 1: %d Jogador 2: %d Empates: %d\n", player1Wins, player2Wins, draws);

printf("Jogar novamente? (1 = Sim, 0 = Nao): ");
int playAgain;
scanf("%d", &playAgain);
if (!playAgain) {
break;
}
}
}

int main() {
playGame();
return 0;
}


  


2. Re: tenho que fazer um código de um lig4 ou conect4 em c++ e tenho que fazer com que ele não aceite letr

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 10/12/2023 - 16:04h

{
"error": {
"message": "We could not parse the JSON body of your request. (HINT: This likely means you aren't using your HTTP library correctly. The OpenAI API expects a JSON payload, but what was sent was not valid JSON. If you have trouble figuring out how to fix this, please contact us through our help center at help.openai.com.)",
"type": "invalid_request_error",
"param": null,
"code": null
}
}







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts