[go: up one dir, main page]

File: defines.h

package info (click to toggle)
achilles 2-13
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 684 kB
  • sloc: sh: 2,600; cpp: 2,069; xml: 25; makefile: 7
file content (148 lines) | stat: -rw-r--r-- 2,839 bytes parent folder | download | duplicates (9)
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#ifndef DEFINES_H_98456
#define DEFINES_H_98456

#include<limits.h>
#include"conf.h"

#ifdef HAVE_LIBPNG
#define PNG_SCREENSHOT
#endif


#define ACHILLES_VERSION 2

#define USER_SPEED 0.2
#define SCREEN_W 640
#define SCREEN_H 480

#define MISCEGENATION_RATE 0.05

#define DECAY_SPAN 100

#define ENERGY_LOSS_PER_TICK 0.008

#define DAMAGE_PER_HIT 10
#define ENERGY_PER_DAMAGE 0.2

#define ORGANISM_LIVE 0
#define ORGANISM_FOOD 1

#define FIGHT_THRESHOLD 10000
#define REPRODUCTION_THRESHOLD 1

//#define LEARNING_CONSTANT 0.5
#define ALPHA_COEFFICIENT -1


#define EVO_FLOOR_Y 0
//#define FLOOR_BLOCKS_X 4
//#define FLOOR_BLOCKS_Z 4
#define FLOOR_QUAD_SIZE 4

#define WORLD_X (FLOOR_BLOCKS_X-1)*FLOOR_QUAD_SIZE
#define WORLD_Y 1000
#define WORLD_Z (FLOOR_BLOCKS_Z-1)*FLOOR_QUAD_SIZE



struct GeneLimitStruct {
  long min,max;
};


#define NUM_GENES 17

#define GENE_SIZE_X 0
#define GENE_SIZE_Y 1
#define GENE_SIZE_Z 2
#define GENE_STRENGTH 3
#define GENE_MAXSPEED 4
#define GENE_COLOR 5
#define GENE_MUTATE_RATE 6
#define GENE_LIFESPAN 7
#define GENE_ENERGY_TO_OFFSPRING 8
#define GENE_NUM_NEURODES 9
#define GENE_NUM_LAYERS 10
#define GENE_NUM_INPUTS 11
#define GENE_NUM_OUTPUTS 12
#define GENE_TOPO_DIST 13
#define GENE_REACH 14
#define GENE_METABOLISM 15
#define GENE_LC 16

#define MAX_VOLUME 100
#define MIN_VOLUME 1

#define MIN_SIDE_LEN 1
#define MAX_SIDE_LEN 5

#define MIN_STRENGTH 1
#define MAX_STRENGTH 256

// scaled of course

#define MIN_MAXSPEED 1
#define MAX_MAXSPEED 256

#define MIN_COLOR 0
#define MAX_COLOR 255

#define MIN_MUTATE_RATE 1
#define MAX_MUTATE_RATE 256

#define MIN_LIFESPAN 1000
#define MAX_LIFESPAN 100000

#define MIN_NUM_NEURODES 10
#define MAX_NUM_NEURODES 500

#define MIN_NUM_LAYERS 3
#define MAX_NUM_LAYERS 150

#define MIN_NUM_INPUTS 10
#define MAX_NUM_INPUTS 50

#define MIN_NUM_OUTPUTS 10
#define MAX_NUM_OUTPUTS 50

#define MIN_TOPO_DIST 0
#define MAX_TOPO_DIST 100

#define MIN_ECAP 1
#define MAX_ECAP 256

#define MIN_REACH 4
#define MAX_REACH 8

#define MIN_METABOLISM 1
#define MAX_METABOLISM 100

#define MIN_LC 1
#define MAX_LC 100

const GeneLimitStruct GeneLimits[]={
  { MIN_SIDE_LEN, MAX_SIDE_LEN },
  { MIN_SIDE_LEN, MAX_SIDE_LEN },
  { MIN_SIDE_LEN, MAX_SIDE_LEN },
  { MIN_STRENGTH, MAX_STRENGTH },
  { MIN_MAXSPEED, MAX_MAXSPEED },
  { MIN_COLOR, MAX_COLOR },
  { MIN_MUTATE_RATE, MAX_MUTATE_RATE },
  { MIN_LIFESPAN, MAX_LIFESPAN },
  { MIN_ECAP, MAX_ECAP },
  { MIN_NUM_NEURODES, MAX_NUM_NEURODES },
  { MIN_NUM_LAYERS, MAX_NUM_LAYERS },
  { MIN_NUM_INPUTS, MAX_NUM_INPUTS },
  { MIN_NUM_OUTPUTS, MAX_NUM_INPUTS },
  { MIN_TOPO_DIST, MAX_TOPO_DIST },
  { MIN_REACH, MAX_REACH },
  { MIN_METABOLISM, MAX_METABOLISM },
  { MIN_LC, MAX_LC }
};

#define SCALE(x,a,b,c,d) long(double(d - c)/double(b - a) * double(x) + double(c - a))


#define MY_PI 3.14159265358979323846

#endif