两只多姆牛,模拟
#include <bits/stdc++.h>
using namespace std;
char mp[11][11];
int xa,ya,xb,yb;
int lxa,lya,lxb,lyb;
int fa = 1,fb = 1;
int ans = 0;
void yda(){
if(fa==1){//北
lxa = xa - 1;
lya = ya;
}
if(fa==2){//东
lxa = xa;
lya = ya + 1;
}
if(fa==3){//南
lxa = xa+1;
lya = ya ;
}
if(fa==4){//西
lxa = xa;
lya = ya - 1;
}
if(lxa>=1 && lya >=1 && lya<=10 && lxa <= 10&& mp[lxa][lya] == '.'){
xa = lxa;
ya = lya;
}else{
fa++;//方向改变
if(fa>4){
fa = 1;
}
}
}
void ydb(){
//平移区
if ( fb == 1 ){
lxb = xb - 1 ;
lyb = yb ;
}
if ( fb == 2 ){
lxb = xb ;
lyb = yb + 1 ;
}
if ( fb == 3 ){
lxb = xb + 1 ;
lyb = yb ;
}
if ( fb == 4 ){
lxb = xb ;
lyb = yb - 1 ;
}
//判定区:
if ( lxb >= 1 && lyb >= 1 && lyb <= 10 && lxb <= 10 && mp[lxb][lyb] == '.' ){
xb = lxb ;
yb = lyb ;
}
else{
fb++ ;
if ( fb > 4 ){
fb = 1 ;
}
}
}
int main(){
for(int i = 1;i<=10;i++){
for(int j = 1;j<=10;j++){
cin >> mp[i][j];
if(mp[i][j]=='F'){
xa=i;
ya=j;
mp[i][j] = '.';
}
if(mp[i][j]=='C'){
xb=i;
yb=j;
mp[i][j] = '.';
}
}
}
while(1){
yda();
ydb();
ans++;
if(ans>1000){
cout<<0;
return 0;
}
if(xa==xb&&ya==yb){
cout<<ans;
return 0;
}
}
}
        using namespace std;
char mp[11][11];
int xa,ya,xb,yb;
int lxa,lya,lxb,lyb;
int fa = 1,fb = 1;
int ans = 0;
void yda(){
if(fa==1){//北
lxa = xa - 1;
lya = ya;
}
if(fa==2){//东
lxa = xa;
lya = ya + 1;
}
if(fa==3){//南
lxa = xa+1;
lya = ya ;
}
if(fa==4){//西
lxa = xa;
lya = ya - 1;
}
if(lxa>=1 && lya >=1 && lya<=10 && lxa <= 10&& mp[lxa][lya] == '.'){
xa = lxa;
ya = lya;
}else{
fa++;//方向改变
if(fa>4){
fa = 1;
}
}
}
void ydb(){
//平移区
if ( fb == 1 ){
lxb = xb - 1 ;
lyb = yb ;
}
if ( fb == 2 ){
lxb = xb ;
lyb = yb + 1 ;
}
if ( fb == 3 ){
lxb = xb + 1 ;
lyb = yb ;
}
if ( fb == 4 ){
lxb = xb ;
lyb = yb - 1 ;
}
//判定区:
if ( lxb >= 1 && lyb >= 1 && lyb <= 10 && lxb <= 10 && mp[lxb][lyb] == '.' ){
xb = lxb ;
yb = lyb ;
}
else{
fb++ ;
if ( fb > 4 ){
fb = 1 ;
}
}
}
int main(){
for(int i = 1;i<=10;i++){
for(int j = 1;j<=10;j++){
cin >> mp[i][j];
if(mp[i][j]=='F'){
xa=i;
ya=j;
mp[i][j] = '.';
}
if(mp[i][j]=='C'){
xb=i;
yb=j;
mp[i][j] = '.';
}
}
}
while(1){
yda();
ydb();
ans++;
if(ans>1000){
cout<<0;
return 0;
}
if(xa==xb&&ya==yb){
cout<<ans;
return 0;
}
}
}
全部评论 
 相关推荐
10-12 19:23
  重庆邮电大学 Java   敢逐云霄志:你打招呼语怎么能这么长,hr都没看下去的欲望,简明扼要说重点,就读于某某学校某某专业,26届应届毕业生,学信网可查,先后在某某公司实习过(如有),然后做过什么项目,想找一份什么样的工作,可实习几个月以上,期待您的回复。
敢逐云霄志:你打招呼语怎么能这么长,hr都没看下去的欲望,简明扼要说重点,就读于某某学校某某专业,26届应届毕业生,学信网可查,先后在某某公司实习过(如有),然后做过什么项目,想找一份什么样的工作,可实习几个月以上,期待您的回复。 点赞 评论 收藏   
分享
  联想公司福利 1500人发布
联想公司福利 1500人发布 投递大连飞创信息技术有限公司等公司10个岗位
投递大连飞创信息技术有限公司等公司10个岗位