C语言编写五子棋程序

本文介绍了一款使用C语言编写的五子棋游戏,包括生成棋盘、打印棋盘、显示信息、下棋判断和检查输赢五个模块。玩家可以在终端中进行交互,支持悔棋和退出操作。程序在Linux环境下运行,采用动态显示棋盘并实时更新状态。
摘要由CSDN通过智能技术生成

五子棋游戏我们大家很多人都玩过,规则简单但是内容千变万化,今天我用C语言写了一个五子棋程序,由于时间仓促程序中难免会有BUG,希望您多多指正阿!!

程序的功能:

两个人轮流下子,在输入下子的时候,可以输入r来进行悔棋,也可以输入q来退出程序。

在本程序中,一共有5个模块,分别为:

1.生成棋盘模块:void create_board(char (*board)[N]);

    本模块的功能很简单,仅仅生成一个棋盘,因为本程序的运行环境是linux中的终端,所以出于界面的美观性考虑,将棋盘的空白位置标志为“-”(减号),白方的棋子为X(大写的X),黑方的棋子为O(大写的O)。所以在这个模块中我们给传递过来的一个二维数组所有的元素都赋值为‘-’

2.打印棋盘模块:void print_board(char (*board[N]));

    本模块的功能也很简单,就是将刚才生成的棋盘打印出来,同时我们还要这个模块打印目前棋盘的状态,在主函数中循环调用这个模块。由于这个程序是在linux的终端里面运行的,所以要实现棋盘的动态显示,还要不断调用system函数要调用clear的系统命令来刷新屏幕,这个功能也是在这个模块中实现的。

3.打印相关信息的模块:void print_info(int flag,int person);这个模块的功能就是打印出相关的信息,包括:这轮该哪一方下子,输入是否有误,是否有人赢。这是我们可以设置一个标志位flag来表示不同的情况,正常情况表示为0

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
一个很好的五子棋c语言程序代码,最重要的是能运行正确!!! #include #include #include #include #include #define CROSSRU 0xbf /*右上角点*/ #define CROSSLU 0xda /*左上角点*/ #define CROSSLD 0xc0 /*左下角点*/ #define CROSSRD 0xd9 /*右下角点*/ #define CROSSL 0xc3 /*左边*/ #define CROSSR 0xb4 /*右边*/ #define CROSSU 0xc2 /*上边*/ #define CROSSD 0xc1 /*下边*/ #define CROSS 0xc5 /*十字交叉点*/ /*定义棋盘左上角点在屏幕上的位置*/ #define MAPXOFT 5 #define MAPYOFT 2 /*定义1号玩家的操作键键码*/ #define PLAY1UP 0x1157/*上移--'W'*/ #define PLAY1DOWN 0x1f53/*下移--'S'*/ #define PLAY1LEFT 0x1e41/*左移--'A'*/ #define PLAY1RIGHT 0x2044/*右移--'D'*/ #define PLAY1DO 0x3920/*落子--空格键*/ /*定义2号玩家的操作键键码*/ #define PLAY2UP 0x4800/*上移--方向键up*/ #define PLAY2DOWN 0x5000/*下移--方向键down*/ #define PLAY2LEFT 0x4b00/*左移--方向键left*/ #define PLAY2RIGHT 0x4d00/*右移--方向键right*/ #define PLAY2DO 0x1c0d/*落子--回车键Enter*/ /*若想在游戏中途退出, 可按 Esc 键*/ #define ESCAPE 0x011b /*定义棋盘上交叉点的状态, 即该点有无棋子 */ /*若有棋子, 还应能指出是哪个玩家的棋子 */ #define CHESSNULL 0 /*没有棋子*/ #define CHESS1 'O'/*一号玩家的棋子*/ #define CHESS2 'X'/*二号玩家的棋子*/ /*定义按键类别*/ #define KEYEXIT 0/*退出键*/ #define KEYFALLCHESS 1/*落子键*/ #define KEYMOVECURSOR 2/*光标移动键*/ #define KEYINVALID 3/*无效键*/ 下载可看到完整的...
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值