Шахматно поле

Ако (X, Y) и (P, Q) са координати на полета от шахматна дъска, то изведете 1 ако:

  • те не са съседни
  • те са съседни по диагонал
  • те са с различен цвят
  • в полето (X, Y) е разположен кон, той бие полето (P, Q)
  • в полето (X, Y) е разположен топ, той бие полето (P, Q)
  • в полето (X, Y) е разположена царица, тя бие полето (P, Q)
Публикувано в 11а, 11в с етикети . Постоянна връзка.

2 Responses to Шахматно поле

  1. dreanor каза:
    #include <cstdlib>
    #include <iostream>
    #include <math.h>
    #include <ctype.h>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int y,q,m,n;    
    	char x,p;
    	cout << "wuwedi koordinatite na purwoto pole: ";
    	cin >>x>>y;
    	cout << "wuwedi koordinatite na wtoroto pole: ";
    	cin >>p>>q;
    	if ((abs(x-p)!=1)&&(abs(y-q)!=1))     // prowerka za susedni poleta
           cout << "poletata ne sa susedni"<<endl;
    	
    	if ((abs(x-p)==1)&&(abs(y-q)==1)) 
           cout << "poletata sa susedni po diagonal"<<endl;
        
        if (((x%2)==1)&&((y%2)==1)) m=1;    //prowerka za cveta na poletata
           else m=0;
           
        if (((p%2)==0)&&((q%2)==1)) n=0;
           else n=1;
        
        if (m!=n) 
           cout << "Poletata sa s razlichen cvqt "<<endl;
                else
                 {
                    if ((m==1)&&(n==1)) cout << "i dwete poleta sa cherni"<<endl;
           
                    if ((m==0)&&(n==0)) cout << "i dwete poleta sa beli "<<endl;
                 }
        if (islower(x))   //prowerka dali i dwete bukwi sa glawni
           x=toupper(x);
           
        if (islower(p)) 
           p=toupper(p);
                    
        if (((abs(x-p)==2)&&(abs(y-q)==1))||((abs(x-p)==1)&&(abs(y-q)==2)))  //prowerka za wuzmojni hodowe
           cout <<"Kon razpolojen w "<<x<<y<<" moje da bie poleto "<<p<<q<<endl;
        
        if ((x==p)||(y==q))
           cout <<"Top razpolojen w "<<x<<y<<" moje da bie poleto "<<p<<q<<endl;
        
        if (((x==p)||(y==q))||(abs(x-p)==abs(y-q)))
           cout <<"Carica razpolojena w "<<x<<y<<" moje da bie poleto "<<p<<q<<endl;
                 
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
  2. dreanor каза:
    #include <cstdlib>
    #include <iostream>
    #include <math.h>
    #include <ctype.h>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int y,q,m,n;    
    	char x,p;
    	cout << "wuwedi koordinatite na purwoto pole: ";
    	cin >>x>>y;
    	cout << "wuwedi koordinatite na wtoroto pole: ";
    	cin >>p>>q;
    	if ((abs(x-p)!=1)||(abs(y-q)!=1))     // prowerka za susedni poleta
           cout << "poletata ne sa susedni"<<endl;
    	
    	if ((abs(x-p)==1)&&(abs(y-q)==1)) 
           cout << "poletata sa susedni po diagonal"<<endl;
        
        m=((x%2)==(y%2));    //prowerka za cveta na poletata
        n=((p%2)==(q%2));   
           
        if (m!=n) 
           cout << "Poletata sa s razlichen cvqt "<<endl;
                else
                 {
                    if ((m==1)&&(n==1)) cout << "i dwete poleta sa cherni"<<endl;
           
                    if ((m==0)&&(n==0)) cout << "i dwete poleta sa beli "<<endl;
                 }
        if (islower(x))   //prowerka dali i dwete bukwi sa glawni
           x=toupper(x);
           
        if (islower(p)) 
           p=toupper(p);
                    
        if (((abs(x-p)==2)&&(abs(y-q)==1))||((abs(x-p)==1)&&(abs(y-q)==2)))  //prowerka za wuzmojni hodowe
           cout <<"Kon razpolojen w "<<x<<y<<" moje da bie poleto "<<p<<q<<endl;
        
        if ((x==p)||(y==q))
           cout <<"Top razpolojen w "<<x<<y<<" moje da bie poleto "<<p<<q<<endl;
        
        if (((x==p)||(y==q))||(abs(x-p)==abs(y-q)))
           cout <<"Carica razpolojena w "<<x<<y<<" moje da bie poleto "<<p<<q<<endl;
                 
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    Поправих няколко грешки в програмата.

Вашият коментар