I need help with #1 & #2 since they correspond with each other. This is meant to
ID: 3812832 • Letter: I
Question
I need help with #1 & #2 since they correspond with each other. This is meant to be done in C not C++.
Write a program that declares a 2 dimensional array of chars with 3 rows and 3 columns. Write functions called initializeBoard(), displayBoard and makeMove nitializeBoard should fill the array with space characters displayBoard() should display the current board, with the rows and columns labled, and makeMove() should ask the user to enter a row and a column and change that square to alternating X's or a o's. Display the board again after each move. The program should run for 9 moves. Use the following function prototypes: void initialize Board (char [COLS void display Board (char [COLS void make (char COLS char Move Example: 1 2 3 3 Enter the row and column you'd like to fill 2 2 1 3Explanation / Answer
I assigned the player's value '1' or '2' so if it is first player enter cell position any from 1 to 9 for first user move and for second player enter cell position move any from 1 to 9 the valid one otherwise you will get invalid move. .
// Happy Playing
#include <stdio.h>
#include <stdlib.h>
char square[10] = { 'o', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
int checkwin();
void displayBoard();
void initializeBoard();
void validMove(char,int,int *);
int main()
{
int player = 1, i, choice;
initializeBoard();
char mark;
do
{
displayBoard();
player = (player % 2) ? 1 : 2;
printf("Player %d, enter a number: ", player);
scanf("%d", &choice);
mark = (player == 1) ? 'X' : 'O';
validMove(mark,choice ,&player);
i = checkwin();
player++;
}while (i == - 1);
displayBoard();
if (i == 1)
printf("==>Player %d win ", --player);
else
printf("==>Game draw");
exit(0);
return 0;
}
void validMove(char mark,int choice, int *player){
if (choice == 1 && square[1] == '1')
square[1] = mark;
else if (choice == 2 && square[2] == '2')
square[2] = mark;
else if (choice == 3 && square[3] == '3')
square[3] = mark;
else if (choice == 4 && square[4] == '4')
square[4] = mark;
else if (choice == 5 && square[5] == '5')
square[5] = mark;
else if (choice == 6 && square[6] == '6')
square[6] = mark;
else if (choice == 7 && square[7] == '7')
square[7] = mark;
else if (choice == 8 && square[8] == '8')
square[8] = mark;
else if (choice == 9 && square[9] == '9')
square[9] = mark;
else
{
printf("Invalid move ");
*player = *player -1;
// getch();
exit(0);
}
}
/*********************************************
FUNCTION TO RETURN GAME STATUS
1 FOR GAME IS OVER WITH RESULT
-1 FOR GAME IS IN PROGRESS
O GAME IS OVER AND NO RESULT
**********************************************/
int checkwin()
{
if (square[1] == square[2] && square[2] == square[3])
return 1;
else if (square[4] == square[5] && square[5] == square[6])
return 1;
else if (square[7] == square[8] && square[8] == square[9])
return 1;
else if (square[1] == square[4] && square[4] == square[7])
return 1;
else if (square[2] == square[5] && square[5] == square[8])
return 1;
else if (square[3] == square[6] && square[6] == square[9])
return 1;
else if (square[1] == square[5] && square[5] == square[9])
return 1;
else if (square[3] == square[5] && square[5] == square[7])
return 1;
else if (square[1] != '1' && square[2] != '2' && square[3] != '3' &&
square[4] != '4' && square[5] != '5' && square[6] != '6' && square[7]
!= '7' && square[8] != '8' && square[9] != '9')
return 0;
else
return - 1;
}
/*******************************************************************
FUNCTION TO DRAW BOARD OF TIC TAC TOE WITH PLAYERS MARK
********************************************************************/
void initializeBoard()
{
system("cls");
printf(" Tic Tac Toe ");
printf("Player 1 (X) - Player 2 (O) ");
printf(" | | ");
printf(" | | ");
printf("_____|_____|_____ ");
printf(" | | ");
printf(" | | ");
printf("_____|_____|_____ ");
printf(" | | ");
printf(" | | ");
printf(" | | ");
}
void displayBoard()
{
system("cls");
printf(" Tic Tac Toe ");
printf("Player 1 (X) - Player 2 (O) ");
printf(" | | ");
printf(" %c | %c | %c ", square[1], square[2], square[3]);
printf("_____|_____|_____ ");
printf(" | | ");
printf(" %c | %c | %c ", square[4], square[5], square[6]);
printf("_____|_____|_____ ");
printf(" | | ");
printf(" %c | %c | %c ", square[7], square[8], square[9]);
printf(" | | ");
}
/*******************************************************************
END OF PROJECT
********************************************************************/
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.