文章目錄
- 模塊化思維:
- 本小編用模塊化思維量實作三字棋的實作
- 首先進行主函式的書寫
- 進行頁面內部的書寫
- 對于這個游戲首先是進行主頁面的書寫即主頁面的列印!(用模塊化書寫)
- 最難的部分來了!(game()的書寫!)
- 首先進行,陣列的初始化用一個函式!
- 然后進行創建列印函式
- 進行輸入#和*,開始玩游戲!
- 首先是人輸入,列印輸入后面的棋盤,進行判斷是否贏了,判斷是否充滿整個棋盤,沒有贏而且沒有充滿個棋盤,進行電腦輸入,然后重復上述動做!(因此可以用模塊化的形式解決這個問題!)
- 人輸入棋盤的代碼
- 進行輸贏判斷的代碼
- 判斷是否充滿棋盤的代碼
- 計算機進行輸入代碼
- 對界面進行列印的代碼(同什么,最開始時候的代碼)
- 利用這些代碼組合而成可以構成完整的三字棋代碼!
- 這個也是模塊化的思想的作用
模塊化思維:
隨著移動端的逐漸發展,對于軟體量要求增加許多,因此造成了軟體數量的增加!然而造成的是不規范程度的增加,讓程式的后期維護成本增加!因此許多的軟體開發企業提出了模塊化的思想,用來減少維護成本低增加,增加程式的可讀性,和可維護性
本小編用模塊化思維量實作三字棋的實作
首先進行主函式的書寫
void test(void);
int main(){
test()
return 0;}
進行頁面內部的書寫
void test(){do{
menu();
int input;
scanf("%d",&input);
switch (input)
case 1:
while(input)}
對于這個游戲首先是進行主頁面的書寫即主頁面的列印!(用模塊化書寫)
void menu(void){
printf("************************\n");
printf("******1 , 進入游戲********\n");
printf("******0 , 退出游戲********\n");
printf("************************\n");
}
最難的部分來了!(game()的書寫!)
首先進行,陣列的初始化用一個函式!
void Init(char board[ROW][COL],int row,int col){ int i = 0; int j = 0; for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { board[i][j] =' '; } } }
然后進行創建列印函式
void Dis(char board[ROW][COL], int row, int col)
{
int j = 0;
for (j = 0; j < row; j++)
{
printf(" %c | %c | %c\n", board[j][0], board[j][1], board[j][2]);
if(j<row-1)
printf("---|---|---\n");
}
}
進行輸入#和*,開始玩游戲!
首先是人輸入,列印輸入后面的棋盤,進行判斷是否贏了,判斷是否充滿整個棋盤,沒有贏而且沒有充滿個棋盤,進行電腦輸入,然后重復上述動做!(因此可以用模塊化的形式解決這個問題!)
人輸入棋盤的代碼
void player_move(char board[ROW][COL], int row, int col)
{
printf("?êo“????:>");
int x = 0;
int y = 0;
while (1)
{
scanf("%d %d", &x, &y);
if (x >= 1 && x <= row && y >= 1 && y <= col)
{
if (board[x-1][y-1] == ' ')
{
board[x - 1][y - 1] = '*';
break;
}
else
{
printf("∏√?ˉ±í±a’o”√£¨??÷?–? ‰??£°\n");
}
}
else
{
printf("?ˉ±í∑?∑?£¨??÷? ‰??!\n");
}
}
}
進行輸贏判斷的代碼
har is_win(char board[ROW][COL], int row, int col)
{
int i = 0;
//??––
for (i = 0; i < row; i++)
{
if (board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][1] != ' ')
{
return board[i][1];
}
}
//???–
for (i = 0; i < col; i++)
{
if (board[0][i] == board[1][i] && board[1][i] == board[2][i] && board[1][i] != ' ')
{
return board[1][i];
}
}
//?‘Ω???μ?≈–??
if(board[0][0]==board[1][1] && board[1][1]==board[2][2] &&board[1][1] != ' ')
{
return board[1][1];
}
if (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[1][1] != ' ')
{
return board[1][1];
}
//≈–???Ω?÷
if (1==is_full(board, row, col))
{
return 'Q';
}
//o?–ˉ
return 'C';
}
判斷是否充滿棋盤的代碼
int is_full(char board[ROW][COL], int row, int col)
{
int i = 0;
int j = 0;
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
if (board[i][j] == ' ')
{
return 0;
}
}
}
return 1;
}
計算機進行輸入代碼
void computer_move(char board[ROW][COL], int row, int col)
{
int x = 0;
int y = 0;
printf("μá?‘????>\n");
while (1)
{
x = rand() % ROW;//0~2
y = rand() % COL;//0~2
if (board[x][y] == ' ')
{
board[x][y] = '#';
break;
}
}
}
對界面進行列印的代碼(同什么,最開始時候的代碼)
void Dis(char board[ROW][COL], int row, int col)
{
int j = 0;
for (j = 0; j < row; j++)
{
printf(" %c | %c | %c\n", board[j][0], board[j][1], board[j][2]);
if(j<row-1)
printf("---|---|---\n");
}
}
利用這些代碼組合而成可以構成完整的三字棋代碼!
這個也是模塊化的思想的作用
最后,希望這個內容對你有幫助,
如果有幫助請點個贊!這個是小編的努力成果!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/353524.html
標籤:其他
上一篇:Pygame實戰:花巨資籌備的一款Tom貓游戲,你玩過嘛?
下一篇:陣列小練習(2)——掃雷
