基于目标检测的五子棋胜负判断

思路:
在这里插入图片描述
代码:https://github.com/harrylee999/Judge-Winner-of-Gobang-base-on-Target-detection

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的C语言程序,用于判断五子棋胜负: ```c #include <stdio.h> #define BOARD_SIZE 15 // 判断是否有五子连珠 int check_win(int board[BOARD_SIZE][BOARD_SIZE], int row, int col, int player) { int i, j; int count = 0; // 判断行 for (i = 0; i < BOARD_SIZE; i++) { if (board[row][i] == player) { count++; } else { count = 0; } if (count == 5) { return 1; } } // 判断列 count = 0; for (i = 0; i < BOARD_SIZE; i++) { if (board[i][col] == player) { count++; } else { count = 0; } if (count == 5) { return 1; } } // 判断左上到右下的对角线 count = 0; for (i = row, j = col; i >= 0 && j >= 0; i--, j--) { if (board[i][j] == player) { count++; } else { break; } if (count == 5) { return 1; } } for (i = row + 1, j = col + 1; i < BOARD_SIZE && j < BOARD_SIZE; i++, j++) { if (board[i][j] == player) { count++; } else { break; } if (count == 5) { return 1; } } // 判断左下到右上的对角线 count = 0; for (i = row, j = col; i >= 0 && j < BOARD_SIZE; i--, j++) { if (board[i][j] == player) { count++; } else { break; } if (count == 5) { return 1; } } for (i = row + 1, j = col - 1; i < BOARD_SIZE && j >= 0; i++, j--) { if (board[i][j] == player) { count++; } else { break; } if (count == 5) { return 1; } } return 0; } int main() { int board[BOARD_SIZE][BOARD_SIZE] = {0}; int i, j; int player = 1; while (1) { // 打印棋盘 for (i = 0; i < BOARD_SIZE; i++) { for (j = 0; j < BOARD_SIZE; j++) { if (board[i][j] == 0) { printf("+ "); } else if (board[i][j] == 1) { printf("O "); } else { printf("X "); } } printf("\n"); } // 输入下棋位置 printf("Player %d, please input your move (row col): ", player); scanf("%d %d", &i, &j); // 判断下棋位置是否合法 if (i < 0 || i >= BOARD_SIZE || j < 0 || j >= BOARD_SIZE) { printf("Invalid move.\n"); continue; } else if (board[i][j] != 0) { printf("Position already occupied.\n"); continue; } // 下棋 board[i][j] = player; // 判断胜负 if (check_win(board, i, j, player)) { printf("Player %d wins!\n", player); break; } // 切换玩家 player = (player == 1) ? 2 : 1; } return 0; } ``` 这个程序实现了一个简单的五子棋游戏,玩家通过在控制台输入坐标来下棋,程序会判断下棋位置是否合法,以及是否有五子连珠的胜利条件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值