双人下围棋 python

a=[[0 for i in range(19)]for i in range(19)]
for i in a:
    print(i)
s=int(input())
ds=0
for i in range(s):
    x,y,s,e=map(int,input().split())
    a[x][y]=1
    a[s][e]=2
    if a[x+1][y]==1 and a[x-1][y]==1 and a[x][y+1]==1 and a[x][y-1]==1:
        a[x][y]==0
        ds+=1
     
cs=0
for i in range(0,19):
    for j in range(0,19):
        if (i+1)>=19 or (j+1)>=19:
            break
            if a[i+1][j]==2 and a[i-1][j]==2 and a[i][j+1]==2 and a[i][j-1]==2 and a[i][j]==1 :
                a[i][j]==0
                cs+=1
        
for i in a:
    print(i)
print(ds,cs)
 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里给出一个简单的双人对弈C语言围棋代码,使用CodeBlocks IDE编写。 ```c #include <stdio.h> #define BOARD_SIZE 9 char board[BOARD_SIZE][BOARD_SIZE]; // 存储棋盘状态 char player = 'X'; // 当前玩家 void init_board() { // 初始化棋盘 for(int i=0; i<BOARD_SIZE; i++) { for(int j=0; j<BOARD_SIZE; j++) { board[i][j] = '.'; } } } void print_board() { // 打印棋盘 printf(" "); for(int i=0; i<BOARD_SIZE; i++) { printf("%d", i); } printf("\n"); for(int i=0; i<BOARD_SIZE; i++) { printf("%d", i); for(int j=0; j<BOARD_SIZE; j++) { printf("%c", board[i][j]); } printf("\n"); } } int is_valid_move(int x, int y) { // 判断是否为有效落子 if(x<0 || x>=BOARD_SIZE || y<0 || y>=BOARD_SIZE) { // 落子越界 return 0; } if(board[x][y] != '.') { // 落子位置已经有棋子 return 0; } return 1; } int is_game_over() { // 判断游戏是否结束 for(int i=0; i<BOARD_SIZE; i++) { for(int j=0; j<BOARD_SIZE; j++) { if(board[i][j] == '.') { return 0; // 存在空位,游戏未结束 } } } return 1; // 没有空位,游戏结束 } char get_winner() { // 获取胜者 int black_count = 0; int white_count = 0; for(int i=0; i<BOARD_SIZE; i++) { for(int j=0; j<BOARD_SIZE; j++) { if(board[i][j] == 'X') { black_count++; } if(board[i][j] == 'O') { white_count++; } } } if(black_count > white_count) { return 'X'; } if(black_count < white_count) { return 'O'; } return '.'; // 平局 } void play_game() { // 游戏主循环 int x, y; while(!is_game_over()) { print_board(); printf("Player %c's turn\n", player); printf("Enter move (x,y): "); scanf("%d,%d", &x, &y); if(is_valid_move(x, y)) { board[x][y] = player; if(player == 'X') { player = 'O'; } else { player = 'X'; } } else { printf("Invalid move!\n"); } } print_board(); char winner = get_winner(); if(winner == '.') { printf("Game ends in a draw.\n"); } else { printf("Player %c wins!\n", winner); } } int main() { init_board(); play_game(); return 0; } ``` 这个棋盘大小为9x9,黑棋用'X'表示,白棋用'O'表示,空位用'.'表示。玩家轮流输入落子的坐标,程序会检查落子是否合法,并在棋盘上显示出来。当游戏结束后,程序会输出胜者或平局的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值