简单五子棋
来源:互联网 发布:在家里赚钱 知乎 编辑:程序博客网 时间:2024/05/16 15:55
#include <stdio.h>
#include <string.h>
int checkwin(char (*p)[10]){
int i, j;
for(i = 0; i < 10; i++){
for(j = 0; j < 10; j++){
//printf("%c", *(*(p+i)+j));
if(p[i][j]=='@'){
//横向判断
if (j < 6 && p[i][j+1]=='@' && p[i][j+2]=='@' && p[i][j+3]=='@' && p[i][j+4]=='@') {
printf("@ win!");
}
//纵向判断
if (i < 6 && p[i+1][j]=='@' && p[i+2][j]=='@' && p[i+3][j]=='@' && p[i+4][j]=='@') {
printf("@ win!");
}
//左斜向判断
if (i < 6 && j > 3 && p[i+1][j-1]=='@' && p[i+2][j-2]=='@' && p[i+3][j-3]=='@' && p[i+4][j-4]=='@') {
printf("@ win!");
}
//左斜向判断
if (i < 6 && j < 6 && p[i+1][j+1]=='@' && p[i+2][j+2]=='@' && p[i+3][j+3]=='@' && p[i+4][j+4]=='@') {
printf("@ win!");
}
} else if (p[i][j]=='#') {
//横向判断
if (j < 6 && p[i][j+1]=='#' && p[i][j+2]=='#' && p[i][j+3]=='#' && p[i][j+4]=='#') {
printf("# win!");
}
//纵向判断
if (i < 6 && p[i+1][j]=='#' && p[i+2][j]=='#' && p[i+3][j]=='#' && p[i+4][j]=='#') {
printf("# win!");
}
//左斜向判断
if (i < 6 && j > 3 && p[i+1][j-1]=='#' && p[i+2][j-2]=='#' && p[i+3][j-3]=='#' && p[i+4][j-4]=='#') {
printf("# win!");
}
//左斜向判断
if (i < 6 && j < 6 && p[i+1][j+1]=='#' && p[i+2][j+2]=='#' && p[i+3][j+3]=='#' && p[i+4][j+4]=='#') {
printf("# win!");
}
}
}
}
return 0;
}
int main(void)
{
char chessbd[10][10];
int x, y;
int i, j;
int b, tipflag;
char tips[60];
for(i = 0; i < 10; i++){
for(j = 0; j < 10; j++){
chessbd[i][j] = '*';
}
}
checkwin(chessbd);
b = 1;
tipflag = 0;
while(1){
system("clear");
for (i = 0; i < 10; i++){
for (j = 0; j < 10; j++){
printf("%c", chessbd[i][j]);
}
printf("\n");
}
checkwin(chessbd);
if(tipflag){
printf("%s", tips);
}
scanf("%d%d", &x, &y);
if (x > 10 || y > 10 || x < 0 || y < 0) {
tipflag = 1;
strcpy(tips, "out of bounds! please enter again!\n");
} else if(chessbd[x-1][y-1] != '*') {
tipflag = 1;
strcpy(tips, "exist! please enter again!\n");
} else {
tipflag = 0;
if (b){
chessbd[x-1][y-1] = '@';
} else {
chessbd[x-1][y-1] = '#';
}
b = !b;
// system("clear");
}
}
return 0;
}
#include <string.h>
int checkwin(char (*p)[10]){
int i, j;
for(i = 0; i < 10; i++){
for(j = 0; j < 10; j++){
//printf("%c", *(*(p+i)+j));
if(p[i][j]=='@'){
//横向判断
if (j < 6 && p[i][j+1]=='@' && p[i][j+2]=='@' && p[i][j+3]=='@' && p[i][j+4]=='@') {
printf("@ win!");
}
//纵向判断
if (i < 6 && p[i+1][j]=='@' && p[i+2][j]=='@' && p[i+3][j]=='@' && p[i+4][j]=='@') {
printf("@ win!");
}
//左斜向判断
if (i < 6 && j > 3 && p[i+1][j-1]=='@' && p[i+2][j-2]=='@' && p[i+3][j-3]=='@' && p[i+4][j-4]=='@') {
printf("@ win!");
}
//左斜向判断
if (i < 6 && j < 6 && p[i+1][j+1]=='@' && p[i+2][j+2]=='@' && p[i+3][j+3]=='@' && p[i+4][j+4]=='@') {
printf("@ win!");
}
} else if (p[i][j]=='#') {
//横向判断
if (j < 6 && p[i][j+1]=='#' && p[i][j+2]=='#' && p[i][j+3]=='#' && p[i][j+4]=='#') {
printf("# win!");
}
//纵向判断
if (i < 6 && p[i+1][j]=='#' && p[i+2][j]=='#' && p[i+3][j]=='#' && p[i+4][j]=='#') {
printf("# win!");
}
//左斜向判断
if (i < 6 && j > 3 && p[i+1][j-1]=='#' && p[i+2][j-2]=='#' && p[i+3][j-3]=='#' && p[i+4][j-4]=='#') {
printf("# win!");
}
//左斜向判断
if (i < 6 && j < 6 && p[i+1][j+1]=='#' && p[i+2][j+2]=='#' && p[i+3][j+3]=='#' && p[i+4][j+4]=='#') {
printf("# win!");
}
}
}
}
return 0;
}
int main(void)
{
char chessbd[10][10];
int x, y;
int i, j;
int b, tipflag;
char tips[60];
for(i = 0; i < 10; i++){
for(j = 0; j < 10; j++){
chessbd[i][j] = '*';
}
}
checkwin(chessbd);
b = 1;
tipflag = 0;
while(1){
system("clear");
for (i = 0; i < 10; i++){
for (j = 0; j < 10; j++){
printf("%c", chessbd[i][j]);
}
printf("\n");
}
checkwin(chessbd);
if(tipflag){
printf("%s", tips);
}
scanf("%d%d", &x, &y);
if (x > 10 || y > 10 || x < 0 || y < 0) {
tipflag = 1;
strcpy(tips, "out of bounds! please enter again!\n");
} else if(chessbd[x-1][y-1] != '*') {
tipflag = 1;
strcpy(tips, "exist! please enter again!\n");
} else {
tipflag = 0;
if (b){
chessbd[x-1][y-1] = '@';
} else {
chessbd[x-1][y-1] = '#';
}
b = !b;
// system("clear");
}
}
return 0;
}
阅读全文
1 0
- 简单五子棋
- 简单五子棋
- Excel简单五子棋
- 简单五子棋java源码
- 如何实现简单五子棋?
- 简单的小型五子棋
- 简单五子棋算法
- 简单五子棋服务器
- 人机简单五子棋!
- java简单五子棋源代码
- java实现简单五子棋
- 简单程序设计-五子棋
- 简单五子棋AI
- 五子棋的简单AI
- 五子棋的简单实现
- 简单的控制台五子棋游戏
- 简单五子棋----C语言实现
- 简单AI的五子棋程序
- css sprite新手教程
- [翻译]How to Interpret the Erlang Crash Dumps
- 使用Java文件选择器去获取文件、图片
- Apache POI Excel固定(冻结)单元格
- 【C#学习】运算符
- 简单五子棋
- Java中的自动转型
- 如何利用Cloudera Manager来手动安装parcel包
- Oracle 11g 创建数据库详细步骤
- URL编码
- pynlpir(ICTCLAS)初步使用
- MapReduce计算模型的深入剖析
- Android中通过代码修改bitmap的宽高.
- Java面经 面试经验 互联网公司面试经验 后端面试经验