-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathIntPosi.rb
More file actions
150 lines (140 loc) · 3.22 KB
/
IntPosi.rb
File metadata and controls
150 lines (140 loc) · 3.22 KB
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
149
150
# -*- coding: utf-8 -*-
require 'CHaserConnect.rb'
target = CHaserConnect.new("「 」")
initPosi = nil #初期位置判定 0=左上 1=左下 2=右下 3=右上
i = 0 # for文
wallCountA = 0 # 壁A測定一回目
itemCountA = 0 # アイテムA測定二回目
wallCountB = 0 # 壁B測定一回目
itemCountB = 0 # アイテムB測定二回目
judgA = 0 # 初期移動方向判定一回目
judgB = 0 # 初期移動方向判定二回目
# 初期位置把握
values = target.getReady
values = target.searchUp
if values[9] == 2
values = target.getReady
values = target.searchLeft
if values[9] == 2
intPosi = 0
else
intPosi = 3
end
else
values = target.getReady
values = target.searchLeft
if values[9] == 2
intPosi = 1
else
intPosi = 2
end
end
# マップ左上にいた時の行動
if intPosi == 0
values = target.getReady
values = target.lookDown
for i in 1..9
if values[i] == 2
wallCountA -= 2
elsif values[i] == 3
itemCountA += 3
end
end
values = target.getReady
values = target.lookRight
for i in 1..9
if values[i] == 2
wallCountB -= 2
elsif values[i] == 3
itemCountB += 3
end
end
wallCountA - item_countA = judgA
wallCountB - item_countB = judgB
if judgA < judgB
values = target.walkRight
else
values = target.walkDown
end
# マップ左下にいた時の行動
elsif intPosi == 1
values = target.getReady
values = target.lookUp
for i in 1..9
if values[i] == 2
wallCountA -= 2
elsif values[i] == 3
itemCountA += 3
end
end
values = target.getReady
values = target.lookRight
for i in 1..9
if values[i] == 2
wallCountB -= 2
elsif values[i] == 3
itemCountB += 3
end
end
wallCountA - item_countA = judgA
wallCountB - item_countB = judgB
if judgA < judgB
values = target.walkRight
else
values = target.walkUp
end
# マップ右下にいた時の行動
elsif intPosi == 2
values = target.getReady
values = target.lookUp
for i in 1..9
if values[i] == 2
wallCountA -= 2
elsif values[i] == 3
itemCountA += 3
end
end
values = target.getReady
values = target.lookLeft
for i in 1..9
if values[i] == 2
wallCountB -= 2
elsif values[i] == 3
itemCountB += 3
end
end
wallCountA - item_countA = judgA
wallCountB - item_countB = judgB
if judgA < judgB
values = target.walkLeft
else
values = target.walkUp
end
# マップ右上にいた時の行動
elsif intPosi == 3
values = target.getReady
values = target.lookDown
for i in 1..9
if values[i] == 2
wallCountA -= 2
elsif values[i] == 3
itemCountA += 3
end
end
values = target.getReady
values = target.lookLeft
for i in 1..9
if values[i] == 2
wallCountB -= 2
elsif values[i] == 3
itemCountB += 3
end
end
wallCountA - item_countA = judgA
wallCountB - item_countB = judgB
if judgA < judgB
values = target.walkLeft
else
values = target.walkDown
end
end