#include "stdafx.h"
 
#include <iostream>
#include <string>
#include <cassert>
using namespace std;
 
const int N=8;
 
int v[N][N];
int zx[N][N];
int zy[N][N];
 
void init(){
    for(int i=0;i<N;i++)
        for(int j=0;j<N;j++){
            v[i][j]=-1;
            zx[i][j]=-1;
            zy[i][j]=-1;
        }
};
 
void skoc(int x, int y,int i,int j,int k){
     if (i<=N-1 && i>=0 && j<=N-1 && j>=0)
     {
         if (v[i][j]==-1 || v[i][j] > k)
         {
             v[i][j]=k;
             zx[i][j]=x;
             zy[i][j]=y;
 
             skoc(i,j, i+2,j+1, k+1);
             skoc(i,j, i-2,j+1, k+1);
             skoc(i,j, i+2,j-1, k+1);
             skoc(i,j, i-2,j-1, k+1);
 
             skoc(i,j, i+1,j+2, k+1);
             skoc(i,j, i-1,j+2, k+1);
             skoc(i,j, i+1,j-2, k+1);
             skoc(i,j, i-1,j-2, k+1);
         }
     }
};
 
 
void vypis ()
{
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<N;j++)
        {
            int t = v[i][j];
            char c;
            if (t >= 0 && t <= 9) 
                c = '0' + t;
            else if (t >= 10) 
                c = 'A' + t - 10;
            else if (t == -1)
                c = '.';
            else
                c = 'x';
            cout<< c <<" ";
        }
        cout << endl;
    }
}
 
void cesta(int i, int j)
{
    while(i >= 0 && j>=0)
    {
        cout << i << "  " << j << endl;
        int x = zx[i][j];
        int y = zy[i][j];
        i=x;
        j=y;
    }
}
 
void cesta_zpet (int i, int j)
{
    if(i >= 0 && j>=0)
    {
        cout << i << "  " << j << endl;
        cesta_zpet(zx[i][j], zy[i][j]);
    }
}
 
void cesta_tam (int i, int j)
{
    if(i >= 0 && j>=0)
    {
        cesta_tam(zx[i][j], zy[i][j]);
        cout << i << "  " << j << endl;
    }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    init();
    int i=0;
    int j=0;
    skoc(-1,-1, i,j, 0);
    vypis();
    cesta(7,7);
    cout << endl;
    cesta_zpet(7,7);
    cout << endl;
    cesta_tam(7,7);
    system ("pause");
    return 0;
}
 
kun_utery.txt · Last modified: 2017/04/04 10:38 by 147.32.8.115
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki