这次你要写一个自动扫雷的AI~
先输入三个整数row,col,mineNum,分别表示雷区的行数、列数和总共的地雷数。
然后是循环输出。
每次输出两个整数(分两行输出)表示要打开的格子。(坐标从0开始)
然后fflush(stdout)
再读入一个整数,数字0~8表示周围8个格子内的雷的数量。如果是-1表示这个格子是雷,游戏结束。
计分规则:
进行5场初级(9*9 10个雷)、3场中级(16*16 40个雷)、2场高级(19*30 99个雷)游戏
每局游戏满分10分,共100分。每场得分等于10*开启的格子数量/没有雷的格子数量。(在踩到第一个雷之前所开启的格子数越多,得分越高)
多次提交取最高得分。
每一步的时间限制是1秒,总时间限制是20秒。
不能重复开同一个点。
注意:
点开的第一个点一定返回0
开到为0的点只返回0,周围的8个点要另行自己打开。
注意:点了地图外的点会返回Submit Error
样例程序:(随机乱点) #include<stdio.h> #include<stdlib.h> #include<time.h> int fieldHeight, fieldWidth, mineCount; int main(){ //随机扫雷 srand(time(0)); scanf("%d%d%d",&fieldHeight,&fieldWidth,&mineCount); while(1){ printf("%d\n%d\n",rand()%fieldHeight,rand()%fieldWidth);//瞎开一个点 fflush(stdout); int z; scanf("%d",&z); if(z == -1) return 0;//哎呀,踩到雷了 } return 0; }
提示: 提交之后,可以在评测界面点击评测结果可视化展示扫雷情况哦 建议开到0后,优先点开周围的点,在结果返回时比较好看。(不这么做也不影响得分) 本题不显示评测时间和内存