该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

struct coordinate

{

int x;

int y;

}direct[8]={{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}};

char map[10][10];

char p[3];

//地图类

int exitcode;

int flag;

//开关类

int me,op;

int d;

//控制变量类

int num[2];

int temp;

//普通记录变量类

void initmap()

{

memset(map,0,sizeof(map));

int i,j;

for (i=0;i<10;i++)

for (j=0;j<10;j++)

map[i][j]=p[3];

map[4][4]=p[me];

map[5][5]=p[me];

map[4][5]=p[op];

map[5][4]=p[op];

}

void init()

{

num[0]=2;

num[1]=2;

me=0;

op=1;

p[me]='*';

p[op]='@';

p[3]='.';

exitcode=2;

initmap();

}

void printmap()

{

int i,j;

printf("  1 2 3 4 5 6 7 8\n");

for (i=1;i<=8;i++)

{

printf("%d",i);

for (j=1;j<=8;j++)

printf(" %c",map[i][j]);

printf("\n");

}

printf("\n");

printf("%c --- %d\n",p[0],num[0]);

printf("%c --- %d\n",p[1],num[1]);

printf("\n");

}

void change()

{

temp=me;

me=op;

op=temp;

}

int search(int i,int j,int step)

{

if (map[i][j]==p[3])

return 0;

else if (map[i][j]==p[me])

return step-1;

else if (step=search(i+direct[d].x,j+direct[d].y,step+1))

map[i][j]=p[me];

return step;

}

void sortgame()

{

int i,j;

while (exitcode)

{

printmap();

i=0;

j=0;

printf("%c's turn.Your coordinate(y,x):",p[me]);

scanf("%d,%d",&i,&j);

while ((i<1)||(i>8)||(j<1)||(j>8))

{

printf("You have entered an unreachable position, please input again.\n");

printf("%c's turn.Your coordinate(x,y):",p[me]);

scanf("%d,%d",&i,&j);

}

flag=0;

for (d=0;d<8;d++)

if (temp=search(i+direct[d].x,j+direct[d].y,1))

{

num[me]+=temp;

num[op]-=temp;

flag=1;

}

if (!flag)

{

exitcode--;

printf("Unusable step.\n");

}

else

{

map[i][j]=p[me];

num[me]++;

exitcode=2;

}

change();

}

printf("Either of you have no way to go, game exit.\n");

}

main()

{

init();

sortgame();

getch();

}

黑白棋子c语言思路,最近无聊在写奥赛罗(黑白棋),求关于落棋可行判定的思路...相关推荐

  1. 指数爆炸c语言编程,【草稿】贪吃蛇,黑白棋,五子棋,扫雷的思路。大家来看看行不行...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 [新手进阶教程]贪吃蛇,黑白棋,五子棋,扫雷的思路. 以上我只做过贪吃蛇,看过<C语言入门经典>的黑白棋(具体玩法上网搜搜)的代码,不过,个人 ...

  2. C语言零基础项目:黑白棋游戏!详细思路+源码分享

    每天一个C语言小项目,提升你的编程能力! <黑白棋>也叫翻转棋或者奥赛罗,其游戏过程是相互翻转对方的棋子,最后以棋盘上谁的棋子多来判断胜负.虽然规则简单,但是变化复杂,是典型的易学难精,奥 ...

  3. 用C语言实现三子棋游戏(附上思路+项目展示+源代码)

    文章目录 前言 一.三子棋游戏整体实现思路 二.实现步骤 分模板实现 (以及具体应用实列) 1.test.c 源文件讲解: 2. game.c 源文件讲解: 3.game.h 源文件讲解 三 game ...

  4. 信息学奥赛一本通 1327:【例7.6】黑白棋子的移动 | 洛谷 P1259 黑白棋子的移动

    [题目链接] ybt 1327:[例7.6]黑白棋子的移动 洛谷 P1259 黑白棋子的移动 注:两题仅输出要求不同 [题目释义] 开始时,末尾有两个空位可以使用. 棋子移动后,会在原位置留有空位,相 ...

  5. c语言链表交换,求单链表的数据交换解决思路

    当前位置:我的异常网» C语言 » 求单链表的数据交换解决思路 求单链表的数据交换解决思路 www.myexceptions.net  网友分享于:2013-11-04  浏览:14次 求单链表的数据 ...

  6. 信息学奥赛一本通(1327:【例7.6】黑白棋子的移动)

    1327:[例7.6]黑白棋子的移动 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 5394     通过数: 2403 [题目描述] 有2n个棋子(n≥4)排成 ...

  7. 黑白棋,又叫翻转棋(Reversi)、苹果棋或奥赛罗棋(Othello)。棋盘共有8行8列共64格。开局时,棋盘正中央的4格先置放黑白相隔的4枚棋子。双方轮流落子,只要落子和棋盘上任一枚己方的棋子

    黑白棋,又叫翻转棋(Reversi).苹果棋或奥赛罗棋(Othello).棋盘共有8行8列共64格. 开局时,棋盘正中央的4格先置放黑白相隔的4枚棋子.双方轮流落子,只要落子和棋盘上任一枚己方的棋子在 ...

  8. 【华为机试题】黑白棋子的最大匹配度

    棋盘上有黑白两种颜色的棋子,选出一对黑白棋子,若黑棋的横坐标小于等于白棋的横坐标,黑棋的纵坐标小于等于白棋的纵坐标,则称这一对棋子为匹配.求任意个数的黑白棋中最佳匹配的对数. 输入: 测试用例数 对每 ...

  9. Go语言版黑白棋(十):棋子个数统计、胜负判断

    功能说明 增加棋子个数统计.胜负判断功能,游戏结束后可选择继续游戏. 示例代码 package mainimport ("fmt""os""strco ...

最新文章

  1. 高防服务器如何进行防御措施
  2. WinRAR最新版V3.93 破解方法
  3. 昂贵的聘礼(poj 1062)
  4. java会编译失败吗?_请问为什么这个通用java代码不会编译?
  5. Unity3D_(游戏)2D坦克大战 像素版
  6. win10 无法连接路由器共享设备 报错0X80004005
  7. Supersocket 如何使用 教程1
  8. Python使用pyechart绘制3d散点图
  9. OpenCv之Canny边界检测(笔记13)
  10. python中delete怎么用_python删除np.deletePython基础教程05 - 缩进和选择
  11. 无法支持python程序的编辑运行和调试_python程序的调试方法
  12. mysql输入正确,但远程连接报错
  13. [洛谷P1119]灾后重建
  14. 前端小技巧之ajax后遍历生成相同结构不同数据的dom
  15. 阿里云10 PB+/天的日志系统设计和实现
  16. privoxy基本配置-简洁版
  17. 微信小程序--微信扫一扫登录pc页面功能的实现
  18. Android App开发常用尺寸规范
  19. ssh secure shell:server responded algorithm negotiation failed
  20. 对金融基础知识的小总结

热门文章

  1. 路由器的基本配置方法
  2. 运行时异常与检查异常区别
  3. Python基础 —— 循环语句
  4. 零基础Bootstrap入门教程(0)--教程背景与目录
  5. 进军产业互联网背后:5G时代的讯众股份如何走出新路?
  6. win10 wlan打不开的解决方式(原先没有问题,突然就打不开)
  7. 用python实现货币汇率的转换
  8. [ZedBoard移植嵌入式Linux教程(9,10)]编译设备树dts为dtb,制作根文件系统
  9. vue input银行卡四位空一格
  10. 数据降维几种方法,主成分分析学习和代码实现