生活随笔
收集整理的這篇文章主要介紹了
简易三子棋游戏
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡易三子棋游戲
文章目錄
#define _CRT_SECURE_NO_WARNINGS
#define ROW 3
#define COL 3
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void Muse()
{printf("******************************\n");printf("*******歡迎進入三子棋游戲*****\n");printf("*******輸入1:進入游戲********\n");printf("*******輸入0:退出游戲********\n");printf("******************************\n");
}
void ChuShiHua(char qipan
[][COL
], int row
, int col
)
{int i
= 0;int j
= 0;for (i
= 0;i
< row
;i
++){for (j
= 0;j
< col
;j
++){qipan
[i
][j
] = ' ';}}
}
void DaYin(char qipan
[][COL
], int row
, int col
)
{int i
= 0;int j
= 0;for (i
= 0;i
< row
;i
++){for (j
= 0;j
< col
;j
++){printf(" %c ", qipan
[i
][j
]);if (j
< col
- 1){printf("|");}}printf("\n");if (i
< row
- 1){for (j
= 0;j
< col
;j
++){printf("---");if (j
< col
- 1){printf("|");}}}printf("\n");}
}
void WanJia(char qipan
[][COL
], int row
, int col
)
{int x
= 0;int y
= 0;while (1){printf("玩家移動:\n");printf("請輸入1——>3的坐標:");scanf("%d%d", &x
, &y
);if (x
> 0 && x
<= 3 && y
> 0 && y
<= 3){if (qipan
[x
- 1][y
- 1] == ' '){qipan
[x
- 1][y
- 1] = 'X';break;}else{printf("您輸入的坐標已有棋子,請重新輸入:");}}else{printf("您輸入的坐標有誤!請重新輸入:");}}
}
int Man(char qipan
[][COL
], int row
, int col
)
{int i
= 0;int j
= 0;for (i
= 0;i
< ROW
;i
++){for (j
= 0;j
< COL
;j
++){if (qipan
[i
][j
] == ' '){return 0;}}}return 1;
}
int Win(char qipan
[][COL
], int row
, int col
)
{int i
= 0;for (i
= 0;i
< ROW
;i
++){if (qipan
[i
][0] == qipan
[i
][1] && qipan
[i
][1] == qipan
[i
][2] && qipan
[i
][0] != ' '){return qipan
[i
][0];}if (qipan
[0][i
] == qipan
[1][i
] && qipan
[1][i
] == qipan
[2][i
] && qipan
[0][i
] != ' '){return qipan
[0][i
];}if (qipan
[0][0] == qipan
[1][1] && qipan
[1][1] == qipan
[2][2] && qipan
[0][0] != ' '){return qipan
[0][0];}if (qipan
[2][0] == qipan
[1][1] && qipan
[1][1] == qipan
[0][2] && qipan
[2][0] != ' '){return qipan
[i
][0];}if (Man(qipan
, 3, 3) == 1){return 'P';}}return 'B';
}
void DianNao(char qipan
[][COL
], int row
, int col
)
{int x
= 0;int y
= 0;printf("電腦移動:\n");while (1){x
= rand() % ROW
;y
= rand() % COL
;if (qipan
[x
][y
] == ' '){qipan
[x
][y
] = 'O';break;}}
}
void Game()
{int a
= 0;char qipan
[ROW
][COL
] = { 0 };ChuShiHua(qipan
, 3, 3);DaYin(qipan
, 3, 3);while (1){WanJia(qipan
, 3, 3);DaYin(qipan
, 3, 3);a
= Win(qipan
, 3, 3);if (a
!= 'B'){break;}DianNao(qipan
, 3, 3);DaYin(qipan
, 3, 3);}if (a
== 'X'){printf("恭喜你你贏了!");}else if (a
== 'O'){printf("真遺憾,你輸了!");}else if (a
== 'P'){printf("平局喲!");}
}int main()
{int input
= 0;srand((unsigned int)time(NULL));do{Muse();printf("請輸入你的選擇:");scanf("%d", &input
);switch (input
){case 1:Game();break;case 0:printf("退出游戲\n");break;default:printf("您輸入的有誤!請重新輸入:");break;}} while (input
);system("pause");return 0;
}
結果顯示:
初學者寫肯定是無從下手,但拿單個函數你肯定會,所以要把整個問題分解開,把每個功能逐個實現就OK了
總結
以上是生活随笔為你收集整理的简易三子棋游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。