#include #include #include using namespace std; struct sour_t { int x, y; bool white; }; // K = 0; Q = 1; R =2; B = 3; N = 4; p = 5 vector > pieces; void cislo_na_znak(int i) { if (i==0) cout << 'K'; if (i==1) cout << 'Q'; if (i==2) cout << 'R'; if (i==3) cout << 'B'; if (i==4) cout <<'N'; } // char cislo_na_znak_black(int i) { // if (i==0) return 'k'; // if (i==1) return 'q'; // if (i==2) return 'r'; // if (i==3) return 'b'; // if (i==4) return 'n'; // if (i==5) return 'p'; // return ' '; // } int znak_na_cislo_white(char ch) { if (ch=='K') return 0; if (ch=='Q') return 1; if (ch=='R') return 2; if (ch=='B') return 3; if (ch=='N') return 4; if (ch=='P') return 5; return -1; } int znak_na_cislo_black(char ch) { if (ch=='k') return 0; if (ch=='q') return 1; if (ch=='r') return 2; if (ch=='b') return 3; if (ch=='n') return 4; if (ch=='p') return 5; return -1; } int souradnice_na_cislo(char ch) { if (ch=='a') return 0; if (ch=='b') return 1; if (ch=='c') return 2; if (ch=='d') return 3; if (ch=='e') return 4; if (ch=='f') return 5; if (ch=='g') return 6; if (ch=='h') return 7; return -1; } char cislo_na_souradnici(int i) { if (i==1) return 'a'; if (i==2) return 'b'; if (i==3) return 'c'; if (i==4) return 'd'; if (i==5) return 'e'; if (i==6) return 'f'; if (i==7) return 'g'; if (i==8) return 'h'; return ' '; } void ignore_ch() { char ch; cin >>ch; // cerr << "ignoring "<=1;yy--) { ignore_line(); for (int xx=1; xx<=8; xx++) { ignore_ch(); ignore_ch(); cin >> ch; //zpracovat if (not(ch == '.' || ch == ':')) { int figure = znak_na_cislo_white(ch); sour_t s; s.white = true; if (figure == -1) { figure = znak_na_cislo_black(ch); s.white = false; } // cerr<< "figure: "<::iterator i = pieces[figure].begin(); i!=pieces[figure].end(); i++) if ((*i).x == xx && (*i).y == yy && (*i).white == white) { if (first) first = false; else cout << ","; cislo_na_znak(figure); cout << cislo_na_souradnici(xx) << yy; } } cout <::iterator i = pieces[figure].begin(); i!=pieces[figure].end(); i++) if ((*i).x == xx && (*i).y == yy && (*i).white == true) { if (first) first = false; else cout << ","; cislo_na_znak(figure); cout << cislo_na_souradnici(xx) << yy; } } cout <=1; yy--) for (int xx = 1; xx<=8; xx++) for (list::iterator i = pieces[figure].begin(); i!=pieces[figure].end(); i++) if ((*i).x == xx && (*i).y == yy && (*i).white == false) { if (first) first = false; else cout << ","; cislo_na_znak(figure); cout << cislo_na_souradnici(xx) << yy; } } cout <