-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathconfig.py
138 lines (131 loc) · 4.14 KB
/
config.py
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
import argparse
import pygame
# Define all needed variables
# Define screen dimensions
screen_width = None
screen_height = None
score_section_width = None
play_screen_width = None
# Player arguments
player_size = None
player_max_history = None
speed = None
# Define colors
white = None
black = None
red = None
green = None
# Define font
font = None
clock = None
# Define gap, line min and max
min_gap = None
max_gap = None
min_line = None
max_line = None
# Define item variables
num_items = None
item_size = None
item_time = None
item_letters = None
max_items = None
# Define nn hyperparameters
learning_rate = None
num_layers = None
num_lstm = None
save_model_path = None
num_ai_players = None
resume_iter = None
max_iter = None
training = None
pygame.init()
def set_args(arg_file=None):
arg_parser = argparse.ArgumentParser()
arg_parser.add_argument("--screen_width", type=int, default=940)
arg_parser.add_argument("--screen_height", type=int, default=680)
arg_parser.add_argument("--score_section_width", type=int, default=200)
arg_parser.add_argument("--speed", type=int, default=4)
arg_parser.add_argument("--player_size", type=int, default=6)
arg_parser.add_argument("--player_max_history", type=int, default=32)
arg_parser.add_argument("--min_gap", type=int, default=10)
arg_parser.add_argument("--max_gap", type=int, default=15)
arg_parser.add_argument("--min_line", type=int, default=15)
arg_parser.add_argument("--max_line", type=int, default=200)
arg_parser.add_argument("--num_items", type=int, default=5)
arg_parser.add_argument("--item_size", type=int, default=15)
arg_parser.add_argument("--item_time", type=int, default=200)
arg_parser.add_argument("--learning_rate", type=int, default=0.005)
arg_parser.add_argument("--num_layers", type=int, default=3)
arg_parser.add_argument("--num_lstm", type=int, default=1)
arg_parser.add_argument(
"--save_model_path",
type=str,
default="/home/simon/Desktop/Uni/Freizeit/Achtung_Kurve/model_states/",
)
arg_parser.add_argument("--num_ai_players", type=int, default=0)
arg_parser.add_argument("--resume_iter", type=int, default=0)
arg_parser.add_argument("--max_iter", type=int, default=1)
arg_parser.add_argument("--max_items", type=int, default=15)
arg_parser.add_argument("--training", action="store_true")
args = arg_parser.parse_args()
global screen_width
global screen_height
global score_section_width
global play_screen_width
global speed
global player_size
global player_max_history
global white
global black
global green
global red
global font
global clock
global min_gap
global max_gap
global min_line
global max_line
global num_items
global item_size
global item_time
global item_letters
global learning_rate
global num_layers
global num_lstm
global save_model_path
global num_ai_players
global resume_iter
global max_iter
global max_items
global training
screen_width = args.screen_width
screen_height = args.screen_height
score_section_width = args.score_section_width
play_screen_width = args.screen_width - args.score_section_width
speed = args.speed
player_size = args.player_size
player_max_history = args.player_max_history
white = (255, 255, 255)
black = (0, 0, 0)
green = (0, 255, 0)
red = (255, 0, 0)
font = pygame.font.SysFont(None, 30)
clock = pygame.time.Clock()
min_gap = args.min_gap
max_gap = args.max_gap
min_line = args.min_line
max_line = args.max_line
num_items = args.num_items
item_size = args.item_size
item_time = args.item_time
# item ids: 0: self slower, 1: self faster, 2: others slower, 3: others faster, 4: direction change, 5: angle change
item_letters = ["->", "--->", "->", "--->", "<->", "°"]
learning_rate = args.learning_rate
num_layers = args.num_layers
num_lstm = args.num_lstm
save_model_path = args.save_model_path
num_ai_players = args.num_ai_players
resume_iter = args.resume_iter
max_iter = args.max_iter
max_items = args.max_items
training = args.training