-
Notifications
You must be signed in to change notification settings - Fork 0
/
BauerWeiss.hpp
83 lines (57 loc) · 2.5 KB
/
BauerWeiss.hpp
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
#include <string>
#include <vector>
#ifndef BAUERWEISS_HPP_
#define BAUERWEISS_HPP_
using namespace std;
class BauerWeiss{
public:
BauerWeiss(){
}
auto moeglicheZuege (int position, int spielfeld[64]){
int neuePosition;
int Figur = spielfeld[position];
vector<int> moeglichkeiten;
if( !(Figur == -6) ) {
moeglichkeiten.push_back(0);
return moeglichkeiten;
}
//Der Bauer läuft zwei nach vorne (auf dem Schach Brett runter)
neuePosition = position+16;
if(position < 16 && position > 7){
if(neuePosition<63 && neuePosition > 0){
if(spielfeld[position+8] == 0 && spielfeld[neuePosition] == 0){
moeglichkeiten.push_back(neuePosition);
}
}
}
// Der Bauer läuft nach vorne (auf dem Schach Brett runter)
neuePosition = position+8;
if((neuePosition<63 && neuePosition > 0) && spielfeld[neuePosition] == 0){
moeglichkeiten.push_back(neuePosition);
}
// Der Bauer schlägt seitlich nach rechts-vorne
neuePosition = position+9;
if(neuePosition<63 && neuePosition > 0) {
if(neuePosition%8 != 0){
if(spielfeld[neuePosition] != 0){
if(spielfeld[neuePosition] / abs(spielfeld[neuePosition]) != Figur / abs(Figur)){
moeglichkeiten.push_back(neuePosition);
}
}
}
}
// Der Bauer schlägt seitlich nach links-vorne
neuePosition = position+7;
if(neuePosition<63 && neuePosition > 0){
if(neuePosition%8 != 7){
if(spielfeld[neuePosition] != 0){
if(spielfeld[neuePosition] / abs(spielfeld[neuePosition]) != Figur / abs(Figur)){
moeglichkeiten.push_back(neuePosition);
}
}
}
}
return moeglichkeiten;
}
};
#endif