#include <iostream>
using namespace std;
const int N = 8;
char Mrizka[N][N];
void SmazMrizku(void);
void Hvezda(const int, const int);
void VytiskniMrizku(void);
void SmazMrizku() {
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
Mrizka[i][j] = ' ';
}
void Hvezda(const int Radek, const int Stloupec) {
if (0 <= Radek && Radek < N && 0 <= Stloupec && Stloupec < N)
Mrizka[Radek][Stloupec] = '*';
else
printf("Souradnice mimo meze!\n");
}
void VytiskniMrizku() {
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; j++)
cout << Mrizka[i][j];
cout << endl;
}
cout << endl;
}
int main() {
int median = N / 2;
bool strana = true, orientacia = true;
/* Obrazec cislo 1 */
SmazMrizku();
for(int i = 0; i < N; i++) {
Hvezda(i,i); // diagonala
Hvezda(i,median); // zvisly riadok *
Hvezda(i,N-i-1); // opacna diagonala
Hvezda(median,i); // vodorovny riadok *
}
VytiskniMrizku();
/* Obrazec cislo 2 */
SmazMrizku();
for(int i = 0; i < N; i++) {
Hvezda(0,i); // vodorovny riadok prvy
Hvezda(i,0); // horizontalny riadok
Hvezda(i,median);
Hvezda(median,i);
Hvezda(i,N-1);
Hvezda(N-1,i); // vodorovny riadok posledny
}
VytiskniMrizku();
/* Obrazec cislo 3 */
SmazMrizku();
for(int i = 0; i < N; i++) {
Hvezda(0,i); // prvy vodorovny riadok
Hvezda(i,0); // prvy zvisly riadok
Hvezda(i,i); // diagonala
Hvezda(i,N-i-1); // opacna diagonala
Hvezda(i,N-1); // posledny zvisly riadok
Hvezda(N-1,i); // posledny vodorovny riadok
}
VytiskniMrizku();
/* Obrazec cislo 4 */
SmazMrizku();
for(int i = 0; i < N; i++) {
Hvezda(0,i); // vo dorovná horní
Hvezda(i,N-1-i); // diagonála
Hvezda(N-1,i); // vodorovná spodní
}
VytiskniMrizku();
/* Obrazec cislo 5 */
SmazMrizku();
for(int i = 0; i < N; i++) {
Hvezda(0,i);
Hvezda(i,i);
Hvezda(N-1,i);
}
VytiskniMrizku();
/* Obrazec cislo 6 */
SmazMrizku();
for(int i = 0; i < N; i++) {
Hvezda(i,0);
Hvezda(i,i);
Hvezda(i,N-1);
}
VytiskniMrizku();
/* Obrazec cislo 7 */
SmazMrizku();
for(int i = 0; i < N; i++) {
Hvezda(i,0);
Hvezda(i,N-i-1);
Hvezda(i,N-1);
}
VytiskniMrizku();
/* Obrazec cislo 8 */
SmazMrizku();
for(int i = 0; i < N; i++) {
Hvezda(0,i);
Hvezda(i,0);
if (i % 2 == 0) {
for(int j = 0; j < N; j++) {
Hvezda(i,j);
Hvezda(j,i);
}
}
}
VytiskniMrizku();
/* Obrazec cislo 9 */
SmazMrizku();
for(int i = 0; i < N; i++) {
Hvezda(N/3, i);
Hvezda(i, N/3);
Hvezda(i, (2*N)/3);
Hvezda((2*N)/3, i);
}
VytiskniMrizku();
/* Obrazec cislo 10 */
SmazMrizku();
for(int i = 0; i < N; i++) {
if (i % 2 == 0) {
for(int j = 0; j < N; j++)
Hvezda(i,j);
}
else {
if (strana) {
Hvezda(i,N-1);
strana = false;
}
else {
Hvezda(i,0);
strana = true;
}
}
}
VytiskniMrizku();
/* Obrazec cislo 11 */
SmazMrizku();
for(int i = 0; i < N; i++) {
if (i % 2 == 0) {
for(int j = 0; j < N; j++)
Hvezda(j,i);
}
else {
if (orientacia) {
Hvezda(N-1,i);
orientacia = false;
}
else {
Hvezda(0,i);
orientacia = true;
}
}
}
VytiskniMrizku();
/* Obrazec cislo 12 */
SmazMrizku();
for(int i = 0; i < N; i++) {
if (i % 2 == 0) {
for(int j = 0; j < N; j++)
if (j % 2 != 0)
Hvezda(i,j);
}
else {
for(int k = 0; k < N; k++)
if (k % 2 == 0)
Hvezda(i,k);
}
}
VytiskniMrizku();
/* Obrazec cislo 13 */
SmazMrizku();
for(int i = 0; i < N; i++) {
if (i < median) {
Hvezda(0,i);
Hvezda(i,0);
Hvezda(i,median-1);
Hvezda(median-1,i);
}
else {
Hvezda(i,N-1);
Hvezda(median,i);
Hvezda(i,median);
Hvezda(N-1,i);
}
}
VytiskniMrizku();
/* Obrazec cislo 14 */
SmazMrizku();
for(int i = 0; i < N; i++) {
if (i < median)
for(int j = 0; j < median; j++)
Hvezda(median+i,j);
else
for(int j = median; j < N; j++)
Hvezda(i-median,j);
}
VytiskniMrizku();
/* Obrazec cislo 15 */
SmazMrizku();
for(int i = 0; i < N; i++) {
if (i < median) {
Hvezda(i, median-i-1);
Hvezda(i, median+i);
}
else if (i >= median) {
Hvezda(i, i-median);
Hvezda(i, (N+median-1)-i);
}
}
VytiskniMrizku();
/* Obrazec cislo 16 */
SmazMrizku();
for(int i = 0; i < N; i++) {
if (i < median) {
for(int j = median-i-1; j <= median+i; j++)
Hvezda(i,j);
}
else {
for(int j = i-median; j < N+median-i; j++)
Hvezda(i,j);
}
}
VytiskniMrizku();
/* Obrazec cislo 17 */
SmazMrizku();
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++)
if ((i+j) % 3 == 0)
Hvezda(i,j);
}
VytiskniMrizku();
/* Obrazec cislo 18 - by Pavel Puček */
SmazMrizku();
int x = 1;
for (int i = 0, j = 0; i < N; i++, j += x) {
for (int k = j; k < N; k += 3)
Hvezda(i, k);
if (i % 3 == 0 && i > 0)
x *= -1;
}
VytiskniMrizku();
/* Obrazec cislo 19 */
SmazMrizku();
for(int i = 0; i < N; i++) {
if (i < median) {
for(int j = i; j < N-i; j++)
Hvezda(i,j);
}
else {
for(int j = N-i-1; j <= i; j++)
Hvezda(i,j);
}
}
VytiskniMrizku();
/* Obrazec cislo 20 */
SmazMrizku();
int pocCtvercov = N / 4, tmp = 0, poc = 0;
int plus = 0;
bool zaciatok = true;
for(int i = 0; i < N; i++) {
tmp = 0;
poc = 0;
if (plus == 0 || plus == 1) {
while (poc != pocCtvercov) {
for(int j = tmp; j < tmp+2; j++)
Hvezda(i, j);
tmp += 4;
poc++;
}
plus++;
}
else if (plus == 2) {
tmp = 2;
while (poc != pocCtvercov) {
for(int j = tmp; j < tmp+2; j++)
Hvezda(i, j);
tmp += 4;
poc++;
}
plus++;
}
else if (plus == 3) {
tmp = 2;
while (poc != pocCtvercov) {
for(int j = tmp; j < tmp+2; j++)
Hvezda(i, j);
tmp += 4;
poc++;
}
plus = 0;
}
}
VytiskniMrizku();
system("PAUSE");
return 0;
}