码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 2414 Chessboard Dance(模拟题,仅此纪念我的堕落)

时间:2014-10-03 23:51:45      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   for   sp   

题目

 

 

模拟题也各种wa,我最近真的堕落了,,,,,智商越来越为负数了!!!!!!!!

 

 

bubuko.com,布布扣
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char mp[10][10];
int d=-1;//0shang,1xia,2zuo,3you
int x,y;//weizhi
int weizhi(int i,int j)
{
    if(mp[i][j]==<){x=i,y=j,d=2;return 1;}
    if(mp[i][j]==>){x=i,y=j,d=3;return 1;}
    if(mp[i][j]==^){x=i,y=j,d=0;return 1;}
    if(mp[i][j]==v){x=i,y=j,d=1;return 1;}
    return 0;
}
void fangxiang()
{
    if(d==0)mp[x][y]=^;
    else if(d==1)mp[x][y]=v;
    else if(d==2)mp[x][y]=<;
    else if(d==3)mp[x][y]=>;
}
void mov(int num)
{
    while(num--)
    {
        char fro=mp[x][y];
        if(d==0)
        {
            for(int i=x-1;i>=0;i--){
            if(mp[i][y]==.){mp[i][y]=fro;break;}
            else {
                char tmp=mp[i][y];
                mp[i][y]=fro;
                fro=tmp;
                }
            }
            if(x-1>=0)mp[x][y]=.,x--;
        }
        else if(d==1){

            for(int i=x+1;i<8;i++){
            if(mp[i][y]==.){mp[i][y]=fro;break;}
            else {
                char tmp=mp[i][y];
                mp[i][y]=fro;
                fro=tmp;
                }
            }
            if(x+1<8)mp[x][y]=.,x++;
        }
        else if(d==2){

            for(int i=y-1;i>=0;i--){
            if(mp[x][i]==.){mp[x][i]=fro;break;}
            else {
                char tmp=mp[x][i];
                mp[x][i]=fro;
                fro=tmp;
                }
            }
            if(y-1>=0)mp[x][y]=.,y--;
        }
        if(d==3){

            for(int i=y+1;i<8;i++){
            if(mp[x][i]==.){mp[x][i]=fro;break;}
            else {
                char tmp=mp[x][i];
                mp[x][i]=fro;
                fro=tmp;
                }
            }
            if(y+1<8)    mp[x][y]=.,y++;
        }
    }
}
void turnn(char cc)
{
    if(cc==l)
    {
        if(d==0)d=2;
        else if(d==1)d=3;
        else if(d==2)d=1;
        else if(d==3)d=0;
    }
    else if(cc==r)
    {
         if(d==0)d=3;
        else if(d==1)d=2;
        else if(d==2)d=0;
        else if(d==3)d=1;

    }
    else if(cc==b)
    {
        if(d==0)d=1;
        else if(d==1)d=0;
        else if(d==2)d=3;
        else if(d==3)d=2;
    }
}
int main()
{
    while(scanf("%s",mp[0])!=EOF)
    {

        if(strcmp(mp[0],"--")==0)break;
        for(int i=1;i<8;i++)
        {
            scanf("%s",mp[i]);
        }
        int fl=0;
        for(int i=0;i<8;i++){
            for(int j=0;j<8;j++){
                if(weizhi(i,j)){fl=1;break;}
            }
            if(fl)break;
        }

        while(1)
        {
            char p[10];
            int movee;
            scanf("%s",p);
            if(strcmp(p,"#")==0)break;
            if(strcmp(p,"move")==0){
                scanf("%d",&movee);
                mov(movee);
            }
            else {
                scanf("%s",p);
                turnn(p[0]);
                fangxiang();
            }
        }
        for(int i=0;i<8;i++)
            printf("%s\n",mp[i]);
        
        printf("\n");
    }
    return 0;
}
View Code

 

HDU 2414 Chessboard Dance(模拟题,仅此纪念我的堕落)

标签:style   blog   http   color   io   os   ar   for   sp   

原文地址:http://www.cnblogs.com/laiba2004/p/4005383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!