c语言,涉及棋盘问题

题目:要求输出国际象棋棋盘。

代码如下:

#include <stdio.h>
int main()
{
  int i,j;
  for(i=0;i<8;i++)
  {
    for(j=0;j<8;j++)
      if((i+j)%2==0)
        printf("%c",219);
      else
        printf("  ");
    printf("\n");
  }
  return 0;
}
针对这类问题,跟乘法表差不多,用i,j分别表示黑格和白格,然后用if函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言中编写一个马踏棋盘的游戏可能涉及到图形用户界面(GUI)编程,因为直接在控制台上实现复杂的图形效果比较复杂。不过,如果你想要创建一个简单的控制台版本,我们可以先从基本的命令行游戏开始。这里是一个基础的步骤和代码框架,用于实现"骑士过河"的简单版,即马踏两格向左或向右,然后向上或向下移动一格。 ```c #include <stdio.h> #include <conio.h> // Windows-specific for getch() function #define BOARD_SIZE 8 // 假设棋盘大小为8x8 #define PLAYER1 'K' #define PLAYER2 'k' void print_board(char board[BOARD_SIZE][BOARD_SIZE]) { int i, j; for (i = 0; i < BOARD_SIZE; i++) { for (j = 0; j < BOARD_SIZE; j++) { printf("%c ", board[i][j]); } printf("\n"); } } // 马的移动函数 char knight_move(int x, int y, char board[BOARD_SIZE][BOARD_SIZE]) { if (x + 2 < BOARD_SIZE && y + 1 < BOARD_SIZE && board[x + 2][y + 1] == '\0') { board[x + 2][y + 1] = PLAYER1; // 先放置玩家1的马 } else if (x + 2 >= 0 && y - 1 >= 0 && board[x + 2][y - 1] == '\0') { board[x + 2][y - 1] = PLAYER1; // 同理,放置玩家1的马 } else if (x - 2 >= 0 && y + 1 < BOARD_SIZE && board[x - 2][y + 1] = PLAYER2; // 对于玩家2 } else if (x - 2 < BOARD_SIZE && y - 1] = PLAYER2; // 同理,放置玩家2的马 } return board[x][y]; } int main() { char board[BOARD_SIZE][BOARD_SIZE] = {0}; // 初始化棋盘 char player = PLAYER1; // 初始玩家 bool game_on = true; while (game_on) { print_board(board); int input = _getch(); // 获取用户输入,假设输入1-8选择移动位置 int x = input - '1'; // 转换输入到行坐标 int y = BOARD_SIZE / 2 - 1; // 设置固定列坐标(假设棋盘中央) board[knight_move(x, y, board)] = player; // 移动并更新棋子 if (player == PLAYER1) { player = PLAYER2; // 更换玩家 } else { player = PLAYER1; } // 添加更多游戏逻辑,如检查胜利条件等 } return 0; } ``` 请注意,这只是一个非常基础的示例,实际的完整项目会包含更多的错误处理、用户输入验证以及游戏循环控制。此外,由于控制台环境的限制,复杂的图形棋盘展示通常是用图形库或GUI工具实现的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值