生活随笔
收集整理的这篇文章主要介绍了
简易三子棋游戏
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
简易三子棋游戏
文章目录
#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了
总结
以上是生活随笔为你收集整理的简易三子棋游戏的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。