-
Notifications
You must be signed in to change notification settings - Fork 27
/
puzzle.cpp
58 lines (46 loc) · 1.19 KB
/
puzzle.cpp
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
#include "puzzle.h"
#include "func.h"
bool puzzle::create_new(int circles){
this->circles=circles;
//self rotating circles by random
bool self_rotating=false;
if(circles>3)
if(circles<6)
{
if(randInt(0,2)==0){
self_rotating=true;
this->circles--;
}
}
for(int a=0;a<circles;a++){
right_angles[a]=randDouble(0,2*pi);
angles[a]=0;
rotate_self[a]=0;
if(self_rotating){
if(randInt(0,2)==0)
rotate_self[a]=randDouble(-1,1);
}
for(int b=0;b<circles;b++){
rotate_with[a][b]=0;
if(abs(b-a)==0){
rotate_with[a][b]=1;
}
if(abs(b-a)==1){
if(randInt(0,1)==0){
rotate_with[a][b]=randDouble(-1.2f,1.2f);
}
}
if(abs(b-a)==2){
if(randInt(0,3)==0){
rotate_with[a][b]=randDouble(-1,1);
}
}
if(abs(b-a)==3){
if(randInt(0,5)==0){
rotate_with[a][b]=randDouble(-1,1);
}
}
}
}
return true;
}