Kod był wyświetlany 1841 razy.
/*
Name: Dwie figury koń i pionek
Copyright: GPL GNU
Author: Michał Kula
Date: 11-11-10 20:06
Description:
Na 64-polowej szachownicy znajdują się dwie figury - koń i pionek, proszę znaleźć ich położenie
(podać współrzędne obu figur) oraz podać, czy są one ustawione na jednej linii - poziomej lub pionowej,
a także sprawdzić, czy koń może zbić pionka. Szachownicę można przedstawić jako tablicę o rozmiarach 8x8,
puste pola będą zawierały 0, koń będzie oznaczony jako 3, pionek jako 1. Tablica z ustawieniem jest
wprowadzana do algorytmu, ustawienie jest generowane losowo (jest nam nieznane). Napisz program realizujący
ten problem. Wynik - odpowiedź na powyższe pytania oraz tablica przedstawiająca ustawienie figur.
*/
#include<iostream>
#include<iomanip>
#include<windows.h>
using namespace std;
int main()
{
HANDLE konsola = GetStdHandle(STD_OUTPUT_HANDLE);
int tab[8][9];
char tab1[8]={'A','B','C','D','E','F','G','H'};
int i,j,x=3,y=1,a=0,b=0,c=0,d=0,e=0,f=0;
srand(time(NULL));
for(i=0;i<8;i++)
for(j=0;j<9;j++)
tab[i][j]=0;
j=9;
for(i=0;i<8;i++)
{
j=j-1;
tab[i][8]=j;
}
a=rand()%8;
b=rand()%8;
tab[a][b]=x;
e=a;
do
{
d=rand()%8;
c=rand()%8;
}
while(d==b&&c==a);
tab[c][d]=y;
f=c;
for(i=0;i<8;i++)
{
for(j=0;j<9;j++)
{
if(j==8)
SetConsoleTextAttribute (konsola,11);
else
SetConsoleTextAttribute (konsola,15);
if(j!=8)
{
if(tab[i][j]==3||tab[i][j]==1)
SetConsoleTextAttribute (konsola,10);
else
{
if(j%2==1&&i%2==0)
SetConsoleTextAttribute (konsola,8);
if(j%2==0&&i%2==1)
SetConsoleTextAttribute (konsola,8);
}
}
cout<<setw(2)<<tab[i][j];
}
cout<<endl;
}
for(i=0;i<8;i++)
cout<<setw(2)<<tab1[i];
cout<<endl<<endl;
SetConsoleTextAttribute (konsola,15);
if(c==a)
cout<<"Kon i pionek sa ustawione w lini poziomej";
if(d==b)
cout<<"Kon i pionek sa ustawione w lini pionowej";
cout<<endl;
switch(a)
{
case 0: a=8;break;
case 1: a=7;break;
case 2: a=6;break;
case 3: a=5;break;
case 4: a=4;break;
case 5: a=3;break;
case 6: a=2;break;
case 7: a=1;break;
}
switch(c)
{
case 0: c=8;break;
case 1: c=7;break;
case 2: c=6;break;
case 3: c=5;break;
case 4: c=4;break;
case 5: c=3;break;
case 6: c=2;break;
case 7: c=1;break;
}
cout<<"Kon stoi na polu "<<tab1[b]<<a<<endl<<endl;
cout<<"Pionek stoi na polu "<<tab1[d]<<c<<endl<<endl;
cout<<endl<<endl;
if(tab[e-2][b-1]==1||tab[e-1][b-2]==1||tab[e-1][b+2]==1||tab[e-2][b+1]==1||
tab[e+2][b-1]==1||tab[e+1][b-2]==1||tab[e+1][b+2]==1||tab[e+2][b+1]==1)
cout<<"Kon bije pionka!!";
cout<<endl<<endl;
system("PAUSE");
}
Pobierz plik tekstowy