تبلیغات
انجمن علمی کامپیوتر - جدمل موانع به زبان c


در یک صفحه 10*10 یک مهره در خانه (0,0)وجود دارد و در این صفحه تعدادی موانع وجود دارد.ما می .توانیم این مهره را در جهت های مختلف حرکت دهیم.در صورتیکه مهره به یک مانع بر خورد کند باید عبارت block و اگر به آخر صفحه برسد عبارت wall را چاپ کند مهره نیز با علامت * و مانع با حرف b مشخص گردیده اند.

در ابتدا از شما n و سپس در n خط بعد از شما مختصات موانع را می گیرد.و سپس دستور مورد نظر را.

جدول دستورات:

معنای دستور دستور
حرکت به راست1
حرکت به چپ2
حرکت به بالا3
حرکت به پائین4
چاپ کردن صفحه5
اتمام برنامه6




#include <iostream>
using namespace std;
void print(char **table,int n);
int main()
{
    int n,xy,x=0,y=0;
    cin>>n;
    char **table;
    table=new char *[10];
    for(int i=0; i<10; i++)
        table[i]=new char [10];
    for(int i=0; i<10; i++)
        for(int j=0; j<10; j++)
            table[i][j]='.';
    table[0][0]='*';
    for(int i=0; i<n; i++)
    {
        cin>>xy;
        table[xy%10][xy/10]='b';
    }
    for(int aim; aim!=6;)
    {
        cin>>aim;
        if(aim==1)
        {
            while(x+1<10)
            {
                if(table[y][x+1]=='b')
                {
                    cout<<"Block"<<endl;
                    break;
                }
                swap(table[y][x],table[y][x+1]);
                x++;
            }
            if(x+1==10)
                cout<<"Wall"<<endl;
        }
        if(aim==2)
        {
            while(x-1>=0)
            {
                if(table[y][x-1]=='b')
                {
                    cout<<"Block"<<endl;
                    break;
                }
                swap(table[y][x],table[y][x-1]);
                x--;
            }
            if(x-1<0)
                cout<<"Wall"<<endl;
        }
        if(aim==3)
        {

            while(y-1>=0)
            {
                if(table[y-1][x]=='b')
                {
                    cout<<"Block"<<endl;
                    break;
                }
                swap(table[y][x],table[y-1][x]);
                y--;
            }
            if(y-1<0)
                cout<<"Wall"<<endl;
        }
        if(aim==4)
        {
            while(y+1<10)
            {
                if(table[y+1][x]=='b')
                {
                    cout<<"Block"<<endl;
                    break;
                }
                swap(table[y][x],table[y+1][x]);
                y++;
            }
            if(y+1==10)
                cout<<"Wall"<<endl;
        }
        if(aim==5)
            print(table,10);
        if(aim==6)
            return 0;
    }
}
void print(char **table,int n)
{
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
            cout<<table[i][j];
        cout<<endl;
    }
}





طبقه بندی: برنامه نویسی،

تاریخ : دوشنبه 1 دی 1393 | 10:24 ق.ظ | نویسنده : محبوبه قرقانی | نظرات
.: Weblog Themes By SlideTheme :.


  • ووگیگ