96 lines
4.1 KiB
C
96 lines
4.1 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
int main() {
|
|
|
|
enum { columns = 3 };
|
|
char board[][columns] = {
|
|
{"___"},
|
|
{"___"},
|
|
{"___"}};
|
|
|
|
int arr[1];
|
|
int currentPlayer;
|
|
if ((int) arr % 32 != 0) {
|
|
currentPlayer = 1;
|
|
} else currentPlayer = 0;
|
|
int end = 0;
|
|
int faul = 0;
|
|
printf("\n------------------------------------------\n");
|
|
printf("Ampersand Tic-Tac-Toe (Feet not included.)\n");
|
|
printf("Very lightweight Tic-Tac-Toe remake.\n");
|
|
printf("Made by RegonGaming\n");
|
|
printf("Licensed under WTFPL License\n\n");
|
|
// while loop maybe?
|
|
while(end != 1) {
|
|
printf(" 1 2 3\nA |%c||%c||%c|\nB |%c||%c||%c|\nC |%c||%c||%c|\n", board[0][0],board[0][1],board[0][2],board[1][0],board[1][1],board[1][2],board[2][0],board[2][1],board[2][2]);
|
|
if (currentPlayer == 1) {
|
|
printf("It's Player 1's turn! ");
|
|
} else printf("It's Player 2's turn! ");
|
|
printf("Input your move! ");
|
|
char move[3];
|
|
scanf("%2s", move);
|
|
char* xStr = &move[0];
|
|
int y = atoi(xStr)-1;
|
|
int x;
|
|
if(move[1] == 'A') { x = 0;}
|
|
else if(move[1] == 'B') { x = 1;}
|
|
else if(move[1] == 'C') { x = 2;}
|
|
|
|
if (board[x][y] != 'x' && board[x][y] != 'o') {
|
|
if (currentPlayer == 1) {
|
|
board[x][y] = 'x';
|
|
} else board[x][y] = 'o';
|
|
} else {
|
|
printf("That place is already taken up.\n");
|
|
faul = 1;
|
|
}
|
|
// super smart validation AI
|
|
for(int i = 0; i < 3; i++) {
|
|
if(board[i][0] == 'x' && board[i][1] == 'x' && board[i][2] == 'x' || board[0][i] == 'x' && board[1][i] == 'x' && board[2][i] == 'x') {
|
|
end = 1;
|
|
printf(" 1 2 3\nA |%c||%c||%c|\nB |%c||%c||%c|\nC |%c||%c||%c|\n", board[0][0],board[0][1],board[0][2],board[1][0],board[1][1],board[1][2],board[2][0],board[2][1],board[2][2]);
|
|
printf("X won!1!");
|
|
}
|
|
if(board[i][0] == 'o' && board[i][1] == 'o' && board[i][2] == 'o' || board[0][i] == 'o' && board[1][i] == 'o' && board[2][i] == 'o') {
|
|
end = 1;
|
|
printf(" 1 2 3\nA |%c||%c||%c|\nB |%c||%c||%c|\nC |%c||%c||%c|\n", board[0][0],board[0][1],board[0][2],board[1][0],board[1][1],board[1][2],board[2][0],board[2][1],board[2][2]);
|
|
printf("O won!1!");
|
|
}
|
|
}
|
|
if(board[0][0] == 'x' && board[1][1] == 'x' && board[2][2] == 'x' || board[2][0] == 'x' && board[1][1] == 'x' && board[0][2] == 'x') {
|
|
end = 1;
|
|
printf(" 1 2 3\nA |%c||%c||%c|\nB |%c||%c||%c|\nC |%c||%c||%c|\n", board[0][0],board[0][1],board[0][2],board[1][0],board[1][1],board[1][2],board[2][0],board[2][1],board[2][2]);
|
|
printf("X won!1!\n");
|
|
}
|
|
if(board[0][0] == 'o' && board[1][1] == 'o' && board[2][2] == 'o' || board[2][0] == 'o' && board[1][1] == 'o' && board[0][2] == 'o') {
|
|
end = 1;
|
|
printf(" 1 2 3\nA |%c||%c||%c|\nB |%c||%c||%c|\nC |%c||%c||%c|\n", board[0][0],board[0][1],board[0][2],board[1][0],board[1][1],board[1][2],board[2][0],board[2][1],board[2][2]);
|
|
printf("O won!1!\n");
|
|
}
|
|
if (end != 1) {
|
|
if(
|
|
board[0][0] != '_' &&
|
|
board[0][1] != '_' &&
|
|
board[0][2] != '_' &&
|
|
board[1][0] != '_' &&
|
|
board[1][1] != '_' &&
|
|
board[1][2] != '_' &&
|
|
board[2][0] != '_' &&
|
|
board[2][1] != '_' &&
|
|
board[2][2] != '_' ) {
|
|
end = 1;
|
|
printf(" 1 2 3\nA |%c||%c||%c|\nB |%c||%c||%c|\nC |%c||%c||%c|\n", board[0][0],board[0][1],board[0][2],board[1][0],board[1][1],board[1][2],board[2][0],board[2][1],board[2][2]);
|
|
printf("All the places are filled up. Can't continue!\n");
|
|
}
|
|
}
|
|
if (faul != 1) {
|
|
if (currentPlayer == 1) {
|
|
currentPlayer -= 1;
|
|
} else currentPlayer += 1;
|
|
}
|
|
faul = 0;
|
|
}
|
|
return 0;
|
|
}
|