解题思路:
没啥好说的,根据行为来设计函数,然后调用K次就可以了。
我觉得这一题可以作为游戏设计入门的编程练习题。
参考代码:
写的比较多,但是思路清晰
#include<bits/stdc++.h> #define hh ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); using namespace std; const int maxn=105; int mmp[maxn][maxn];//0表示白格,1表示黑格 int m,n; //地图长度 m行,n列 int x,y; //蚂蚁位置 char way; //蚂蚁方向 int k; //蚂蚁得步数 char change(int color) { if(color==0&&way=='U'||color==1&&way=='D') { way='R'; } else if(color==0&&way=='D'||color==1&&way=='U') { way='L'; } else if(color==0&&way=='L'||color==1&&way=='R') { way='U'; } else if(color==0&&way=='R'||color==1&&way=='L') { way='D'; } } void change_color() { if(mmp[x][y]==1) { mmp[x][y]=0; } else if(mmp[x][y]==0) { mmp[x][y]=1; } } void move() { if(way=='U') { x--; } else if(way=='D') { x++; } else if(way=='L') { y--; } else if(way=='R') { y++; } } int main() { hh; while(cin>>m>>n) { memset(mmp,-1,sizeof(mmp)); for(int i=0; i<m; i++) { for(int j=0; j<n; j++) { cin>>mmp[i][j]; } } cin>>x>>y>>way>>k; while(k--) { change_color(); change(mmp[x][y]); move(); } cout<<x<<' '<<y<<endl; } return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:944 |
【亲和数】 (C语言代码)浏览:542 |
C语言程序设计教程(第三版)课后习题9.1 (Java代码)浏览:471 |
Pascal三角 (C语言代码)浏览:1189 |
A+B for Input-Output Practice (II) (C语言代码)浏览:1000 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:619 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:542 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:586 |
母牛的故事 (C语言代码)浏览:945 |
Tom数 (C语言代码)浏览:495 |