Crackme-2.exe
Crackme-2.exe
Serial Key:
00071015021712630926010611140318522308271605621325385122612819044253243750213229395641603134472054435849364530335740554459483546
The crackme2 executable file is available at crackme2.rar archive.
Knight Move Generator
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <iostream>
#include <iomanip>
int PossibleMoves[8][2] = {
{ -1, -2},
{ -2, -1},
{ -2, 1 },
{ -1, 2 },
{ 1, 2 },
{ 2, 1 },
{ 2, -1 },
{ 1, -2 }
};
int** FullPole;
int n;
int start_x, start_y;
bool CanStep(int x, int y){
return x >= 0 && y >= 0 && x < n&& y < n;
}
bool Moves(int x, int y){
return CanStep(x, y) && FullPole[x][y] == 0;
}
bool FindMoves(int x, int y, int counter){
FullPole[x][y] = counter;
if (counter > n * n - 1) return true;
for (int i = 0; i < 8; i++) {
int NxMove_x = x + PossibleMoves[i][0];
int NxMove_y = y + PossibleMoves[i][1];
if (CanStep(NxMove_x, NxMove_y)
&& FullPole[NxMove_x][NxMove_y] == 0 && FindMoves(NxMove_x, NxMove_y, counter + 1))
return true;
}
FullPole[x][y] = 0;
counter--;
return false;
}
void BeginHorse(int** pole, int start_x, int start_y, int size) {
FullPole = pole;
n = size;
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
pole[i][j] = 0;
}
using namespace std;
void OutPole() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
cout << setfill('0') << setw(2) << FullPole[i][j]-1 << " ";
cout << "\n";
}
}
int main() {
int n = 8;
int start_x = 0;
int start_y = 0;
int** pole = NULL;
int x0 = 1;
int y0=1;
setlocale(LC_ALL, "rus");
/*cout << "\n[+] Enter square size 8x8: ";
cin >> n;
cout << "\n[+] Initial x position: ";
cin >> x0;
cout << "\n[+] Initial y position: ";
cin >> y0;*/
x0--;
y0--;
if (x0 > n || y0 > n || x0 < 0 || y0 < 0) {
cout << "\nerror\n";
return -1;
}
pole = new int* [n];
for (int i = 0; i < n; i++)
pole[i] = new int[n];
BeginHorse(pole, x0, y0, n);
if (FindMoves(x0, y0, 1))
OutPole();
else
cout << "\n[!] No solution. \n";
return 0;
}
This post is licensed under CC BY 4.0 by the author.