W funkcji możesz przyjmować albo tablicę, albo jakiś kontener z biblioteki standardowej, np.
std::vector (będzie najwygodniejszy). Co masz na myśli pisząc zidentyfikować? Jak rozumiem masz same wieże na szachownicy, tak (w drugim zdanie Twojego posta jest mowa o "figurach")? Możesz po prostu użyć wartości
\(\displaystyle{ +1}\) (biała wieża),
\(\displaystyle{ -1}\) (czarna wieża). W przypadku różnych figur, możesz je identyfikować przez wartość bezwzględną, np. (król:
\(\displaystyle{ 1}\), wieża:
\(\displaystyle{ 2}\), ...).
Niżej kod wczytujący pozycję i kolory wież. Wystarczy wypełnić funkcję szach, by sprawdzała to co trzeba.
Kod: Zaznacz cały
#include <iostream>
#include <vector>
bool szach(std::vector<std::vector<int> > szachownica)
{
return false;
}
int main()
{
std::vector<std::vector<int> > v(8, std::vector<int>(8, 0));
int n = 0; // liczba wiez
std::cin >> n;
for (int i = 0; i < n; ++i)
{
int x = 0; // wspolrzedna x na szachownicy
int y = 0; // wspolrzedna y na szachownicy
int kolor = 0; // kolor wiezy
std::cin >> x >> y >> kolor;
// jesli podamy kolor > 0
// na szachownicy pojawi sie -1
// w przeciwnym wypadku 1
v[y][x] = (kolor > 0) ? 1 : -1;
}
std::cout << (szach(v) ? "tak" : "nie") << "
";
}