Untitled
unknown
plain_text
2 years ago
2.5 kB
7
Indexable
//ЮФУ, ИКТИБ,МОП ЭВМ
//Программирование и основы теории алгоритмов
//Лабораторная работа 4.1 - Подпрограммы, библиотечные функции
//КТбо1-6, Домбрина Алёна Игоревна
// Задача F
// 16.11.2023
#include <iostream>
#include<cmath>
using namespace std;
void testQueen(int a, int b, int(&array)[8][8]);
void testRook(int a, int b, int(&array)[8][8]);
void testKnight(int a, int b, int(&array)[8][8]);
void (*chees[3])(int a, int b, int(&array)[8][8]) = { testQueen, testRook, testKnight };
int main() {
char first[3], second[3], third[3];
gets_s(first);
gets_s(second);
gets_s(third);
int queen = first[0] - 64 - 1;
int queen2 = first[1] - 48 - 1;
int rook = second[0] - 64 - 1;
int rook2 = second[1] - 48 - 1;
int knight = third[0] - 64 - 1;
int knight2 = third[1] - 48 - 1;
int field[8][8] = { 0 };
for (int x = 0; x < 8; x++)
{
for (int y = 0; y < 8; y++)
{
(*chees[0])(queen, queen2, field);
(*chees[1])(rook,rook2,field);
(*chees[2])(knight, knight2, field);
}
}
field[queen2][queen] = 0;
field[rook2][rook] = 0;
field[knight2][knight] = 0;
int sum = 0;
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
if (field[i][j] == 1) sum++;
}
}
cout << sum;
return 0;
}
void testQueen(int a, int b, int(&array)[8][8])
{
for (int x = 0; x < 8; x++)
{
for (int y = 0; y < 8; y++)
{
if ((abs(a - y) == abs(b - x)) || a == y || b == x)
{
array[x][y] = 1;
}
}
}
}
void testRook(int a, int b, int(&array)[8][8])
{
for (int x = 0; x < 8; x++)
{
for (int y = 0; y < 8; y++)
{
if (a == y || b == x)
{
array[x][y] = 1;
}
}
}
}
void testKnight(int a, int b, int(&array)[8][8])
{
for (int x = 0; x < 8; x++)
{
for (int y = 0; y < 8; y++)
{
if ((abs(a - y) == 1 && abs(b - x) == 2) || (abs(a - y) == 2 && abs(b - x) == 1))
{
array[x][y] = 1;
}
}
}
}Editor is loading...
Leave a Comment