Spaces:
Configuration error
Configuration error
capture
Browse files- examples/ai_testing/README.md +249 -0
- examples/ai_testing/USAGE.md +147 -0
- examples/ai_testing/__init__.py +8 -0
- examples/ai_testing/capture_game_state.py +260 -0
- examples/ai_testing/capture_with_web.py +160 -0
- examples/ai_testing/my_games/game_20251223_203724_final.json +1850 -0
- examples/ai_testing/my_games/game_20251223_203724_full.json +1856 -0
- examples/ai_testing/my_games/game_20251223_204416_final.json +1850 -0
- examples/ai_testing/my_games/game_20251223_204416_full.json +1856 -0
- examples/ai_testing/my_games/game_20251223_204440_final.json +1850 -0
- examples/ai_testing/my_games/game_20251223_204440_full.json +1856 -0
- examples/ai_testing/my_games/game_20251223_205200_final.json +1850 -0
- examples/ai_testing/my_games/game_20251223_205200_full.json +1856 -0
- examples/ai_testing/play_and_capture.py +148 -0
- examples/ai_testing/play_and_save.py +179 -0
- examples/ai_testing/sample_states/captured_game.json +1850 -0
- examples/ai_testing/sample_states/early_game.json +91 -0
- examples/ai_testing/sample_states/mid_game_competitive.json +115 -0
- examples/ai_testing/show_complete_state.py +194 -0
- examples/ai_testing/simple_capture.py +109 -0
- examples/ai_testing/visualize_game_state.py +364 -0
- pycatan/core/game.py +3 -5
- pycatan/visualizations/web_visualization.py +55 -1
- run.bat +5 -0
examples/ai_testing/README.md
ADDED
|
@@ -0,0 +1,249 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 🤖 AI Testing Tools
|
| 2 |
+
|
| 3 |
+
כלים לבדיקת יכולת ה-AI להבין מצבי משחק באמצעות Web Visualizer.
|
| 4 |
+
|
| 5 |
+
## 🎯 מטרה
|
| 6 |
+
|
| 7 |
+
הכלים האלה מאפשרים:
|
| 8 |
+
1. **לתפוס מצב משחק אמיתי** מתוך משחק רץ
|
| 9 |
+
2. **לראות את ה-JSON המדויק והמלא** שעובר לוויזואליזציה (זה מה שנשלח ל-AI)
|
| 10 |
+
3. **להציג מצב משחק ספציפי** ב-Web Visualizer
|
| 11 |
+
4. **לבדוק אם AI מבין את מצב הלוח** לפני שמפתחים אותו
|
| 12 |
+
|
| 13 |
+
## 📁 קבצים
|
| 14 |
+
|
| 15 |
+
```
|
| 16 |
+
ai_testing/
|
| 17 |
+
├── capture_with_web.py # תופס JSON + פותח דפדפן 🌟 BEST FOR VIEWING!
|
| 18 |
+
├── show_complete_state.py # מציג מצב מלא וסיכום (ללא דפדפן)
|
| 19 |
+
├── simple_capture.py # תופס JSON בלבד (מהיר)
|
| 20 |
+
├── visualize_game_state.py # מציג JSON קיים בדפדפן
|
| 21 |
+
├── sample_states/ # קבצי JSON לדוגמה
|
| 22 |
+
│ ├── captured_game.json # מצב שנתפס ממשחק אמיתי ✅
|
| 23 |
+
│ └── ...
|
| 24 |
+
├── captured_states/ # כל המצבים שנתפסו
|
| 25 |
+
│ ├── state_001_initial.json
|
| 26 |
+
│ └── state_XXX_final.json
|
| 27 |
+
└── README.md # התיעוד הזה
|
| 28 |
+
```
|
| 29 |
+
|
| 30 |
+
## 🚀 שימוש מומלץ
|
| 31 |
+
|
| 32 |
+
### אופציה 1: תפיסה + צפייה (מומלץ!)
|
| 33 |
+
|
| 34 |
+
**הדרך הטובה ביותר אם אתה רוצה לראות את הלוח:**
|
| 35 |
+
|
| 36 |
+
```bash
|
| 37 |
+
py examples/ai_testing/capture_with_web.py examples/data/game_moves_3Players.txt
|
| 38 |
+
```
|
| 39 |
+
|
| 40 |
+
**מה זה עושה:**
|
| 41 |
+
1. ✅ מריץ משחק עם האינפוטים
|
| 42 |
+
2. 🌐 פותח דפדפן עם Web Visualizer
|
| 43 |
+
3. 📸 תופס את כל ה-JSON בשקט ברקע
|
| 44 |
+
4. 💾 שומר את המצב המלא (כולל points + adjacency!)
|
| 45 |
+
5. 🎯 השרת נשאר פעיל - תוכל לראות את הלוח
|
| 46 |
+
|
| 47 |
+
**בסוף תקבל:**
|
| 48 |
+
- הלוח מוצג בדפדפן ✨
|
| 49 |
+
- JSON מלא עם כל המידע שמור בקובץ
|
| 50 |
+
- אפשר ללחוץ Ctrl+C לסגור
|
| 51 |
+
|
| 52 |
+
### אופציה 2: תפיסה בלי דפדפן (מהיר)
|
| 53 |
+
|
| 54 |
+
**אם אתה רק רוצה את ה-JSON בלי להפעיל דפדפן:**
|
| 55 |
+
|
| 56 |
+
```bash
|
| 57 |
+
py examples/ai_testing/show_complete_state.py examples/data/game_moves_3Players.txt
|
| 58 |
+
```
|
| 59 |
+
|
| 60 |
+
**מה זה עושה:**
|
| 61 |
+
- מריץ משחק בלי דפדפן
|
| 62 |
+
- מדפיס את כל ה-JSON בסוף
|
| 63 |
+
- שומר את המצבים לקבצים
|
| 64 |
+
|
| 65 |
+
### אופציה 3: הצגת JSON קיים בדפדפן
|
| 66 |
+
|
| 67 |
+
**אם יש לך כבר JSON ואתה רוצה לראות אותו:**
|
| 68 |
+
|
| 69 |
+
```bash
|
| 70 |
+
py examples/ai_testing/visualize_game_state.py --state-file examples/ai_testing/sample_states/captured_game.json
|
| 71 |
+
```
|
| 72 |
+
|
| 73 |
+
---
|
| 74 |
+
|
| 75 |
+
## 📊 מה כולל ה-JSON המלא?
|
| 76 |
+
|
| 77 |
+
כדי ליצור מצב משחק משלך:
|
| 78 |
+
|
| 79 |
+
1. **צור קובץ טקסט** עם פקודות משחק:
|
| 80 |
+
```
|
| 81 |
+
3 # מספר שחקנים
|
| 82 |
+
Alice
|
| 83 |
+
Bob
|
| 84 |
+
Charlie
|
| 85 |
+
s 10 # settlement בנקודה 10
|
| 86 |
+
rd 10 11 # road מ-10 ל-11
|
| 87 |
+
...
|
| 88 |
+
```
|
| 89 |
+
|
| 90 |
+
2. **הרץ את simple_capture**:
|
| 91 |
+
```bash
|
| 92 |
+
py examples/ai_testing/simple_capture.py your_inputs.txt
|
| 93 |
+
```
|
| 94 |
+
|
| 95 |
+
3. **תראה את ה-JSON** בקונסול ובקובץ
|
| 96 |
+
|
| 97 |
+
## 📊 מה מודפס?
|
| 98 |
+
|
| 99 |
+
### JSON מלא (לשליחה ל-AI)
|
| 100 |
+
```json
|
| 101 |
+
{
|
| 102 |
+
"hexes": [
|
| 103 |
+
{"id": 1, "type": "wood", "number": 12, ...}
|
| 104 |
+
],
|
| 105 |
+
"settlements": [
|
| 106 |
+
{"point_id": 10, "owner": 0, "type": "SETTLEMENT"}
|
| 107 |
+
],
|
| 108 |
+
"cities": [...],
|
| 109 |
+
"roads": [
|
| 110 |
+
{"start_point": 10, "end_point": 11, "owner": 0}
|
| 111 |
+
],
|
| 112 |
+
"players": [
|
| 113 |
+
{
|
| 114 |
+
"id": 0,
|
| 115 |
+
"name": "Alice",
|
| 116 |
+
"cards": ["WOOD", "BRICK"],
|
| 117 |
+
"victory_points": 2,
|
| 118 |
+
...
|
| 119 |
+
}
|
| 120 |
+
],
|
| 121 |
+
"current_player": 0,
|
| 122 |
+
"current_phase": "NORMAL_PLAY",
|
| 123 |
+
"robber_position": {"q": 0, "r": 0}
|
| 124 |
+
}
|
| 125 |
+
```
|
| 126 |
+
|
| 127 |
+
## 🎮 מבנה ה-JSON
|
| 128 |
+
|
| 129 |
+
### Hexes (משושים)
|
| 130 |
+
```json
|
| 131 |
+
{
|
| 132 |
+
"coords": [0, 0],
|
| 133 |
+
"type": "HILLS",
|
| 134 |
+
"number": 3,
|
| 135 |
+
"has_robber": false
|
| 136 |
+
}
|
| 137 |
+
```
|
| 138 |
+
|
| 139 |
+
### Buildings (התנחלויות וערים)
|
| 140 |
+
```json
|
| 141 |
+
{
|
| 142 |
+
"point_id": 5,
|
| 143 |
+
"owner": 0,
|
| 144 |
+
"type": "SETTLEMENT" // או "CITY"
|
| 145 |
+
}
|
| 146 |
+
```
|
| 147 |
+
|
| 148 |
+
### Roads (דרכים)
|
| 149 |
+
```json
|
| 150 |
+
{
|
| 151 |
+
"start_point": 5,
|
| 152 |
+
"end_point": 8,
|
| 153 |
+
"owner": 0
|
| 154 |
+
}
|
| 155 |
+
```
|
| 156 |
+
|
| 157 |
+
### Players (שחקנים)
|
| 158 |
+
```json
|
| 159 |
+
{
|
| 160 |
+
"id": 0,
|
| 161 |
+
"name": "Player 0",
|
| 162 |
+
"cards": ["WOOD", "BRICK"],
|
| 163 |
+
"dev_cards": ["KNIGHT"],
|
| 164 |
+
"victory_points": 6,
|
| 165 |
+
"has_longest_road": true,
|
| 166 |
+
"has_largest_army": false,
|
| 167 |
+
"knights_played": 1
|
| 168 |
+
}
|
| 169 |
+
```
|
| 170 |
+
|
| 171 |
+
## 📝 יצירת קובץ JSON חדש
|
| 172 |
+
|
| 173 |
+
כדי ליצור מצב משחק משלך:
|
| 174 |
+
|
| 175 |
+
1. העתק אחד מהקבצים ב-`sample_states/`
|
| 176 |
+
2. ערוך את הערכים:
|
| 177 |
+
- `tiles` - המשושים בלוח
|
| 178 |
+
- `buildings` - התנחלויות וערים
|
| 179 |
+
- `roads` - דרכים
|
| 180 |
+
- `players_state` - מידע על כל שחקן
|
| 181 |
+
3. שמור עם שם תיאורי
|
| 182 |
+
4. הרץ: `python visualize_game_state.py --state-file your_file.json`
|
| 183 |
+
|
| 184 |
+
## 🔍 למה זה חשוב ל-AI?
|
| 185 |
+
|
| 186 |
+
1. **AI צריך להבין את הלוח** - ה-JSON הזה מכיל את **כל המידע** שהוא יקבל
|
| 187 |
+
2. **בדיקת הבנה** - אפשר לבדוק א�� AI מבין מצבים שונים לפני שבונים אותו
|
| 188 |
+
3. **תיעוד מדויק** - רואים בדיוק איזה מידע זמין לקבלת החלטות
|
| 189 |
+
|
| 190 |
+
## 💡 טיפים
|
| 191 |
+
|
| 192 |
+
- **הרץ את הסקריפט** בכל שלב של משחק רגיל כדי לראות איך המידע משתנה
|
| 193 |
+
- **שמור JSON** ממצבי משחק מעניינים לבדיקה מאוחר יותר
|
| 194 |
+
- **השווה בין מצבים** - ראה איך הלוח משתנה במהלך המשחק
|
| 195 |
+
|
| 196 |
+
## 🛠️ שילוב עם AI
|
| 197 |
+
|
| 198 |
+
כשתבנה AI agent:
|
| 199 |
+
|
| 200 |
+
```python
|
| 201 |
+
from examples.ai_testing.visualize_game_state import game_to_game_state
|
| 202 |
+
|
| 203 |
+
# צור מצב משחק
|
| 204 |
+
game_state = game_to_game_state(game)
|
| 205 |
+
|
| 206 |
+
# המר לפורמט web (זה מה שה-AI יקבל)
|
| 207 |
+
web_format = web_viz._convert_game_state(game_state)
|
| 208 |
+
|
| 209 |
+
# שלח ל-AI
|
| 210 |
+
ai_decision = ai_agent.decide(web_format)
|
| 211 |
+
```
|
| 212 |
+
|
| 213 |
+
---
|
| 214 |
+
|
| 215 |
+
**עכשיו יש לך את כל הכלים כדי לבדוק שה-AI מבין את הלוח!** 🎯
|
| 216 |
+
|
| 217 |
+
## 🎯 המידע המלא שה-AI מקבל - עכשיו עם Points!
|
| 218 |
+
|
| 219 |
+
### ⭐ חשוב! מידע חדש שהוספנו:
|
| 220 |
+
|
| 221 |
+
#### 📍 Points (54 נקודות)
|
| 222 |
+
כל נקודה כוללת:
|
| 223 |
+
- `point_id` - מזהה (1-54)
|
| 224 |
+
- `adjacent_points` - רשימת נקודות מחוברות (לדרכים!)
|
| 225 |
+
- `adjacent_hexes` - רשימת משושים צמודים (למשאבים!)
|
| 226 |
+
|
| 227 |
+
**דוגמה:**
|
| 228 |
+
```json
|
| 229 |
+
{
|
| 230 |
+
"point_id": 10,
|
| 231 |
+
"adjacent_points": [9, 11, 20], // יכול לבנות דרך לכיוון אלה
|
| 232 |
+
"adjacent_hexes": [5, 4, 1] // יקבל משאבים מאלה
|
| 233 |
+
}
|
| 234 |
+
```
|
| 235 |
+
|
| 236 |
+
#### 🗺️ Board Graph
|
| 237 |
+
```json
|
| 238 |
+
{
|
| 239 |
+
"adjacency": {"10": [9, 11, 20]}, // גרף קישוריות מלא
|
| 240 |
+
"hex_to_points": {"5": [9,10,11,19,20,21]} // נקודות על כל משושה
|
| 241 |
+
}
|
| 242 |
+
```
|
| 243 |
+
|
| 244 |
+
**למה זה קריטי:**
|
| 245 |
+
- 🛣️ חישוב הדרך הארוכה ביותר
|
| 246 |
+
- 🎯 מציאת נקודות חסימה
|
| 247 |
+
- 📊 אסטרטגיה - אילו נקודות כדאי לתפוס
|
| 248 |
+
|
| 249 |
+
---
|
examples/ai_testing/USAGE.md
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# AI Testing - Usage Examples
|
| 2 |
+
|
| 3 |
+
## דוגמאות שימוש מהירות
|
| 4 |
+
|
| 5 |
+
### 1. תפיסת JSON ממשחק קיים
|
| 6 |
+
|
| 7 |
+
```bash
|
| 8 |
+
# שימוש בקובץ אינפוטים קיים
|
| 9 |
+
py examples/ai_testing/simple_capture.py examples/data/game_moves_3Players.txt
|
| 10 |
+
|
| 11 |
+
# הפלט:
|
| 12 |
+
# - JSON מודפס לקונסול בכל עדכון
|
| 13 |
+
# - המצב האחרון נשמר ל: examples/ai_testing/sample_states/captured_game.json
|
| 14 |
+
```
|
| 15 |
+
|
| 16 |
+
### 2. הצגת המצב שנתפס
|
| 17 |
+
|
| 18 |
+
```bash
|
| 19 |
+
# הצג את המצב בדפדפן
|
| 20 |
+
py examples/ai_testing/visualize_game_state.py --state-file examples/ai_testing/sample_states/captured_game.json
|
| 21 |
+
```
|
| 22 |
+
|
| 23 |
+
### 3. שמירת כל הפלט לקובץ
|
| 24 |
+
|
| 25 |
+
```bash
|
| 26 |
+
# שמור את כל הפלט (כולל כל ה-JSONs) לקובץ
|
| 27 |
+
py examples/ai_testing/simple_capture.py examples/data/game_moves_3Players.txt > output.txt 2>&1
|
| 28 |
+
```
|
| 29 |
+
|
| 30 |
+
## מבנה ה-JSON
|
| 31 |
+
|
| 32 |
+
### Hexes (משושים)
|
| 33 |
+
כל משושה מכיל:
|
| 34 |
+
- `id` - מזהה ייחודי (1-19)
|
| 35 |
+
- `type` - סוג המשאב: "wood", "brick", "sheep", "wheat", "ore", "desert"
|
| 36 |
+
- `number` - המספר על המשושה (2-12, או null למדבר)
|
| 37 |
+
- `has_robber` - האם השודד נמצא שם
|
| 38 |
+
- `position` - [row, col] - מיקום בלוח המקורי
|
| 39 |
+
- `axial_coords` / `q`, `r` - קואורדינטות hexagonal
|
| 40 |
+
|
| 41 |
+
### Buildings (מבנים)
|
| 42 |
+
```json
|
| 43 |
+
{
|
| 44 |
+
"settlements": [
|
| 45 |
+
{
|
| 46 |
+
"point_id": 10,
|
| 47 |
+
"owner": 0,
|
| 48 |
+
"type": "SETTLEMENT"
|
| 49 |
+
}
|
| 50 |
+
],
|
| 51 |
+
"cities": [
|
| 52 |
+
{
|
| 53 |
+
"point_id": 14,
|
| 54 |
+
"owner": 1,
|
| 55 |
+
"type": "CITY"
|
| 56 |
+
}
|
| 57 |
+
]
|
| 58 |
+
}
|
| 59 |
+
```
|
| 60 |
+
|
| 61 |
+
### Roads (דרכים)
|
| 62 |
+
```json
|
| 63 |
+
{
|
| 64 |
+
"roads": [
|
| 65 |
+
{
|
| 66 |
+
"start_point": 10,
|
| 67 |
+
"end_point": 11,
|
| 68 |
+
"owner": 0
|
| 69 |
+
}
|
| 70 |
+
]
|
| 71 |
+
}
|
| 72 |
+
```
|
| 73 |
+
|
| 74 |
+
### Players (שחקנים)
|
| 75 |
+
```json
|
| 76 |
+
{
|
| 77 |
+
"players": [
|
| 78 |
+
{
|
| 79 |
+
"id": 0,
|
| 80 |
+
"name": "Alice",
|
| 81 |
+
"cards": ["WOOD", "BRICK", "SHEEP"], // משאבים בידיים
|
| 82 |
+
"dev_cards": ["KNIGHT"], // קלפי פיתוח
|
| 83 |
+
"victory_points": 3,
|
| 84 |
+
"has_longest_road": false,
|
| 85 |
+
"has_largest_army": false,
|
| 86 |
+
"knights_played": 1
|
| 87 |
+
}
|
| 88 |
+
]
|
| 89 |
+
}
|
| 90 |
+
```
|
| 91 |
+
|
| 92 |
+
### Game State (מצב משחק כללי)
|
| 93 |
+
```json
|
| 94 |
+
{
|
| 95 |
+
"current_player": 0, // מי התור
|
| 96 |
+
"current_phase": "NORMAL_PLAY", // שלב המשחק
|
| 97 |
+
"robber_position": { // איפה השודד
|
| 98 |
+
"q": 0,
|
| 99 |
+
"r": 0
|
| 100 |
+
}
|
| 101 |
+
}
|
| 102 |
+
```
|
| 103 |
+
|
| 104 |
+
## טיפים לשימוש
|
| 105 |
+
|
| 106 |
+
### יצירת מצבי בדיקה
|
| 107 |
+
|
| 108 |
+
1. **ערוך קובץ אינפוט** - צור משחק עם המצב הרצוי
|
| 109 |
+
2. **הרץ simple_capture** - תפוס את המצב
|
| 110 |
+
3. **שמור את ה-JSON** - יש לך עכשיו מצב לבדיקה
|
| 111 |
+
|
| 112 |
+
### בדיקת הבנת AI
|
| 113 |
+
|
| 114 |
+
1. **תפוס מצב** מעניין ממשחק
|
| 115 |
+
2. **שלח ל-AI** את ה-JSON
|
| 116 |
+
3. **בקש החלטה** - מה הפעולה הטובה ביותר?
|
| 117 |
+
4. **הצג בדפדפן** - ראה את אותו המצב ויזואלית
|
| 118 |
+
|
| 119 |
+
### דיבוג
|
| 120 |
+
|
| 121 |
+
אם AI מקבל החלטות מוזרות:
|
| 122 |
+
1. הדפס את ה-JSON שהוא קיבל
|
| 123 |
+
2. הצג אותו ב-visualizer
|
| 124 |
+
3. ראה מה הוא אמור לראות
|
| 125 |
+
4. זהה פערים בהבנה
|
| 126 |
+
|
| 127 |
+
## דוגמה מלאה
|
| 128 |
+
|
| 129 |
+
```bash
|
| 130 |
+
# 1. תפוס מצב ממשחק
|
| 131 |
+
py examples/ai_testing/simple_capture.py examples/data/game_moves_3Players.txt
|
| 132 |
+
|
| 133 |
+
# 2. הקובץ נשמר ב:
|
| 134 |
+
# examples/ai_testing/sample_states/captured_game.json
|
| 135 |
+
|
| 136 |
+
# 3. הצג אותו בדפדפן
|
| 137 |
+
py examples/ai_testing/visualize_game_state.py --state-file examples/ai_testing/sample_states/captured_game.json
|
| 138 |
+
|
| 139 |
+
# 4. עכשיו אתה יכול:
|
| 140 |
+
# - לראות את הלוח ויזואלית
|
| 141 |
+
# - לקרוא את ה-JSON
|
| 142 |
+
# - לשלוח ל-AI לבדיקה
|
| 143 |
+
```
|
| 144 |
+
|
| 145 |
+
---
|
| 146 |
+
|
| 147 |
+
**עכשיו יש לך את כל הכלים כדי לבדוק שה-AI מבין את הלוח!** 🎯
|
examples/ai_testing/__init__.py
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
AI Testing Tools
|
| 3 |
+
----------------
|
| 4 |
+
Tools for testing AI understanding of game state via Web Visualizer.
|
| 5 |
+
|
| 6 |
+
This package helps visualize game states and capture the JSON data
|
| 7 |
+
that would be sent to an AI agent for decision making.
|
| 8 |
+
"""
|
examples/ai_testing/capture_game_state.py
ADDED
|
@@ -0,0 +1,260 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Capture Game State from Real Game
|
| 3 |
+
----------------------------------
|
| 4 |
+
This script runs a real game with predefined inputs and captures the JSON
|
| 5 |
+
data that is sent to the Web Visualizer. This is exactly what an AI would see.
|
| 6 |
+
|
| 7 |
+
Usage:
|
| 8 |
+
python capture_game_state.py [--input-file INPUT_FILE] [--output-file OUTPUT_FILE]
|
| 9 |
+
"""
|
| 10 |
+
|
| 11 |
+
import sys
|
| 12 |
+
import json
|
| 13 |
+
import time
|
| 14 |
+
from pathlib import Path
|
| 15 |
+
from io import StringIO
|
| 16 |
+
|
| 17 |
+
# Add parent directory to path for imports
|
| 18 |
+
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
| 19 |
+
|
| 20 |
+
from pycatan.visualizations.web_visualization import WebVisualization
|
| 21 |
+
from pycatan.management.game_manager import GameManager
|
| 22 |
+
from pycatan.players.human_user import HumanUser
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
class StateCapturingWebViz(WebVisualization):
|
| 26 |
+
"""
|
| 27 |
+
Extended WebVisualization that captures all state updates.
|
| 28 |
+
"""
|
| 29 |
+
|
| 30 |
+
def __init__(self, *args, **kwargs):
|
| 31 |
+
# Don't start the server automatically
|
| 32 |
+
kwargs['auto_open'] = False
|
| 33 |
+
super().__init__(*args, **kwargs)
|
| 34 |
+
|
| 35 |
+
self.captured_states = []
|
| 36 |
+
self.captured_actions = []
|
| 37 |
+
self.turn_states = {} # Maps turn number to state
|
| 38 |
+
|
| 39 |
+
def update_full_state(self, game_state):
|
| 40 |
+
"""Override to capture state updates."""
|
| 41 |
+
# Call parent to do the conversion
|
| 42 |
+
super().update_full_state(game_state)
|
| 43 |
+
|
| 44 |
+
# Capture the converted state
|
| 45 |
+
if self.current_game_state:
|
| 46 |
+
state_copy = json.loads(json.dumps(self.current_game_state))
|
| 47 |
+
self.captured_states.append(state_copy)
|
| 48 |
+
|
| 49 |
+
# Store by turn number if available
|
| 50 |
+
turn_num = state_copy.get('turn_number', len(self.captured_states))
|
| 51 |
+
self.turn_states[turn_num] = state_copy
|
| 52 |
+
|
| 53 |
+
print(f"\n📸 Captured state for turn {turn_num}")
|
| 54 |
+
|
| 55 |
+
def display_action(self, action, result):
|
| 56 |
+
"""Override to capture actions."""
|
| 57 |
+
super().display_action(action, result)
|
| 58 |
+
|
| 59 |
+
action_data = {
|
| 60 |
+
'action_type': str(action.action_type) if hasattr(action, 'action_type') else 'unknown',
|
| 61 |
+
'player_id': action.player_id if hasattr(action, 'player_id') else None,
|
| 62 |
+
'success': result.success if hasattr(result, 'success') else None,
|
| 63 |
+
'timestamp': str(action.timestamp) if hasattr(action, 'timestamp') else None
|
| 64 |
+
}
|
| 65 |
+
self.captured_actions.append(action_data)
|
| 66 |
+
|
| 67 |
+
def get_latest_state(self):
|
| 68 |
+
"""Get the most recent captured state."""
|
| 69 |
+
return self.captured_states[-1] if self.captured_states else None
|
| 70 |
+
|
| 71 |
+
def get_state_at_turn(self, turn_number):
|
| 72 |
+
"""Get state at a specific turn."""
|
| 73 |
+
return self.turn_states.get(turn_number)
|
| 74 |
+
|
| 75 |
+
def print_latest_state(self):
|
| 76 |
+
"""Print the latest state as formatted JSON."""
|
| 77 |
+
latest = self.get_latest_state()
|
| 78 |
+
if latest:
|
| 79 |
+
print("\n" + "="*80)
|
| 80 |
+
print("📊 LATEST GAME STATE JSON")
|
| 81 |
+
print("="*80)
|
| 82 |
+
print(json.dumps(latest, indent=2, ensure_ascii=False))
|
| 83 |
+
print("="*80)
|
| 84 |
+
|
| 85 |
+
# Print summary
|
| 86 |
+
self._print_summary(latest)
|
| 87 |
+
|
| 88 |
+
def _print_summary(self, state_data):
|
| 89 |
+
"""Print a human-readable summary."""
|
| 90 |
+
print("\n" + "="*80)
|
| 91 |
+
print("📈 SUMMARY")
|
| 92 |
+
print("="*80)
|
| 93 |
+
print(f"Current Player: {state_data.get('current_player', 0)}")
|
| 94 |
+
print(f"Game Phase: {state_data.get('current_phase', 'UNKNOWN')}")
|
| 95 |
+
print(f"Robber Position: {state_data.get('robber_position', 'Unknown')}")
|
| 96 |
+
|
| 97 |
+
if state_data.get('dice_result'):
|
| 98 |
+
print(f"Last Dice Roll: {state_data['dice_result']}")
|
| 99 |
+
|
| 100 |
+
print(f"\nBoard:")
|
| 101 |
+
print(f" - Hexes: {len(state_data.get('hexes', []))}")
|
| 102 |
+
print(f" - Settlements: {len(state_data.get('settlements', []))}")
|
| 103 |
+
print(f" - Cities: {len(state_data.get('cities', []))}")
|
| 104 |
+
print(f" - Roads: {len(state_data.get('roads', []))}")
|
| 105 |
+
|
| 106 |
+
print(f"\nPlayers: {len(state_data.get('players', []))}")
|
| 107 |
+
for player in state_data.get('players', []):
|
| 108 |
+
print(f" Player {player.get('id', '?')}: {player.get('name', 'Unknown')}")
|
| 109 |
+
print(f" - Victory Points: {player.get('victory_points', 0)}")
|
| 110 |
+
print(f" - Resources: {len(player.get('cards', []))}")
|
| 111 |
+
print(f" - Dev Cards: {len(player.get('dev_cards', []))}")
|
| 112 |
+
if player.get('has_longest_road'):
|
| 113 |
+
print(f" - Has Longest Road!")
|
| 114 |
+
if player.get('has_largest_army'):
|
| 115 |
+
print(f" - Has Largest Army!")
|
| 116 |
+
print("="*80)
|
| 117 |
+
|
| 118 |
+
def save_state_to_file(self, filepath, turn_number=None):
|
| 119 |
+
"""Save a specific state to JSON file."""
|
| 120 |
+
if turn_number is not None:
|
| 121 |
+
state = self.get_state_at_turn(turn_number)
|
| 122 |
+
if not state:
|
| 123 |
+
print(f"❌ No state captured for turn {turn_number}")
|
| 124 |
+
return False
|
| 125 |
+
else:
|
| 126 |
+
state = self.get_latest_state()
|
| 127 |
+
|
| 128 |
+
if not state:
|
| 129 |
+
print("❌ No state to save")
|
| 130 |
+
return False
|
| 131 |
+
|
| 132 |
+
with open(filepath, 'w', encoding='utf-8') as f:
|
| 133 |
+
json.dump(state, f, indent=2, ensure_ascii=False)
|
| 134 |
+
|
| 135 |
+
print(f"✅ State saved to: {filepath}")
|
| 136 |
+
return True
|
| 137 |
+
|
| 138 |
+
|
| 139 |
+
def run_game_with_inputs(input_lines):
|
| 140 |
+
"""
|
| 141 |
+
Run a game with predefined inputs and capture states.
|
| 142 |
+
|
| 143 |
+
Args:
|
| 144 |
+
input_lines: List of input strings to feed to the game
|
| 145 |
+
|
| 146 |
+
Returns:
|
| 147 |
+
StateCapturingWebViz: The visualizer with captured states
|
| 148 |
+
"""
|
| 149 |
+
# Create input stream from the lines
|
| 150 |
+
input_stream = StringIO('\n'.join(input_lines))
|
| 151 |
+
|
| 152 |
+
# Temporarily redirect stdin
|
| 153 |
+
original_stdin = sys.stdin
|
| 154 |
+
sys.stdin = input_stream
|
| 155 |
+
|
| 156 |
+
try:
|
| 157 |
+
# Create capturing visualizer
|
| 158 |
+
viz = StateCapturingWebViz(port=5555, auto_open=False)
|
| 159 |
+
|
| 160 |
+
# Create game manager with visualization
|
| 161 |
+
# We'll create simple users - the input will come from our stream
|
| 162 |
+
users = [] # Will be populated by game manager from input
|
| 163 |
+
|
| 164 |
+
print("\n🎮 Starting game with captured inputs...")
|
| 165 |
+
print(f" Total input lines: {len(input_lines)}")
|
| 166 |
+
print("="*80)
|
| 167 |
+
|
| 168 |
+
# Start game - this will consume the inputs
|
| 169 |
+
game_manager = GameManager(users=None, visualizations=[viz])
|
| 170 |
+
|
| 171 |
+
# The game will read from our input stream
|
| 172 |
+
game_manager.start_game()
|
| 173 |
+
|
| 174 |
+
print("\n✅ Game completed!")
|
| 175 |
+
print(f"📸 Captured {len(viz.captured_states)} states")
|
| 176 |
+
|
| 177 |
+
return viz
|
| 178 |
+
|
| 179 |
+
except EOFError:
|
| 180 |
+
print("\n⚠️ Input ended - game may be incomplete")
|
| 181 |
+
return viz
|
| 182 |
+
except Exception as e:
|
| 183 |
+
print(f"\n❌ Error running game: {e}")
|
| 184 |
+
import traceback
|
| 185 |
+
traceback.print_exc()
|
| 186 |
+
return None
|
| 187 |
+
finally:
|
| 188 |
+
# Restore stdin
|
| 189 |
+
sys.stdin = original_stdin
|
| 190 |
+
|
| 191 |
+
|
| 192 |
+
def main():
|
| 193 |
+
"""Main function to capture game states."""
|
| 194 |
+
import argparse
|
| 195 |
+
|
| 196 |
+
parser = argparse.ArgumentParser(description='Capture game state from real game')
|
| 197 |
+
parser.add_argument('--input-file', type=str,
|
| 198 |
+
default='examples/data/game_moves_3Players.txt',
|
| 199 |
+
help='Path to file with game inputs')
|
| 200 |
+
parser.add_argument('--output-file', type=str,
|
| 201 |
+
help='Path to save captured state JSON')
|
| 202 |
+
parser.add_argument('--turn', type=int,
|
| 203 |
+
help='Capture state at specific turn number')
|
| 204 |
+
parser.add_argument('--all-turns', action='store_true',
|
| 205 |
+
help='Save all turn states to separate files')
|
| 206 |
+
|
| 207 |
+
args = parser.parse_args()
|
| 208 |
+
|
| 209 |
+
# Read input file
|
| 210 |
+
input_file = Path(args.input_file)
|
| 211 |
+
if not input_file.exists():
|
| 212 |
+
print(f"❌ Input file not found: {input_file}")
|
| 213 |
+
return
|
| 214 |
+
|
| 215 |
+
with open(input_file, 'r', encoding='utf-8') as f:
|
| 216 |
+
input_lines = [line.strip() for line in f if line.strip()]
|
| 217 |
+
|
| 218 |
+
print(f"📂 Loaded inputs from: {input_file}")
|
| 219 |
+
print(f" Lines: {len(input_lines)}")
|
| 220 |
+
|
| 221 |
+
# Run game and capture states
|
| 222 |
+
viz = run_game_with_inputs(input_lines)
|
| 223 |
+
|
| 224 |
+
if not viz:
|
| 225 |
+
print("❌ Failed to capture game states")
|
| 226 |
+
return
|
| 227 |
+
|
| 228 |
+
# Print latest state
|
| 229 |
+
viz.print_latest_state()
|
| 230 |
+
|
| 231 |
+
# Save states
|
| 232 |
+
if args.all_turns:
|
| 233 |
+
output_dir = Path('examples/ai_testing/captured_states')
|
| 234 |
+
output_dir.mkdir(exist_ok=True)
|
| 235 |
+
|
| 236 |
+
print(f"\n💾 Saving all turn states to: {output_dir}")
|
| 237 |
+
for turn_num, state in viz.turn_states.items():
|
| 238 |
+
output_file = output_dir / f"turn_{turn_num:03d}.json"
|
| 239 |
+
with open(output_file, 'w', encoding='utf-8') as f:
|
| 240 |
+
json.dump(state, f, indent=2, ensure_ascii=False)
|
| 241 |
+
print(f" ✅ Saved turn {turn_num}")
|
| 242 |
+
|
| 243 |
+
elif args.output_file:
|
| 244 |
+
viz.save_state_to_file(args.output_file, args.turn)
|
| 245 |
+
|
| 246 |
+
else:
|
| 247 |
+
# Default: save latest state
|
| 248 |
+
output_file = Path('examples/ai_testing/sample_states/captured_game.json')
|
| 249 |
+
viz.save_state_to_file(str(output_file))
|
| 250 |
+
|
| 251 |
+
print("\n" + "="*80)
|
| 252 |
+
print("✨ CAPTURE COMPLETE")
|
| 253 |
+
print("="*80)
|
| 254 |
+
print("You now have the exact JSON that would be sent to an AI agent!")
|
| 255 |
+
print("Use visualize_game_state.py to view it in the browser.")
|
| 256 |
+
print("="*80)
|
| 257 |
+
|
| 258 |
+
|
| 259 |
+
if __name__ == '__main__':
|
| 260 |
+
main()
|
examples/ai_testing/capture_with_web.py
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Capture Game State WITH Web Visualizer
|
| 3 |
+
---------------------------------------
|
| 4 |
+
Runs a game with predefined inputs, captures the JSON data,
|
| 5 |
+
AND displays it in the web browser so you can see the board visually.
|
| 6 |
+
"""
|
| 7 |
+
|
| 8 |
+
import sys
|
| 9 |
+
from pathlib import Path
|
| 10 |
+
import os
|
| 11 |
+
import json
|
| 12 |
+
import time
|
| 13 |
+
import threading
|
| 14 |
+
|
| 15 |
+
# Add parent directory to path
|
| 16 |
+
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
| 17 |
+
|
| 18 |
+
from pycatan.visualizations.web_visualization import WebVisualization
|
| 19 |
+
|
| 20 |
+
# Capture states
|
| 21 |
+
captured_states = []
|
| 22 |
+
update_counter = 0
|
| 23 |
+
|
| 24 |
+
original_update = WebVisualization.update_full_state
|
| 25 |
+
|
| 26 |
+
def capturing_update(self, game_state):
|
| 27 |
+
"""Capture and save all states."""
|
| 28 |
+
global update_counter
|
| 29 |
+
original_update(self, game_state)
|
| 30 |
+
|
| 31 |
+
if hasattr(self, 'current_game_state') and self.current_game_state:
|
| 32 |
+
update_counter += 1
|
| 33 |
+
state_copy = json.loads(json.dumps(self.current_game_state))
|
| 34 |
+
captured_states.append(state_copy)
|
| 35 |
+
|
| 36 |
+
# Print just a notification (not the full JSON to keep output clean)
|
| 37 |
+
print(f"[State #{update_counter} captured]", end=' ', flush=True)
|
| 38 |
+
|
| 39 |
+
# Apply patch
|
| 40 |
+
WebVisualization.update_full_state = capturing_update
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
def save_captured_states():
|
| 44 |
+
"""Save all captured states to files."""
|
| 45 |
+
if not captured_states:
|
| 46 |
+
print("\n\nNo states were captured!")
|
| 47 |
+
return False
|
| 48 |
+
|
| 49 |
+
# Create output directory
|
| 50 |
+
output_dir = Path('examples/ai_testing/captured_states')
|
| 51 |
+
output_dir.mkdir(exist_ok=True)
|
| 52 |
+
|
| 53 |
+
# Save first state
|
| 54 |
+
first_state = captured_states[0]
|
| 55 |
+
first_file = output_dir / 'state_001_initial.json'
|
| 56 |
+
with open(first_file, 'w', encoding='utf-8') as f:
|
| 57 |
+
json.dump(first_state, f, indent=2, ensure_ascii=False)
|
| 58 |
+
|
| 59 |
+
# Save last state
|
| 60 |
+
last_state = captured_states[-1]
|
| 61 |
+
last_file = output_dir / f'state_{len(captured_states):03d}_final.json'
|
| 62 |
+
with open(last_file, 'w', encoding='utf-8') as f:
|
| 63 |
+
json.dump(last_state, f, indent=2, ensure_ascii=False)
|
| 64 |
+
|
| 65 |
+
# Also save to sample_states for compatibility
|
| 66 |
+
sample_file = Path('examples/ai_testing/sample_states/captured_game.json')
|
| 67 |
+
sample_file.parent.mkdir(exist_ok=True)
|
| 68 |
+
with open(sample_file, 'w', encoding='utf-8') as f:
|
| 69 |
+
json.dump(last_state, f, indent=2, ensure_ascii=False)
|
| 70 |
+
|
| 71 |
+
print(f"\n\n{'='*80}")
|
| 72 |
+
print(f"Captured {len(captured_states)} states total")
|
| 73 |
+
print("="*80)
|
| 74 |
+
print(f"\nSaved states:")
|
| 75 |
+
print(f" - First: {first_file}")
|
| 76 |
+
print(f" - Last: {last_file}")
|
| 77 |
+
print(f" - Main: {sample_file}")
|
| 78 |
+
|
| 79 |
+
# Print summary of last state
|
| 80 |
+
print("\n" + "="*80)
|
| 81 |
+
print("FINAL GAME STATE SUMMARY")
|
| 82 |
+
print("="*80)
|
| 83 |
+
|
| 84 |
+
print(f"\nBoard:")
|
| 85 |
+
print(f" Hexes: {len(last_state.get('hexes', []))}")
|
| 86 |
+
print(f" Points: {len(last_state.get('points', []))} (with adjacency info)")
|
| 87 |
+
print(f" Settlements: {len(last_state.get('settlements', []))}")
|
| 88 |
+
print(f" Cities: {len(last_state.get('cities', []))}")
|
| 89 |
+
print(f" Roads: {len(last_state.get('roads', []))}")
|
| 90 |
+
|
| 91 |
+
print(f"\nPlayers:")
|
| 92 |
+
for player in last_state.get('players', []):
|
| 93 |
+
print(f" Player {player.get('id')}: {player.get('name')}")
|
| 94 |
+
print(f" VP: {player.get('victory_points', 0)}, Resources: {len(player.get('cards_list', []))}")
|
| 95 |
+
|
| 96 |
+
print(f"\nGame Info:")
|
| 97 |
+
print(f" Current Player: {last_state.get('current_player')}")
|
| 98 |
+
print(f" Phase: {last_state.get('current_phase')}")
|
| 99 |
+
|
| 100 |
+
print("\n" + "="*80)
|
| 101 |
+
|
| 102 |
+
return True
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
def main():
|
| 106 |
+
if len(sys.argv) > 1:
|
| 107 |
+
input_file = sys.argv[1]
|
| 108 |
+
else:
|
| 109 |
+
input_file = 'examples/data/game_moves_3Players.txt'
|
| 110 |
+
|
| 111 |
+
print(f"\nRunning game with: {input_file}")
|
| 112 |
+
print("Web Visualizer will open in browser...")
|
| 113 |
+
print("States are being captured in the background...")
|
| 114 |
+
print("="*80 + "\n")
|
| 115 |
+
|
| 116 |
+
# Read inputs
|
| 117 |
+
with open(input_file, 'r', encoding='utf-8') as f:
|
| 118 |
+
inputs = f.read()
|
| 119 |
+
|
| 120 |
+
from io import StringIO
|
| 121 |
+
sys.stdin = StringIO(inputs)
|
| 122 |
+
|
| 123 |
+
try:
|
| 124 |
+
from pycatan import RealGame
|
| 125 |
+
game = RealGame()
|
| 126 |
+
|
| 127 |
+
# The game will run with web server active
|
| 128 |
+
game.run()
|
| 129 |
+
|
| 130 |
+
except (EOFError, KeyboardInterrupt):
|
| 131 |
+
print("\n\nGame stopped by user")
|
| 132 |
+
except Exception as e:
|
| 133 |
+
print(f"\n\nError: {e}")
|
| 134 |
+
import traceback
|
| 135 |
+
traceback.print_exc()
|
| 136 |
+
|
| 137 |
+
# Save captured states
|
| 138 |
+
if save_captured_states():
|
| 139 |
+
print("\n" + "="*80)
|
| 140 |
+
print("SUCCESS!")
|
| 141 |
+
print("="*80)
|
| 142 |
+
print("\nThe web visualizer should still be open in your browser.")
|
| 143 |
+
print("You can see the final board state there.")
|
| 144 |
+
print("\nThe complete JSON (with points and adjacency info) is saved in:")
|
| 145 |
+
print(" examples/ai_testing/sample_states/captured_game.json")
|
| 146 |
+
print("\nTo see the full JSON, run:")
|
| 147 |
+
print(" Get-Content examples/ai_testing/sample_states/captured_game.json")
|
| 148 |
+
print("="*80)
|
| 149 |
+
|
| 150 |
+
# Keep the script alive so web server stays up
|
| 151 |
+
print("\n\nPress Ctrl+C to stop the web server and exit...")
|
| 152 |
+
try:
|
| 153 |
+
while True:
|
| 154 |
+
time.sleep(1)
|
| 155 |
+
except KeyboardInterrupt:
|
| 156 |
+
print("\n\nShutting down...")
|
| 157 |
+
|
| 158 |
+
|
| 159 |
+
if __name__ == '__main__':
|
| 160 |
+
main()
|
examples/ai_testing/my_games/game_20251223_203724_final.json
ADDED
|
@@ -0,0 +1,1850 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"hexes": [
|
| 3 |
+
{
|
| 4 |
+
"id": 1,
|
| 5 |
+
"q": 0,
|
| 6 |
+
"r": -2,
|
| 7 |
+
"type": "wood",
|
| 8 |
+
"number": 12,
|
| 9 |
+
"has_robber": false,
|
| 10 |
+
"position": [
|
| 11 |
+
0,
|
| 12 |
+
0
|
| 13 |
+
],
|
| 14 |
+
"axial_coords": [
|
| 15 |
+
0,
|
| 16 |
+
-2
|
| 17 |
+
]
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"id": 2,
|
| 21 |
+
"q": 1,
|
| 22 |
+
"r": -2,
|
| 23 |
+
"type": "sheep",
|
| 24 |
+
"number": 5,
|
| 25 |
+
"has_robber": false,
|
| 26 |
+
"position": [
|
| 27 |
+
0,
|
| 28 |
+
1
|
| 29 |
+
],
|
| 30 |
+
"axial_coords": [
|
| 31 |
+
1,
|
| 32 |
+
-2
|
| 33 |
+
]
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"id": 3,
|
| 37 |
+
"q": 2,
|
| 38 |
+
"r": -2,
|
| 39 |
+
"type": "wood",
|
| 40 |
+
"number": 4,
|
| 41 |
+
"has_robber": false,
|
| 42 |
+
"position": [
|
| 43 |
+
0,
|
| 44 |
+
2
|
| 45 |
+
],
|
| 46 |
+
"axial_coords": [
|
| 47 |
+
2,
|
| 48 |
+
-2
|
| 49 |
+
]
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"id": 4,
|
| 53 |
+
"q": -1,
|
| 54 |
+
"r": -1,
|
| 55 |
+
"type": "sheep",
|
| 56 |
+
"number": 8,
|
| 57 |
+
"has_robber": false,
|
| 58 |
+
"position": [
|
| 59 |
+
1,
|
| 60 |
+
0
|
| 61 |
+
],
|
| 62 |
+
"axial_coords": [
|
| 63 |
+
-1,
|
| 64 |
+
-1
|
| 65 |
+
]
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"id": 5,
|
| 69 |
+
"q": 0,
|
| 70 |
+
"r": -1,
|
| 71 |
+
"type": "brick",
|
| 72 |
+
"number": 6,
|
| 73 |
+
"has_robber": false,
|
| 74 |
+
"position": [
|
| 75 |
+
1,
|
| 76 |
+
1
|
| 77 |
+
],
|
| 78 |
+
"axial_coords": [
|
| 79 |
+
0,
|
| 80 |
+
-1
|
| 81 |
+
]
|
| 82 |
+
},
|
| 83 |
+
{
|
| 84 |
+
"id": 6,
|
| 85 |
+
"q": 1,
|
| 86 |
+
"r": -1,
|
| 87 |
+
"type": "wood",
|
| 88 |
+
"number": 3,
|
| 89 |
+
"has_robber": false,
|
| 90 |
+
"position": [
|
| 91 |
+
1,
|
| 92 |
+
2
|
| 93 |
+
],
|
| 94 |
+
"axial_coords": [
|
| 95 |
+
1,
|
| 96 |
+
-1
|
| 97 |
+
]
|
| 98 |
+
},
|
| 99 |
+
{
|
| 100 |
+
"id": 7,
|
| 101 |
+
"q": 2,
|
| 102 |
+
"r": -1,
|
| 103 |
+
"type": "wheat",
|
| 104 |
+
"number": 8,
|
| 105 |
+
"has_robber": false,
|
| 106 |
+
"position": [
|
| 107 |
+
1,
|
| 108 |
+
3
|
| 109 |
+
],
|
| 110 |
+
"axial_coords": [
|
| 111 |
+
2,
|
| 112 |
+
-1
|
| 113 |
+
]
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"id": 8,
|
| 117 |
+
"q": -2,
|
| 118 |
+
"r": 0,
|
| 119 |
+
"type": "brick",
|
| 120 |
+
"number": 10,
|
| 121 |
+
"has_robber": false,
|
| 122 |
+
"position": [
|
| 123 |
+
2,
|
| 124 |
+
0
|
| 125 |
+
],
|
| 126 |
+
"axial_coords": [
|
| 127 |
+
-2,
|
| 128 |
+
0
|
| 129 |
+
]
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"id": 9,
|
| 133 |
+
"q": -1,
|
| 134 |
+
"r": 0,
|
| 135 |
+
"type": "wood",
|
| 136 |
+
"number": 11,
|
| 137 |
+
"has_robber": false,
|
| 138 |
+
"position": [
|
| 139 |
+
2,
|
| 140 |
+
1
|
| 141 |
+
],
|
| 142 |
+
"axial_coords": [
|
| 143 |
+
-1,
|
| 144 |
+
0
|
| 145 |
+
]
|
| 146 |
+
},
|
| 147 |
+
{
|
| 148 |
+
"id": 10,
|
| 149 |
+
"q": 0,
|
| 150 |
+
"r": 0,
|
| 151 |
+
"type": "desert",
|
| 152 |
+
"number": null,
|
| 153 |
+
"has_robber": true,
|
| 154 |
+
"position": [
|
| 155 |
+
2,
|
| 156 |
+
2
|
| 157 |
+
],
|
| 158 |
+
"axial_coords": [
|
| 159 |
+
0,
|
| 160 |
+
0
|
| 161 |
+
]
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"id": 11,
|
| 165 |
+
"q": 1,
|
| 166 |
+
"r": 0,
|
| 167 |
+
"type": "ore",
|
| 168 |
+
"number": 3,
|
| 169 |
+
"has_robber": false,
|
| 170 |
+
"position": [
|
| 171 |
+
2,
|
| 172 |
+
3
|
| 173 |
+
],
|
| 174 |
+
"axial_coords": [
|
| 175 |
+
1,
|
| 176 |
+
0
|
| 177 |
+
]
|
| 178 |
+
},
|
| 179 |
+
{
|
| 180 |
+
"id": 12,
|
| 181 |
+
"q": 2,
|
| 182 |
+
"r": 0,
|
| 183 |
+
"type": "sheep",
|
| 184 |
+
"number": 4,
|
| 185 |
+
"has_robber": false,
|
| 186 |
+
"position": [
|
| 187 |
+
2,
|
| 188 |
+
4
|
| 189 |
+
],
|
| 190 |
+
"axial_coords": [
|
| 191 |
+
2,
|
| 192 |
+
0
|
| 193 |
+
]
|
| 194 |
+
},
|
| 195 |
+
{
|
| 196 |
+
"id": 13,
|
| 197 |
+
"q": -2,
|
| 198 |
+
"r": 1,
|
| 199 |
+
"type": "brick",
|
| 200 |
+
"number": 10,
|
| 201 |
+
"has_robber": false,
|
| 202 |
+
"position": [
|
| 203 |
+
3,
|
| 204 |
+
0
|
| 205 |
+
],
|
| 206 |
+
"axial_coords": [
|
| 207 |
+
-2,
|
| 208 |
+
1
|
| 209 |
+
]
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"id": 14,
|
| 213 |
+
"q": -1,
|
| 214 |
+
"r": 1,
|
| 215 |
+
"type": "wheat",
|
| 216 |
+
"number": 9,
|
| 217 |
+
"has_robber": false,
|
| 218 |
+
"position": [
|
| 219 |
+
3,
|
| 220 |
+
1
|
| 221 |
+
],
|
| 222 |
+
"axial_coords": [
|
| 223 |
+
-1,
|
| 224 |
+
1
|
| 225 |
+
]
|
| 226 |
+
},
|
| 227 |
+
{
|
| 228 |
+
"id": 15,
|
| 229 |
+
"q": 0,
|
| 230 |
+
"r": 1,
|
| 231 |
+
"type": "wheat",
|
| 232 |
+
"number": 6,
|
| 233 |
+
"has_robber": false,
|
| 234 |
+
"position": [
|
| 235 |
+
3,
|
| 236 |
+
2
|
| 237 |
+
],
|
| 238 |
+
"axial_coords": [
|
| 239 |
+
0,
|
| 240 |
+
1
|
| 241 |
+
]
|
| 242 |
+
},
|
| 243 |
+
{
|
| 244 |
+
"id": 16,
|
| 245 |
+
"q": 1,
|
| 246 |
+
"r": 1,
|
| 247 |
+
"type": "sheep",
|
| 248 |
+
"number": 11,
|
| 249 |
+
"has_robber": false,
|
| 250 |
+
"position": [
|
| 251 |
+
3,
|
| 252 |
+
3
|
| 253 |
+
],
|
| 254 |
+
"axial_coords": [
|
| 255 |
+
1,
|
| 256 |
+
1
|
| 257 |
+
]
|
| 258 |
+
},
|
| 259 |
+
{
|
| 260 |
+
"id": 17,
|
| 261 |
+
"q": -2,
|
| 262 |
+
"r": 2,
|
| 263 |
+
"type": "ore",
|
| 264 |
+
"number": 5,
|
| 265 |
+
"has_robber": false,
|
| 266 |
+
"position": [
|
| 267 |
+
4,
|
| 268 |
+
0
|
| 269 |
+
],
|
| 270 |
+
"axial_coords": [
|
| 271 |
+
-2,
|
| 272 |
+
2
|
| 273 |
+
]
|
| 274 |
+
},
|
| 275 |
+
{
|
| 276 |
+
"id": 18,
|
| 277 |
+
"q": -1,
|
| 278 |
+
"r": 2,
|
| 279 |
+
"type": "wheat",
|
| 280 |
+
"number": 9,
|
| 281 |
+
"has_robber": false,
|
| 282 |
+
"position": [
|
| 283 |
+
4,
|
| 284 |
+
1
|
| 285 |
+
],
|
| 286 |
+
"axial_coords": [
|
| 287 |
+
-1,
|
| 288 |
+
2
|
| 289 |
+
]
|
| 290 |
+
},
|
| 291 |
+
{
|
| 292 |
+
"id": 19,
|
| 293 |
+
"q": 0,
|
| 294 |
+
"r": 2,
|
| 295 |
+
"type": "ore",
|
| 296 |
+
"number": 2,
|
| 297 |
+
"has_robber": false,
|
| 298 |
+
"position": [
|
| 299 |
+
4,
|
| 300 |
+
2
|
| 301 |
+
],
|
| 302 |
+
"axial_coords": [
|
| 303 |
+
0,
|
| 304 |
+
2
|
| 305 |
+
]
|
| 306 |
+
}
|
| 307 |
+
],
|
| 308 |
+
"settlements": [],
|
| 309 |
+
"cities": [],
|
| 310 |
+
"roads": [],
|
| 311 |
+
"players": [
|
| 312 |
+
{
|
| 313 |
+
"id": 0,
|
| 314 |
+
"name": "a",
|
| 315 |
+
"victory_points": 0,
|
| 316 |
+
"total_cards": 0,
|
| 317 |
+
"cards_list": [],
|
| 318 |
+
"dev_cards_list": [],
|
| 319 |
+
"settlements": 0,
|
| 320 |
+
"cities": 0,
|
| 321 |
+
"roads": 0,
|
| 322 |
+
"longest_road": 0,
|
| 323 |
+
"has_longest_road": false,
|
| 324 |
+
"knights": 0,
|
| 325 |
+
"knights_played": 0,
|
| 326 |
+
"has_largest_army": false
|
| 327 |
+
},
|
| 328 |
+
{
|
| 329 |
+
"id": 1,
|
| 330 |
+
"name": "b",
|
| 331 |
+
"victory_points": 0,
|
| 332 |
+
"total_cards": 0,
|
| 333 |
+
"cards_list": [],
|
| 334 |
+
"dev_cards_list": [],
|
| 335 |
+
"settlements": 0,
|
| 336 |
+
"cities": 0,
|
| 337 |
+
"roads": 0,
|
| 338 |
+
"longest_road": 0,
|
| 339 |
+
"has_longest_road": false,
|
| 340 |
+
"knights": 0,
|
| 341 |
+
"knights_played": 0,
|
| 342 |
+
"has_largest_army": false
|
| 343 |
+
},
|
| 344 |
+
{
|
| 345 |
+
"id": 2,
|
| 346 |
+
"name": "c",
|
| 347 |
+
"victory_points": 0,
|
| 348 |
+
"total_cards": 0,
|
| 349 |
+
"cards_list": [],
|
| 350 |
+
"dev_cards_list": [],
|
| 351 |
+
"settlements": 0,
|
| 352 |
+
"cities": 0,
|
| 353 |
+
"roads": 0,
|
| 354 |
+
"longest_road": 0,
|
| 355 |
+
"has_longest_road": false,
|
| 356 |
+
"knights": 0,
|
| 357 |
+
"knights_played": 0,
|
| 358 |
+
"has_largest_army": false
|
| 359 |
+
}
|
| 360 |
+
],
|
| 361 |
+
"current_player": 0,
|
| 362 |
+
"current_phase": "SETUP_FIRST_ROUND",
|
| 363 |
+
"robber_position": [
|
| 364 |
+
2,
|
| 365 |
+
2
|
| 366 |
+
],
|
| 367 |
+
"dice_result": null,
|
| 368 |
+
"points": [
|
| 369 |
+
{
|
| 370 |
+
"point_id": 1,
|
| 371 |
+
"game_coords": [
|
| 372 |
+
0,
|
| 373 |
+
0
|
| 374 |
+
],
|
| 375 |
+
"adjacent_points": [
|
| 376 |
+
2,
|
| 377 |
+
9
|
| 378 |
+
],
|
| 379 |
+
"adjacent_hexes": [
|
| 380 |
+
1
|
| 381 |
+
],
|
| 382 |
+
"pixel_coords": [
|
| 383 |
+
377.5,
|
| 384 |
+
105.14428414850131
|
| 385 |
+
]
|
| 386 |
+
},
|
| 387 |
+
{
|
| 388 |
+
"point_id": 2,
|
| 389 |
+
"game_coords": [
|
| 390 |
+
0,
|
| 391 |
+
1
|
| 392 |
+
],
|
| 393 |
+
"adjacent_points": [
|
| 394 |
+
1,
|
| 395 |
+
3
|
| 396 |
+
],
|
| 397 |
+
"adjacent_hexes": [
|
| 398 |
+
1
|
| 399 |
+
],
|
| 400 |
+
"pixel_coords": [
|
| 401 |
+
422.5,
|
| 402 |
+
105.14428414850128
|
| 403 |
+
]
|
| 404 |
+
},
|
| 405 |
+
{
|
| 406 |
+
"point_id": 3,
|
| 407 |
+
"game_coords": [
|
| 408 |
+
0,
|
| 409 |
+
2
|
| 410 |
+
],
|
| 411 |
+
"adjacent_points": [
|
| 412 |
+
2,
|
| 413 |
+
4,
|
| 414 |
+
11
|
| 415 |
+
],
|
| 416 |
+
"adjacent_hexes": [
|
| 417 |
+
2,
|
| 418 |
+
1
|
| 419 |
+
],
|
| 420 |
+
"pixel_coords": [
|
| 421 |
+
445,
|
| 422 |
+
144.11542731880104
|
| 423 |
+
]
|
| 424 |
+
},
|
| 425 |
+
{
|
| 426 |
+
"point_id": 4,
|
| 427 |
+
"game_coords": [
|
| 428 |
+
0,
|
| 429 |
+
3
|
| 430 |
+
],
|
| 431 |
+
"adjacent_points": [
|
| 432 |
+
3,
|
| 433 |
+
5
|
| 434 |
+
],
|
| 435 |
+
"adjacent_hexes": [
|
| 436 |
+
2
|
| 437 |
+
],
|
| 438 |
+
"pixel_coords": [
|
| 439 |
+
490,
|
| 440 |
+
144.11542731880104
|
| 441 |
+
]
|
| 442 |
+
},
|
| 443 |
+
{
|
| 444 |
+
"point_id": 5,
|
| 445 |
+
"game_coords": [
|
| 446 |
+
0,
|
| 447 |
+
4
|
| 448 |
+
],
|
| 449 |
+
"adjacent_points": [
|
| 450 |
+
4,
|
| 451 |
+
6,
|
| 452 |
+
13
|
| 453 |
+
],
|
| 454 |
+
"adjacent_hexes": [
|
| 455 |
+
3,
|
| 456 |
+
2
|
| 457 |
+
],
|
| 458 |
+
"pixel_coords": [
|
| 459 |
+
512.5,
|
| 460 |
+
183.08657048910078
|
| 461 |
+
]
|
| 462 |
+
},
|
| 463 |
+
{
|
| 464 |
+
"point_id": 6,
|
| 465 |
+
"game_coords": [
|
| 466 |
+
0,
|
| 467 |
+
5
|
| 468 |
+
],
|
| 469 |
+
"adjacent_points": [
|
| 470 |
+
5,
|
| 471 |
+
7
|
| 472 |
+
],
|
| 473 |
+
"adjacent_hexes": [
|
| 474 |
+
3
|
| 475 |
+
],
|
| 476 |
+
"pixel_coords": [
|
| 477 |
+
557.5,
|
| 478 |
+
183.08657048910078
|
| 479 |
+
]
|
| 480 |
+
},
|
| 481 |
+
{
|
| 482 |
+
"point_id": 7,
|
| 483 |
+
"game_coords": [
|
| 484 |
+
0,
|
| 485 |
+
6
|
| 486 |
+
],
|
| 487 |
+
"adjacent_points": [
|
| 488 |
+
6,
|
| 489 |
+
15
|
| 490 |
+
],
|
| 491 |
+
"adjacent_hexes": [
|
| 492 |
+
3
|
| 493 |
+
],
|
| 494 |
+
"pixel_coords": [
|
| 495 |
+
580,
|
| 496 |
+
222.05771365940052
|
| 497 |
+
]
|
| 498 |
+
},
|
| 499 |
+
{
|
| 500 |
+
"point_id": 8,
|
| 501 |
+
"game_coords": [
|
| 502 |
+
1,
|
| 503 |
+
0
|
| 504 |
+
],
|
| 505 |
+
"adjacent_points": [
|
| 506 |
+
9,
|
| 507 |
+
18
|
| 508 |
+
],
|
| 509 |
+
"adjacent_hexes": [
|
| 510 |
+
4
|
| 511 |
+
],
|
| 512 |
+
"pixel_coords": [
|
| 513 |
+
310,
|
| 514 |
+
144.11542731880104
|
| 515 |
+
]
|
| 516 |
+
},
|
| 517 |
+
{
|
| 518 |
+
"point_id": 9,
|
| 519 |
+
"game_coords": [
|
| 520 |
+
1,
|
| 521 |
+
1
|
| 522 |
+
],
|
| 523 |
+
"adjacent_points": [
|
| 524 |
+
8,
|
| 525 |
+
10,
|
| 526 |
+
1
|
| 527 |
+
],
|
| 528 |
+
"adjacent_hexes": [
|
| 529 |
+
4,
|
| 530 |
+
1
|
| 531 |
+
],
|
| 532 |
+
"pixel_coords": [
|
| 533 |
+
355,
|
| 534 |
+
144.11542731880104
|
| 535 |
+
]
|
| 536 |
+
},
|
| 537 |
+
{
|
| 538 |
+
"point_id": 10,
|
| 539 |
+
"game_coords": [
|
| 540 |
+
1,
|
| 541 |
+
2
|
| 542 |
+
],
|
| 543 |
+
"adjacent_points": [
|
| 544 |
+
9,
|
| 545 |
+
11,
|
| 546 |
+
20
|
| 547 |
+
],
|
| 548 |
+
"adjacent_hexes": [
|
| 549 |
+
5,
|
| 550 |
+
4,
|
| 551 |
+
1
|
| 552 |
+
],
|
| 553 |
+
"pixel_coords": [
|
| 554 |
+
377.5,
|
| 555 |
+
183.08657048910078
|
| 556 |
+
]
|
| 557 |
+
},
|
| 558 |
+
{
|
| 559 |
+
"point_id": 11,
|
| 560 |
+
"game_coords": [
|
| 561 |
+
1,
|
| 562 |
+
3
|
| 563 |
+
],
|
| 564 |
+
"adjacent_points": [
|
| 565 |
+
10,
|
| 566 |
+
12,
|
| 567 |
+
3
|
| 568 |
+
],
|
| 569 |
+
"adjacent_hexes": [
|
| 570 |
+
5,
|
| 571 |
+
2,
|
| 572 |
+
1
|
| 573 |
+
],
|
| 574 |
+
"pixel_coords": [
|
| 575 |
+
422.5,
|
| 576 |
+
183.08657048910078
|
| 577 |
+
]
|
| 578 |
+
},
|
| 579 |
+
{
|
| 580 |
+
"point_id": 12,
|
| 581 |
+
"game_coords": [
|
| 582 |
+
1,
|
| 583 |
+
4
|
| 584 |
+
],
|
| 585 |
+
"adjacent_points": [
|
| 586 |
+
11,
|
| 587 |
+
13,
|
| 588 |
+
22
|
| 589 |
+
],
|
| 590 |
+
"adjacent_hexes": [
|
| 591 |
+
6,
|
| 592 |
+
5,
|
| 593 |
+
2
|
| 594 |
+
],
|
| 595 |
+
"pixel_coords": [
|
| 596 |
+
445,
|
| 597 |
+
222.05771365940052
|
| 598 |
+
]
|
| 599 |
+
},
|
| 600 |
+
{
|
| 601 |
+
"point_id": 13,
|
| 602 |
+
"game_coords": [
|
| 603 |
+
1,
|
| 604 |
+
5
|
| 605 |
+
],
|
| 606 |
+
"adjacent_points": [
|
| 607 |
+
12,
|
| 608 |
+
14,
|
| 609 |
+
5
|
| 610 |
+
],
|
| 611 |
+
"adjacent_hexes": [
|
| 612 |
+
6,
|
| 613 |
+
3,
|
| 614 |
+
2
|
| 615 |
+
],
|
| 616 |
+
"pixel_coords": [
|
| 617 |
+
490,
|
| 618 |
+
222.05771365940052
|
| 619 |
+
]
|
| 620 |
+
},
|
| 621 |
+
{
|
| 622 |
+
"point_id": 14,
|
| 623 |
+
"game_coords": [
|
| 624 |
+
1,
|
| 625 |
+
6
|
| 626 |
+
],
|
| 627 |
+
"adjacent_points": [
|
| 628 |
+
13,
|
| 629 |
+
15,
|
| 630 |
+
24
|
| 631 |
+
],
|
| 632 |
+
"adjacent_hexes": [
|
| 633 |
+
7,
|
| 634 |
+
6,
|
| 635 |
+
3
|
| 636 |
+
],
|
| 637 |
+
"pixel_coords": [
|
| 638 |
+
512.5,
|
| 639 |
+
261.02885682970026
|
| 640 |
+
]
|
| 641 |
+
},
|
| 642 |
+
{
|
| 643 |
+
"point_id": 15,
|
| 644 |
+
"game_coords": [
|
| 645 |
+
1,
|
| 646 |
+
7
|
| 647 |
+
],
|
| 648 |
+
"adjacent_points": [
|
| 649 |
+
14,
|
| 650 |
+
16,
|
| 651 |
+
7
|
| 652 |
+
],
|
| 653 |
+
"adjacent_hexes": [
|
| 654 |
+
7,
|
| 655 |
+
3
|
| 656 |
+
],
|
| 657 |
+
"pixel_coords": [
|
| 658 |
+
557.5,
|
| 659 |
+
261.02885682970026
|
| 660 |
+
]
|
| 661 |
+
},
|
| 662 |
+
{
|
| 663 |
+
"point_id": 16,
|
| 664 |
+
"game_coords": [
|
| 665 |
+
1,
|
| 666 |
+
8
|
| 667 |
+
],
|
| 668 |
+
"adjacent_points": [
|
| 669 |
+
15,
|
| 670 |
+
26
|
| 671 |
+
],
|
| 672 |
+
"adjacent_hexes": [
|
| 673 |
+
7
|
| 674 |
+
],
|
| 675 |
+
"pixel_coords": [
|
| 676 |
+
580,
|
| 677 |
+
300
|
| 678 |
+
]
|
| 679 |
+
},
|
| 680 |
+
{
|
| 681 |
+
"point_id": 17,
|
| 682 |
+
"game_coords": [
|
| 683 |
+
2,
|
| 684 |
+
0
|
| 685 |
+
],
|
| 686 |
+
"adjacent_points": [
|
| 687 |
+
18,
|
| 688 |
+
28
|
| 689 |
+
],
|
| 690 |
+
"adjacent_hexes": [
|
| 691 |
+
8
|
| 692 |
+
],
|
| 693 |
+
"pixel_coords": [
|
| 694 |
+
242.49999999999997,
|
| 695 |
+
183.08657048910078
|
| 696 |
+
]
|
| 697 |
+
},
|
| 698 |
+
{
|
| 699 |
+
"point_id": 18,
|
| 700 |
+
"game_coords": [
|
| 701 |
+
2,
|
| 702 |
+
1
|
| 703 |
+
],
|
| 704 |
+
"adjacent_points": [
|
| 705 |
+
17,
|
| 706 |
+
19,
|
| 707 |
+
8
|
| 708 |
+
],
|
| 709 |
+
"adjacent_hexes": [
|
| 710 |
+
8,
|
| 711 |
+
4
|
| 712 |
+
],
|
| 713 |
+
"pixel_coords": [
|
| 714 |
+
287.5,
|
| 715 |
+
183.08657048910078
|
| 716 |
+
]
|
| 717 |
+
},
|
| 718 |
+
{
|
| 719 |
+
"point_id": 19,
|
| 720 |
+
"game_coords": [
|
| 721 |
+
2,
|
| 722 |
+
2
|
| 723 |
+
],
|
| 724 |
+
"adjacent_points": [
|
| 725 |
+
18,
|
| 726 |
+
20,
|
| 727 |
+
30
|
| 728 |
+
],
|
| 729 |
+
"adjacent_hexes": [
|
| 730 |
+
9,
|
| 731 |
+
8,
|
| 732 |
+
4
|
| 733 |
+
],
|
| 734 |
+
"pixel_coords": [
|
| 735 |
+
310,
|
| 736 |
+
222.05771365940052
|
| 737 |
+
]
|
| 738 |
+
},
|
| 739 |
+
{
|
| 740 |
+
"point_id": 20,
|
| 741 |
+
"game_coords": [
|
| 742 |
+
2,
|
| 743 |
+
3
|
| 744 |
+
],
|
| 745 |
+
"adjacent_points": [
|
| 746 |
+
19,
|
| 747 |
+
21,
|
| 748 |
+
10
|
| 749 |
+
],
|
| 750 |
+
"adjacent_hexes": [
|
| 751 |
+
9,
|
| 752 |
+
5,
|
| 753 |
+
4
|
| 754 |
+
],
|
| 755 |
+
"pixel_coords": [
|
| 756 |
+
355,
|
| 757 |
+
222.05771365940052
|
| 758 |
+
]
|
| 759 |
+
},
|
| 760 |
+
{
|
| 761 |
+
"point_id": 21,
|
| 762 |
+
"game_coords": [
|
| 763 |
+
2,
|
| 764 |
+
4
|
| 765 |
+
],
|
| 766 |
+
"adjacent_points": [
|
| 767 |
+
20,
|
| 768 |
+
22,
|
| 769 |
+
32
|
| 770 |
+
],
|
| 771 |
+
"adjacent_hexes": [
|
| 772 |
+
10,
|
| 773 |
+
9,
|
| 774 |
+
5
|
| 775 |
+
],
|
| 776 |
+
"pixel_coords": [
|
| 777 |
+
377.5,
|
| 778 |
+
261.02885682970026
|
| 779 |
+
]
|
| 780 |
+
},
|
| 781 |
+
{
|
| 782 |
+
"point_id": 22,
|
| 783 |
+
"game_coords": [
|
| 784 |
+
2,
|
| 785 |
+
5
|
| 786 |
+
],
|
| 787 |
+
"adjacent_points": [
|
| 788 |
+
21,
|
| 789 |
+
23,
|
| 790 |
+
12
|
| 791 |
+
],
|
| 792 |
+
"adjacent_hexes": [
|
| 793 |
+
10,
|
| 794 |
+
6,
|
| 795 |
+
5
|
| 796 |
+
],
|
| 797 |
+
"pixel_coords": [
|
| 798 |
+
422.5,
|
| 799 |
+
261.02885682970026
|
| 800 |
+
]
|
| 801 |
+
},
|
| 802 |
+
{
|
| 803 |
+
"point_id": 23,
|
| 804 |
+
"game_coords": [
|
| 805 |
+
2,
|
| 806 |
+
6
|
| 807 |
+
],
|
| 808 |
+
"adjacent_points": [
|
| 809 |
+
22,
|
| 810 |
+
24,
|
| 811 |
+
34
|
| 812 |
+
],
|
| 813 |
+
"adjacent_hexes": [
|
| 814 |
+
11,
|
| 815 |
+
10,
|
| 816 |
+
6
|
| 817 |
+
],
|
| 818 |
+
"pixel_coords": [
|
| 819 |
+
445,
|
| 820 |
+
300
|
| 821 |
+
]
|
| 822 |
+
},
|
| 823 |
+
{
|
| 824 |
+
"point_id": 24,
|
| 825 |
+
"game_coords": [
|
| 826 |
+
2,
|
| 827 |
+
7
|
| 828 |
+
],
|
| 829 |
+
"adjacent_points": [
|
| 830 |
+
23,
|
| 831 |
+
25,
|
| 832 |
+
14
|
| 833 |
+
],
|
| 834 |
+
"adjacent_hexes": [
|
| 835 |
+
11,
|
| 836 |
+
7,
|
| 837 |
+
6
|
| 838 |
+
],
|
| 839 |
+
"pixel_coords": [
|
| 840 |
+
490,
|
| 841 |
+
300
|
| 842 |
+
]
|
| 843 |
+
},
|
| 844 |
+
{
|
| 845 |
+
"point_id": 25,
|
| 846 |
+
"game_coords": [
|
| 847 |
+
2,
|
| 848 |
+
8
|
| 849 |
+
],
|
| 850 |
+
"adjacent_points": [
|
| 851 |
+
24,
|
| 852 |
+
26,
|
| 853 |
+
36
|
| 854 |
+
],
|
| 855 |
+
"adjacent_hexes": [
|
| 856 |
+
12,
|
| 857 |
+
11,
|
| 858 |
+
7
|
| 859 |
+
],
|
| 860 |
+
"pixel_coords": [
|
| 861 |
+
512.5,
|
| 862 |
+
338.97114317029974
|
| 863 |
+
]
|
| 864 |
+
},
|
| 865 |
+
{
|
| 866 |
+
"point_id": 26,
|
| 867 |
+
"game_coords": [
|
| 868 |
+
2,
|
| 869 |
+
9
|
| 870 |
+
],
|
| 871 |
+
"adjacent_points": [
|
| 872 |
+
25,
|
| 873 |
+
27,
|
| 874 |
+
16
|
| 875 |
+
],
|
| 876 |
+
"adjacent_hexes": [
|
| 877 |
+
12,
|
| 878 |
+
7
|
| 879 |
+
],
|
| 880 |
+
"pixel_coords": [
|
| 881 |
+
557.5,
|
| 882 |
+
338.97114317029974
|
| 883 |
+
]
|
| 884 |
+
},
|
| 885 |
+
{
|
| 886 |
+
"point_id": 27,
|
| 887 |
+
"game_coords": [
|
| 888 |
+
2,
|
| 889 |
+
10
|
| 890 |
+
],
|
| 891 |
+
"adjacent_points": [
|
| 892 |
+
26,
|
| 893 |
+
38
|
| 894 |
+
],
|
| 895 |
+
"adjacent_hexes": [
|
| 896 |
+
12
|
| 897 |
+
],
|
| 898 |
+
"pixel_coords": [
|
| 899 |
+
580,
|
| 900 |
+
377.9422863405995
|
| 901 |
+
]
|
| 902 |
+
},
|
| 903 |
+
{
|
| 904 |
+
"point_id": 28,
|
| 905 |
+
"game_coords": [
|
| 906 |
+
3,
|
| 907 |
+
0
|
| 908 |
+
],
|
| 909 |
+
"adjacent_points": [
|
| 910 |
+
29,
|
| 911 |
+
17
|
| 912 |
+
],
|
| 913 |
+
"adjacent_hexes": [
|
| 914 |
+
8
|
| 915 |
+
],
|
| 916 |
+
"pixel_coords": [
|
| 917 |
+
220,
|
| 918 |
+
222.05771365940052
|
| 919 |
+
]
|
| 920 |
+
},
|
| 921 |
+
{
|
| 922 |
+
"point_id": 29,
|
| 923 |
+
"game_coords": [
|
| 924 |
+
3,
|
| 925 |
+
1
|
| 926 |
+
],
|
| 927 |
+
"adjacent_points": [
|
| 928 |
+
28,
|
| 929 |
+
30,
|
| 930 |
+
39
|
| 931 |
+
],
|
| 932 |
+
"adjacent_hexes": [
|
| 933 |
+
13,
|
| 934 |
+
8
|
| 935 |
+
],
|
| 936 |
+
"pixel_coords": [
|
| 937 |
+
242.5,
|
| 938 |
+
261.02885682970026
|
| 939 |
+
]
|
| 940 |
+
},
|
| 941 |
+
{
|
| 942 |
+
"point_id": 30,
|
| 943 |
+
"game_coords": [
|
| 944 |
+
3,
|
| 945 |
+
2
|
| 946 |
+
],
|
| 947 |
+
"adjacent_points": [
|
| 948 |
+
29,
|
| 949 |
+
31,
|
| 950 |
+
19
|
| 951 |
+
],
|
| 952 |
+
"adjacent_hexes": [
|
| 953 |
+
13,
|
| 954 |
+
9,
|
| 955 |
+
8
|
| 956 |
+
],
|
| 957 |
+
"pixel_coords": [
|
| 958 |
+
287.5,
|
| 959 |
+
261.02885682970026
|
| 960 |
+
]
|
| 961 |
+
},
|
| 962 |
+
{
|
| 963 |
+
"point_id": 31,
|
| 964 |
+
"game_coords": [
|
| 965 |
+
3,
|
| 966 |
+
3
|
| 967 |
+
],
|
| 968 |
+
"adjacent_points": [
|
| 969 |
+
30,
|
| 970 |
+
32,
|
| 971 |
+
41
|
| 972 |
+
],
|
| 973 |
+
"adjacent_hexes": [
|
| 974 |
+
14,
|
| 975 |
+
13,
|
| 976 |
+
9
|
| 977 |
+
],
|
| 978 |
+
"pixel_coords": [
|
| 979 |
+
310,
|
| 980 |
+
300
|
| 981 |
+
]
|
| 982 |
+
},
|
| 983 |
+
{
|
| 984 |
+
"point_id": 32,
|
| 985 |
+
"game_coords": [
|
| 986 |
+
3,
|
| 987 |
+
4
|
| 988 |
+
],
|
| 989 |
+
"adjacent_points": [
|
| 990 |
+
31,
|
| 991 |
+
33,
|
| 992 |
+
21
|
| 993 |
+
],
|
| 994 |
+
"adjacent_hexes": [
|
| 995 |
+
14,
|
| 996 |
+
10,
|
| 997 |
+
9
|
| 998 |
+
],
|
| 999 |
+
"pixel_coords": [
|
| 1000 |
+
355,
|
| 1001 |
+
300
|
| 1002 |
+
]
|
| 1003 |
+
},
|
| 1004 |
+
{
|
| 1005 |
+
"point_id": 33,
|
| 1006 |
+
"game_coords": [
|
| 1007 |
+
3,
|
| 1008 |
+
5
|
| 1009 |
+
],
|
| 1010 |
+
"adjacent_points": [
|
| 1011 |
+
32,
|
| 1012 |
+
34,
|
| 1013 |
+
43
|
| 1014 |
+
],
|
| 1015 |
+
"adjacent_hexes": [
|
| 1016 |
+
15,
|
| 1017 |
+
14,
|
| 1018 |
+
10
|
| 1019 |
+
],
|
| 1020 |
+
"pixel_coords": [
|
| 1021 |
+
377.5,
|
| 1022 |
+
338.97114317029974
|
| 1023 |
+
]
|
| 1024 |
+
},
|
| 1025 |
+
{
|
| 1026 |
+
"point_id": 34,
|
| 1027 |
+
"game_coords": [
|
| 1028 |
+
3,
|
| 1029 |
+
6
|
| 1030 |
+
],
|
| 1031 |
+
"adjacent_points": [
|
| 1032 |
+
33,
|
| 1033 |
+
35,
|
| 1034 |
+
23
|
| 1035 |
+
],
|
| 1036 |
+
"adjacent_hexes": [
|
| 1037 |
+
15,
|
| 1038 |
+
11,
|
| 1039 |
+
10
|
| 1040 |
+
],
|
| 1041 |
+
"pixel_coords": [
|
| 1042 |
+
422.5,
|
| 1043 |
+
338.97114317029974
|
| 1044 |
+
]
|
| 1045 |
+
},
|
| 1046 |
+
{
|
| 1047 |
+
"point_id": 35,
|
| 1048 |
+
"game_coords": [
|
| 1049 |
+
3,
|
| 1050 |
+
7
|
| 1051 |
+
],
|
| 1052 |
+
"adjacent_points": [
|
| 1053 |
+
34,
|
| 1054 |
+
36,
|
| 1055 |
+
45
|
| 1056 |
+
],
|
| 1057 |
+
"adjacent_hexes": [
|
| 1058 |
+
16,
|
| 1059 |
+
15,
|
| 1060 |
+
11
|
| 1061 |
+
],
|
| 1062 |
+
"pixel_coords": [
|
| 1063 |
+
445,
|
| 1064 |
+
377.9422863405995
|
| 1065 |
+
]
|
| 1066 |
+
},
|
| 1067 |
+
{
|
| 1068 |
+
"point_id": 36,
|
| 1069 |
+
"game_coords": [
|
| 1070 |
+
3,
|
| 1071 |
+
8
|
| 1072 |
+
],
|
| 1073 |
+
"adjacent_points": [
|
| 1074 |
+
35,
|
| 1075 |
+
37,
|
| 1076 |
+
25
|
| 1077 |
+
],
|
| 1078 |
+
"adjacent_hexes": [
|
| 1079 |
+
16,
|
| 1080 |
+
12,
|
| 1081 |
+
11
|
| 1082 |
+
],
|
| 1083 |
+
"pixel_coords": [
|
| 1084 |
+
490,
|
| 1085 |
+
377.9422863405995
|
| 1086 |
+
]
|
| 1087 |
+
},
|
| 1088 |
+
{
|
| 1089 |
+
"point_id": 37,
|
| 1090 |
+
"game_coords": [
|
| 1091 |
+
3,
|
| 1092 |
+
9
|
| 1093 |
+
],
|
| 1094 |
+
"adjacent_points": [
|
| 1095 |
+
36,
|
| 1096 |
+
38,
|
| 1097 |
+
47
|
| 1098 |
+
],
|
| 1099 |
+
"adjacent_hexes": [
|
| 1100 |
+
16,
|
| 1101 |
+
12
|
| 1102 |
+
],
|
| 1103 |
+
"pixel_coords": [
|
| 1104 |
+
512.5,
|
| 1105 |
+
416.9134295108992
|
| 1106 |
+
]
|
| 1107 |
+
},
|
| 1108 |
+
{
|
| 1109 |
+
"point_id": 38,
|
| 1110 |
+
"game_coords": [
|
| 1111 |
+
3,
|
| 1112 |
+
10
|
| 1113 |
+
],
|
| 1114 |
+
"adjacent_points": [
|
| 1115 |
+
37,
|
| 1116 |
+
27
|
| 1117 |
+
],
|
| 1118 |
+
"adjacent_hexes": [
|
| 1119 |
+
12
|
| 1120 |
+
],
|
| 1121 |
+
"pixel_coords": [
|
| 1122 |
+
557.5,
|
| 1123 |
+
416.9134295108992
|
| 1124 |
+
]
|
| 1125 |
+
},
|
| 1126 |
+
{
|
| 1127 |
+
"point_id": 39,
|
| 1128 |
+
"game_coords": [
|
| 1129 |
+
4,
|
| 1130 |
+
0
|
| 1131 |
+
],
|
| 1132 |
+
"adjacent_points": [
|
| 1133 |
+
40,
|
| 1134 |
+
29
|
| 1135 |
+
],
|
| 1136 |
+
"adjacent_hexes": [
|
| 1137 |
+
13
|
| 1138 |
+
],
|
| 1139 |
+
"pixel_coords": [
|
| 1140 |
+
220,
|
| 1141 |
+
300
|
| 1142 |
+
]
|
| 1143 |
+
},
|
| 1144 |
+
{
|
| 1145 |
+
"point_id": 40,
|
| 1146 |
+
"game_coords": [
|
| 1147 |
+
4,
|
| 1148 |
+
1
|
| 1149 |
+
],
|
| 1150 |
+
"adjacent_points": [
|
| 1151 |
+
39,
|
| 1152 |
+
41,
|
| 1153 |
+
48
|
| 1154 |
+
],
|
| 1155 |
+
"adjacent_hexes": [
|
| 1156 |
+
17,
|
| 1157 |
+
13
|
| 1158 |
+
],
|
| 1159 |
+
"pixel_coords": [
|
| 1160 |
+
242.5,
|
| 1161 |
+
338.97114317029974
|
| 1162 |
+
]
|
| 1163 |
+
},
|
| 1164 |
+
{
|
| 1165 |
+
"point_id": 41,
|
| 1166 |
+
"game_coords": [
|
| 1167 |
+
4,
|
| 1168 |
+
2
|
| 1169 |
+
],
|
| 1170 |
+
"adjacent_points": [
|
| 1171 |
+
40,
|
| 1172 |
+
42,
|
| 1173 |
+
31
|
| 1174 |
+
],
|
| 1175 |
+
"adjacent_hexes": [
|
| 1176 |
+
17,
|
| 1177 |
+
14,
|
| 1178 |
+
13
|
| 1179 |
+
],
|
| 1180 |
+
"pixel_coords": [
|
| 1181 |
+
287.5,
|
| 1182 |
+
338.97114317029974
|
| 1183 |
+
]
|
| 1184 |
+
},
|
| 1185 |
+
{
|
| 1186 |
+
"point_id": 42,
|
| 1187 |
+
"game_coords": [
|
| 1188 |
+
4,
|
| 1189 |
+
3
|
| 1190 |
+
],
|
| 1191 |
+
"adjacent_points": [
|
| 1192 |
+
41,
|
| 1193 |
+
43,
|
| 1194 |
+
50
|
| 1195 |
+
],
|
| 1196 |
+
"adjacent_hexes": [
|
| 1197 |
+
18,
|
| 1198 |
+
17,
|
| 1199 |
+
14
|
| 1200 |
+
],
|
| 1201 |
+
"pixel_coords": [
|
| 1202 |
+
310,
|
| 1203 |
+
377.9422863405995
|
| 1204 |
+
]
|
| 1205 |
+
},
|
| 1206 |
+
{
|
| 1207 |
+
"point_id": 43,
|
| 1208 |
+
"game_coords": [
|
| 1209 |
+
4,
|
| 1210 |
+
4
|
| 1211 |
+
],
|
| 1212 |
+
"adjacent_points": [
|
| 1213 |
+
42,
|
| 1214 |
+
44,
|
| 1215 |
+
33
|
| 1216 |
+
],
|
| 1217 |
+
"adjacent_hexes": [
|
| 1218 |
+
18,
|
| 1219 |
+
15,
|
| 1220 |
+
14
|
| 1221 |
+
],
|
| 1222 |
+
"pixel_coords": [
|
| 1223 |
+
355,
|
| 1224 |
+
377.9422863405995
|
| 1225 |
+
]
|
| 1226 |
+
},
|
| 1227 |
+
{
|
| 1228 |
+
"point_id": 44,
|
| 1229 |
+
"game_coords": [
|
| 1230 |
+
4,
|
| 1231 |
+
5
|
| 1232 |
+
],
|
| 1233 |
+
"adjacent_points": [
|
| 1234 |
+
43,
|
| 1235 |
+
45,
|
| 1236 |
+
52
|
| 1237 |
+
],
|
| 1238 |
+
"adjacent_hexes": [
|
| 1239 |
+
19,
|
| 1240 |
+
18,
|
| 1241 |
+
15
|
| 1242 |
+
],
|
| 1243 |
+
"pixel_coords": [
|
| 1244 |
+
377.5,
|
| 1245 |
+
416.9134295108992
|
| 1246 |
+
]
|
| 1247 |
+
},
|
| 1248 |
+
{
|
| 1249 |
+
"point_id": 45,
|
| 1250 |
+
"game_coords": [
|
| 1251 |
+
4,
|
| 1252 |
+
6
|
| 1253 |
+
],
|
| 1254 |
+
"adjacent_points": [
|
| 1255 |
+
44,
|
| 1256 |
+
46,
|
| 1257 |
+
35
|
| 1258 |
+
],
|
| 1259 |
+
"adjacent_hexes": [
|
| 1260 |
+
19,
|
| 1261 |
+
16,
|
| 1262 |
+
15
|
| 1263 |
+
],
|
| 1264 |
+
"pixel_coords": [
|
| 1265 |
+
422.5,
|
| 1266 |
+
416.9134295108992
|
| 1267 |
+
]
|
| 1268 |
+
},
|
| 1269 |
+
{
|
| 1270 |
+
"point_id": 46,
|
| 1271 |
+
"game_coords": [
|
| 1272 |
+
4,
|
| 1273 |
+
7
|
| 1274 |
+
],
|
| 1275 |
+
"adjacent_points": [
|
| 1276 |
+
45,
|
| 1277 |
+
47,
|
| 1278 |
+
54
|
| 1279 |
+
],
|
| 1280 |
+
"adjacent_hexes": [
|
| 1281 |
+
19,
|
| 1282 |
+
16
|
| 1283 |
+
],
|
| 1284 |
+
"pixel_coords": [
|
| 1285 |
+
445,
|
| 1286 |
+
455.88457268119896
|
| 1287 |
+
]
|
| 1288 |
+
},
|
| 1289 |
+
{
|
| 1290 |
+
"point_id": 47,
|
| 1291 |
+
"game_coords": [
|
| 1292 |
+
4,
|
| 1293 |
+
8
|
| 1294 |
+
],
|
| 1295 |
+
"adjacent_points": [
|
| 1296 |
+
46,
|
| 1297 |
+
37
|
| 1298 |
+
],
|
| 1299 |
+
"adjacent_hexes": [
|
| 1300 |
+
16
|
| 1301 |
+
],
|
| 1302 |
+
"pixel_coords": [
|
| 1303 |
+
490,
|
| 1304 |
+
455.88457268119896
|
| 1305 |
+
]
|
| 1306 |
+
},
|
| 1307 |
+
{
|
| 1308 |
+
"point_id": 48,
|
| 1309 |
+
"game_coords": [
|
| 1310 |
+
5,
|
| 1311 |
+
0
|
| 1312 |
+
],
|
| 1313 |
+
"adjacent_points": [
|
| 1314 |
+
49,
|
| 1315 |
+
40
|
| 1316 |
+
],
|
| 1317 |
+
"adjacent_hexes": [
|
| 1318 |
+
17
|
| 1319 |
+
],
|
| 1320 |
+
"pixel_coords": [
|
| 1321 |
+
220,
|
| 1322 |
+
377.9422863405995
|
| 1323 |
+
]
|
| 1324 |
+
},
|
| 1325 |
+
{
|
| 1326 |
+
"point_id": 49,
|
| 1327 |
+
"game_coords": [
|
| 1328 |
+
5,
|
| 1329 |
+
1
|
| 1330 |
+
],
|
| 1331 |
+
"adjacent_points": [
|
| 1332 |
+
48,
|
| 1333 |
+
50
|
| 1334 |
+
],
|
| 1335 |
+
"adjacent_hexes": [
|
| 1336 |
+
17
|
| 1337 |
+
],
|
| 1338 |
+
"pixel_coords": [
|
| 1339 |
+
242.5,
|
| 1340 |
+
416.9134295108992
|
| 1341 |
+
]
|
| 1342 |
+
},
|
| 1343 |
+
{
|
| 1344 |
+
"point_id": 50,
|
| 1345 |
+
"game_coords": [
|
| 1346 |
+
5,
|
| 1347 |
+
2
|
| 1348 |
+
],
|
| 1349 |
+
"adjacent_points": [
|
| 1350 |
+
49,
|
| 1351 |
+
51,
|
| 1352 |
+
42
|
| 1353 |
+
],
|
| 1354 |
+
"adjacent_hexes": [
|
| 1355 |
+
18,
|
| 1356 |
+
17
|
| 1357 |
+
],
|
| 1358 |
+
"pixel_coords": [
|
| 1359 |
+
287.5,
|
| 1360 |
+
416.9134295108992
|
| 1361 |
+
]
|
| 1362 |
+
},
|
| 1363 |
+
{
|
| 1364 |
+
"point_id": 51,
|
| 1365 |
+
"game_coords": [
|
| 1366 |
+
5,
|
| 1367 |
+
3
|
| 1368 |
+
],
|
| 1369 |
+
"adjacent_points": [
|
| 1370 |
+
50,
|
| 1371 |
+
52
|
| 1372 |
+
],
|
| 1373 |
+
"adjacent_hexes": [
|
| 1374 |
+
18
|
| 1375 |
+
],
|
| 1376 |
+
"pixel_coords": [
|
| 1377 |
+
310,
|
| 1378 |
+
455.88457268119896
|
| 1379 |
+
]
|
| 1380 |
+
},
|
| 1381 |
+
{
|
| 1382 |
+
"point_id": 52,
|
| 1383 |
+
"game_coords": [
|
| 1384 |
+
5,
|
| 1385 |
+
4
|
| 1386 |
+
],
|
| 1387 |
+
"adjacent_points": [
|
| 1388 |
+
51,
|
| 1389 |
+
53,
|
| 1390 |
+
44
|
| 1391 |
+
],
|
| 1392 |
+
"adjacent_hexes": [
|
| 1393 |
+
19,
|
| 1394 |
+
18
|
| 1395 |
+
],
|
| 1396 |
+
"pixel_coords": [
|
| 1397 |
+
355,
|
| 1398 |
+
455.88457268119896
|
| 1399 |
+
]
|
| 1400 |
+
},
|
| 1401 |
+
{
|
| 1402 |
+
"point_id": 53,
|
| 1403 |
+
"game_coords": [
|
| 1404 |
+
5,
|
| 1405 |
+
5
|
| 1406 |
+
],
|
| 1407 |
+
"adjacent_points": [
|
| 1408 |
+
52,
|
| 1409 |
+
54
|
| 1410 |
+
],
|
| 1411 |
+
"adjacent_hexes": [
|
| 1412 |
+
19
|
| 1413 |
+
],
|
| 1414 |
+
"pixel_coords": [
|
| 1415 |
+
377.5,
|
| 1416 |
+
494.8557158514987
|
| 1417 |
+
]
|
| 1418 |
+
},
|
| 1419 |
+
{
|
| 1420 |
+
"point_id": 54,
|
| 1421 |
+
"game_coords": [
|
| 1422 |
+
5,
|
| 1423 |
+
6
|
| 1424 |
+
],
|
| 1425 |
+
"adjacent_points": [
|
| 1426 |
+
53,
|
| 1427 |
+
46
|
| 1428 |
+
],
|
| 1429 |
+
"adjacent_hexes": [
|
| 1430 |
+
19
|
| 1431 |
+
],
|
| 1432 |
+
"pixel_coords": [
|
| 1433 |
+
422.5,
|
| 1434 |
+
494.8557158514987
|
| 1435 |
+
]
|
| 1436 |
+
}
|
| 1437 |
+
],
|
| 1438 |
+
"board_graph": {
|
| 1439 |
+
"adjacency": {
|
| 1440 |
+
"1": [
|
| 1441 |
+
2,
|
| 1442 |
+
9
|
| 1443 |
+
],
|
| 1444 |
+
"2": [
|
| 1445 |
+
1,
|
| 1446 |
+
3
|
| 1447 |
+
],
|
| 1448 |
+
"3": [
|
| 1449 |
+
2,
|
| 1450 |
+
4,
|
| 1451 |
+
11
|
| 1452 |
+
],
|
| 1453 |
+
"4": [
|
| 1454 |
+
3,
|
| 1455 |
+
5
|
| 1456 |
+
],
|
| 1457 |
+
"5": [
|
| 1458 |
+
4,
|
| 1459 |
+
6,
|
| 1460 |
+
13
|
| 1461 |
+
],
|
| 1462 |
+
"6": [
|
| 1463 |
+
5,
|
| 1464 |
+
7
|
| 1465 |
+
],
|
| 1466 |
+
"7": [
|
| 1467 |
+
6,
|
| 1468 |
+
15
|
| 1469 |
+
],
|
| 1470 |
+
"8": [
|
| 1471 |
+
9,
|
| 1472 |
+
18
|
| 1473 |
+
],
|
| 1474 |
+
"9": [
|
| 1475 |
+
8,
|
| 1476 |
+
10,
|
| 1477 |
+
1
|
| 1478 |
+
],
|
| 1479 |
+
"10": [
|
| 1480 |
+
9,
|
| 1481 |
+
11,
|
| 1482 |
+
20
|
| 1483 |
+
],
|
| 1484 |
+
"11": [
|
| 1485 |
+
10,
|
| 1486 |
+
12,
|
| 1487 |
+
3
|
| 1488 |
+
],
|
| 1489 |
+
"12": [
|
| 1490 |
+
11,
|
| 1491 |
+
13,
|
| 1492 |
+
22
|
| 1493 |
+
],
|
| 1494 |
+
"13": [
|
| 1495 |
+
12,
|
| 1496 |
+
14,
|
| 1497 |
+
5
|
| 1498 |
+
],
|
| 1499 |
+
"14": [
|
| 1500 |
+
13,
|
| 1501 |
+
15,
|
| 1502 |
+
24
|
| 1503 |
+
],
|
| 1504 |
+
"15": [
|
| 1505 |
+
14,
|
| 1506 |
+
16,
|
| 1507 |
+
7
|
| 1508 |
+
],
|
| 1509 |
+
"16": [
|
| 1510 |
+
15,
|
| 1511 |
+
26
|
| 1512 |
+
],
|
| 1513 |
+
"17": [
|
| 1514 |
+
18,
|
| 1515 |
+
28
|
| 1516 |
+
],
|
| 1517 |
+
"18": [
|
| 1518 |
+
17,
|
| 1519 |
+
19,
|
| 1520 |
+
8
|
| 1521 |
+
],
|
| 1522 |
+
"19": [
|
| 1523 |
+
18,
|
| 1524 |
+
20,
|
| 1525 |
+
30
|
| 1526 |
+
],
|
| 1527 |
+
"20": [
|
| 1528 |
+
19,
|
| 1529 |
+
21,
|
| 1530 |
+
10
|
| 1531 |
+
],
|
| 1532 |
+
"21": [
|
| 1533 |
+
20,
|
| 1534 |
+
22,
|
| 1535 |
+
32
|
| 1536 |
+
],
|
| 1537 |
+
"22": [
|
| 1538 |
+
21,
|
| 1539 |
+
23,
|
| 1540 |
+
12
|
| 1541 |
+
],
|
| 1542 |
+
"23": [
|
| 1543 |
+
22,
|
| 1544 |
+
24,
|
| 1545 |
+
34
|
| 1546 |
+
],
|
| 1547 |
+
"24": [
|
| 1548 |
+
23,
|
| 1549 |
+
25,
|
| 1550 |
+
14
|
| 1551 |
+
],
|
| 1552 |
+
"25": [
|
| 1553 |
+
24,
|
| 1554 |
+
26,
|
| 1555 |
+
36
|
| 1556 |
+
],
|
| 1557 |
+
"26": [
|
| 1558 |
+
25,
|
| 1559 |
+
27,
|
| 1560 |
+
16
|
| 1561 |
+
],
|
| 1562 |
+
"27": [
|
| 1563 |
+
26,
|
| 1564 |
+
38
|
| 1565 |
+
],
|
| 1566 |
+
"28": [
|
| 1567 |
+
29,
|
| 1568 |
+
17
|
| 1569 |
+
],
|
| 1570 |
+
"29": [
|
| 1571 |
+
28,
|
| 1572 |
+
30,
|
| 1573 |
+
39
|
| 1574 |
+
],
|
| 1575 |
+
"30": [
|
| 1576 |
+
29,
|
| 1577 |
+
31,
|
| 1578 |
+
19
|
| 1579 |
+
],
|
| 1580 |
+
"31": [
|
| 1581 |
+
30,
|
| 1582 |
+
32,
|
| 1583 |
+
41
|
| 1584 |
+
],
|
| 1585 |
+
"32": [
|
| 1586 |
+
31,
|
| 1587 |
+
33,
|
| 1588 |
+
21
|
| 1589 |
+
],
|
| 1590 |
+
"33": [
|
| 1591 |
+
32,
|
| 1592 |
+
34,
|
| 1593 |
+
43
|
| 1594 |
+
],
|
| 1595 |
+
"34": [
|
| 1596 |
+
33,
|
| 1597 |
+
35,
|
| 1598 |
+
23
|
| 1599 |
+
],
|
| 1600 |
+
"35": [
|
| 1601 |
+
34,
|
| 1602 |
+
36,
|
| 1603 |
+
45
|
| 1604 |
+
],
|
| 1605 |
+
"36": [
|
| 1606 |
+
35,
|
| 1607 |
+
37,
|
| 1608 |
+
25
|
| 1609 |
+
],
|
| 1610 |
+
"37": [
|
| 1611 |
+
36,
|
| 1612 |
+
38,
|
| 1613 |
+
47
|
| 1614 |
+
],
|
| 1615 |
+
"38": [
|
| 1616 |
+
37,
|
| 1617 |
+
27
|
| 1618 |
+
],
|
| 1619 |
+
"39": [
|
| 1620 |
+
40,
|
| 1621 |
+
29
|
| 1622 |
+
],
|
| 1623 |
+
"40": [
|
| 1624 |
+
39,
|
| 1625 |
+
41,
|
| 1626 |
+
48
|
| 1627 |
+
],
|
| 1628 |
+
"41": [
|
| 1629 |
+
40,
|
| 1630 |
+
42,
|
| 1631 |
+
31
|
| 1632 |
+
],
|
| 1633 |
+
"42": [
|
| 1634 |
+
41,
|
| 1635 |
+
43,
|
| 1636 |
+
50
|
| 1637 |
+
],
|
| 1638 |
+
"43": [
|
| 1639 |
+
42,
|
| 1640 |
+
44,
|
| 1641 |
+
33
|
| 1642 |
+
],
|
| 1643 |
+
"44": [
|
| 1644 |
+
43,
|
| 1645 |
+
45,
|
| 1646 |
+
52
|
| 1647 |
+
],
|
| 1648 |
+
"45": [
|
| 1649 |
+
44,
|
| 1650 |
+
46,
|
| 1651 |
+
35
|
| 1652 |
+
],
|
| 1653 |
+
"46": [
|
| 1654 |
+
45,
|
| 1655 |
+
47,
|
| 1656 |
+
54
|
| 1657 |
+
],
|
| 1658 |
+
"47": [
|
| 1659 |
+
46,
|
| 1660 |
+
37
|
| 1661 |
+
],
|
| 1662 |
+
"48": [
|
| 1663 |
+
49,
|
| 1664 |
+
40
|
| 1665 |
+
],
|
| 1666 |
+
"49": [
|
| 1667 |
+
48,
|
| 1668 |
+
50
|
| 1669 |
+
],
|
| 1670 |
+
"50": [
|
| 1671 |
+
49,
|
| 1672 |
+
51,
|
| 1673 |
+
42
|
| 1674 |
+
],
|
| 1675 |
+
"51": [
|
| 1676 |
+
50,
|
| 1677 |
+
52
|
| 1678 |
+
],
|
| 1679 |
+
"52": [
|
| 1680 |
+
51,
|
| 1681 |
+
53,
|
| 1682 |
+
44
|
| 1683 |
+
],
|
| 1684 |
+
"53": [
|
| 1685 |
+
52,
|
| 1686 |
+
54
|
| 1687 |
+
],
|
| 1688 |
+
"54": [
|
| 1689 |
+
53,
|
| 1690 |
+
46
|
| 1691 |
+
]
|
| 1692 |
+
},
|
| 1693 |
+
"hex_to_points": {
|
| 1694 |
+
"1": [
|
| 1695 |
+
1,
|
| 1696 |
+
2,
|
| 1697 |
+
3,
|
| 1698 |
+
9,
|
| 1699 |
+
10,
|
| 1700 |
+
11
|
| 1701 |
+
],
|
| 1702 |
+
"2": [
|
| 1703 |
+
3,
|
| 1704 |
+
4,
|
| 1705 |
+
5,
|
| 1706 |
+
11,
|
| 1707 |
+
12,
|
| 1708 |
+
13
|
| 1709 |
+
],
|
| 1710 |
+
"3": [
|
| 1711 |
+
5,
|
| 1712 |
+
6,
|
| 1713 |
+
7,
|
| 1714 |
+
13,
|
| 1715 |
+
14,
|
| 1716 |
+
15
|
| 1717 |
+
],
|
| 1718 |
+
"4": [
|
| 1719 |
+
8,
|
| 1720 |
+
9,
|
| 1721 |
+
10,
|
| 1722 |
+
18,
|
| 1723 |
+
19,
|
| 1724 |
+
20
|
| 1725 |
+
],
|
| 1726 |
+
"5": [
|
| 1727 |
+
10,
|
| 1728 |
+
11,
|
| 1729 |
+
12,
|
| 1730 |
+
20,
|
| 1731 |
+
21,
|
| 1732 |
+
22
|
| 1733 |
+
],
|
| 1734 |
+
"6": [
|
| 1735 |
+
12,
|
| 1736 |
+
13,
|
| 1737 |
+
14,
|
| 1738 |
+
22,
|
| 1739 |
+
23,
|
| 1740 |
+
24
|
| 1741 |
+
],
|
| 1742 |
+
"7": [
|
| 1743 |
+
14,
|
| 1744 |
+
15,
|
| 1745 |
+
16,
|
| 1746 |
+
24,
|
| 1747 |
+
25,
|
| 1748 |
+
26
|
| 1749 |
+
],
|
| 1750 |
+
"8": [
|
| 1751 |
+
17,
|
| 1752 |
+
18,
|
| 1753 |
+
19,
|
| 1754 |
+
28,
|
| 1755 |
+
29,
|
| 1756 |
+
30
|
| 1757 |
+
],
|
| 1758 |
+
"9": [
|
| 1759 |
+
19,
|
| 1760 |
+
20,
|
| 1761 |
+
21,
|
| 1762 |
+
30,
|
| 1763 |
+
31,
|
| 1764 |
+
32
|
| 1765 |
+
],
|
| 1766 |
+
"10": [
|
| 1767 |
+
21,
|
| 1768 |
+
22,
|
| 1769 |
+
23,
|
| 1770 |
+
32,
|
| 1771 |
+
33,
|
| 1772 |
+
34
|
| 1773 |
+
],
|
| 1774 |
+
"11": [
|
| 1775 |
+
23,
|
| 1776 |
+
24,
|
| 1777 |
+
25,
|
| 1778 |
+
34,
|
| 1779 |
+
35,
|
| 1780 |
+
36
|
| 1781 |
+
],
|
| 1782 |
+
"12": [
|
| 1783 |
+
25,
|
| 1784 |
+
26,
|
| 1785 |
+
27,
|
| 1786 |
+
36,
|
| 1787 |
+
37,
|
| 1788 |
+
38
|
| 1789 |
+
],
|
| 1790 |
+
"13": [
|
| 1791 |
+
29,
|
| 1792 |
+
30,
|
| 1793 |
+
31,
|
| 1794 |
+
39,
|
| 1795 |
+
40,
|
| 1796 |
+
41
|
| 1797 |
+
],
|
| 1798 |
+
"14": [
|
| 1799 |
+
31,
|
| 1800 |
+
32,
|
| 1801 |
+
33,
|
| 1802 |
+
41,
|
| 1803 |
+
42,
|
| 1804 |
+
43
|
| 1805 |
+
],
|
| 1806 |
+
"15": [
|
| 1807 |
+
33,
|
| 1808 |
+
34,
|
| 1809 |
+
35,
|
| 1810 |
+
43,
|
| 1811 |
+
44,
|
| 1812 |
+
45
|
| 1813 |
+
],
|
| 1814 |
+
"16": [
|
| 1815 |
+
35,
|
| 1816 |
+
36,
|
| 1817 |
+
37,
|
| 1818 |
+
45,
|
| 1819 |
+
46,
|
| 1820 |
+
47
|
| 1821 |
+
],
|
| 1822 |
+
"17": [
|
| 1823 |
+
40,
|
| 1824 |
+
41,
|
| 1825 |
+
42,
|
| 1826 |
+
48,
|
| 1827 |
+
49,
|
| 1828 |
+
50
|
| 1829 |
+
],
|
| 1830 |
+
"18": [
|
| 1831 |
+
42,
|
| 1832 |
+
43,
|
| 1833 |
+
44,
|
| 1834 |
+
50,
|
| 1835 |
+
51,
|
| 1836 |
+
52
|
| 1837 |
+
],
|
| 1838 |
+
"19": [
|
| 1839 |
+
44,
|
| 1840 |
+
45,
|
| 1841 |
+
46,
|
| 1842 |
+
52,
|
| 1843 |
+
53,
|
| 1844 |
+
54
|
| 1845 |
+
]
|
| 1846 |
+
},
|
| 1847 |
+
"total_points": 54,
|
| 1848 |
+
"total_hexes": 19
|
| 1849 |
+
}
|
| 1850 |
+
}
|
examples/ai_testing/my_games/game_20251223_203724_full.json
ADDED
|
@@ -0,0 +1,1856 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"total_states": 1,
|
| 3 |
+
"timestamp": "20251223_203724",
|
| 4 |
+
"states": [
|
| 5 |
+
{
|
| 6 |
+
"hexes": [
|
| 7 |
+
{
|
| 8 |
+
"id": 1,
|
| 9 |
+
"q": 0,
|
| 10 |
+
"r": -2,
|
| 11 |
+
"type": "wood",
|
| 12 |
+
"number": 12,
|
| 13 |
+
"has_robber": false,
|
| 14 |
+
"position": [
|
| 15 |
+
0,
|
| 16 |
+
0
|
| 17 |
+
],
|
| 18 |
+
"axial_coords": [
|
| 19 |
+
0,
|
| 20 |
+
-2
|
| 21 |
+
]
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"id": 2,
|
| 25 |
+
"q": 1,
|
| 26 |
+
"r": -2,
|
| 27 |
+
"type": "sheep",
|
| 28 |
+
"number": 5,
|
| 29 |
+
"has_robber": false,
|
| 30 |
+
"position": [
|
| 31 |
+
0,
|
| 32 |
+
1
|
| 33 |
+
],
|
| 34 |
+
"axial_coords": [
|
| 35 |
+
1,
|
| 36 |
+
-2
|
| 37 |
+
]
|
| 38 |
+
},
|
| 39 |
+
{
|
| 40 |
+
"id": 3,
|
| 41 |
+
"q": 2,
|
| 42 |
+
"r": -2,
|
| 43 |
+
"type": "wood",
|
| 44 |
+
"number": 4,
|
| 45 |
+
"has_robber": false,
|
| 46 |
+
"position": [
|
| 47 |
+
0,
|
| 48 |
+
2
|
| 49 |
+
],
|
| 50 |
+
"axial_coords": [
|
| 51 |
+
2,
|
| 52 |
+
-2
|
| 53 |
+
]
|
| 54 |
+
},
|
| 55 |
+
{
|
| 56 |
+
"id": 4,
|
| 57 |
+
"q": -1,
|
| 58 |
+
"r": -1,
|
| 59 |
+
"type": "sheep",
|
| 60 |
+
"number": 8,
|
| 61 |
+
"has_robber": false,
|
| 62 |
+
"position": [
|
| 63 |
+
1,
|
| 64 |
+
0
|
| 65 |
+
],
|
| 66 |
+
"axial_coords": [
|
| 67 |
+
-1,
|
| 68 |
+
-1
|
| 69 |
+
]
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"id": 5,
|
| 73 |
+
"q": 0,
|
| 74 |
+
"r": -1,
|
| 75 |
+
"type": "brick",
|
| 76 |
+
"number": 6,
|
| 77 |
+
"has_robber": false,
|
| 78 |
+
"position": [
|
| 79 |
+
1,
|
| 80 |
+
1
|
| 81 |
+
],
|
| 82 |
+
"axial_coords": [
|
| 83 |
+
0,
|
| 84 |
+
-1
|
| 85 |
+
]
|
| 86 |
+
},
|
| 87 |
+
{
|
| 88 |
+
"id": 6,
|
| 89 |
+
"q": 1,
|
| 90 |
+
"r": -1,
|
| 91 |
+
"type": "wood",
|
| 92 |
+
"number": 3,
|
| 93 |
+
"has_robber": false,
|
| 94 |
+
"position": [
|
| 95 |
+
1,
|
| 96 |
+
2
|
| 97 |
+
],
|
| 98 |
+
"axial_coords": [
|
| 99 |
+
1,
|
| 100 |
+
-1
|
| 101 |
+
]
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"id": 7,
|
| 105 |
+
"q": 2,
|
| 106 |
+
"r": -1,
|
| 107 |
+
"type": "wheat",
|
| 108 |
+
"number": 8,
|
| 109 |
+
"has_robber": false,
|
| 110 |
+
"position": [
|
| 111 |
+
1,
|
| 112 |
+
3
|
| 113 |
+
],
|
| 114 |
+
"axial_coords": [
|
| 115 |
+
2,
|
| 116 |
+
-1
|
| 117 |
+
]
|
| 118 |
+
},
|
| 119 |
+
{
|
| 120 |
+
"id": 8,
|
| 121 |
+
"q": -2,
|
| 122 |
+
"r": 0,
|
| 123 |
+
"type": "brick",
|
| 124 |
+
"number": 10,
|
| 125 |
+
"has_robber": false,
|
| 126 |
+
"position": [
|
| 127 |
+
2,
|
| 128 |
+
0
|
| 129 |
+
],
|
| 130 |
+
"axial_coords": [
|
| 131 |
+
-2,
|
| 132 |
+
0
|
| 133 |
+
]
|
| 134 |
+
},
|
| 135 |
+
{
|
| 136 |
+
"id": 9,
|
| 137 |
+
"q": -1,
|
| 138 |
+
"r": 0,
|
| 139 |
+
"type": "wood",
|
| 140 |
+
"number": 11,
|
| 141 |
+
"has_robber": false,
|
| 142 |
+
"position": [
|
| 143 |
+
2,
|
| 144 |
+
1
|
| 145 |
+
],
|
| 146 |
+
"axial_coords": [
|
| 147 |
+
-1,
|
| 148 |
+
0
|
| 149 |
+
]
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"id": 10,
|
| 153 |
+
"q": 0,
|
| 154 |
+
"r": 0,
|
| 155 |
+
"type": "desert",
|
| 156 |
+
"number": null,
|
| 157 |
+
"has_robber": true,
|
| 158 |
+
"position": [
|
| 159 |
+
2,
|
| 160 |
+
2
|
| 161 |
+
],
|
| 162 |
+
"axial_coords": [
|
| 163 |
+
0,
|
| 164 |
+
0
|
| 165 |
+
]
|
| 166 |
+
},
|
| 167 |
+
{
|
| 168 |
+
"id": 11,
|
| 169 |
+
"q": 1,
|
| 170 |
+
"r": 0,
|
| 171 |
+
"type": "ore",
|
| 172 |
+
"number": 3,
|
| 173 |
+
"has_robber": false,
|
| 174 |
+
"position": [
|
| 175 |
+
2,
|
| 176 |
+
3
|
| 177 |
+
],
|
| 178 |
+
"axial_coords": [
|
| 179 |
+
1,
|
| 180 |
+
0
|
| 181 |
+
]
|
| 182 |
+
},
|
| 183 |
+
{
|
| 184 |
+
"id": 12,
|
| 185 |
+
"q": 2,
|
| 186 |
+
"r": 0,
|
| 187 |
+
"type": "sheep",
|
| 188 |
+
"number": 4,
|
| 189 |
+
"has_robber": false,
|
| 190 |
+
"position": [
|
| 191 |
+
2,
|
| 192 |
+
4
|
| 193 |
+
],
|
| 194 |
+
"axial_coords": [
|
| 195 |
+
2,
|
| 196 |
+
0
|
| 197 |
+
]
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"id": 13,
|
| 201 |
+
"q": -2,
|
| 202 |
+
"r": 1,
|
| 203 |
+
"type": "brick",
|
| 204 |
+
"number": 10,
|
| 205 |
+
"has_robber": false,
|
| 206 |
+
"position": [
|
| 207 |
+
3,
|
| 208 |
+
0
|
| 209 |
+
],
|
| 210 |
+
"axial_coords": [
|
| 211 |
+
-2,
|
| 212 |
+
1
|
| 213 |
+
]
|
| 214 |
+
},
|
| 215 |
+
{
|
| 216 |
+
"id": 14,
|
| 217 |
+
"q": -1,
|
| 218 |
+
"r": 1,
|
| 219 |
+
"type": "wheat",
|
| 220 |
+
"number": 9,
|
| 221 |
+
"has_robber": false,
|
| 222 |
+
"position": [
|
| 223 |
+
3,
|
| 224 |
+
1
|
| 225 |
+
],
|
| 226 |
+
"axial_coords": [
|
| 227 |
+
-1,
|
| 228 |
+
1
|
| 229 |
+
]
|
| 230 |
+
},
|
| 231 |
+
{
|
| 232 |
+
"id": 15,
|
| 233 |
+
"q": 0,
|
| 234 |
+
"r": 1,
|
| 235 |
+
"type": "wheat",
|
| 236 |
+
"number": 6,
|
| 237 |
+
"has_robber": false,
|
| 238 |
+
"position": [
|
| 239 |
+
3,
|
| 240 |
+
2
|
| 241 |
+
],
|
| 242 |
+
"axial_coords": [
|
| 243 |
+
0,
|
| 244 |
+
1
|
| 245 |
+
]
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"id": 16,
|
| 249 |
+
"q": 1,
|
| 250 |
+
"r": 1,
|
| 251 |
+
"type": "sheep",
|
| 252 |
+
"number": 11,
|
| 253 |
+
"has_robber": false,
|
| 254 |
+
"position": [
|
| 255 |
+
3,
|
| 256 |
+
3
|
| 257 |
+
],
|
| 258 |
+
"axial_coords": [
|
| 259 |
+
1,
|
| 260 |
+
1
|
| 261 |
+
]
|
| 262 |
+
},
|
| 263 |
+
{
|
| 264 |
+
"id": 17,
|
| 265 |
+
"q": -2,
|
| 266 |
+
"r": 2,
|
| 267 |
+
"type": "ore",
|
| 268 |
+
"number": 5,
|
| 269 |
+
"has_robber": false,
|
| 270 |
+
"position": [
|
| 271 |
+
4,
|
| 272 |
+
0
|
| 273 |
+
],
|
| 274 |
+
"axial_coords": [
|
| 275 |
+
-2,
|
| 276 |
+
2
|
| 277 |
+
]
|
| 278 |
+
},
|
| 279 |
+
{
|
| 280 |
+
"id": 18,
|
| 281 |
+
"q": -1,
|
| 282 |
+
"r": 2,
|
| 283 |
+
"type": "wheat",
|
| 284 |
+
"number": 9,
|
| 285 |
+
"has_robber": false,
|
| 286 |
+
"position": [
|
| 287 |
+
4,
|
| 288 |
+
1
|
| 289 |
+
],
|
| 290 |
+
"axial_coords": [
|
| 291 |
+
-1,
|
| 292 |
+
2
|
| 293 |
+
]
|
| 294 |
+
},
|
| 295 |
+
{
|
| 296 |
+
"id": 19,
|
| 297 |
+
"q": 0,
|
| 298 |
+
"r": 2,
|
| 299 |
+
"type": "ore",
|
| 300 |
+
"number": 2,
|
| 301 |
+
"has_robber": false,
|
| 302 |
+
"position": [
|
| 303 |
+
4,
|
| 304 |
+
2
|
| 305 |
+
],
|
| 306 |
+
"axial_coords": [
|
| 307 |
+
0,
|
| 308 |
+
2
|
| 309 |
+
]
|
| 310 |
+
}
|
| 311 |
+
],
|
| 312 |
+
"settlements": [],
|
| 313 |
+
"cities": [],
|
| 314 |
+
"roads": [],
|
| 315 |
+
"players": [
|
| 316 |
+
{
|
| 317 |
+
"id": 0,
|
| 318 |
+
"name": "a",
|
| 319 |
+
"victory_points": 0,
|
| 320 |
+
"total_cards": 0,
|
| 321 |
+
"cards_list": [],
|
| 322 |
+
"dev_cards_list": [],
|
| 323 |
+
"settlements": 0,
|
| 324 |
+
"cities": 0,
|
| 325 |
+
"roads": 0,
|
| 326 |
+
"longest_road": 0,
|
| 327 |
+
"has_longest_road": false,
|
| 328 |
+
"knights": 0,
|
| 329 |
+
"knights_played": 0,
|
| 330 |
+
"has_largest_army": false
|
| 331 |
+
},
|
| 332 |
+
{
|
| 333 |
+
"id": 1,
|
| 334 |
+
"name": "b",
|
| 335 |
+
"victory_points": 0,
|
| 336 |
+
"total_cards": 0,
|
| 337 |
+
"cards_list": [],
|
| 338 |
+
"dev_cards_list": [],
|
| 339 |
+
"settlements": 0,
|
| 340 |
+
"cities": 0,
|
| 341 |
+
"roads": 0,
|
| 342 |
+
"longest_road": 0,
|
| 343 |
+
"has_longest_road": false,
|
| 344 |
+
"knights": 0,
|
| 345 |
+
"knights_played": 0,
|
| 346 |
+
"has_largest_army": false
|
| 347 |
+
},
|
| 348 |
+
{
|
| 349 |
+
"id": 2,
|
| 350 |
+
"name": "c",
|
| 351 |
+
"victory_points": 0,
|
| 352 |
+
"total_cards": 0,
|
| 353 |
+
"cards_list": [],
|
| 354 |
+
"dev_cards_list": [],
|
| 355 |
+
"settlements": 0,
|
| 356 |
+
"cities": 0,
|
| 357 |
+
"roads": 0,
|
| 358 |
+
"longest_road": 0,
|
| 359 |
+
"has_longest_road": false,
|
| 360 |
+
"knights": 0,
|
| 361 |
+
"knights_played": 0,
|
| 362 |
+
"has_largest_army": false
|
| 363 |
+
}
|
| 364 |
+
],
|
| 365 |
+
"current_player": 0,
|
| 366 |
+
"current_phase": "SETUP_FIRST_ROUND",
|
| 367 |
+
"robber_position": [
|
| 368 |
+
2,
|
| 369 |
+
2
|
| 370 |
+
],
|
| 371 |
+
"dice_result": null,
|
| 372 |
+
"points": [
|
| 373 |
+
{
|
| 374 |
+
"point_id": 1,
|
| 375 |
+
"game_coords": [
|
| 376 |
+
0,
|
| 377 |
+
0
|
| 378 |
+
],
|
| 379 |
+
"adjacent_points": [
|
| 380 |
+
2,
|
| 381 |
+
9
|
| 382 |
+
],
|
| 383 |
+
"adjacent_hexes": [
|
| 384 |
+
1
|
| 385 |
+
],
|
| 386 |
+
"pixel_coords": [
|
| 387 |
+
377.5,
|
| 388 |
+
105.14428414850131
|
| 389 |
+
]
|
| 390 |
+
},
|
| 391 |
+
{
|
| 392 |
+
"point_id": 2,
|
| 393 |
+
"game_coords": [
|
| 394 |
+
0,
|
| 395 |
+
1
|
| 396 |
+
],
|
| 397 |
+
"adjacent_points": [
|
| 398 |
+
1,
|
| 399 |
+
3
|
| 400 |
+
],
|
| 401 |
+
"adjacent_hexes": [
|
| 402 |
+
1
|
| 403 |
+
],
|
| 404 |
+
"pixel_coords": [
|
| 405 |
+
422.5,
|
| 406 |
+
105.14428414850128
|
| 407 |
+
]
|
| 408 |
+
},
|
| 409 |
+
{
|
| 410 |
+
"point_id": 3,
|
| 411 |
+
"game_coords": [
|
| 412 |
+
0,
|
| 413 |
+
2
|
| 414 |
+
],
|
| 415 |
+
"adjacent_points": [
|
| 416 |
+
2,
|
| 417 |
+
4,
|
| 418 |
+
11
|
| 419 |
+
],
|
| 420 |
+
"adjacent_hexes": [
|
| 421 |
+
2,
|
| 422 |
+
1
|
| 423 |
+
],
|
| 424 |
+
"pixel_coords": [
|
| 425 |
+
445,
|
| 426 |
+
144.11542731880104
|
| 427 |
+
]
|
| 428 |
+
},
|
| 429 |
+
{
|
| 430 |
+
"point_id": 4,
|
| 431 |
+
"game_coords": [
|
| 432 |
+
0,
|
| 433 |
+
3
|
| 434 |
+
],
|
| 435 |
+
"adjacent_points": [
|
| 436 |
+
3,
|
| 437 |
+
5
|
| 438 |
+
],
|
| 439 |
+
"adjacent_hexes": [
|
| 440 |
+
2
|
| 441 |
+
],
|
| 442 |
+
"pixel_coords": [
|
| 443 |
+
490,
|
| 444 |
+
144.11542731880104
|
| 445 |
+
]
|
| 446 |
+
},
|
| 447 |
+
{
|
| 448 |
+
"point_id": 5,
|
| 449 |
+
"game_coords": [
|
| 450 |
+
0,
|
| 451 |
+
4
|
| 452 |
+
],
|
| 453 |
+
"adjacent_points": [
|
| 454 |
+
4,
|
| 455 |
+
6,
|
| 456 |
+
13
|
| 457 |
+
],
|
| 458 |
+
"adjacent_hexes": [
|
| 459 |
+
3,
|
| 460 |
+
2
|
| 461 |
+
],
|
| 462 |
+
"pixel_coords": [
|
| 463 |
+
512.5,
|
| 464 |
+
183.08657048910078
|
| 465 |
+
]
|
| 466 |
+
},
|
| 467 |
+
{
|
| 468 |
+
"point_id": 6,
|
| 469 |
+
"game_coords": [
|
| 470 |
+
0,
|
| 471 |
+
5
|
| 472 |
+
],
|
| 473 |
+
"adjacent_points": [
|
| 474 |
+
5,
|
| 475 |
+
7
|
| 476 |
+
],
|
| 477 |
+
"adjacent_hexes": [
|
| 478 |
+
3
|
| 479 |
+
],
|
| 480 |
+
"pixel_coords": [
|
| 481 |
+
557.5,
|
| 482 |
+
183.08657048910078
|
| 483 |
+
]
|
| 484 |
+
},
|
| 485 |
+
{
|
| 486 |
+
"point_id": 7,
|
| 487 |
+
"game_coords": [
|
| 488 |
+
0,
|
| 489 |
+
6
|
| 490 |
+
],
|
| 491 |
+
"adjacent_points": [
|
| 492 |
+
6,
|
| 493 |
+
15
|
| 494 |
+
],
|
| 495 |
+
"adjacent_hexes": [
|
| 496 |
+
3
|
| 497 |
+
],
|
| 498 |
+
"pixel_coords": [
|
| 499 |
+
580,
|
| 500 |
+
222.05771365940052
|
| 501 |
+
]
|
| 502 |
+
},
|
| 503 |
+
{
|
| 504 |
+
"point_id": 8,
|
| 505 |
+
"game_coords": [
|
| 506 |
+
1,
|
| 507 |
+
0
|
| 508 |
+
],
|
| 509 |
+
"adjacent_points": [
|
| 510 |
+
9,
|
| 511 |
+
18
|
| 512 |
+
],
|
| 513 |
+
"adjacent_hexes": [
|
| 514 |
+
4
|
| 515 |
+
],
|
| 516 |
+
"pixel_coords": [
|
| 517 |
+
310,
|
| 518 |
+
144.11542731880104
|
| 519 |
+
]
|
| 520 |
+
},
|
| 521 |
+
{
|
| 522 |
+
"point_id": 9,
|
| 523 |
+
"game_coords": [
|
| 524 |
+
1,
|
| 525 |
+
1
|
| 526 |
+
],
|
| 527 |
+
"adjacent_points": [
|
| 528 |
+
8,
|
| 529 |
+
10,
|
| 530 |
+
1
|
| 531 |
+
],
|
| 532 |
+
"adjacent_hexes": [
|
| 533 |
+
4,
|
| 534 |
+
1
|
| 535 |
+
],
|
| 536 |
+
"pixel_coords": [
|
| 537 |
+
355,
|
| 538 |
+
144.11542731880104
|
| 539 |
+
]
|
| 540 |
+
},
|
| 541 |
+
{
|
| 542 |
+
"point_id": 10,
|
| 543 |
+
"game_coords": [
|
| 544 |
+
1,
|
| 545 |
+
2
|
| 546 |
+
],
|
| 547 |
+
"adjacent_points": [
|
| 548 |
+
9,
|
| 549 |
+
11,
|
| 550 |
+
20
|
| 551 |
+
],
|
| 552 |
+
"adjacent_hexes": [
|
| 553 |
+
5,
|
| 554 |
+
4,
|
| 555 |
+
1
|
| 556 |
+
],
|
| 557 |
+
"pixel_coords": [
|
| 558 |
+
377.5,
|
| 559 |
+
183.08657048910078
|
| 560 |
+
]
|
| 561 |
+
},
|
| 562 |
+
{
|
| 563 |
+
"point_id": 11,
|
| 564 |
+
"game_coords": [
|
| 565 |
+
1,
|
| 566 |
+
3
|
| 567 |
+
],
|
| 568 |
+
"adjacent_points": [
|
| 569 |
+
10,
|
| 570 |
+
12,
|
| 571 |
+
3
|
| 572 |
+
],
|
| 573 |
+
"adjacent_hexes": [
|
| 574 |
+
5,
|
| 575 |
+
2,
|
| 576 |
+
1
|
| 577 |
+
],
|
| 578 |
+
"pixel_coords": [
|
| 579 |
+
422.5,
|
| 580 |
+
183.08657048910078
|
| 581 |
+
]
|
| 582 |
+
},
|
| 583 |
+
{
|
| 584 |
+
"point_id": 12,
|
| 585 |
+
"game_coords": [
|
| 586 |
+
1,
|
| 587 |
+
4
|
| 588 |
+
],
|
| 589 |
+
"adjacent_points": [
|
| 590 |
+
11,
|
| 591 |
+
13,
|
| 592 |
+
22
|
| 593 |
+
],
|
| 594 |
+
"adjacent_hexes": [
|
| 595 |
+
6,
|
| 596 |
+
5,
|
| 597 |
+
2
|
| 598 |
+
],
|
| 599 |
+
"pixel_coords": [
|
| 600 |
+
445,
|
| 601 |
+
222.05771365940052
|
| 602 |
+
]
|
| 603 |
+
},
|
| 604 |
+
{
|
| 605 |
+
"point_id": 13,
|
| 606 |
+
"game_coords": [
|
| 607 |
+
1,
|
| 608 |
+
5
|
| 609 |
+
],
|
| 610 |
+
"adjacent_points": [
|
| 611 |
+
12,
|
| 612 |
+
14,
|
| 613 |
+
5
|
| 614 |
+
],
|
| 615 |
+
"adjacent_hexes": [
|
| 616 |
+
6,
|
| 617 |
+
3,
|
| 618 |
+
2
|
| 619 |
+
],
|
| 620 |
+
"pixel_coords": [
|
| 621 |
+
490,
|
| 622 |
+
222.05771365940052
|
| 623 |
+
]
|
| 624 |
+
},
|
| 625 |
+
{
|
| 626 |
+
"point_id": 14,
|
| 627 |
+
"game_coords": [
|
| 628 |
+
1,
|
| 629 |
+
6
|
| 630 |
+
],
|
| 631 |
+
"adjacent_points": [
|
| 632 |
+
13,
|
| 633 |
+
15,
|
| 634 |
+
24
|
| 635 |
+
],
|
| 636 |
+
"adjacent_hexes": [
|
| 637 |
+
7,
|
| 638 |
+
6,
|
| 639 |
+
3
|
| 640 |
+
],
|
| 641 |
+
"pixel_coords": [
|
| 642 |
+
512.5,
|
| 643 |
+
261.02885682970026
|
| 644 |
+
]
|
| 645 |
+
},
|
| 646 |
+
{
|
| 647 |
+
"point_id": 15,
|
| 648 |
+
"game_coords": [
|
| 649 |
+
1,
|
| 650 |
+
7
|
| 651 |
+
],
|
| 652 |
+
"adjacent_points": [
|
| 653 |
+
14,
|
| 654 |
+
16,
|
| 655 |
+
7
|
| 656 |
+
],
|
| 657 |
+
"adjacent_hexes": [
|
| 658 |
+
7,
|
| 659 |
+
3
|
| 660 |
+
],
|
| 661 |
+
"pixel_coords": [
|
| 662 |
+
557.5,
|
| 663 |
+
261.02885682970026
|
| 664 |
+
]
|
| 665 |
+
},
|
| 666 |
+
{
|
| 667 |
+
"point_id": 16,
|
| 668 |
+
"game_coords": [
|
| 669 |
+
1,
|
| 670 |
+
8
|
| 671 |
+
],
|
| 672 |
+
"adjacent_points": [
|
| 673 |
+
15,
|
| 674 |
+
26
|
| 675 |
+
],
|
| 676 |
+
"adjacent_hexes": [
|
| 677 |
+
7
|
| 678 |
+
],
|
| 679 |
+
"pixel_coords": [
|
| 680 |
+
580,
|
| 681 |
+
300
|
| 682 |
+
]
|
| 683 |
+
},
|
| 684 |
+
{
|
| 685 |
+
"point_id": 17,
|
| 686 |
+
"game_coords": [
|
| 687 |
+
2,
|
| 688 |
+
0
|
| 689 |
+
],
|
| 690 |
+
"adjacent_points": [
|
| 691 |
+
18,
|
| 692 |
+
28
|
| 693 |
+
],
|
| 694 |
+
"adjacent_hexes": [
|
| 695 |
+
8
|
| 696 |
+
],
|
| 697 |
+
"pixel_coords": [
|
| 698 |
+
242.49999999999997,
|
| 699 |
+
183.08657048910078
|
| 700 |
+
]
|
| 701 |
+
},
|
| 702 |
+
{
|
| 703 |
+
"point_id": 18,
|
| 704 |
+
"game_coords": [
|
| 705 |
+
2,
|
| 706 |
+
1
|
| 707 |
+
],
|
| 708 |
+
"adjacent_points": [
|
| 709 |
+
17,
|
| 710 |
+
19,
|
| 711 |
+
8
|
| 712 |
+
],
|
| 713 |
+
"adjacent_hexes": [
|
| 714 |
+
8,
|
| 715 |
+
4
|
| 716 |
+
],
|
| 717 |
+
"pixel_coords": [
|
| 718 |
+
287.5,
|
| 719 |
+
183.08657048910078
|
| 720 |
+
]
|
| 721 |
+
},
|
| 722 |
+
{
|
| 723 |
+
"point_id": 19,
|
| 724 |
+
"game_coords": [
|
| 725 |
+
2,
|
| 726 |
+
2
|
| 727 |
+
],
|
| 728 |
+
"adjacent_points": [
|
| 729 |
+
18,
|
| 730 |
+
20,
|
| 731 |
+
30
|
| 732 |
+
],
|
| 733 |
+
"adjacent_hexes": [
|
| 734 |
+
9,
|
| 735 |
+
8,
|
| 736 |
+
4
|
| 737 |
+
],
|
| 738 |
+
"pixel_coords": [
|
| 739 |
+
310,
|
| 740 |
+
222.05771365940052
|
| 741 |
+
]
|
| 742 |
+
},
|
| 743 |
+
{
|
| 744 |
+
"point_id": 20,
|
| 745 |
+
"game_coords": [
|
| 746 |
+
2,
|
| 747 |
+
3
|
| 748 |
+
],
|
| 749 |
+
"adjacent_points": [
|
| 750 |
+
19,
|
| 751 |
+
21,
|
| 752 |
+
10
|
| 753 |
+
],
|
| 754 |
+
"adjacent_hexes": [
|
| 755 |
+
9,
|
| 756 |
+
5,
|
| 757 |
+
4
|
| 758 |
+
],
|
| 759 |
+
"pixel_coords": [
|
| 760 |
+
355,
|
| 761 |
+
222.05771365940052
|
| 762 |
+
]
|
| 763 |
+
},
|
| 764 |
+
{
|
| 765 |
+
"point_id": 21,
|
| 766 |
+
"game_coords": [
|
| 767 |
+
2,
|
| 768 |
+
4
|
| 769 |
+
],
|
| 770 |
+
"adjacent_points": [
|
| 771 |
+
20,
|
| 772 |
+
22,
|
| 773 |
+
32
|
| 774 |
+
],
|
| 775 |
+
"adjacent_hexes": [
|
| 776 |
+
10,
|
| 777 |
+
9,
|
| 778 |
+
5
|
| 779 |
+
],
|
| 780 |
+
"pixel_coords": [
|
| 781 |
+
377.5,
|
| 782 |
+
261.02885682970026
|
| 783 |
+
]
|
| 784 |
+
},
|
| 785 |
+
{
|
| 786 |
+
"point_id": 22,
|
| 787 |
+
"game_coords": [
|
| 788 |
+
2,
|
| 789 |
+
5
|
| 790 |
+
],
|
| 791 |
+
"adjacent_points": [
|
| 792 |
+
21,
|
| 793 |
+
23,
|
| 794 |
+
12
|
| 795 |
+
],
|
| 796 |
+
"adjacent_hexes": [
|
| 797 |
+
10,
|
| 798 |
+
6,
|
| 799 |
+
5
|
| 800 |
+
],
|
| 801 |
+
"pixel_coords": [
|
| 802 |
+
422.5,
|
| 803 |
+
261.02885682970026
|
| 804 |
+
]
|
| 805 |
+
},
|
| 806 |
+
{
|
| 807 |
+
"point_id": 23,
|
| 808 |
+
"game_coords": [
|
| 809 |
+
2,
|
| 810 |
+
6
|
| 811 |
+
],
|
| 812 |
+
"adjacent_points": [
|
| 813 |
+
22,
|
| 814 |
+
24,
|
| 815 |
+
34
|
| 816 |
+
],
|
| 817 |
+
"adjacent_hexes": [
|
| 818 |
+
11,
|
| 819 |
+
10,
|
| 820 |
+
6
|
| 821 |
+
],
|
| 822 |
+
"pixel_coords": [
|
| 823 |
+
445,
|
| 824 |
+
300
|
| 825 |
+
]
|
| 826 |
+
},
|
| 827 |
+
{
|
| 828 |
+
"point_id": 24,
|
| 829 |
+
"game_coords": [
|
| 830 |
+
2,
|
| 831 |
+
7
|
| 832 |
+
],
|
| 833 |
+
"adjacent_points": [
|
| 834 |
+
23,
|
| 835 |
+
25,
|
| 836 |
+
14
|
| 837 |
+
],
|
| 838 |
+
"adjacent_hexes": [
|
| 839 |
+
11,
|
| 840 |
+
7,
|
| 841 |
+
6
|
| 842 |
+
],
|
| 843 |
+
"pixel_coords": [
|
| 844 |
+
490,
|
| 845 |
+
300
|
| 846 |
+
]
|
| 847 |
+
},
|
| 848 |
+
{
|
| 849 |
+
"point_id": 25,
|
| 850 |
+
"game_coords": [
|
| 851 |
+
2,
|
| 852 |
+
8
|
| 853 |
+
],
|
| 854 |
+
"adjacent_points": [
|
| 855 |
+
24,
|
| 856 |
+
26,
|
| 857 |
+
36
|
| 858 |
+
],
|
| 859 |
+
"adjacent_hexes": [
|
| 860 |
+
12,
|
| 861 |
+
11,
|
| 862 |
+
7
|
| 863 |
+
],
|
| 864 |
+
"pixel_coords": [
|
| 865 |
+
512.5,
|
| 866 |
+
338.97114317029974
|
| 867 |
+
]
|
| 868 |
+
},
|
| 869 |
+
{
|
| 870 |
+
"point_id": 26,
|
| 871 |
+
"game_coords": [
|
| 872 |
+
2,
|
| 873 |
+
9
|
| 874 |
+
],
|
| 875 |
+
"adjacent_points": [
|
| 876 |
+
25,
|
| 877 |
+
27,
|
| 878 |
+
16
|
| 879 |
+
],
|
| 880 |
+
"adjacent_hexes": [
|
| 881 |
+
12,
|
| 882 |
+
7
|
| 883 |
+
],
|
| 884 |
+
"pixel_coords": [
|
| 885 |
+
557.5,
|
| 886 |
+
338.97114317029974
|
| 887 |
+
]
|
| 888 |
+
},
|
| 889 |
+
{
|
| 890 |
+
"point_id": 27,
|
| 891 |
+
"game_coords": [
|
| 892 |
+
2,
|
| 893 |
+
10
|
| 894 |
+
],
|
| 895 |
+
"adjacent_points": [
|
| 896 |
+
26,
|
| 897 |
+
38
|
| 898 |
+
],
|
| 899 |
+
"adjacent_hexes": [
|
| 900 |
+
12
|
| 901 |
+
],
|
| 902 |
+
"pixel_coords": [
|
| 903 |
+
580,
|
| 904 |
+
377.9422863405995
|
| 905 |
+
]
|
| 906 |
+
},
|
| 907 |
+
{
|
| 908 |
+
"point_id": 28,
|
| 909 |
+
"game_coords": [
|
| 910 |
+
3,
|
| 911 |
+
0
|
| 912 |
+
],
|
| 913 |
+
"adjacent_points": [
|
| 914 |
+
29,
|
| 915 |
+
17
|
| 916 |
+
],
|
| 917 |
+
"adjacent_hexes": [
|
| 918 |
+
8
|
| 919 |
+
],
|
| 920 |
+
"pixel_coords": [
|
| 921 |
+
220,
|
| 922 |
+
222.05771365940052
|
| 923 |
+
]
|
| 924 |
+
},
|
| 925 |
+
{
|
| 926 |
+
"point_id": 29,
|
| 927 |
+
"game_coords": [
|
| 928 |
+
3,
|
| 929 |
+
1
|
| 930 |
+
],
|
| 931 |
+
"adjacent_points": [
|
| 932 |
+
28,
|
| 933 |
+
30,
|
| 934 |
+
39
|
| 935 |
+
],
|
| 936 |
+
"adjacent_hexes": [
|
| 937 |
+
13,
|
| 938 |
+
8
|
| 939 |
+
],
|
| 940 |
+
"pixel_coords": [
|
| 941 |
+
242.5,
|
| 942 |
+
261.02885682970026
|
| 943 |
+
]
|
| 944 |
+
},
|
| 945 |
+
{
|
| 946 |
+
"point_id": 30,
|
| 947 |
+
"game_coords": [
|
| 948 |
+
3,
|
| 949 |
+
2
|
| 950 |
+
],
|
| 951 |
+
"adjacent_points": [
|
| 952 |
+
29,
|
| 953 |
+
31,
|
| 954 |
+
19
|
| 955 |
+
],
|
| 956 |
+
"adjacent_hexes": [
|
| 957 |
+
13,
|
| 958 |
+
9,
|
| 959 |
+
8
|
| 960 |
+
],
|
| 961 |
+
"pixel_coords": [
|
| 962 |
+
287.5,
|
| 963 |
+
261.02885682970026
|
| 964 |
+
]
|
| 965 |
+
},
|
| 966 |
+
{
|
| 967 |
+
"point_id": 31,
|
| 968 |
+
"game_coords": [
|
| 969 |
+
3,
|
| 970 |
+
3
|
| 971 |
+
],
|
| 972 |
+
"adjacent_points": [
|
| 973 |
+
30,
|
| 974 |
+
32,
|
| 975 |
+
41
|
| 976 |
+
],
|
| 977 |
+
"adjacent_hexes": [
|
| 978 |
+
14,
|
| 979 |
+
13,
|
| 980 |
+
9
|
| 981 |
+
],
|
| 982 |
+
"pixel_coords": [
|
| 983 |
+
310,
|
| 984 |
+
300
|
| 985 |
+
]
|
| 986 |
+
},
|
| 987 |
+
{
|
| 988 |
+
"point_id": 32,
|
| 989 |
+
"game_coords": [
|
| 990 |
+
3,
|
| 991 |
+
4
|
| 992 |
+
],
|
| 993 |
+
"adjacent_points": [
|
| 994 |
+
31,
|
| 995 |
+
33,
|
| 996 |
+
21
|
| 997 |
+
],
|
| 998 |
+
"adjacent_hexes": [
|
| 999 |
+
14,
|
| 1000 |
+
10,
|
| 1001 |
+
9
|
| 1002 |
+
],
|
| 1003 |
+
"pixel_coords": [
|
| 1004 |
+
355,
|
| 1005 |
+
300
|
| 1006 |
+
]
|
| 1007 |
+
},
|
| 1008 |
+
{
|
| 1009 |
+
"point_id": 33,
|
| 1010 |
+
"game_coords": [
|
| 1011 |
+
3,
|
| 1012 |
+
5
|
| 1013 |
+
],
|
| 1014 |
+
"adjacent_points": [
|
| 1015 |
+
32,
|
| 1016 |
+
34,
|
| 1017 |
+
43
|
| 1018 |
+
],
|
| 1019 |
+
"adjacent_hexes": [
|
| 1020 |
+
15,
|
| 1021 |
+
14,
|
| 1022 |
+
10
|
| 1023 |
+
],
|
| 1024 |
+
"pixel_coords": [
|
| 1025 |
+
377.5,
|
| 1026 |
+
338.97114317029974
|
| 1027 |
+
]
|
| 1028 |
+
},
|
| 1029 |
+
{
|
| 1030 |
+
"point_id": 34,
|
| 1031 |
+
"game_coords": [
|
| 1032 |
+
3,
|
| 1033 |
+
6
|
| 1034 |
+
],
|
| 1035 |
+
"adjacent_points": [
|
| 1036 |
+
33,
|
| 1037 |
+
35,
|
| 1038 |
+
23
|
| 1039 |
+
],
|
| 1040 |
+
"adjacent_hexes": [
|
| 1041 |
+
15,
|
| 1042 |
+
11,
|
| 1043 |
+
10
|
| 1044 |
+
],
|
| 1045 |
+
"pixel_coords": [
|
| 1046 |
+
422.5,
|
| 1047 |
+
338.97114317029974
|
| 1048 |
+
]
|
| 1049 |
+
},
|
| 1050 |
+
{
|
| 1051 |
+
"point_id": 35,
|
| 1052 |
+
"game_coords": [
|
| 1053 |
+
3,
|
| 1054 |
+
7
|
| 1055 |
+
],
|
| 1056 |
+
"adjacent_points": [
|
| 1057 |
+
34,
|
| 1058 |
+
36,
|
| 1059 |
+
45
|
| 1060 |
+
],
|
| 1061 |
+
"adjacent_hexes": [
|
| 1062 |
+
16,
|
| 1063 |
+
15,
|
| 1064 |
+
11
|
| 1065 |
+
],
|
| 1066 |
+
"pixel_coords": [
|
| 1067 |
+
445,
|
| 1068 |
+
377.9422863405995
|
| 1069 |
+
]
|
| 1070 |
+
},
|
| 1071 |
+
{
|
| 1072 |
+
"point_id": 36,
|
| 1073 |
+
"game_coords": [
|
| 1074 |
+
3,
|
| 1075 |
+
8
|
| 1076 |
+
],
|
| 1077 |
+
"adjacent_points": [
|
| 1078 |
+
35,
|
| 1079 |
+
37,
|
| 1080 |
+
25
|
| 1081 |
+
],
|
| 1082 |
+
"adjacent_hexes": [
|
| 1083 |
+
16,
|
| 1084 |
+
12,
|
| 1085 |
+
11
|
| 1086 |
+
],
|
| 1087 |
+
"pixel_coords": [
|
| 1088 |
+
490,
|
| 1089 |
+
377.9422863405995
|
| 1090 |
+
]
|
| 1091 |
+
},
|
| 1092 |
+
{
|
| 1093 |
+
"point_id": 37,
|
| 1094 |
+
"game_coords": [
|
| 1095 |
+
3,
|
| 1096 |
+
9
|
| 1097 |
+
],
|
| 1098 |
+
"adjacent_points": [
|
| 1099 |
+
36,
|
| 1100 |
+
38,
|
| 1101 |
+
47
|
| 1102 |
+
],
|
| 1103 |
+
"adjacent_hexes": [
|
| 1104 |
+
16,
|
| 1105 |
+
12
|
| 1106 |
+
],
|
| 1107 |
+
"pixel_coords": [
|
| 1108 |
+
512.5,
|
| 1109 |
+
416.9134295108992
|
| 1110 |
+
]
|
| 1111 |
+
},
|
| 1112 |
+
{
|
| 1113 |
+
"point_id": 38,
|
| 1114 |
+
"game_coords": [
|
| 1115 |
+
3,
|
| 1116 |
+
10
|
| 1117 |
+
],
|
| 1118 |
+
"adjacent_points": [
|
| 1119 |
+
37,
|
| 1120 |
+
27
|
| 1121 |
+
],
|
| 1122 |
+
"adjacent_hexes": [
|
| 1123 |
+
12
|
| 1124 |
+
],
|
| 1125 |
+
"pixel_coords": [
|
| 1126 |
+
557.5,
|
| 1127 |
+
416.9134295108992
|
| 1128 |
+
]
|
| 1129 |
+
},
|
| 1130 |
+
{
|
| 1131 |
+
"point_id": 39,
|
| 1132 |
+
"game_coords": [
|
| 1133 |
+
4,
|
| 1134 |
+
0
|
| 1135 |
+
],
|
| 1136 |
+
"adjacent_points": [
|
| 1137 |
+
40,
|
| 1138 |
+
29
|
| 1139 |
+
],
|
| 1140 |
+
"adjacent_hexes": [
|
| 1141 |
+
13
|
| 1142 |
+
],
|
| 1143 |
+
"pixel_coords": [
|
| 1144 |
+
220,
|
| 1145 |
+
300
|
| 1146 |
+
]
|
| 1147 |
+
},
|
| 1148 |
+
{
|
| 1149 |
+
"point_id": 40,
|
| 1150 |
+
"game_coords": [
|
| 1151 |
+
4,
|
| 1152 |
+
1
|
| 1153 |
+
],
|
| 1154 |
+
"adjacent_points": [
|
| 1155 |
+
39,
|
| 1156 |
+
41,
|
| 1157 |
+
48
|
| 1158 |
+
],
|
| 1159 |
+
"adjacent_hexes": [
|
| 1160 |
+
17,
|
| 1161 |
+
13
|
| 1162 |
+
],
|
| 1163 |
+
"pixel_coords": [
|
| 1164 |
+
242.5,
|
| 1165 |
+
338.97114317029974
|
| 1166 |
+
]
|
| 1167 |
+
},
|
| 1168 |
+
{
|
| 1169 |
+
"point_id": 41,
|
| 1170 |
+
"game_coords": [
|
| 1171 |
+
4,
|
| 1172 |
+
2
|
| 1173 |
+
],
|
| 1174 |
+
"adjacent_points": [
|
| 1175 |
+
40,
|
| 1176 |
+
42,
|
| 1177 |
+
31
|
| 1178 |
+
],
|
| 1179 |
+
"adjacent_hexes": [
|
| 1180 |
+
17,
|
| 1181 |
+
14,
|
| 1182 |
+
13
|
| 1183 |
+
],
|
| 1184 |
+
"pixel_coords": [
|
| 1185 |
+
287.5,
|
| 1186 |
+
338.97114317029974
|
| 1187 |
+
]
|
| 1188 |
+
},
|
| 1189 |
+
{
|
| 1190 |
+
"point_id": 42,
|
| 1191 |
+
"game_coords": [
|
| 1192 |
+
4,
|
| 1193 |
+
3
|
| 1194 |
+
],
|
| 1195 |
+
"adjacent_points": [
|
| 1196 |
+
41,
|
| 1197 |
+
43,
|
| 1198 |
+
50
|
| 1199 |
+
],
|
| 1200 |
+
"adjacent_hexes": [
|
| 1201 |
+
18,
|
| 1202 |
+
17,
|
| 1203 |
+
14
|
| 1204 |
+
],
|
| 1205 |
+
"pixel_coords": [
|
| 1206 |
+
310,
|
| 1207 |
+
377.9422863405995
|
| 1208 |
+
]
|
| 1209 |
+
},
|
| 1210 |
+
{
|
| 1211 |
+
"point_id": 43,
|
| 1212 |
+
"game_coords": [
|
| 1213 |
+
4,
|
| 1214 |
+
4
|
| 1215 |
+
],
|
| 1216 |
+
"adjacent_points": [
|
| 1217 |
+
42,
|
| 1218 |
+
44,
|
| 1219 |
+
33
|
| 1220 |
+
],
|
| 1221 |
+
"adjacent_hexes": [
|
| 1222 |
+
18,
|
| 1223 |
+
15,
|
| 1224 |
+
14
|
| 1225 |
+
],
|
| 1226 |
+
"pixel_coords": [
|
| 1227 |
+
355,
|
| 1228 |
+
377.9422863405995
|
| 1229 |
+
]
|
| 1230 |
+
},
|
| 1231 |
+
{
|
| 1232 |
+
"point_id": 44,
|
| 1233 |
+
"game_coords": [
|
| 1234 |
+
4,
|
| 1235 |
+
5
|
| 1236 |
+
],
|
| 1237 |
+
"adjacent_points": [
|
| 1238 |
+
43,
|
| 1239 |
+
45,
|
| 1240 |
+
52
|
| 1241 |
+
],
|
| 1242 |
+
"adjacent_hexes": [
|
| 1243 |
+
19,
|
| 1244 |
+
18,
|
| 1245 |
+
15
|
| 1246 |
+
],
|
| 1247 |
+
"pixel_coords": [
|
| 1248 |
+
377.5,
|
| 1249 |
+
416.9134295108992
|
| 1250 |
+
]
|
| 1251 |
+
},
|
| 1252 |
+
{
|
| 1253 |
+
"point_id": 45,
|
| 1254 |
+
"game_coords": [
|
| 1255 |
+
4,
|
| 1256 |
+
6
|
| 1257 |
+
],
|
| 1258 |
+
"adjacent_points": [
|
| 1259 |
+
44,
|
| 1260 |
+
46,
|
| 1261 |
+
35
|
| 1262 |
+
],
|
| 1263 |
+
"adjacent_hexes": [
|
| 1264 |
+
19,
|
| 1265 |
+
16,
|
| 1266 |
+
15
|
| 1267 |
+
],
|
| 1268 |
+
"pixel_coords": [
|
| 1269 |
+
422.5,
|
| 1270 |
+
416.9134295108992
|
| 1271 |
+
]
|
| 1272 |
+
},
|
| 1273 |
+
{
|
| 1274 |
+
"point_id": 46,
|
| 1275 |
+
"game_coords": [
|
| 1276 |
+
4,
|
| 1277 |
+
7
|
| 1278 |
+
],
|
| 1279 |
+
"adjacent_points": [
|
| 1280 |
+
45,
|
| 1281 |
+
47,
|
| 1282 |
+
54
|
| 1283 |
+
],
|
| 1284 |
+
"adjacent_hexes": [
|
| 1285 |
+
19,
|
| 1286 |
+
16
|
| 1287 |
+
],
|
| 1288 |
+
"pixel_coords": [
|
| 1289 |
+
445,
|
| 1290 |
+
455.88457268119896
|
| 1291 |
+
]
|
| 1292 |
+
},
|
| 1293 |
+
{
|
| 1294 |
+
"point_id": 47,
|
| 1295 |
+
"game_coords": [
|
| 1296 |
+
4,
|
| 1297 |
+
8
|
| 1298 |
+
],
|
| 1299 |
+
"adjacent_points": [
|
| 1300 |
+
46,
|
| 1301 |
+
37
|
| 1302 |
+
],
|
| 1303 |
+
"adjacent_hexes": [
|
| 1304 |
+
16
|
| 1305 |
+
],
|
| 1306 |
+
"pixel_coords": [
|
| 1307 |
+
490,
|
| 1308 |
+
455.88457268119896
|
| 1309 |
+
]
|
| 1310 |
+
},
|
| 1311 |
+
{
|
| 1312 |
+
"point_id": 48,
|
| 1313 |
+
"game_coords": [
|
| 1314 |
+
5,
|
| 1315 |
+
0
|
| 1316 |
+
],
|
| 1317 |
+
"adjacent_points": [
|
| 1318 |
+
49,
|
| 1319 |
+
40
|
| 1320 |
+
],
|
| 1321 |
+
"adjacent_hexes": [
|
| 1322 |
+
17
|
| 1323 |
+
],
|
| 1324 |
+
"pixel_coords": [
|
| 1325 |
+
220,
|
| 1326 |
+
377.9422863405995
|
| 1327 |
+
]
|
| 1328 |
+
},
|
| 1329 |
+
{
|
| 1330 |
+
"point_id": 49,
|
| 1331 |
+
"game_coords": [
|
| 1332 |
+
5,
|
| 1333 |
+
1
|
| 1334 |
+
],
|
| 1335 |
+
"adjacent_points": [
|
| 1336 |
+
48,
|
| 1337 |
+
50
|
| 1338 |
+
],
|
| 1339 |
+
"adjacent_hexes": [
|
| 1340 |
+
17
|
| 1341 |
+
],
|
| 1342 |
+
"pixel_coords": [
|
| 1343 |
+
242.5,
|
| 1344 |
+
416.9134295108992
|
| 1345 |
+
]
|
| 1346 |
+
},
|
| 1347 |
+
{
|
| 1348 |
+
"point_id": 50,
|
| 1349 |
+
"game_coords": [
|
| 1350 |
+
5,
|
| 1351 |
+
2
|
| 1352 |
+
],
|
| 1353 |
+
"adjacent_points": [
|
| 1354 |
+
49,
|
| 1355 |
+
51,
|
| 1356 |
+
42
|
| 1357 |
+
],
|
| 1358 |
+
"adjacent_hexes": [
|
| 1359 |
+
18,
|
| 1360 |
+
17
|
| 1361 |
+
],
|
| 1362 |
+
"pixel_coords": [
|
| 1363 |
+
287.5,
|
| 1364 |
+
416.9134295108992
|
| 1365 |
+
]
|
| 1366 |
+
},
|
| 1367 |
+
{
|
| 1368 |
+
"point_id": 51,
|
| 1369 |
+
"game_coords": [
|
| 1370 |
+
5,
|
| 1371 |
+
3
|
| 1372 |
+
],
|
| 1373 |
+
"adjacent_points": [
|
| 1374 |
+
50,
|
| 1375 |
+
52
|
| 1376 |
+
],
|
| 1377 |
+
"adjacent_hexes": [
|
| 1378 |
+
18
|
| 1379 |
+
],
|
| 1380 |
+
"pixel_coords": [
|
| 1381 |
+
310,
|
| 1382 |
+
455.88457268119896
|
| 1383 |
+
]
|
| 1384 |
+
},
|
| 1385 |
+
{
|
| 1386 |
+
"point_id": 52,
|
| 1387 |
+
"game_coords": [
|
| 1388 |
+
5,
|
| 1389 |
+
4
|
| 1390 |
+
],
|
| 1391 |
+
"adjacent_points": [
|
| 1392 |
+
51,
|
| 1393 |
+
53,
|
| 1394 |
+
44
|
| 1395 |
+
],
|
| 1396 |
+
"adjacent_hexes": [
|
| 1397 |
+
19,
|
| 1398 |
+
18
|
| 1399 |
+
],
|
| 1400 |
+
"pixel_coords": [
|
| 1401 |
+
355,
|
| 1402 |
+
455.88457268119896
|
| 1403 |
+
]
|
| 1404 |
+
},
|
| 1405 |
+
{
|
| 1406 |
+
"point_id": 53,
|
| 1407 |
+
"game_coords": [
|
| 1408 |
+
5,
|
| 1409 |
+
5
|
| 1410 |
+
],
|
| 1411 |
+
"adjacent_points": [
|
| 1412 |
+
52,
|
| 1413 |
+
54
|
| 1414 |
+
],
|
| 1415 |
+
"adjacent_hexes": [
|
| 1416 |
+
19
|
| 1417 |
+
],
|
| 1418 |
+
"pixel_coords": [
|
| 1419 |
+
377.5,
|
| 1420 |
+
494.8557158514987
|
| 1421 |
+
]
|
| 1422 |
+
},
|
| 1423 |
+
{
|
| 1424 |
+
"point_id": 54,
|
| 1425 |
+
"game_coords": [
|
| 1426 |
+
5,
|
| 1427 |
+
6
|
| 1428 |
+
],
|
| 1429 |
+
"adjacent_points": [
|
| 1430 |
+
53,
|
| 1431 |
+
46
|
| 1432 |
+
],
|
| 1433 |
+
"adjacent_hexes": [
|
| 1434 |
+
19
|
| 1435 |
+
],
|
| 1436 |
+
"pixel_coords": [
|
| 1437 |
+
422.5,
|
| 1438 |
+
494.8557158514987
|
| 1439 |
+
]
|
| 1440 |
+
}
|
| 1441 |
+
],
|
| 1442 |
+
"board_graph": {
|
| 1443 |
+
"adjacency": {
|
| 1444 |
+
"1": [
|
| 1445 |
+
2,
|
| 1446 |
+
9
|
| 1447 |
+
],
|
| 1448 |
+
"2": [
|
| 1449 |
+
1,
|
| 1450 |
+
3
|
| 1451 |
+
],
|
| 1452 |
+
"3": [
|
| 1453 |
+
2,
|
| 1454 |
+
4,
|
| 1455 |
+
11
|
| 1456 |
+
],
|
| 1457 |
+
"4": [
|
| 1458 |
+
3,
|
| 1459 |
+
5
|
| 1460 |
+
],
|
| 1461 |
+
"5": [
|
| 1462 |
+
4,
|
| 1463 |
+
6,
|
| 1464 |
+
13
|
| 1465 |
+
],
|
| 1466 |
+
"6": [
|
| 1467 |
+
5,
|
| 1468 |
+
7
|
| 1469 |
+
],
|
| 1470 |
+
"7": [
|
| 1471 |
+
6,
|
| 1472 |
+
15
|
| 1473 |
+
],
|
| 1474 |
+
"8": [
|
| 1475 |
+
9,
|
| 1476 |
+
18
|
| 1477 |
+
],
|
| 1478 |
+
"9": [
|
| 1479 |
+
8,
|
| 1480 |
+
10,
|
| 1481 |
+
1
|
| 1482 |
+
],
|
| 1483 |
+
"10": [
|
| 1484 |
+
9,
|
| 1485 |
+
11,
|
| 1486 |
+
20
|
| 1487 |
+
],
|
| 1488 |
+
"11": [
|
| 1489 |
+
10,
|
| 1490 |
+
12,
|
| 1491 |
+
3
|
| 1492 |
+
],
|
| 1493 |
+
"12": [
|
| 1494 |
+
11,
|
| 1495 |
+
13,
|
| 1496 |
+
22
|
| 1497 |
+
],
|
| 1498 |
+
"13": [
|
| 1499 |
+
12,
|
| 1500 |
+
14,
|
| 1501 |
+
5
|
| 1502 |
+
],
|
| 1503 |
+
"14": [
|
| 1504 |
+
13,
|
| 1505 |
+
15,
|
| 1506 |
+
24
|
| 1507 |
+
],
|
| 1508 |
+
"15": [
|
| 1509 |
+
14,
|
| 1510 |
+
16,
|
| 1511 |
+
7
|
| 1512 |
+
],
|
| 1513 |
+
"16": [
|
| 1514 |
+
15,
|
| 1515 |
+
26
|
| 1516 |
+
],
|
| 1517 |
+
"17": [
|
| 1518 |
+
18,
|
| 1519 |
+
28
|
| 1520 |
+
],
|
| 1521 |
+
"18": [
|
| 1522 |
+
17,
|
| 1523 |
+
19,
|
| 1524 |
+
8
|
| 1525 |
+
],
|
| 1526 |
+
"19": [
|
| 1527 |
+
18,
|
| 1528 |
+
20,
|
| 1529 |
+
30
|
| 1530 |
+
],
|
| 1531 |
+
"20": [
|
| 1532 |
+
19,
|
| 1533 |
+
21,
|
| 1534 |
+
10
|
| 1535 |
+
],
|
| 1536 |
+
"21": [
|
| 1537 |
+
20,
|
| 1538 |
+
22,
|
| 1539 |
+
32
|
| 1540 |
+
],
|
| 1541 |
+
"22": [
|
| 1542 |
+
21,
|
| 1543 |
+
23,
|
| 1544 |
+
12
|
| 1545 |
+
],
|
| 1546 |
+
"23": [
|
| 1547 |
+
22,
|
| 1548 |
+
24,
|
| 1549 |
+
34
|
| 1550 |
+
],
|
| 1551 |
+
"24": [
|
| 1552 |
+
23,
|
| 1553 |
+
25,
|
| 1554 |
+
14
|
| 1555 |
+
],
|
| 1556 |
+
"25": [
|
| 1557 |
+
24,
|
| 1558 |
+
26,
|
| 1559 |
+
36
|
| 1560 |
+
],
|
| 1561 |
+
"26": [
|
| 1562 |
+
25,
|
| 1563 |
+
27,
|
| 1564 |
+
16
|
| 1565 |
+
],
|
| 1566 |
+
"27": [
|
| 1567 |
+
26,
|
| 1568 |
+
38
|
| 1569 |
+
],
|
| 1570 |
+
"28": [
|
| 1571 |
+
29,
|
| 1572 |
+
17
|
| 1573 |
+
],
|
| 1574 |
+
"29": [
|
| 1575 |
+
28,
|
| 1576 |
+
30,
|
| 1577 |
+
39
|
| 1578 |
+
],
|
| 1579 |
+
"30": [
|
| 1580 |
+
29,
|
| 1581 |
+
31,
|
| 1582 |
+
19
|
| 1583 |
+
],
|
| 1584 |
+
"31": [
|
| 1585 |
+
30,
|
| 1586 |
+
32,
|
| 1587 |
+
41
|
| 1588 |
+
],
|
| 1589 |
+
"32": [
|
| 1590 |
+
31,
|
| 1591 |
+
33,
|
| 1592 |
+
21
|
| 1593 |
+
],
|
| 1594 |
+
"33": [
|
| 1595 |
+
32,
|
| 1596 |
+
34,
|
| 1597 |
+
43
|
| 1598 |
+
],
|
| 1599 |
+
"34": [
|
| 1600 |
+
33,
|
| 1601 |
+
35,
|
| 1602 |
+
23
|
| 1603 |
+
],
|
| 1604 |
+
"35": [
|
| 1605 |
+
34,
|
| 1606 |
+
36,
|
| 1607 |
+
45
|
| 1608 |
+
],
|
| 1609 |
+
"36": [
|
| 1610 |
+
35,
|
| 1611 |
+
37,
|
| 1612 |
+
25
|
| 1613 |
+
],
|
| 1614 |
+
"37": [
|
| 1615 |
+
36,
|
| 1616 |
+
38,
|
| 1617 |
+
47
|
| 1618 |
+
],
|
| 1619 |
+
"38": [
|
| 1620 |
+
37,
|
| 1621 |
+
27
|
| 1622 |
+
],
|
| 1623 |
+
"39": [
|
| 1624 |
+
40,
|
| 1625 |
+
29
|
| 1626 |
+
],
|
| 1627 |
+
"40": [
|
| 1628 |
+
39,
|
| 1629 |
+
41,
|
| 1630 |
+
48
|
| 1631 |
+
],
|
| 1632 |
+
"41": [
|
| 1633 |
+
40,
|
| 1634 |
+
42,
|
| 1635 |
+
31
|
| 1636 |
+
],
|
| 1637 |
+
"42": [
|
| 1638 |
+
41,
|
| 1639 |
+
43,
|
| 1640 |
+
50
|
| 1641 |
+
],
|
| 1642 |
+
"43": [
|
| 1643 |
+
42,
|
| 1644 |
+
44,
|
| 1645 |
+
33
|
| 1646 |
+
],
|
| 1647 |
+
"44": [
|
| 1648 |
+
43,
|
| 1649 |
+
45,
|
| 1650 |
+
52
|
| 1651 |
+
],
|
| 1652 |
+
"45": [
|
| 1653 |
+
44,
|
| 1654 |
+
46,
|
| 1655 |
+
35
|
| 1656 |
+
],
|
| 1657 |
+
"46": [
|
| 1658 |
+
45,
|
| 1659 |
+
47,
|
| 1660 |
+
54
|
| 1661 |
+
],
|
| 1662 |
+
"47": [
|
| 1663 |
+
46,
|
| 1664 |
+
37
|
| 1665 |
+
],
|
| 1666 |
+
"48": [
|
| 1667 |
+
49,
|
| 1668 |
+
40
|
| 1669 |
+
],
|
| 1670 |
+
"49": [
|
| 1671 |
+
48,
|
| 1672 |
+
50
|
| 1673 |
+
],
|
| 1674 |
+
"50": [
|
| 1675 |
+
49,
|
| 1676 |
+
51,
|
| 1677 |
+
42
|
| 1678 |
+
],
|
| 1679 |
+
"51": [
|
| 1680 |
+
50,
|
| 1681 |
+
52
|
| 1682 |
+
],
|
| 1683 |
+
"52": [
|
| 1684 |
+
51,
|
| 1685 |
+
53,
|
| 1686 |
+
44
|
| 1687 |
+
],
|
| 1688 |
+
"53": [
|
| 1689 |
+
52,
|
| 1690 |
+
54
|
| 1691 |
+
],
|
| 1692 |
+
"54": [
|
| 1693 |
+
53,
|
| 1694 |
+
46
|
| 1695 |
+
]
|
| 1696 |
+
},
|
| 1697 |
+
"hex_to_points": {
|
| 1698 |
+
"1": [
|
| 1699 |
+
1,
|
| 1700 |
+
2,
|
| 1701 |
+
3,
|
| 1702 |
+
9,
|
| 1703 |
+
10,
|
| 1704 |
+
11
|
| 1705 |
+
],
|
| 1706 |
+
"2": [
|
| 1707 |
+
3,
|
| 1708 |
+
4,
|
| 1709 |
+
5,
|
| 1710 |
+
11,
|
| 1711 |
+
12,
|
| 1712 |
+
13
|
| 1713 |
+
],
|
| 1714 |
+
"3": [
|
| 1715 |
+
5,
|
| 1716 |
+
6,
|
| 1717 |
+
7,
|
| 1718 |
+
13,
|
| 1719 |
+
14,
|
| 1720 |
+
15
|
| 1721 |
+
],
|
| 1722 |
+
"4": [
|
| 1723 |
+
8,
|
| 1724 |
+
9,
|
| 1725 |
+
10,
|
| 1726 |
+
18,
|
| 1727 |
+
19,
|
| 1728 |
+
20
|
| 1729 |
+
],
|
| 1730 |
+
"5": [
|
| 1731 |
+
10,
|
| 1732 |
+
11,
|
| 1733 |
+
12,
|
| 1734 |
+
20,
|
| 1735 |
+
21,
|
| 1736 |
+
22
|
| 1737 |
+
],
|
| 1738 |
+
"6": [
|
| 1739 |
+
12,
|
| 1740 |
+
13,
|
| 1741 |
+
14,
|
| 1742 |
+
22,
|
| 1743 |
+
23,
|
| 1744 |
+
24
|
| 1745 |
+
],
|
| 1746 |
+
"7": [
|
| 1747 |
+
14,
|
| 1748 |
+
15,
|
| 1749 |
+
16,
|
| 1750 |
+
24,
|
| 1751 |
+
25,
|
| 1752 |
+
26
|
| 1753 |
+
],
|
| 1754 |
+
"8": [
|
| 1755 |
+
17,
|
| 1756 |
+
18,
|
| 1757 |
+
19,
|
| 1758 |
+
28,
|
| 1759 |
+
29,
|
| 1760 |
+
30
|
| 1761 |
+
],
|
| 1762 |
+
"9": [
|
| 1763 |
+
19,
|
| 1764 |
+
20,
|
| 1765 |
+
21,
|
| 1766 |
+
30,
|
| 1767 |
+
31,
|
| 1768 |
+
32
|
| 1769 |
+
],
|
| 1770 |
+
"10": [
|
| 1771 |
+
21,
|
| 1772 |
+
22,
|
| 1773 |
+
23,
|
| 1774 |
+
32,
|
| 1775 |
+
33,
|
| 1776 |
+
34
|
| 1777 |
+
],
|
| 1778 |
+
"11": [
|
| 1779 |
+
23,
|
| 1780 |
+
24,
|
| 1781 |
+
25,
|
| 1782 |
+
34,
|
| 1783 |
+
35,
|
| 1784 |
+
36
|
| 1785 |
+
],
|
| 1786 |
+
"12": [
|
| 1787 |
+
25,
|
| 1788 |
+
26,
|
| 1789 |
+
27,
|
| 1790 |
+
36,
|
| 1791 |
+
37,
|
| 1792 |
+
38
|
| 1793 |
+
],
|
| 1794 |
+
"13": [
|
| 1795 |
+
29,
|
| 1796 |
+
30,
|
| 1797 |
+
31,
|
| 1798 |
+
39,
|
| 1799 |
+
40,
|
| 1800 |
+
41
|
| 1801 |
+
],
|
| 1802 |
+
"14": [
|
| 1803 |
+
31,
|
| 1804 |
+
32,
|
| 1805 |
+
33,
|
| 1806 |
+
41,
|
| 1807 |
+
42,
|
| 1808 |
+
43
|
| 1809 |
+
],
|
| 1810 |
+
"15": [
|
| 1811 |
+
33,
|
| 1812 |
+
34,
|
| 1813 |
+
35,
|
| 1814 |
+
43,
|
| 1815 |
+
44,
|
| 1816 |
+
45
|
| 1817 |
+
],
|
| 1818 |
+
"16": [
|
| 1819 |
+
35,
|
| 1820 |
+
36,
|
| 1821 |
+
37,
|
| 1822 |
+
45,
|
| 1823 |
+
46,
|
| 1824 |
+
47
|
| 1825 |
+
],
|
| 1826 |
+
"17": [
|
| 1827 |
+
40,
|
| 1828 |
+
41,
|
| 1829 |
+
42,
|
| 1830 |
+
48,
|
| 1831 |
+
49,
|
| 1832 |
+
50
|
| 1833 |
+
],
|
| 1834 |
+
"18": [
|
| 1835 |
+
42,
|
| 1836 |
+
43,
|
| 1837 |
+
44,
|
| 1838 |
+
50,
|
| 1839 |
+
51,
|
| 1840 |
+
52
|
| 1841 |
+
],
|
| 1842 |
+
"19": [
|
| 1843 |
+
44,
|
| 1844 |
+
45,
|
| 1845 |
+
46,
|
| 1846 |
+
52,
|
| 1847 |
+
53,
|
| 1848 |
+
54
|
| 1849 |
+
]
|
| 1850 |
+
},
|
| 1851 |
+
"total_points": 54,
|
| 1852 |
+
"total_hexes": 19
|
| 1853 |
+
}
|
| 1854 |
+
}
|
| 1855 |
+
]
|
| 1856 |
+
}
|
examples/ai_testing/my_games/game_20251223_204416_final.json
ADDED
|
@@ -0,0 +1,1850 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"hexes": [
|
| 3 |
+
{
|
| 4 |
+
"id": 1,
|
| 5 |
+
"q": 0,
|
| 6 |
+
"r": -2,
|
| 7 |
+
"type": "wood",
|
| 8 |
+
"number": 12,
|
| 9 |
+
"has_robber": false,
|
| 10 |
+
"position": [
|
| 11 |
+
0,
|
| 12 |
+
0
|
| 13 |
+
],
|
| 14 |
+
"axial_coords": [
|
| 15 |
+
0,
|
| 16 |
+
-2
|
| 17 |
+
]
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"id": 2,
|
| 21 |
+
"q": 1,
|
| 22 |
+
"r": -2,
|
| 23 |
+
"type": "sheep",
|
| 24 |
+
"number": 5,
|
| 25 |
+
"has_robber": false,
|
| 26 |
+
"position": [
|
| 27 |
+
0,
|
| 28 |
+
1
|
| 29 |
+
],
|
| 30 |
+
"axial_coords": [
|
| 31 |
+
1,
|
| 32 |
+
-2
|
| 33 |
+
]
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"id": 3,
|
| 37 |
+
"q": 2,
|
| 38 |
+
"r": -2,
|
| 39 |
+
"type": "wood",
|
| 40 |
+
"number": 4,
|
| 41 |
+
"has_robber": false,
|
| 42 |
+
"position": [
|
| 43 |
+
0,
|
| 44 |
+
2
|
| 45 |
+
],
|
| 46 |
+
"axial_coords": [
|
| 47 |
+
2,
|
| 48 |
+
-2
|
| 49 |
+
]
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"id": 4,
|
| 53 |
+
"q": -1,
|
| 54 |
+
"r": -1,
|
| 55 |
+
"type": "sheep",
|
| 56 |
+
"number": 8,
|
| 57 |
+
"has_robber": false,
|
| 58 |
+
"position": [
|
| 59 |
+
1,
|
| 60 |
+
0
|
| 61 |
+
],
|
| 62 |
+
"axial_coords": [
|
| 63 |
+
-1,
|
| 64 |
+
-1
|
| 65 |
+
]
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"id": 5,
|
| 69 |
+
"q": 0,
|
| 70 |
+
"r": -1,
|
| 71 |
+
"type": "brick",
|
| 72 |
+
"number": 6,
|
| 73 |
+
"has_robber": false,
|
| 74 |
+
"position": [
|
| 75 |
+
1,
|
| 76 |
+
1
|
| 77 |
+
],
|
| 78 |
+
"axial_coords": [
|
| 79 |
+
0,
|
| 80 |
+
-1
|
| 81 |
+
]
|
| 82 |
+
},
|
| 83 |
+
{
|
| 84 |
+
"id": 6,
|
| 85 |
+
"q": 1,
|
| 86 |
+
"r": -1,
|
| 87 |
+
"type": "wood",
|
| 88 |
+
"number": 3,
|
| 89 |
+
"has_robber": false,
|
| 90 |
+
"position": [
|
| 91 |
+
1,
|
| 92 |
+
2
|
| 93 |
+
],
|
| 94 |
+
"axial_coords": [
|
| 95 |
+
1,
|
| 96 |
+
-1
|
| 97 |
+
]
|
| 98 |
+
},
|
| 99 |
+
{
|
| 100 |
+
"id": 7,
|
| 101 |
+
"q": 2,
|
| 102 |
+
"r": -1,
|
| 103 |
+
"type": "wheat",
|
| 104 |
+
"number": 8,
|
| 105 |
+
"has_robber": false,
|
| 106 |
+
"position": [
|
| 107 |
+
1,
|
| 108 |
+
3
|
| 109 |
+
],
|
| 110 |
+
"axial_coords": [
|
| 111 |
+
2,
|
| 112 |
+
-1
|
| 113 |
+
]
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"id": 8,
|
| 117 |
+
"q": -2,
|
| 118 |
+
"r": 0,
|
| 119 |
+
"type": "brick",
|
| 120 |
+
"number": 10,
|
| 121 |
+
"has_robber": false,
|
| 122 |
+
"position": [
|
| 123 |
+
2,
|
| 124 |
+
0
|
| 125 |
+
],
|
| 126 |
+
"axial_coords": [
|
| 127 |
+
-2,
|
| 128 |
+
0
|
| 129 |
+
]
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"id": 9,
|
| 133 |
+
"q": -1,
|
| 134 |
+
"r": 0,
|
| 135 |
+
"type": "wood",
|
| 136 |
+
"number": 11,
|
| 137 |
+
"has_robber": false,
|
| 138 |
+
"position": [
|
| 139 |
+
2,
|
| 140 |
+
1
|
| 141 |
+
],
|
| 142 |
+
"axial_coords": [
|
| 143 |
+
-1,
|
| 144 |
+
0
|
| 145 |
+
]
|
| 146 |
+
},
|
| 147 |
+
{
|
| 148 |
+
"id": 10,
|
| 149 |
+
"q": 0,
|
| 150 |
+
"r": 0,
|
| 151 |
+
"type": "desert",
|
| 152 |
+
"number": null,
|
| 153 |
+
"has_robber": true,
|
| 154 |
+
"position": [
|
| 155 |
+
2,
|
| 156 |
+
2
|
| 157 |
+
],
|
| 158 |
+
"axial_coords": [
|
| 159 |
+
0,
|
| 160 |
+
0
|
| 161 |
+
]
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"id": 11,
|
| 165 |
+
"q": 1,
|
| 166 |
+
"r": 0,
|
| 167 |
+
"type": "ore",
|
| 168 |
+
"number": 3,
|
| 169 |
+
"has_robber": false,
|
| 170 |
+
"position": [
|
| 171 |
+
2,
|
| 172 |
+
3
|
| 173 |
+
],
|
| 174 |
+
"axial_coords": [
|
| 175 |
+
1,
|
| 176 |
+
0
|
| 177 |
+
]
|
| 178 |
+
},
|
| 179 |
+
{
|
| 180 |
+
"id": 12,
|
| 181 |
+
"q": 2,
|
| 182 |
+
"r": 0,
|
| 183 |
+
"type": "sheep",
|
| 184 |
+
"number": 4,
|
| 185 |
+
"has_robber": false,
|
| 186 |
+
"position": [
|
| 187 |
+
2,
|
| 188 |
+
4
|
| 189 |
+
],
|
| 190 |
+
"axial_coords": [
|
| 191 |
+
2,
|
| 192 |
+
0
|
| 193 |
+
]
|
| 194 |
+
},
|
| 195 |
+
{
|
| 196 |
+
"id": 13,
|
| 197 |
+
"q": -2,
|
| 198 |
+
"r": 1,
|
| 199 |
+
"type": "brick",
|
| 200 |
+
"number": 10,
|
| 201 |
+
"has_robber": false,
|
| 202 |
+
"position": [
|
| 203 |
+
3,
|
| 204 |
+
0
|
| 205 |
+
],
|
| 206 |
+
"axial_coords": [
|
| 207 |
+
-2,
|
| 208 |
+
1
|
| 209 |
+
]
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"id": 14,
|
| 213 |
+
"q": -1,
|
| 214 |
+
"r": 1,
|
| 215 |
+
"type": "wheat",
|
| 216 |
+
"number": 9,
|
| 217 |
+
"has_robber": false,
|
| 218 |
+
"position": [
|
| 219 |
+
3,
|
| 220 |
+
1
|
| 221 |
+
],
|
| 222 |
+
"axial_coords": [
|
| 223 |
+
-1,
|
| 224 |
+
1
|
| 225 |
+
]
|
| 226 |
+
},
|
| 227 |
+
{
|
| 228 |
+
"id": 15,
|
| 229 |
+
"q": 0,
|
| 230 |
+
"r": 1,
|
| 231 |
+
"type": "wheat",
|
| 232 |
+
"number": 6,
|
| 233 |
+
"has_robber": false,
|
| 234 |
+
"position": [
|
| 235 |
+
3,
|
| 236 |
+
2
|
| 237 |
+
],
|
| 238 |
+
"axial_coords": [
|
| 239 |
+
0,
|
| 240 |
+
1
|
| 241 |
+
]
|
| 242 |
+
},
|
| 243 |
+
{
|
| 244 |
+
"id": 16,
|
| 245 |
+
"q": 1,
|
| 246 |
+
"r": 1,
|
| 247 |
+
"type": "sheep",
|
| 248 |
+
"number": 11,
|
| 249 |
+
"has_robber": false,
|
| 250 |
+
"position": [
|
| 251 |
+
3,
|
| 252 |
+
3
|
| 253 |
+
],
|
| 254 |
+
"axial_coords": [
|
| 255 |
+
1,
|
| 256 |
+
1
|
| 257 |
+
]
|
| 258 |
+
},
|
| 259 |
+
{
|
| 260 |
+
"id": 17,
|
| 261 |
+
"q": -2,
|
| 262 |
+
"r": 2,
|
| 263 |
+
"type": "ore",
|
| 264 |
+
"number": 5,
|
| 265 |
+
"has_robber": false,
|
| 266 |
+
"position": [
|
| 267 |
+
4,
|
| 268 |
+
0
|
| 269 |
+
],
|
| 270 |
+
"axial_coords": [
|
| 271 |
+
-2,
|
| 272 |
+
2
|
| 273 |
+
]
|
| 274 |
+
},
|
| 275 |
+
{
|
| 276 |
+
"id": 18,
|
| 277 |
+
"q": -1,
|
| 278 |
+
"r": 2,
|
| 279 |
+
"type": "wheat",
|
| 280 |
+
"number": 9,
|
| 281 |
+
"has_robber": false,
|
| 282 |
+
"position": [
|
| 283 |
+
4,
|
| 284 |
+
1
|
| 285 |
+
],
|
| 286 |
+
"axial_coords": [
|
| 287 |
+
-1,
|
| 288 |
+
2
|
| 289 |
+
]
|
| 290 |
+
},
|
| 291 |
+
{
|
| 292 |
+
"id": 19,
|
| 293 |
+
"q": 0,
|
| 294 |
+
"r": 2,
|
| 295 |
+
"type": "ore",
|
| 296 |
+
"number": 2,
|
| 297 |
+
"has_robber": false,
|
| 298 |
+
"position": [
|
| 299 |
+
4,
|
| 300 |
+
2
|
| 301 |
+
],
|
| 302 |
+
"axial_coords": [
|
| 303 |
+
0,
|
| 304 |
+
2
|
| 305 |
+
]
|
| 306 |
+
}
|
| 307 |
+
],
|
| 308 |
+
"settlements": [],
|
| 309 |
+
"cities": [],
|
| 310 |
+
"roads": [],
|
| 311 |
+
"players": [
|
| 312 |
+
{
|
| 313 |
+
"id": 0,
|
| 314 |
+
"name": "a",
|
| 315 |
+
"victory_points": 0,
|
| 316 |
+
"total_cards": 0,
|
| 317 |
+
"cards_list": [],
|
| 318 |
+
"dev_cards_list": [],
|
| 319 |
+
"settlements": 0,
|
| 320 |
+
"cities": 0,
|
| 321 |
+
"roads": 0,
|
| 322 |
+
"longest_road": 0,
|
| 323 |
+
"has_longest_road": false,
|
| 324 |
+
"knights": 0,
|
| 325 |
+
"knights_played": 0,
|
| 326 |
+
"has_largest_army": false
|
| 327 |
+
},
|
| 328 |
+
{
|
| 329 |
+
"id": 1,
|
| 330 |
+
"name": "b",
|
| 331 |
+
"victory_points": 0,
|
| 332 |
+
"total_cards": 0,
|
| 333 |
+
"cards_list": [],
|
| 334 |
+
"dev_cards_list": [],
|
| 335 |
+
"settlements": 0,
|
| 336 |
+
"cities": 0,
|
| 337 |
+
"roads": 0,
|
| 338 |
+
"longest_road": 0,
|
| 339 |
+
"has_longest_road": false,
|
| 340 |
+
"knights": 0,
|
| 341 |
+
"knights_played": 0,
|
| 342 |
+
"has_largest_army": false
|
| 343 |
+
},
|
| 344 |
+
{
|
| 345 |
+
"id": 2,
|
| 346 |
+
"name": "c",
|
| 347 |
+
"victory_points": 0,
|
| 348 |
+
"total_cards": 0,
|
| 349 |
+
"cards_list": [],
|
| 350 |
+
"dev_cards_list": [],
|
| 351 |
+
"settlements": 0,
|
| 352 |
+
"cities": 0,
|
| 353 |
+
"roads": 0,
|
| 354 |
+
"longest_road": 0,
|
| 355 |
+
"has_longest_road": false,
|
| 356 |
+
"knights": 0,
|
| 357 |
+
"knights_played": 0,
|
| 358 |
+
"has_largest_army": false
|
| 359 |
+
}
|
| 360 |
+
],
|
| 361 |
+
"current_player": 0,
|
| 362 |
+
"current_phase": "SETUP_FIRST_ROUND",
|
| 363 |
+
"robber_position": [
|
| 364 |
+
2,
|
| 365 |
+
2
|
| 366 |
+
],
|
| 367 |
+
"dice_result": null,
|
| 368 |
+
"points": [
|
| 369 |
+
{
|
| 370 |
+
"point_id": 1,
|
| 371 |
+
"game_coords": [
|
| 372 |
+
0,
|
| 373 |
+
0
|
| 374 |
+
],
|
| 375 |
+
"adjacent_points": [
|
| 376 |
+
2,
|
| 377 |
+
9
|
| 378 |
+
],
|
| 379 |
+
"adjacent_hexes": [
|
| 380 |
+
1
|
| 381 |
+
],
|
| 382 |
+
"pixel_coords": [
|
| 383 |
+
377.5,
|
| 384 |
+
105.14428414850131
|
| 385 |
+
]
|
| 386 |
+
},
|
| 387 |
+
{
|
| 388 |
+
"point_id": 2,
|
| 389 |
+
"game_coords": [
|
| 390 |
+
0,
|
| 391 |
+
1
|
| 392 |
+
],
|
| 393 |
+
"adjacent_points": [
|
| 394 |
+
1,
|
| 395 |
+
3
|
| 396 |
+
],
|
| 397 |
+
"adjacent_hexes": [
|
| 398 |
+
1
|
| 399 |
+
],
|
| 400 |
+
"pixel_coords": [
|
| 401 |
+
422.5,
|
| 402 |
+
105.14428414850128
|
| 403 |
+
]
|
| 404 |
+
},
|
| 405 |
+
{
|
| 406 |
+
"point_id": 3,
|
| 407 |
+
"game_coords": [
|
| 408 |
+
0,
|
| 409 |
+
2
|
| 410 |
+
],
|
| 411 |
+
"adjacent_points": [
|
| 412 |
+
2,
|
| 413 |
+
4,
|
| 414 |
+
11
|
| 415 |
+
],
|
| 416 |
+
"adjacent_hexes": [
|
| 417 |
+
2,
|
| 418 |
+
1
|
| 419 |
+
],
|
| 420 |
+
"pixel_coords": [
|
| 421 |
+
445,
|
| 422 |
+
144.11542731880104
|
| 423 |
+
]
|
| 424 |
+
},
|
| 425 |
+
{
|
| 426 |
+
"point_id": 4,
|
| 427 |
+
"game_coords": [
|
| 428 |
+
0,
|
| 429 |
+
3
|
| 430 |
+
],
|
| 431 |
+
"adjacent_points": [
|
| 432 |
+
3,
|
| 433 |
+
5
|
| 434 |
+
],
|
| 435 |
+
"adjacent_hexes": [
|
| 436 |
+
2
|
| 437 |
+
],
|
| 438 |
+
"pixel_coords": [
|
| 439 |
+
490,
|
| 440 |
+
144.11542731880104
|
| 441 |
+
]
|
| 442 |
+
},
|
| 443 |
+
{
|
| 444 |
+
"point_id": 5,
|
| 445 |
+
"game_coords": [
|
| 446 |
+
0,
|
| 447 |
+
4
|
| 448 |
+
],
|
| 449 |
+
"adjacent_points": [
|
| 450 |
+
4,
|
| 451 |
+
6,
|
| 452 |
+
13
|
| 453 |
+
],
|
| 454 |
+
"adjacent_hexes": [
|
| 455 |
+
3,
|
| 456 |
+
2
|
| 457 |
+
],
|
| 458 |
+
"pixel_coords": [
|
| 459 |
+
512.5,
|
| 460 |
+
183.08657048910078
|
| 461 |
+
]
|
| 462 |
+
},
|
| 463 |
+
{
|
| 464 |
+
"point_id": 6,
|
| 465 |
+
"game_coords": [
|
| 466 |
+
0,
|
| 467 |
+
5
|
| 468 |
+
],
|
| 469 |
+
"adjacent_points": [
|
| 470 |
+
5,
|
| 471 |
+
7
|
| 472 |
+
],
|
| 473 |
+
"adjacent_hexes": [
|
| 474 |
+
3
|
| 475 |
+
],
|
| 476 |
+
"pixel_coords": [
|
| 477 |
+
557.5,
|
| 478 |
+
183.08657048910078
|
| 479 |
+
]
|
| 480 |
+
},
|
| 481 |
+
{
|
| 482 |
+
"point_id": 7,
|
| 483 |
+
"game_coords": [
|
| 484 |
+
0,
|
| 485 |
+
6
|
| 486 |
+
],
|
| 487 |
+
"adjacent_points": [
|
| 488 |
+
6,
|
| 489 |
+
15
|
| 490 |
+
],
|
| 491 |
+
"adjacent_hexes": [
|
| 492 |
+
3
|
| 493 |
+
],
|
| 494 |
+
"pixel_coords": [
|
| 495 |
+
580,
|
| 496 |
+
222.05771365940052
|
| 497 |
+
]
|
| 498 |
+
},
|
| 499 |
+
{
|
| 500 |
+
"point_id": 8,
|
| 501 |
+
"game_coords": [
|
| 502 |
+
1,
|
| 503 |
+
0
|
| 504 |
+
],
|
| 505 |
+
"adjacent_points": [
|
| 506 |
+
9,
|
| 507 |
+
18
|
| 508 |
+
],
|
| 509 |
+
"adjacent_hexes": [
|
| 510 |
+
4
|
| 511 |
+
],
|
| 512 |
+
"pixel_coords": [
|
| 513 |
+
310,
|
| 514 |
+
144.11542731880104
|
| 515 |
+
]
|
| 516 |
+
},
|
| 517 |
+
{
|
| 518 |
+
"point_id": 9,
|
| 519 |
+
"game_coords": [
|
| 520 |
+
1,
|
| 521 |
+
1
|
| 522 |
+
],
|
| 523 |
+
"adjacent_points": [
|
| 524 |
+
8,
|
| 525 |
+
10,
|
| 526 |
+
1
|
| 527 |
+
],
|
| 528 |
+
"adjacent_hexes": [
|
| 529 |
+
4,
|
| 530 |
+
1
|
| 531 |
+
],
|
| 532 |
+
"pixel_coords": [
|
| 533 |
+
355,
|
| 534 |
+
144.11542731880104
|
| 535 |
+
]
|
| 536 |
+
},
|
| 537 |
+
{
|
| 538 |
+
"point_id": 10,
|
| 539 |
+
"game_coords": [
|
| 540 |
+
1,
|
| 541 |
+
2
|
| 542 |
+
],
|
| 543 |
+
"adjacent_points": [
|
| 544 |
+
9,
|
| 545 |
+
11,
|
| 546 |
+
20
|
| 547 |
+
],
|
| 548 |
+
"adjacent_hexes": [
|
| 549 |
+
5,
|
| 550 |
+
4,
|
| 551 |
+
1
|
| 552 |
+
],
|
| 553 |
+
"pixel_coords": [
|
| 554 |
+
377.5,
|
| 555 |
+
183.08657048910078
|
| 556 |
+
]
|
| 557 |
+
},
|
| 558 |
+
{
|
| 559 |
+
"point_id": 11,
|
| 560 |
+
"game_coords": [
|
| 561 |
+
1,
|
| 562 |
+
3
|
| 563 |
+
],
|
| 564 |
+
"adjacent_points": [
|
| 565 |
+
10,
|
| 566 |
+
12,
|
| 567 |
+
3
|
| 568 |
+
],
|
| 569 |
+
"adjacent_hexes": [
|
| 570 |
+
5,
|
| 571 |
+
2,
|
| 572 |
+
1
|
| 573 |
+
],
|
| 574 |
+
"pixel_coords": [
|
| 575 |
+
422.5,
|
| 576 |
+
183.08657048910078
|
| 577 |
+
]
|
| 578 |
+
},
|
| 579 |
+
{
|
| 580 |
+
"point_id": 12,
|
| 581 |
+
"game_coords": [
|
| 582 |
+
1,
|
| 583 |
+
4
|
| 584 |
+
],
|
| 585 |
+
"adjacent_points": [
|
| 586 |
+
11,
|
| 587 |
+
13,
|
| 588 |
+
22
|
| 589 |
+
],
|
| 590 |
+
"adjacent_hexes": [
|
| 591 |
+
6,
|
| 592 |
+
5,
|
| 593 |
+
2
|
| 594 |
+
],
|
| 595 |
+
"pixel_coords": [
|
| 596 |
+
445,
|
| 597 |
+
222.05771365940052
|
| 598 |
+
]
|
| 599 |
+
},
|
| 600 |
+
{
|
| 601 |
+
"point_id": 13,
|
| 602 |
+
"game_coords": [
|
| 603 |
+
1,
|
| 604 |
+
5
|
| 605 |
+
],
|
| 606 |
+
"adjacent_points": [
|
| 607 |
+
12,
|
| 608 |
+
14,
|
| 609 |
+
5
|
| 610 |
+
],
|
| 611 |
+
"adjacent_hexes": [
|
| 612 |
+
6,
|
| 613 |
+
3,
|
| 614 |
+
2
|
| 615 |
+
],
|
| 616 |
+
"pixel_coords": [
|
| 617 |
+
490,
|
| 618 |
+
222.05771365940052
|
| 619 |
+
]
|
| 620 |
+
},
|
| 621 |
+
{
|
| 622 |
+
"point_id": 14,
|
| 623 |
+
"game_coords": [
|
| 624 |
+
1,
|
| 625 |
+
6
|
| 626 |
+
],
|
| 627 |
+
"adjacent_points": [
|
| 628 |
+
13,
|
| 629 |
+
15,
|
| 630 |
+
24
|
| 631 |
+
],
|
| 632 |
+
"adjacent_hexes": [
|
| 633 |
+
7,
|
| 634 |
+
6,
|
| 635 |
+
3
|
| 636 |
+
],
|
| 637 |
+
"pixel_coords": [
|
| 638 |
+
512.5,
|
| 639 |
+
261.02885682970026
|
| 640 |
+
]
|
| 641 |
+
},
|
| 642 |
+
{
|
| 643 |
+
"point_id": 15,
|
| 644 |
+
"game_coords": [
|
| 645 |
+
1,
|
| 646 |
+
7
|
| 647 |
+
],
|
| 648 |
+
"adjacent_points": [
|
| 649 |
+
14,
|
| 650 |
+
16,
|
| 651 |
+
7
|
| 652 |
+
],
|
| 653 |
+
"adjacent_hexes": [
|
| 654 |
+
7,
|
| 655 |
+
3
|
| 656 |
+
],
|
| 657 |
+
"pixel_coords": [
|
| 658 |
+
557.5,
|
| 659 |
+
261.02885682970026
|
| 660 |
+
]
|
| 661 |
+
},
|
| 662 |
+
{
|
| 663 |
+
"point_id": 16,
|
| 664 |
+
"game_coords": [
|
| 665 |
+
1,
|
| 666 |
+
8
|
| 667 |
+
],
|
| 668 |
+
"adjacent_points": [
|
| 669 |
+
15,
|
| 670 |
+
26
|
| 671 |
+
],
|
| 672 |
+
"adjacent_hexes": [
|
| 673 |
+
7
|
| 674 |
+
],
|
| 675 |
+
"pixel_coords": [
|
| 676 |
+
580,
|
| 677 |
+
300
|
| 678 |
+
]
|
| 679 |
+
},
|
| 680 |
+
{
|
| 681 |
+
"point_id": 17,
|
| 682 |
+
"game_coords": [
|
| 683 |
+
2,
|
| 684 |
+
0
|
| 685 |
+
],
|
| 686 |
+
"adjacent_points": [
|
| 687 |
+
18,
|
| 688 |
+
28
|
| 689 |
+
],
|
| 690 |
+
"adjacent_hexes": [
|
| 691 |
+
8
|
| 692 |
+
],
|
| 693 |
+
"pixel_coords": [
|
| 694 |
+
242.49999999999997,
|
| 695 |
+
183.08657048910078
|
| 696 |
+
]
|
| 697 |
+
},
|
| 698 |
+
{
|
| 699 |
+
"point_id": 18,
|
| 700 |
+
"game_coords": [
|
| 701 |
+
2,
|
| 702 |
+
1
|
| 703 |
+
],
|
| 704 |
+
"adjacent_points": [
|
| 705 |
+
17,
|
| 706 |
+
19,
|
| 707 |
+
8
|
| 708 |
+
],
|
| 709 |
+
"adjacent_hexes": [
|
| 710 |
+
8,
|
| 711 |
+
4
|
| 712 |
+
],
|
| 713 |
+
"pixel_coords": [
|
| 714 |
+
287.5,
|
| 715 |
+
183.08657048910078
|
| 716 |
+
]
|
| 717 |
+
},
|
| 718 |
+
{
|
| 719 |
+
"point_id": 19,
|
| 720 |
+
"game_coords": [
|
| 721 |
+
2,
|
| 722 |
+
2
|
| 723 |
+
],
|
| 724 |
+
"adjacent_points": [
|
| 725 |
+
18,
|
| 726 |
+
20,
|
| 727 |
+
30
|
| 728 |
+
],
|
| 729 |
+
"adjacent_hexes": [
|
| 730 |
+
9,
|
| 731 |
+
8,
|
| 732 |
+
4
|
| 733 |
+
],
|
| 734 |
+
"pixel_coords": [
|
| 735 |
+
310,
|
| 736 |
+
222.05771365940052
|
| 737 |
+
]
|
| 738 |
+
},
|
| 739 |
+
{
|
| 740 |
+
"point_id": 20,
|
| 741 |
+
"game_coords": [
|
| 742 |
+
2,
|
| 743 |
+
3
|
| 744 |
+
],
|
| 745 |
+
"adjacent_points": [
|
| 746 |
+
19,
|
| 747 |
+
21,
|
| 748 |
+
10
|
| 749 |
+
],
|
| 750 |
+
"adjacent_hexes": [
|
| 751 |
+
9,
|
| 752 |
+
5,
|
| 753 |
+
4
|
| 754 |
+
],
|
| 755 |
+
"pixel_coords": [
|
| 756 |
+
355,
|
| 757 |
+
222.05771365940052
|
| 758 |
+
]
|
| 759 |
+
},
|
| 760 |
+
{
|
| 761 |
+
"point_id": 21,
|
| 762 |
+
"game_coords": [
|
| 763 |
+
2,
|
| 764 |
+
4
|
| 765 |
+
],
|
| 766 |
+
"adjacent_points": [
|
| 767 |
+
20,
|
| 768 |
+
22,
|
| 769 |
+
32
|
| 770 |
+
],
|
| 771 |
+
"adjacent_hexes": [
|
| 772 |
+
10,
|
| 773 |
+
9,
|
| 774 |
+
5
|
| 775 |
+
],
|
| 776 |
+
"pixel_coords": [
|
| 777 |
+
377.5,
|
| 778 |
+
261.02885682970026
|
| 779 |
+
]
|
| 780 |
+
},
|
| 781 |
+
{
|
| 782 |
+
"point_id": 22,
|
| 783 |
+
"game_coords": [
|
| 784 |
+
2,
|
| 785 |
+
5
|
| 786 |
+
],
|
| 787 |
+
"adjacent_points": [
|
| 788 |
+
21,
|
| 789 |
+
23,
|
| 790 |
+
12
|
| 791 |
+
],
|
| 792 |
+
"adjacent_hexes": [
|
| 793 |
+
10,
|
| 794 |
+
6,
|
| 795 |
+
5
|
| 796 |
+
],
|
| 797 |
+
"pixel_coords": [
|
| 798 |
+
422.5,
|
| 799 |
+
261.02885682970026
|
| 800 |
+
]
|
| 801 |
+
},
|
| 802 |
+
{
|
| 803 |
+
"point_id": 23,
|
| 804 |
+
"game_coords": [
|
| 805 |
+
2,
|
| 806 |
+
6
|
| 807 |
+
],
|
| 808 |
+
"adjacent_points": [
|
| 809 |
+
22,
|
| 810 |
+
24,
|
| 811 |
+
34
|
| 812 |
+
],
|
| 813 |
+
"adjacent_hexes": [
|
| 814 |
+
11,
|
| 815 |
+
10,
|
| 816 |
+
6
|
| 817 |
+
],
|
| 818 |
+
"pixel_coords": [
|
| 819 |
+
445,
|
| 820 |
+
300
|
| 821 |
+
]
|
| 822 |
+
},
|
| 823 |
+
{
|
| 824 |
+
"point_id": 24,
|
| 825 |
+
"game_coords": [
|
| 826 |
+
2,
|
| 827 |
+
7
|
| 828 |
+
],
|
| 829 |
+
"adjacent_points": [
|
| 830 |
+
23,
|
| 831 |
+
25,
|
| 832 |
+
14
|
| 833 |
+
],
|
| 834 |
+
"adjacent_hexes": [
|
| 835 |
+
11,
|
| 836 |
+
7,
|
| 837 |
+
6
|
| 838 |
+
],
|
| 839 |
+
"pixel_coords": [
|
| 840 |
+
490,
|
| 841 |
+
300
|
| 842 |
+
]
|
| 843 |
+
},
|
| 844 |
+
{
|
| 845 |
+
"point_id": 25,
|
| 846 |
+
"game_coords": [
|
| 847 |
+
2,
|
| 848 |
+
8
|
| 849 |
+
],
|
| 850 |
+
"adjacent_points": [
|
| 851 |
+
24,
|
| 852 |
+
26,
|
| 853 |
+
36
|
| 854 |
+
],
|
| 855 |
+
"adjacent_hexes": [
|
| 856 |
+
12,
|
| 857 |
+
11,
|
| 858 |
+
7
|
| 859 |
+
],
|
| 860 |
+
"pixel_coords": [
|
| 861 |
+
512.5,
|
| 862 |
+
338.97114317029974
|
| 863 |
+
]
|
| 864 |
+
},
|
| 865 |
+
{
|
| 866 |
+
"point_id": 26,
|
| 867 |
+
"game_coords": [
|
| 868 |
+
2,
|
| 869 |
+
9
|
| 870 |
+
],
|
| 871 |
+
"adjacent_points": [
|
| 872 |
+
25,
|
| 873 |
+
27,
|
| 874 |
+
16
|
| 875 |
+
],
|
| 876 |
+
"adjacent_hexes": [
|
| 877 |
+
12,
|
| 878 |
+
7
|
| 879 |
+
],
|
| 880 |
+
"pixel_coords": [
|
| 881 |
+
557.5,
|
| 882 |
+
338.97114317029974
|
| 883 |
+
]
|
| 884 |
+
},
|
| 885 |
+
{
|
| 886 |
+
"point_id": 27,
|
| 887 |
+
"game_coords": [
|
| 888 |
+
2,
|
| 889 |
+
10
|
| 890 |
+
],
|
| 891 |
+
"adjacent_points": [
|
| 892 |
+
26,
|
| 893 |
+
38
|
| 894 |
+
],
|
| 895 |
+
"adjacent_hexes": [
|
| 896 |
+
12
|
| 897 |
+
],
|
| 898 |
+
"pixel_coords": [
|
| 899 |
+
580,
|
| 900 |
+
377.9422863405995
|
| 901 |
+
]
|
| 902 |
+
},
|
| 903 |
+
{
|
| 904 |
+
"point_id": 28,
|
| 905 |
+
"game_coords": [
|
| 906 |
+
3,
|
| 907 |
+
0
|
| 908 |
+
],
|
| 909 |
+
"adjacent_points": [
|
| 910 |
+
29,
|
| 911 |
+
17
|
| 912 |
+
],
|
| 913 |
+
"adjacent_hexes": [
|
| 914 |
+
8
|
| 915 |
+
],
|
| 916 |
+
"pixel_coords": [
|
| 917 |
+
220,
|
| 918 |
+
222.05771365940052
|
| 919 |
+
]
|
| 920 |
+
},
|
| 921 |
+
{
|
| 922 |
+
"point_id": 29,
|
| 923 |
+
"game_coords": [
|
| 924 |
+
3,
|
| 925 |
+
1
|
| 926 |
+
],
|
| 927 |
+
"adjacent_points": [
|
| 928 |
+
28,
|
| 929 |
+
30,
|
| 930 |
+
39
|
| 931 |
+
],
|
| 932 |
+
"adjacent_hexes": [
|
| 933 |
+
13,
|
| 934 |
+
8
|
| 935 |
+
],
|
| 936 |
+
"pixel_coords": [
|
| 937 |
+
242.5,
|
| 938 |
+
261.02885682970026
|
| 939 |
+
]
|
| 940 |
+
},
|
| 941 |
+
{
|
| 942 |
+
"point_id": 30,
|
| 943 |
+
"game_coords": [
|
| 944 |
+
3,
|
| 945 |
+
2
|
| 946 |
+
],
|
| 947 |
+
"adjacent_points": [
|
| 948 |
+
29,
|
| 949 |
+
31,
|
| 950 |
+
19
|
| 951 |
+
],
|
| 952 |
+
"adjacent_hexes": [
|
| 953 |
+
13,
|
| 954 |
+
9,
|
| 955 |
+
8
|
| 956 |
+
],
|
| 957 |
+
"pixel_coords": [
|
| 958 |
+
287.5,
|
| 959 |
+
261.02885682970026
|
| 960 |
+
]
|
| 961 |
+
},
|
| 962 |
+
{
|
| 963 |
+
"point_id": 31,
|
| 964 |
+
"game_coords": [
|
| 965 |
+
3,
|
| 966 |
+
3
|
| 967 |
+
],
|
| 968 |
+
"adjacent_points": [
|
| 969 |
+
30,
|
| 970 |
+
32,
|
| 971 |
+
41
|
| 972 |
+
],
|
| 973 |
+
"adjacent_hexes": [
|
| 974 |
+
14,
|
| 975 |
+
13,
|
| 976 |
+
9
|
| 977 |
+
],
|
| 978 |
+
"pixel_coords": [
|
| 979 |
+
310,
|
| 980 |
+
300
|
| 981 |
+
]
|
| 982 |
+
},
|
| 983 |
+
{
|
| 984 |
+
"point_id": 32,
|
| 985 |
+
"game_coords": [
|
| 986 |
+
3,
|
| 987 |
+
4
|
| 988 |
+
],
|
| 989 |
+
"adjacent_points": [
|
| 990 |
+
31,
|
| 991 |
+
33,
|
| 992 |
+
21
|
| 993 |
+
],
|
| 994 |
+
"adjacent_hexes": [
|
| 995 |
+
14,
|
| 996 |
+
10,
|
| 997 |
+
9
|
| 998 |
+
],
|
| 999 |
+
"pixel_coords": [
|
| 1000 |
+
355,
|
| 1001 |
+
300
|
| 1002 |
+
]
|
| 1003 |
+
},
|
| 1004 |
+
{
|
| 1005 |
+
"point_id": 33,
|
| 1006 |
+
"game_coords": [
|
| 1007 |
+
3,
|
| 1008 |
+
5
|
| 1009 |
+
],
|
| 1010 |
+
"adjacent_points": [
|
| 1011 |
+
32,
|
| 1012 |
+
34,
|
| 1013 |
+
43
|
| 1014 |
+
],
|
| 1015 |
+
"adjacent_hexes": [
|
| 1016 |
+
15,
|
| 1017 |
+
14,
|
| 1018 |
+
10
|
| 1019 |
+
],
|
| 1020 |
+
"pixel_coords": [
|
| 1021 |
+
377.5,
|
| 1022 |
+
338.97114317029974
|
| 1023 |
+
]
|
| 1024 |
+
},
|
| 1025 |
+
{
|
| 1026 |
+
"point_id": 34,
|
| 1027 |
+
"game_coords": [
|
| 1028 |
+
3,
|
| 1029 |
+
6
|
| 1030 |
+
],
|
| 1031 |
+
"adjacent_points": [
|
| 1032 |
+
33,
|
| 1033 |
+
35,
|
| 1034 |
+
23
|
| 1035 |
+
],
|
| 1036 |
+
"adjacent_hexes": [
|
| 1037 |
+
15,
|
| 1038 |
+
11,
|
| 1039 |
+
10
|
| 1040 |
+
],
|
| 1041 |
+
"pixel_coords": [
|
| 1042 |
+
422.5,
|
| 1043 |
+
338.97114317029974
|
| 1044 |
+
]
|
| 1045 |
+
},
|
| 1046 |
+
{
|
| 1047 |
+
"point_id": 35,
|
| 1048 |
+
"game_coords": [
|
| 1049 |
+
3,
|
| 1050 |
+
7
|
| 1051 |
+
],
|
| 1052 |
+
"adjacent_points": [
|
| 1053 |
+
34,
|
| 1054 |
+
36,
|
| 1055 |
+
45
|
| 1056 |
+
],
|
| 1057 |
+
"adjacent_hexes": [
|
| 1058 |
+
16,
|
| 1059 |
+
15,
|
| 1060 |
+
11
|
| 1061 |
+
],
|
| 1062 |
+
"pixel_coords": [
|
| 1063 |
+
445,
|
| 1064 |
+
377.9422863405995
|
| 1065 |
+
]
|
| 1066 |
+
},
|
| 1067 |
+
{
|
| 1068 |
+
"point_id": 36,
|
| 1069 |
+
"game_coords": [
|
| 1070 |
+
3,
|
| 1071 |
+
8
|
| 1072 |
+
],
|
| 1073 |
+
"adjacent_points": [
|
| 1074 |
+
35,
|
| 1075 |
+
37,
|
| 1076 |
+
25
|
| 1077 |
+
],
|
| 1078 |
+
"adjacent_hexes": [
|
| 1079 |
+
16,
|
| 1080 |
+
12,
|
| 1081 |
+
11
|
| 1082 |
+
],
|
| 1083 |
+
"pixel_coords": [
|
| 1084 |
+
490,
|
| 1085 |
+
377.9422863405995
|
| 1086 |
+
]
|
| 1087 |
+
},
|
| 1088 |
+
{
|
| 1089 |
+
"point_id": 37,
|
| 1090 |
+
"game_coords": [
|
| 1091 |
+
3,
|
| 1092 |
+
9
|
| 1093 |
+
],
|
| 1094 |
+
"adjacent_points": [
|
| 1095 |
+
36,
|
| 1096 |
+
38,
|
| 1097 |
+
47
|
| 1098 |
+
],
|
| 1099 |
+
"adjacent_hexes": [
|
| 1100 |
+
16,
|
| 1101 |
+
12
|
| 1102 |
+
],
|
| 1103 |
+
"pixel_coords": [
|
| 1104 |
+
512.5,
|
| 1105 |
+
416.9134295108992
|
| 1106 |
+
]
|
| 1107 |
+
},
|
| 1108 |
+
{
|
| 1109 |
+
"point_id": 38,
|
| 1110 |
+
"game_coords": [
|
| 1111 |
+
3,
|
| 1112 |
+
10
|
| 1113 |
+
],
|
| 1114 |
+
"adjacent_points": [
|
| 1115 |
+
37,
|
| 1116 |
+
27
|
| 1117 |
+
],
|
| 1118 |
+
"adjacent_hexes": [
|
| 1119 |
+
12
|
| 1120 |
+
],
|
| 1121 |
+
"pixel_coords": [
|
| 1122 |
+
557.5,
|
| 1123 |
+
416.9134295108992
|
| 1124 |
+
]
|
| 1125 |
+
},
|
| 1126 |
+
{
|
| 1127 |
+
"point_id": 39,
|
| 1128 |
+
"game_coords": [
|
| 1129 |
+
4,
|
| 1130 |
+
0
|
| 1131 |
+
],
|
| 1132 |
+
"adjacent_points": [
|
| 1133 |
+
40,
|
| 1134 |
+
29
|
| 1135 |
+
],
|
| 1136 |
+
"adjacent_hexes": [
|
| 1137 |
+
13
|
| 1138 |
+
],
|
| 1139 |
+
"pixel_coords": [
|
| 1140 |
+
220,
|
| 1141 |
+
300
|
| 1142 |
+
]
|
| 1143 |
+
},
|
| 1144 |
+
{
|
| 1145 |
+
"point_id": 40,
|
| 1146 |
+
"game_coords": [
|
| 1147 |
+
4,
|
| 1148 |
+
1
|
| 1149 |
+
],
|
| 1150 |
+
"adjacent_points": [
|
| 1151 |
+
39,
|
| 1152 |
+
41,
|
| 1153 |
+
48
|
| 1154 |
+
],
|
| 1155 |
+
"adjacent_hexes": [
|
| 1156 |
+
17,
|
| 1157 |
+
13
|
| 1158 |
+
],
|
| 1159 |
+
"pixel_coords": [
|
| 1160 |
+
242.5,
|
| 1161 |
+
338.97114317029974
|
| 1162 |
+
]
|
| 1163 |
+
},
|
| 1164 |
+
{
|
| 1165 |
+
"point_id": 41,
|
| 1166 |
+
"game_coords": [
|
| 1167 |
+
4,
|
| 1168 |
+
2
|
| 1169 |
+
],
|
| 1170 |
+
"adjacent_points": [
|
| 1171 |
+
40,
|
| 1172 |
+
42,
|
| 1173 |
+
31
|
| 1174 |
+
],
|
| 1175 |
+
"adjacent_hexes": [
|
| 1176 |
+
17,
|
| 1177 |
+
14,
|
| 1178 |
+
13
|
| 1179 |
+
],
|
| 1180 |
+
"pixel_coords": [
|
| 1181 |
+
287.5,
|
| 1182 |
+
338.97114317029974
|
| 1183 |
+
]
|
| 1184 |
+
},
|
| 1185 |
+
{
|
| 1186 |
+
"point_id": 42,
|
| 1187 |
+
"game_coords": [
|
| 1188 |
+
4,
|
| 1189 |
+
3
|
| 1190 |
+
],
|
| 1191 |
+
"adjacent_points": [
|
| 1192 |
+
41,
|
| 1193 |
+
43,
|
| 1194 |
+
50
|
| 1195 |
+
],
|
| 1196 |
+
"adjacent_hexes": [
|
| 1197 |
+
18,
|
| 1198 |
+
17,
|
| 1199 |
+
14
|
| 1200 |
+
],
|
| 1201 |
+
"pixel_coords": [
|
| 1202 |
+
310,
|
| 1203 |
+
377.9422863405995
|
| 1204 |
+
]
|
| 1205 |
+
},
|
| 1206 |
+
{
|
| 1207 |
+
"point_id": 43,
|
| 1208 |
+
"game_coords": [
|
| 1209 |
+
4,
|
| 1210 |
+
4
|
| 1211 |
+
],
|
| 1212 |
+
"adjacent_points": [
|
| 1213 |
+
42,
|
| 1214 |
+
44,
|
| 1215 |
+
33
|
| 1216 |
+
],
|
| 1217 |
+
"adjacent_hexes": [
|
| 1218 |
+
18,
|
| 1219 |
+
15,
|
| 1220 |
+
14
|
| 1221 |
+
],
|
| 1222 |
+
"pixel_coords": [
|
| 1223 |
+
355,
|
| 1224 |
+
377.9422863405995
|
| 1225 |
+
]
|
| 1226 |
+
},
|
| 1227 |
+
{
|
| 1228 |
+
"point_id": 44,
|
| 1229 |
+
"game_coords": [
|
| 1230 |
+
4,
|
| 1231 |
+
5
|
| 1232 |
+
],
|
| 1233 |
+
"adjacent_points": [
|
| 1234 |
+
43,
|
| 1235 |
+
45,
|
| 1236 |
+
52
|
| 1237 |
+
],
|
| 1238 |
+
"adjacent_hexes": [
|
| 1239 |
+
19,
|
| 1240 |
+
18,
|
| 1241 |
+
15
|
| 1242 |
+
],
|
| 1243 |
+
"pixel_coords": [
|
| 1244 |
+
377.5,
|
| 1245 |
+
416.9134295108992
|
| 1246 |
+
]
|
| 1247 |
+
},
|
| 1248 |
+
{
|
| 1249 |
+
"point_id": 45,
|
| 1250 |
+
"game_coords": [
|
| 1251 |
+
4,
|
| 1252 |
+
6
|
| 1253 |
+
],
|
| 1254 |
+
"adjacent_points": [
|
| 1255 |
+
44,
|
| 1256 |
+
46,
|
| 1257 |
+
35
|
| 1258 |
+
],
|
| 1259 |
+
"adjacent_hexes": [
|
| 1260 |
+
19,
|
| 1261 |
+
16,
|
| 1262 |
+
15
|
| 1263 |
+
],
|
| 1264 |
+
"pixel_coords": [
|
| 1265 |
+
422.5,
|
| 1266 |
+
416.9134295108992
|
| 1267 |
+
]
|
| 1268 |
+
},
|
| 1269 |
+
{
|
| 1270 |
+
"point_id": 46,
|
| 1271 |
+
"game_coords": [
|
| 1272 |
+
4,
|
| 1273 |
+
7
|
| 1274 |
+
],
|
| 1275 |
+
"adjacent_points": [
|
| 1276 |
+
45,
|
| 1277 |
+
47,
|
| 1278 |
+
54
|
| 1279 |
+
],
|
| 1280 |
+
"adjacent_hexes": [
|
| 1281 |
+
19,
|
| 1282 |
+
16
|
| 1283 |
+
],
|
| 1284 |
+
"pixel_coords": [
|
| 1285 |
+
445,
|
| 1286 |
+
455.88457268119896
|
| 1287 |
+
]
|
| 1288 |
+
},
|
| 1289 |
+
{
|
| 1290 |
+
"point_id": 47,
|
| 1291 |
+
"game_coords": [
|
| 1292 |
+
4,
|
| 1293 |
+
8
|
| 1294 |
+
],
|
| 1295 |
+
"adjacent_points": [
|
| 1296 |
+
46,
|
| 1297 |
+
37
|
| 1298 |
+
],
|
| 1299 |
+
"adjacent_hexes": [
|
| 1300 |
+
16
|
| 1301 |
+
],
|
| 1302 |
+
"pixel_coords": [
|
| 1303 |
+
490,
|
| 1304 |
+
455.88457268119896
|
| 1305 |
+
]
|
| 1306 |
+
},
|
| 1307 |
+
{
|
| 1308 |
+
"point_id": 48,
|
| 1309 |
+
"game_coords": [
|
| 1310 |
+
5,
|
| 1311 |
+
0
|
| 1312 |
+
],
|
| 1313 |
+
"adjacent_points": [
|
| 1314 |
+
49,
|
| 1315 |
+
40
|
| 1316 |
+
],
|
| 1317 |
+
"adjacent_hexes": [
|
| 1318 |
+
17
|
| 1319 |
+
],
|
| 1320 |
+
"pixel_coords": [
|
| 1321 |
+
220,
|
| 1322 |
+
377.9422863405995
|
| 1323 |
+
]
|
| 1324 |
+
},
|
| 1325 |
+
{
|
| 1326 |
+
"point_id": 49,
|
| 1327 |
+
"game_coords": [
|
| 1328 |
+
5,
|
| 1329 |
+
1
|
| 1330 |
+
],
|
| 1331 |
+
"adjacent_points": [
|
| 1332 |
+
48,
|
| 1333 |
+
50
|
| 1334 |
+
],
|
| 1335 |
+
"adjacent_hexes": [
|
| 1336 |
+
17
|
| 1337 |
+
],
|
| 1338 |
+
"pixel_coords": [
|
| 1339 |
+
242.5,
|
| 1340 |
+
416.9134295108992
|
| 1341 |
+
]
|
| 1342 |
+
},
|
| 1343 |
+
{
|
| 1344 |
+
"point_id": 50,
|
| 1345 |
+
"game_coords": [
|
| 1346 |
+
5,
|
| 1347 |
+
2
|
| 1348 |
+
],
|
| 1349 |
+
"adjacent_points": [
|
| 1350 |
+
49,
|
| 1351 |
+
51,
|
| 1352 |
+
42
|
| 1353 |
+
],
|
| 1354 |
+
"adjacent_hexes": [
|
| 1355 |
+
18,
|
| 1356 |
+
17
|
| 1357 |
+
],
|
| 1358 |
+
"pixel_coords": [
|
| 1359 |
+
287.5,
|
| 1360 |
+
416.9134295108992
|
| 1361 |
+
]
|
| 1362 |
+
},
|
| 1363 |
+
{
|
| 1364 |
+
"point_id": 51,
|
| 1365 |
+
"game_coords": [
|
| 1366 |
+
5,
|
| 1367 |
+
3
|
| 1368 |
+
],
|
| 1369 |
+
"adjacent_points": [
|
| 1370 |
+
50,
|
| 1371 |
+
52
|
| 1372 |
+
],
|
| 1373 |
+
"adjacent_hexes": [
|
| 1374 |
+
18
|
| 1375 |
+
],
|
| 1376 |
+
"pixel_coords": [
|
| 1377 |
+
310,
|
| 1378 |
+
455.88457268119896
|
| 1379 |
+
]
|
| 1380 |
+
},
|
| 1381 |
+
{
|
| 1382 |
+
"point_id": 52,
|
| 1383 |
+
"game_coords": [
|
| 1384 |
+
5,
|
| 1385 |
+
4
|
| 1386 |
+
],
|
| 1387 |
+
"adjacent_points": [
|
| 1388 |
+
51,
|
| 1389 |
+
53,
|
| 1390 |
+
44
|
| 1391 |
+
],
|
| 1392 |
+
"adjacent_hexes": [
|
| 1393 |
+
19,
|
| 1394 |
+
18
|
| 1395 |
+
],
|
| 1396 |
+
"pixel_coords": [
|
| 1397 |
+
355,
|
| 1398 |
+
455.88457268119896
|
| 1399 |
+
]
|
| 1400 |
+
},
|
| 1401 |
+
{
|
| 1402 |
+
"point_id": 53,
|
| 1403 |
+
"game_coords": [
|
| 1404 |
+
5,
|
| 1405 |
+
5
|
| 1406 |
+
],
|
| 1407 |
+
"adjacent_points": [
|
| 1408 |
+
52,
|
| 1409 |
+
54
|
| 1410 |
+
],
|
| 1411 |
+
"adjacent_hexes": [
|
| 1412 |
+
19
|
| 1413 |
+
],
|
| 1414 |
+
"pixel_coords": [
|
| 1415 |
+
377.5,
|
| 1416 |
+
494.8557158514987
|
| 1417 |
+
]
|
| 1418 |
+
},
|
| 1419 |
+
{
|
| 1420 |
+
"point_id": 54,
|
| 1421 |
+
"game_coords": [
|
| 1422 |
+
5,
|
| 1423 |
+
6
|
| 1424 |
+
],
|
| 1425 |
+
"adjacent_points": [
|
| 1426 |
+
53,
|
| 1427 |
+
46
|
| 1428 |
+
],
|
| 1429 |
+
"adjacent_hexes": [
|
| 1430 |
+
19
|
| 1431 |
+
],
|
| 1432 |
+
"pixel_coords": [
|
| 1433 |
+
422.5,
|
| 1434 |
+
494.8557158514987
|
| 1435 |
+
]
|
| 1436 |
+
}
|
| 1437 |
+
],
|
| 1438 |
+
"board_graph": {
|
| 1439 |
+
"adjacency": {
|
| 1440 |
+
"1": [
|
| 1441 |
+
2,
|
| 1442 |
+
9
|
| 1443 |
+
],
|
| 1444 |
+
"2": [
|
| 1445 |
+
1,
|
| 1446 |
+
3
|
| 1447 |
+
],
|
| 1448 |
+
"3": [
|
| 1449 |
+
2,
|
| 1450 |
+
4,
|
| 1451 |
+
11
|
| 1452 |
+
],
|
| 1453 |
+
"4": [
|
| 1454 |
+
3,
|
| 1455 |
+
5
|
| 1456 |
+
],
|
| 1457 |
+
"5": [
|
| 1458 |
+
4,
|
| 1459 |
+
6,
|
| 1460 |
+
13
|
| 1461 |
+
],
|
| 1462 |
+
"6": [
|
| 1463 |
+
5,
|
| 1464 |
+
7
|
| 1465 |
+
],
|
| 1466 |
+
"7": [
|
| 1467 |
+
6,
|
| 1468 |
+
15
|
| 1469 |
+
],
|
| 1470 |
+
"8": [
|
| 1471 |
+
9,
|
| 1472 |
+
18
|
| 1473 |
+
],
|
| 1474 |
+
"9": [
|
| 1475 |
+
8,
|
| 1476 |
+
10,
|
| 1477 |
+
1
|
| 1478 |
+
],
|
| 1479 |
+
"10": [
|
| 1480 |
+
9,
|
| 1481 |
+
11,
|
| 1482 |
+
20
|
| 1483 |
+
],
|
| 1484 |
+
"11": [
|
| 1485 |
+
10,
|
| 1486 |
+
12,
|
| 1487 |
+
3
|
| 1488 |
+
],
|
| 1489 |
+
"12": [
|
| 1490 |
+
11,
|
| 1491 |
+
13,
|
| 1492 |
+
22
|
| 1493 |
+
],
|
| 1494 |
+
"13": [
|
| 1495 |
+
12,
|
| 1496 |
+
14,
|
| 1497 |
+
5
|
| 1498 |
+
],
|
| 1499 |
+
"14": [
|
| 1500 |
+
13,
|
| 1501 |
+
15,
|
| 1502 |
+
24
|
| 1503 |
+
],
|
| 1504 |
+
"15": [
|
| 1505 |
+
14,
|
| 1506 |
+
16,
|
| 1507 |
+
7
|
| 1508 |
+
],
|
| 1509 |
+
"16": [
|
| 1510 |
+
15,
|
| 1511 |
+
26
|
| 1512 |
+
],
|
| 1513 |
+
"17": [
|
| 1514 |
+
18,
|
| 1515 |
+
28
|
| 1516 |
+
],
|
| 1517 |
+
"18": [
|
| 1518 |
+
17,
|
| 1519 |
+
19,
|
| 1520 |
+
8
|
| 1521 |
+
],
|
| 1522 |
+
"19": [
|
| 1523 |
+
18,
|
| 1524 |
+
20,
|
| 1525 |
+
30
|
| 1526 |
+
],
|
| 1527 |
+
"20": [
|
| 1528 |
+
19,
|
| 1529 |
+
21,
|
| 1530 |
+
10
|
| 1531 |
+
],
|
| 1532 |
+
"21": [
|
| 1533 |
+
20,
|
| 1534 |
+
22,
|
| 1535 |
+
32
|
| 1536 |
+
],
|
| 1537 |
+
"22": [
|
| 1538 |
+
21,
|
| 1539 |
+
23,
|
| 1540 |
+
12
|
| 1541 |
+
],
|
| 1542 |
+
"23": [
|
| 1543 |
+
22,
|
| 1544 |
+
24,
|
| 1545 |
+
34
|
| 1546 |
+
],
|
| 1547 |
+
"24": [
|
| 1548 |
+
23,
|
| 1549 |
+
25,
|
| 1550 |
+
14
|
| 1551 |
+
],
|
| 1552 |
+
"25": [
|
| 1553 |
+
24,
|
| 1554 |
+
26,
|
| 1555 |
+
36
|
| 1556 |
+
],
|
| 1557 |
+
"26": [
|
| 1558 |
+
25,
|
| 1559 |
+
27,
|
| 1560 |
+
16
|
| 1561 |
+
],
|
| 1562 |
+
"27": [
|
| 1563 |
+
26,
|
| 1564 |
+
38
|
| 1565 |
+
],
|
| 1566 |
+
"28": [
|
| 1567 |
+
29,
|
| 1568 |
+
17
|
| 1569 |
+
],
|
| 1570 |
+
"29": [
|
| 1571 |
+
28,
|
| 1572 |
+
30,
|
| 1573 |
+
39
|
| 1574 |
+
],
|
| 1575 |
+
"30": [
|
| 1576 |
+
29,
|
| 1577 |
+
31,
|
| 1578 |
+
19
|
| 1579 |
+
],
|
| 1580 |
+
"31": [
|
| 1581 |
+
30,
|
| 1582 |
+
32,
|
| 1583 |
+
41
|
| 1584 |
+
],
|
| 1585 |
+
"32": [
|
| 1586 |
+
31,
|
| 1587 |
+
33,
|
| 1588 |
+
21
|
| 1589 |
+
],
|
| 1590 |
+
"33": [
|
| 1591 |
+
32,
|
| 1592 |
+
34,
|
| 1593 |
+
43
|
| 1594 |
+
],
|
| 1595 |
+
"34": [
|
| 1596 |
+
33,
|
| 1597 |
+
35,
|
| 1598 |
+
23
|
| 1599 |
+
],
|
| 1600 |
+
"35": [
|
| 1601 |
+
34,
|
| 1602 |
+
36,
|
| 1603 |
+
45
|
| 1604 |
+
],
|
| 1605 |
+
"36": [
|
| 1606 |
+
35,
|
| 1607 |
+
37,
|
| 1608 |
+
25
|
| 1609 |
+
],
|
| 1610 |
+
"37": [
|
| 1611 |
+
36,
|
| 1612 |
+
38,
|
| 1613 |
+
47
|
| 1614 |
+
],
|
| 1615 |
+
"38": [
|
| 1616 |
+
37,
|
| 1617 |
+
27
|
| 1618 |
+
],
|
| 1619 |
+
"39": [
|
| 1620 |
+
40,
|
| 1621 |
+
29
|
| 1622 |
+
],
|
| 1623 |
+
"40": [
|
| 1624 |
+
39,
|
| 1625 |
+
41,
|
| 1626 |
+
48
|
| 1627 |
+
],
|
| 1628 |
+
"41": [
|
| 1629 |
+
40,
|
| 1630 |
+
42,
|
| 1631 |
+
31
|
| 1632 |
+
],
|
| 1633 |
+
"42": [
|
| 1634 |
+
41,
|
| 1635 |
+
43,
|
| 1636 |
+
50
|
| 1637 |
+
],
|
| 1638 |
+
"43": [
|
| 1639 |
+
42,
|
| 1640 |
+
44,
|
| 1641 |
+
33
|
| 1642 |
+
],
|
| 1643 |
+
"44": [
|
| 1644 |
+
43,
|
| 1645 |
+
45,
|
| 1646 |
+
52
|
| 1647 |
+
],
|
| 1648 |
+
"45": [
|
| 1649 |
+
44,
|
| 1650 |
+
46,
|
| 1651 |
+
35
|
| 1652 |
+
],
|
| 1653 |
+
"46": [
|
| 1654 |
+
45,
|
| 1655 |
+
47,
|
| 1656 |
+
54
|
| 1657 |
+
],
|
| 1658 |
+
"47": [
|
| 1659 |
+
46,
|
| 1660 |
+
37
|
| 1661 |
+
],
|
| 1662 |
+
"48": [
|
| 1663 |
+
49,
|
| 1664 |
+
40
|
| 1665 |
+
],
|
| 1666 |
+
"49": [
|
| 1667 |
+
48,
|
| 1668 |
+
50
|
| 1669 |
+
],
|
| 1670 |
+
"50": [
|
| 1671 |
+
49,
|
| 1672 |
+
51,
|
| 1673 |
+
42
|
| 1674 |
+
],
|
| 1675 |
+
"51": [
|
| 1676 |
+
50,
|
| 1677 |
+
52
|
| 1678 |
+
],
|
| 1679 |
+
"52": [
|
| 1680 |
+
51,
|
| 1681 |
+
53,
|
| 1682 |
+
44
|
| 1683 |
+
],
|
| 1684 |
+
"53": [
|
| 1685 |
+
52,
|
| 1686 |
+
54
|
| 1687 |
+
],
|
| 1688 |
+
"54": [
|
| 1689 |
+
53,
|
| 1690 |
+
46
|
| 1691 |
+
]
|
| 1692 |
+
},
|
| 1693 |
+
"hex_to_points": {
|
| 1694 |
+
"1": [
|
| 1695 |
+
1,
|
| 1696 |
+
2,
|
| 1697 |
+
3,
|
| 1698 |
+
9,
|
| 1699 |
+
10,
|
| 1700 |
+
11
|
| 1701 |
+
],
|
| 1702 |
+
"2": [
|
| 1703 |
+
3,
|
| 1704 |
+
4,
|
| 1705 |
+
5,
|
| 1706 |
+
11,
|
| 1707 |
+
12,
|
| 1708 |
+
13
|
| 1709 |
+
],
|
| 1710 |
+
"3": [
|
| 1711 |
+
5,
|
| 1712 |
+
6,
|
| 1713 |
+
7,
|
| 1714 |
+
13,
|
| 1715 |
+
14,
|
| 1716 |
+
15
|
| 1717 |
+
],
|
| 1718 |
+
"4": [
|
| 1719 |
+
8,
|
| 1720 |
+
9,
|
| 1721 |
+
10,
|
| 1722 |
+
18,
|
| 1723 |
+
19,
|
| 1724 |
+
20
|
| 1725 |
+
],
|
| 1726 |
+
"5": [
|
| 1727 |
+
10,
|
| 1728 |
+
11,
|
| 1729 |
+
12,
|
| 1730 |
+
20,
|
| 1731 |
+
21,
|
| 1732 |
+
22
|
| 1733 |
+
],
|
| 1734 |
+
"6": [
|
| 1735 |
+
12,
|
| 1736 |
+
13,
|
| 1737 |
+
14,
|
| 1738 |
+
22,
|
| 1739 |
+
23,
|
| 1740 |
+
24
|
| 1741 |
+
],
|
| 1742 |
+
"7": [
|
| 1743 |
+
14,
|
| 1744 |
+
15,
|
| 1745 |
+
16,
|
| 1746 |
+
24,
|
| 1747 |
+
25,
|
| 1748 |
+
26
|
| 1749 |
+
],
|
| 1750 |
+
"8": [
|
| 1751 |
+
17,
|
| 1752 |
+
18,
|
| 1753 |
+
19,
|
| 1754 |
+
28,
|
| 1755 |
+
29,
|
| 1756 |
+
30
|
| 1757 |
+
],
|
| 1758 |
+
"9": [
|
| 1759 |
+
19,
|
| 1760 |
+
20,
|
| 1761 |
+
21,
|
| 1762 |
+
30,
|
| 1763 |
+
31,
|
| 1764 |
+
32
|
| 1765 |
+
],
|
| 1766 |
+
"10": [
|
| 1767 |
+
21,
|
| 1768 |
+
22,
|
| 1769 |
+
23,
|
| 1770 |
+
32,
|
| 1771 |
+
33,
|
| 1772 |
+
34
|
| 1773 |
+
],
|
| 1774 |
+
"11": [
|
| 1775 |
+
23,
|
| 1776 |
+
24,
|
| 1777 |
+
25,
|
| 1778 |
+
34,
|
| 1779 |
+
35,
|
| 1780 |
+
36
|
| 1781 |
+
],
|
| 1782 |
+
"12": [
|
| 1783 |
+
25,
|
| 1784 |
+
26,
|
| 1785 |
+
27,
|
| 1786 |
+
36,
|
| 1787 |
+
37,
|
| 1788 |
+
38
|
| 1789 |
+
],
|
| 1790 |
+
"13": [
|
| 1791 |
+
29,
|
| 1792 |
+
30,
|
| 1793 |
+
31,
|
| 1794 |
+
39,
|
| 1795 |
+
40,
|
| 1796 |
+
41
|
| 1797 |
+
],
|
| 1798 |
+
"14": [
|
| 1799 |
+
31,
|
| 1800 |
+
32,
|
| 1801 |
+
33,
|
| 1802 |
+
41,
|
| 1803 |
+
42,
|
| 1804 |
+
43
|
| 1805 |
+
],
|
| 1806 |
+
"15": [
|
| 1807 |
+
33,
|
| 1808 |
+
34,
|
| 1809 |
+
35,
|
| 1810 |
+
43,
|
| 1811 |
+
44,
|
| 1812 |
+
45
|
| 1813 |
+
],
|
| 1814 |
+
"16": [
|
| 1815 |
+
35,
|
| 1816 |
+
36,
|
| 1817 |
+
37,
|
| 1818 |
+
45,
|
| 1819 |
+
46,
|
| 1820 |
+
47
|
| 1821 |
+
],
|
| 1822 |
+
"17": [
|
| 1823 |
+
40,
|
| 1824 |
+
41,
|
| 1825 |
+
42,
|
| 1826 |
+
48,
|
| 1827 |
+
49,
|
| 1828 |
+
50
|
| 1829 |
+
],
|
| 1830 |
+
"18": [
|
| 1831 |
+
42,
|
| 1832 |
+
43,
|
| 1833 |
+
44,
|
| 1834 |
+
50,
|
| 1835 |
+
51,
|
| 1836 |
+
52
|
| 1837 |
+
],
|
| 1838 |
+
"19": [
|
| 1839 |
+
44,
|
| 1840 |
+
45,
|
| 1841 |
+
46,
|
| 1842 |
+
52,
|
| 1843 |
+
53,
|
| 1844 |
+
54
|
| 1845 |
+
]
|
| 1846 |
+
},
|
| 1847 |
+
"total_points": 54,
|
| 1848 |
+
"total_hexes": 19
|
| 1849 |
+
}
|
| 1850 |
+
}
|
examples/ai_testing/my_games/game_20251223_204416_full.json
ADDED
|
@@ -0,0 +1,1856 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"total_states": 1,
|
| 3 |
+
"timestamp": "20251223_204416",
|
| 4 |
+
"states": [
|
| 5 |
+
{
|
| 6 |
+
"hexes": [
|
| 7 |
+
{
|
| 8 |
+
"id": 1,
|
| 9 |
+
"q": 0,
|
| 10 |
+
"r": -2,
|
| 11 |
+
"type": "wood",
|
| 12 |
+
"number": 12,
|
| 13 |
+
"has_robber": false,
|
| 14 |
+
"position": [
|
| 15 |
+
0,
|
| 16 |
+
0
|
| 17 |
+
],
|
| 18 |
+
"axial_coords": [
|
| 19 |
+
0,
|
| 20 |
+
-2
|
| 21 |
+
]
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"id": 2,
|
| 25 |
+
"q": 1,
|
| 26 |
+
"r": -2,
|
| 27 |
+
"type": "sheep",
|
| 28 |
+
"number": 5,
|
| 29 |
+
"has_robber": false,
|
| 30 |
+
"position": [
|
| 31 |
+
0,
|
| 32 |
+
1
|
| 33 |
+
],
|
| 34 |
+
"axial_coords": [
|
| 35 |
+
1,
|
| 36 |
+
-2
|
| 37 |
+
]
|
| 38 |
+
},
|
| 39 |
+
{
|
| 40 |
+
"id": 3,
|
| 41 |
+
"q": 2,
|
| 42 |
+
"r": -2,
|
| 43 |
+
"type": "wood",
|
| 44 |
+
"number": 4,
|
| 45 |
+
"has_robber": false,
|
| 46 |
+
"position": [
|
| 47 |
+
0,
|
| 48 |
+
2
|
| 49 |
+
],
|
| 50 |
+
"axial_coords": [
|
| 51 |
+
2,
|
| 52 |
+
-2
|
| 53 |
+
]
|
| 54 |
+
},
|
| 55 |
+
{
|
| 56 |
+
"id": 4,
|
| 57 |
+
"q": -1,
|
| 58 |
+
"r": -1,
|
| 59 |
+
"type": "sheep",
|
| 60 |
+
"number": 8,
|
| 61 |
+
"has_robber": false,
|
| 62 |
+
"position": [
|
| 63 |
+
1,
|
| 64 |
+
0
|
| 65 |
+
],
|
| 66 |
+
"axial_coords": [
|
| 67 |
+
-1,
|
| 68 |
+
-1
|
| 69 |
+
]
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"id": 5,
|
| 73 |
+
"q": 0,
|
| 74 |
+
"r": -1,
|
| 75 |
+
"type": "brick",
|
| 76 |
+
"number": 6,
|
| 77 |
+
"has_robber": false,
|
| 78 |
+
"position": [
|
| 79 |
+
1,
|
| 80 |
+
1
|
| 81 |
+
],
|
| 82 |
+
"axial_coords": [
|
| 83 |
+
0,
|
| 84 |
+
-1
|
| 85 |
+
]
|
| 86 |
+
},
|
| 87 |
+
{
|
| 88 |
+
"id": 6,
|
| 89 |
+
"q": 1,
|
| 90 |
+
"r": -1,
|
| 91 |
+
"type": "wood",
|
| 92 |
+
"number": 3,
|
| 93 |
+
"has_robber": false,
|
| 94 |
+
"position": [
|
| 95 |
+
1,
|
| 96 |
+
2
|
| 97 |
+
],
|
| 98 |
+
"axial_coords": [
|
| 99 |
+
1,
|
| 100 |
+
-1
|
| 101 |
+
]
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"id": 7,
|
| 105 |
+
"q": 2,
|
| 106 |
+
"r": -1,
|
| 107 |
+
"type": "wheat",
|
| 108 |
+
"number": 8,
|
| 109 |
+
"has_robber": false,
|
| 110 |
+
"position": [
|
| 111 |
+
1,
|
| 112 |
+
3
|
| 113 |
+
],
|
| 114 |
+
"axial_coords": [
|
| 115 |
+
2,
|
| 116 |
+
-1
|
| 117 |
+
]
|
| 118 |
+
},
|
| 119 |
+
{
|
| 120 |
+
"id": 8,
|
| 121 |
+
"q": -2,
|
| 122 |
+
"r": 0,
|
| 123 |
+
"type": "brick",
|
| 124 |
+
"number": 10,
|
| 125 |
+
"has_robber": false,
|
| 126 |
+
"position": [
|
| 127 |
+
2,
|
| 128 |
+
0
|
| 129 |
+
],
|
| 130 |
+
"axial_coords": [
|
| 131 |
+
-2,
|
| 132 |
+
0
|
| 133 |
+
]
|
| 134 |
+
},
|
| 135 |
+
{
|
| 136 |
+
"id": 9,
|
| 137 |
+
"q": -1,
|
| 138 |
+
"r": 0,
|
| 139 |
+
"type": "wood",
|
| 140 |
+
"number": 11,
|
| 141 |
+
"has_robber": false,
|
| 142 |
+
"position": [
|
| 143 |
+
2,
|
| 144 |
+
1
|
| 145 |
+
],
|
| 146 |
+
"axial_coords": [
|
| 147 |
+
-1,
|
| 148 |
+
0
|
| 149 |
+
]
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"id": 10,
|
| 153 |
+
"q": 0,
|
| 154 |
+
"r": 0,
|
| 155 |
+
"type": "desert",
|
| 156 |
+
"number": null,
|
| 157 |
+
"has_robber": true,
|
| 158 |
+
"position": [
|
| 159 |
+
2,
|
| 160 |
+
2
|
| 161 |
+
],
|
| 162 |
+
"axial_coords": [
|
| 163 |
+
0,
|
| 164 |
+
0
|
| 165 |
+
]
|
| 166 |
+
},
|
| 167 |
+
{
|
| 168 |
+
"id": 11,
|
| 169 |
+
"q": 1,
|
| 170 |
+
"r": 0,
|
| 171 |
+
"type": "ore",
|
| 172 |
+
"number": 3,
|
| 173 |
+
"has_robber": false,
|
| 174 |
+
"position": [
|
| 175 |
+
2,
|
| 176 |
+
3
|
| 177 |
+
],
|
| 178 |
+
"axial_coords": [
|
| 179 |
+
1,
|
| 180 |
+
0
|
| 181 |
+
]
|
| 182 |
+
},
|
| 183 |
+
{
|
| 184 |
+
"id": 12,
|
| 185 |
+
"q": 2,
|
| 186 |
+
"r": 0,
|
| 187 |
+
"type": "sheep",
|
| 188 |
+
"number": 4,
|
| 189 |
+
"has_robber": false,
|
| 190 |
+
"position": [
|
| 191 |
+
2,
|
| 192 |
+
4
|
| 193 |
+
],
|
| 194 |
+
"axial_coords": [
|
| 195 |
+
2,
|
| 196 |
+
0
|
| 197 |
+
]
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"id": 13,
|
| 201 |
+
"q": -2,
|
| 202 |
+
"r": 1,
|
| 203 |
+
"type": "brick",
|
| 204 |
+
"number": 10,
|
| 205 |
+
"has_robber": false,
|
| 206 |
+
"position": [
|
| 207 |
+
3,
|
| 208 |
+
0
|
| 209 |
+
],
|
| 210 |
+
"axial_coords": [
|
| 211 |
+
-2,
|
| 212 |
+
1
|
| 213 |
+
]
|
| 214 |
+
},
|
| 215 |
+
{
|
| 216 |
+
"id": 14,
|
| 217 |
+
"q": -1,
|
| 218 |
+
"r": 1,
|
| 219 |
+
"type": "wheat",
|
| 220 |
+
"number": 9,
|
| 221 |
+
"has_robber": false,
|
| 222 |
+
"position": [
|
| 223 |
+
3,
|
| 224 |
+
1
|
| 225 |
+
],
|
| 226 |
+
"axial_coords": [
|
| 227 |
+
-1,
|
| 228 |
+
1
|
| 229 |
+
]
|
| 230 |
+
},
|
| 231 |
+
{
|
| 232 |
+
"id": 15,
|
| 233 |
+
"q": 0,
|
| 234 |
+
"r": 1,
|
| 235 |
+
"type": "wheat",
|
| 236 |
+
"number": 6,
|
| 237 |
+
"has_robber": false,
|
| 238 |
+
"position": [
|
| 239 |
+
3,
|
| 240 |
+
2
|
| 241 |
+
],
|
| 242 |
+
"axial_coords": [
|
| 243 |
+
0,
|
| 244 |
+
1
|
| 245 |
+
]
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"id": 16,
|
| 249 |
+
"q": 1,
|
| 250 |
+
"r": 1,
|
| 251 |
+
"type": "sheep",
|
| 252 |
+
"number": 11,
|
| 253 |
+
"has_robber": false,
|
| 254 |
+
"position": [
|
| 255 |
+
3,
|
| 256 |
+
3
|
| 257 |
+
],
|
| 258 |
+
"axial_coords": [
|
| 259 |
+
1,
|
| 260 |
+
1
|
| 261 |
+
]
|
| 262 |
+
},
|
| 263 |
+
{
|
| 264 |
+
"id": 17,
|
| 265 |
+
"q": -2,
|
| 266 |
+
"r": 2,
|
| 267 |
+
"type": "ore",
|
| 268 |
+
"number": 5,
|
| 269 |
+
"has_robber": false,
|
| 270 |
+
"position": [
|
| 271 |
+
4,
|
| 272 |
+
0
|
| 273 |
+
],
|
| 274 |
+
"axial_coords": [
|
| 275 |
+
-2,
|
| 276 |
+
2
|
| 277 |
+
]
|
| 278 |
+
},
|
| 279 |
+
{
|
| 280 |
+
"id": 18,
|
| 281 |
+
"q": -1,
|
| 282 |
+
"r": 2,
|
| 283 |
+
"type": "wheat",
|
| 284 |
+
"number": 9,
|
| 285 |
+
"has_robber": false,
|
| 286 |
+
"position": [
|
| 287 |
+
4,
|
| 288 |
+
1
|
| 289 |
+
],
|
| 290 |
+
"axial_coords": [
|
| 291 |
+
-1,
|
| 292 |
+
2
|
| 293 |
+
]
|
| 294 |
+
},
|
| 295 |
+
{
|
| 296 |
+
"id": 19,
|
| 297 |
+
"q": 0,
|
| 298 |
+
"r": 2,
|
| 299 |
+
"type": "ore",
|
| 300 |
+
"number": 2,
|
| 301 |
+
"has_robber": false,
|
| 302 |
+
"position": [
|
| 303 |
+
4,
|
| 304 |
+
2
|
| 305 |
+
],
|
| 306 |
+
"axial_coords": [
|
| 307 |
+
0,
|
| 308 |
+
2
|
| 309 |
+
]
|
| 310 |
+
}
|
| 311 |
+
],
|
| 312 |
+
"settlements": [],
|
| 313 |
+
"cities": [],
|
| 314 |
+
"roads": [],
|
| 315 |
+
"players": [
|
| 316 |
+
{
|
| 317 |
+
"id": 0,
|
| 318 |
+
"name": "a",
|
| 319 |
+
"victory_points": 0,
|
| 320 |
+
"total_cards": 0,
|
| 321 |
+
"cards_list": [],
|
| 322 |
+
"dev_cards_list": [],
|
| 323 |
+
"settlements": 0,
|
| 324 |
+
"cities": 0,
|
| 325 |
+
"roads": 0,
|
| 326 |
+
"longest_road": 0,
|
| 327 |
+
"has_longest_road": false,
|
| 328 |
+
"knights": 0,
|
| 329 |
+
"knights_played": 0,
|
| 330 |
+
"has_largest_army": false
|
| 331 |
+
},
|
| 332 |
+
{
|
| 333 |
+
"id": 1,
|
| 334 |
+
"name": "b",
|
| 335 |
+
"victory_points": 0,
|
| 336 |
+
"total_cards": 0,
|
| 337 |
+
"cards_list": [],
|
| 338 |
+
"dev_cards_list": [],
|
| 339 |
+
"settlements": 0,
|
| 340 |
+
"cities": 0,
|
| 341 |
+
"roads": 0,
|
| 342 |
+
"longest_road": 0,
|
| 343 |
+
"has_longest_road": false,
|
| 344 |
+
"knights": 0,
|
| 345 |
+
"knights_played": 0,
|
| 346 |
+
"has_largest_army": false
|
| 347 |
+
},
|
| 348 |
+
{
|
| 349 |
+
"id": 2,
|
| 350 |
+
"name": "c",
|
| 351 |
+
"victory_points": 0,
|
| 352 |
+
"total_cards": 0,
|
| 353 |
+
"cards_list": [],
|
| 354 |
+
"dev_cards_list": [],
|
| 355 |
+
"settlements": 0,
|
| 356 |
+
"cities": 0,
|
| 357 |
+
"roads": 0,
|
| 358 |
+
"longest_road": 0,
|
| 359 |
+
"has_longest_road": false,
|
| 360 |
+
"knights": 0,
|
| 361 |
+
"knights_played": 0,
|
| 362 |
+
"has_largest_army": false
|
| 363 |
+
}
|
| 364 |
+
],
|
| 365 |
+
"current_player": 0,
|
| 366 |
+
"current_phase": "SETUP_FIRST_ROUND",
|
| 367 |
+
"robber_position": [
|
| 368 |
+
2,
|
| 369 |
+
2
|
| 370 |
+
],
|
| 371 |
+
"dice_result": null,
|
| 372 |
+
"points": [
|
| 373 |
+
{
|
| 374 |
+
"point_id": 1,
|
| 375 |
+
"game_coords": [
|
| 376 |
+
0,
|
| 377 |
+
0
|
| 378 |
+
],
|
| 379 |
+
"adjacent_points": [
|
| 380 |
+
2,
|
| 381 |
+
9
|
| 382 |
+
],
|
| 383 |
+
"adjacent_hexes": [
|
| 384 |
+
1
|
| 385 |
+
],
|
| 386 |
+
"pixel_coords": [
|
| 387 |
+
377.5,
|
| 388 |
+
105.14428414850131
|
| 389 |
+
]
|
| 390 |
+
},
|
| 391 |
+
{
|
| 392 |
+
"point_id": 2,
|
| 393 |
+
"game_coords": [
|
| 394 |
+
0,
|
| 395 |
+
1
|
| 396 |
+
],
|
| 397 |
+
"adjacent_points": [
|
| 398 |
+
1,
|
| 399 |
+
3
|
| 400 |
+
],
|
| 401 |
+
"adjacent_hexes": [
|
| 402 |
+
1
|
| 403 |
+
],
|
| 404 |
+
"pixel_coords": [
|
| 405 |
+
422.5,
|
| 406 |
+
105.14428414850128
|
| 407 |
+
]
|
| 408 |
+
},
|
| 409 |
+
{
|
| 410 |
+
"point_id": 3,
|
| 411 |
+
"game_coords": [
|
| 412 |
+
0,
|
| 413 |
+
2
|
| 414 |
+
],
|
| 415 |
+
"adjacent_points": [
|
| 416 |
+
2,
|
| 417 |
+
4,
|
| 418 |
+
11
|
| 419 |
+
],
|
| 420 |
+
"adjacent_hexes": [
|
| 421 |
+
2,
|
| 422 |
+
1
|
| 423 |
+
],
|
| 424 |
+
"pixel_coords": [
|
| 425 |
+
445,
|
| 426 |
+
144.11542731880104
|
| 427 |
+
]
|
| 428 |
+
},
|
| 429 |
+
{
|
| 430 |
+
"point_id": 4,
|
| 431 |
+
"game_coords": [
|
| 432 |
+
0,
|
| 433 |
+
3
|
| 434 |
+
],
|
| 435 |
+
"adjacent_points": [
|
| 436 |
+
3,
|
| 437 |
+
5
|
| 438 |
+
],
|
| 439 |
+
"adjacent_hexes": [
|
| 440 |
+
2
|
| 441 |
+
],
|
| 442 |
+
"pixel_coords": [
|
| 443 |
+
490,
|
| 444 |
+
144.11542731880104
|
| 445 |
+
]
|
| 446 |
+
},
|
| 447 |
+
{
|
| 448 |
+
"point_id": 5,
|
| 449 |
+
"game_coords": [
|
| 450 |
+
0,
|
| 451 |
+
4
|
| 452 |
+
],
|
| 453 |
+
"adjacent_points": [
|
| 454 |
+
4,
|
| 455 |
+
6,
|
| 456 |
+
13
|
| 457 |
+
],
|
| 458 |
+
"adjacent_hexes": [
|
| 459 |
+
3,
|
| 460 |
+
2
|
| 461 |
+
],
|
| 462 |
+
"pixel_coords": [
|
| 463 |
+
512.5,
|
| 464 |
+
183.08657048910078
|
| 465 |
+
]
|
| 466 |
+
},
|
| 467 |
+
{
|
| 468 |
+
"point_id": 6,
|
| 469 |
+
"game_coords": [
|
| 470 |
+
0,
|
| 471 |
+
5
|
| 472 |
+
],
|
| 473 |
+
"adjacent_points": [
|
| 474 |
+
5,
|
| 475 |
+
7
|
| 476 |
+
],
|
| 477 |
+
"adjacent_hexes": [
|
| 478 |
+
3
|
| 479 |
+
],
|
| 480 |
+
"pixel_coords": [
|
| 481 |
+
557.5,
|
| 482 |
+
183.08657048910078
|
| 483 |
+
]
|
| 484 |
+
},
|
| 485 |
+
{
|
| 486 |
+
"point_id": 7,
|
| 487 |
+
"game_coords": [
|
| 488 |
+
0,
|
| 489 |
+
6
|
| 490 |
+
],
|
| 491 |
+
"adjacent_points": [
|
| 492 |
+
6,
|
| 493 |
+
15
|
| 494 |
+
],
|
| 495 |
+
"adjacent_hexes": [
|
| 496 |
+
3
|
| 497 |
+
],
|
| 498 |
+
"pixel_coords": [
|
| 499 |
+
580,
|
| 500 |
+
222.05771365940052
|
| 501 |
+
]
|
| 502 |
+
},
|
| 503 |
+
{
|
| 504 |
+
"point_id": 8,
|
| 505 |
+
"game_coords": [
|
| 506 |
+
1,
|
| 507 |
+
0
|
| 508 |
+
],
|
| 509 |
+
"adjacent_points": [
|
| 510 |
+
9,
|
| 511 |
+
18
|
| 512 |
+
],
|
| 513 |
+
"adjacent_hexes": [
|
| 514 |
+
4
|
| 515 |
+
],
|
| 516 |
+
"pixel_coords": [
|
| 517 |
+
310,
|
| 518 |
+
144.11542731880104
|
| 519 |
+
]
|
| 520 |
+
},
|
| 521 |
+
{
|
| 522 |
+
"point_id": 9,
|
| 523 |
+
"game_coords": [
|
| 524 |
+
1,
|
| 525 |
+
1
|
| 526 |
+
],
|
| 527 |
+
"adjacent_points": [
|
| 528 |
+
8,
|
| 529 |
+
10,
|
| 530 |
+
1
|
| 531 |
+
],
|
| 532 |
+
"adjacent_hexes": [
|
| 533 |
+
4,
|
| 534 |
+
1
|
| 535 |
+
],
|
| 536 |
+
"pixel_coords": [
|
| 537 |
+
355,
|
| 538 |
+
144.11542731880104
|
| 539 |
+
]
|
| 540 |
+
},
|
| 541 |
+
{
|
| 542 |
+
"point_id": 10,
|
| 543 |
+
"game_coords": [
|
| 544 |
+
1,
|
| 545 |
+
2
|
| 546 |
+
],
|
| 547 |
+
"adjacent_points": [
|
| 548 |
+
9,
|
| 549 |
+
11,
|
| 550 |
+
20
|
| 551 |
+
],
|
| 552 |
+
"adjacent_hexes": [
|
| 553 |
+
5,
|
| 554 |
+
4,
|
| 555 |
+
1
|
| 556 |
+
],
|
| 557 |
+
"pixel_coords": [
|
| 558 |
+
377.5,
|
| 559 |
+
183.08657048910078
|
| 560 |
+
]
|
| 561 |
+
},
|
| 562 |
+
{
|
| 563 |
+
"point_id": 11,
|
| 564 |
+
"game_coords": [
|
| 565 |
+
1,
|
| 566 |
+
3
|
| 567 |
+
],
|
| 568 |
+
"adjacent_points": [
|
| 569 |
+
10,
|
| 570 |
+
12,
|
| 571 |
+
3
|
| 572 |
+
],
|
| 573 |
+
"adjacent_hexes": [
|
| 574 |
+
5,
|
| 575 |
+
2,
|
| 576 |
+
1
|
| 577 |
+
],
|
| 578 |
+
"pixel_coords": [
|
| 579 |
+
422.5,
|
| 580 |
+
183.08657048910078
|
| 581 |
+
]
|
| 582 |
+
},
|
| 583 |
+
{
|
| 584 |
+
"point_id": 12,
|
| 585 |
+
"game_coords": [
|
| 586 |
+
1,
|
| 587 |
+
4
|
| 588 |
+
],
|
| 589 |
+
"adjacent_points": [
|
| 590 |
+
11,
|
| 591 |
+
13,
|
| 592 |
+
22
|
| 593 |
+
],
|
| 594 |
+
"adjacent_hexes": [
|
| 595 |
+
6,
|
| 596 |
+
5,
|
| 597 |
+
2
|
| 598 |
+
],
|
| 599 |
+
"pixel_coords": [
|
| 600 |
+
445,
|
| 601 |
+
222.05771365940052
|
| 602 |
+
]
|
| 603 |
+
},
|
| 604 |
+
{
|
| 605 |
+
"point_id": 13,
|
| 606 |
+
"game_coords": [
|
| 607 |
+
1,
|
| 608 |
+
5
|
| 609 |
+
],
|
| 610 |
+
"adjacent_points": [
|
| 611 |
+
12,
|
| 612 |
+
14,
|
| 613 |
+
5
|
| 614 |
+
],
|
| 615 |
+
"adjacent_hexes": [
|
| 616 |
+
6,
|
| 617 |
+
3,
|
| 618 |
+
2
|
| 619 |
+
],
|
| 620 |
+
"pixel_coords": [
|
| 621 |
+
490,
|
| 622 |
+
222.05771365940052
|
| 623 |
+
]
|
| 624 |
+
},
|
| 625 |
+
{
|
| 626 |
+
"point_id": 14,
|
| 627 |
+
"game_coords": [
|
| 628 |
+
1,
|
| 629 |
+
6
|
| 630 |
+
],
|
| 631 |
+
"adjacent_points": [
|
| 632 |
+
13,
|
| 633 |
+
15,
|
| 634 |
+
24
|
| 635 |
+
],
|
| 636 |
+
"adjacent_hexes": [
|
| 637 |
+
7,
|
| 638 |
+
6,
|
| 639 |
+
3
|
| 640 |
+
],
|
| 641 |
+
"pixel_coords": [
|
| 642 |
+
512.5,
|
| 643 |
+
261.02885682970026
|
| 644 |
+
]
|
| 645 |
+
},
|
| 646 |
+
{
|
| 647 |
+
"point_id": 15,
|
| 648 |
+
"game_coords": [
|
| 649 |
+
1,
|
| 650 |
+
7
|
| 651 |
+
],
|
| 652 |
+
"adjacent_points": [
|
| 653 |
+
14,
|
| 654 |
+
16,
|
| 655 |
+
7
|
| 656 |
+
],
|
| 657 |
+
"adjacent_hexes": [
|
| 658 |
+
7,
|
| 659 |
+
3
|
| 660 |
+
],
|
| 661 |
+
"pixel_coords": [
|
| 662 |
+
557.5,
|
| 663 |
+
261.02885682970026
|
| 664 |
+
]
|
| 665 |
+
},
|
| 666 |
+
{
|
| 667 |
+
"point_id": 16,
|
| 668 |
+
"game_coords": [
|
| 669 |
+
1,
|
| 670 |
+
8
|
| 671 |
+
],
|
| 672 |
+
"adjacent_points": [
|
| 673 |
+
15,
|
| 674 |
+
26
|
| 675 |
+
],
|
| 676 |
+
"adjacent_hexes": [
|
| 677 |
+
7
|
| 678 |
+
],
|
| 679 |
+
"pixel_coords": [
|
| 680 |
+
580,
|
| 681 |
+
300
|
| 682 |
+
]
|
| 683 |
+
},
|
| 684 |
+
{
|
| 685 |
+
"point_id": 17,
|
| 686 |
+
"game_coords": [
|
| 687 |
+
2,
|
| 688 |
+
0
|
| 689 |
+
],
|
| 690 |
+
"adjacent_points": [
|
| 691 |
+
18,
|
| 692 |
+
28
|
| 693 |
+
],
|
| 694 |
+
"adjacent_hexes": [
|
| 695 |
+
8
|
| 696 |
+
],
|
| 697 |
+
"pixel_coords": [
|
| 698 |
+
242.49999999999997,
|
| 699 |
+
183.08657048910078
|
| 700 |
+
]
|
| 701 |
+
},
|
| 702 |
+
{
|
| 703 |
+
"point_id": 18,
|
| 704 |
+
"game_coords": [
|
| 705 |
+
2,
|
| 706 |
+
1
|
| 707 |
+
],
|
| 708 |
+
"adjacent_points": [
|
| 709 |
+
17,
|
| 710 |
+
19,
|
| 711 |
+
8
|
| 712 |
+
],
|
| 713 |
+
"adjacent_hexes": [
|
| 714 |
+
8,
|
| 715 |
+
4
|
| 716 |
+
],
|
| 717 |
+
"pixel_coords": [
|
| 718 |
+
287.5,
|
| 719 |
+
183.08657048910078
|
| 720 |
+
]
|
| 721 |
+
},
|
| 722 |
+
{
|
| 723 |
+
"point_id": 19,
|
| 724 |
+
"game_coords": [
|
| 725 |
+
2,
|
| 726 |
+
2
|
| 727 |
+
],
|
| 728 |
+
"adjacent_points": [
|
| 729 |
+
18,
|
| 730 |
+
20,
|
| 731 |
+
30
|
| 732 |
+
],
|
| 733 |
+
"adjacent_hexes": [
|
| 734 |
+
9,
|
| 735 |
+
8,
|
| 736 |
+
4
|
| 737 |
+
],
|
| 738 |
+
"pixel_coords": [
|
| 739 |
+
310,
|
| 740 |
+
222.05771365940052
|
| 741 |
+
]
|
| 742 |
+
},
|
| 743 |
+
{
|
| 744 |
+
"point_id": 20,
|
| 745 |
+
"game_coords": [
|
| 746 |
+
2,
|
| 747 |
+
3
|
| 748 |
+
],
|
| 749 |
+
"adjacent_points": [
|
| 750 |
+
19,
|
| 751 |
+
21,
|
| 752 |
+
10
|
| 753 |
+
],
|
| 754 |
+
"adjacent_hexes": [
|
| 755 |
+
9,
|
| 756 |
+
5,
|
| 757 |
+
4
|
| 758 |
+
],
|
| 759 |
+
"pixel_coords": [
|
| 760 |
+
355,
|
| 761 |
+
222.05771365940052
|
| 762 |
+
]
|
| 763 |
+
},
|
| 764 |
+
{
|
| 765 |
+
"point_id": 21,
|
| 766 |
+
"game_coords": [
|
| 767 |
+
2,
|
| 768 |
+
4
|
| 769 |
+
],
|
| 770 |
+
"adjacent_points": [
|
| 771 |
+
20,
|
| 772 |
+
22,
|
| 773 |
+
32
|
| 774 |
+
],
|
| 775 |
+
"adjacent_hexes": [
|
| 776 |
+
10,
|
| 777 |
+
9,
|
| 778 |
+
5
|
| 779 |
+
],
|
| 780 |
+
"pixel_coords": [
|
| 781 |
+
377.5,
|
| 782 |
+
261.02885682970026
|
| 783 |
+
]
|
| 784 |
+
},
|
| 785 |
+
{
|
| 786 |
+
"point_id": 22,
|
| 787 |
+
"game_coords": [
|
| 788 |
+
2,
|
| 789 |
+
5
|
| 790 |
+
],
|
| 791 |
+
"adjacent_points": [
|
| 792 |
+
21,
|
| 793 |
+
23,
|
| 794 |
+
12
|
| 795 |
+
],
|
| 796 |
+
"adjacent_hexes": [
|
| 797 |
+
10,
|
| 798 |
+
6,
|
| 799 |
+
5
|
| 800 |
+
],
|
| 801 |
+
"pixel_coords": [
|
| 802 |
+
422.5,
|
| 803 |
+
261.02885682970026
|
| 804 |
+
]
|
| 805 |
+
},
|
| 806 |
+
{
|
| 807 |
+
"point_id": 23,
|
| 808 |
+
"game_coords": [
|
| 809 |
+
2,
|
| 810 |
+
6
|
| 811 |
+
],
|
| 812 |
+
"adjacent_points": [
|
| 813 |
+
22,
|
| 814 |
+
24,
|
| 815 |
+
34
|
| 816 |
+
],
|
| 817 |
+
"adjacent_hexes": [
|
| 818 |
+
11,
|
| 819 |
+
10,
|
| 820 |
+
6
|
| 821 |
+
],
|
| 822 |
+
"pixel_coords": [
|
| 823 |
+
445,
|
| 824 |
+
300
|
| 825 |
+
]
|
| 826 |
+
},
|
| 827 |
+
{
|
| 828 |
+
"point_id": 24,
|
| 829 |
+
"game_coords": [
|
| 830 |
+
2,
|
| 831 |
+
7
|
| 832 |
+
],
|
| 833 |
+
"adjacent_points": [
|
| 834 |
+
23,
|
| 835 |
+
25,
|
| 836 |
+
14
|
| 837 |
+
],
|
| 838 |
+
"adjacent_hexes": [
|
| 839 |
+
11,
|
| 840 |
+
7,
|
| 841 |
+
6
|
| 842 |
+
],
|
| 843 |
+
"pixel_coords": [
|
| 844 |
+
490,
|
| 845 |
+
300
|
| 846 |
+
]
|
| 847 |
+
},
|
| 848 |
+
{
|
| 849 |
+
"point_id": 25,
|
| 850 |
+
"game_coords": [
|
| 851 |
+
2,
|
| 852 |
+
8
|
| 853 |
+
],
|
| 854 |
+
"adjacent_points": [
|
| 855 |
+
24,
|
| 856 |
+
26,
|
| 857 |
+
36
|
| 858 |
+
],
|
| 859 |
+
"adjacent_hexes": [
|
| 860 |
+
12,
|
| 861 |
+
11,
|
| 862 |
+
7
|
| 863 |
+
],
|
| 864 |
+
"pixel_coords": [
|
| 865 |
+
512.5,
|
| 866 |
+
338.97114317029974
|
| 867 |
+
]
|
| 868 |
+
},
|
| 869 |
+
{
|
| 870 |
+
"point_id": 26,
|
| 871 |
+
"game_coords": [
|
| 872 |
+
2,
|
| 873 |
+
9
|
| 874 |
+
],
|
| 875 |
+
"adjacent_points": [
|
| 876 |
+
25,
|
| 877 |
+
27,
|
| 878 |
+
16
|
| 879 |
+
],
|
| 880 |
+
"adjacent_hexes": [
|
| 881 |
+
12,
|
| 882 |
+
7
|
| 883 |
+
],
|
| 884 |
+
"pixel_coords": [
|
| 885 |
+
557.5,
|
| 886 |
+
338.97114317029974
|
| 887 |
+
]
|
| 888 |
+
},
|
| 889 |
+
{
|
| 890 |
+
"point_id": 27,
|
| 891 |
+
"game_coords": [
|
| 892 |
+
2,
|
| 893 |
+
10
|
| 894 |
+
],
|
| 895 |
+
"adjacent_points": [
|
| 896 |
+
26,
|
| 897 |
+
38
|
| 898 |
+
],
|
| 899 |
+
"adjacent_hexes": [
|
| 900 |
+
12
|
| 901 |
+
],
|
| 902 |
+
"pixel_coords": [
|
| 903 |
+
580,
|
| 904 |
+
377.9422863405995
|
| 905 |
+
]
|
| 906 |
+
},
|
| 907 |
+
{
|
| 908 |
+
"point_id": 28,
|
| 909 |
+
"game_coords": [
|
| 910 |
+
3,
|
| 911 |
+
0
|
| 912 |
+
],
|
| 913 |
+
"adjacent_points": [
|
| 914 |
+
29,
|
| 915 |
+
17
|
| 916 |
+
],
|
| 917 |
+
"adjacent_hexes": [
|
| 918 |
+
8
|
| 919 |
+
],
|
| 920 |
+
"pixel_coords": [
|
| 921 |
+
220,
|
| 922 |
+
222.05771365940052
|
| 923 |
+
]
|
| 924 |
+
},
|
| 925 |
+
{
|
| 926 |
+
"point_id": 29,
|
| 927 |
+
"game_coords": [
|
| 928 |
+
3,
|
| 929 |
+
1
|
| 930 |
+
],
|
| 931 |
+
"adjacent_points": [
|
| 932 |
+
28,
|
| 933 |
+
30,
|
| 934 |
+
39
|
| 935 |
+
],
|
| 936 |
+
"adjacent_hexes": [
|
| 937 |
+
13,
|
| 938 |
+
8
|
| 939 |
+
],
|
| 940 |
+
"pixel_coords": [
|
| 941 |
+
242.5,
|
| 942 |
+
261.02885682970026
|
| 943 |
+
]
|
| 944 |
+
},
|
| 945 |
+
{
|
| 946 |
+
"point_id": 30,
|
| 947 |
+
"game_coords": [
|
| 948 |
+
3,
|
| 949 |
+
2
|
| 950 |
+
],
|
| 951 |
+
"adjacent_points": [
|
| 952 |
+
29,
|
| 953 |
+
31,
|
| 954 |
+
19
|
| 955 |
+
],
|
| 956 |
+
"adjacent_hexes": [
|
| 957 |
+
13,
|
| 958 |
+
9,
|
| 959 |
+
8
|
| 960 |
+
],
|
| 961 |
+
"pixel_coords": [
|
| 962 |
+
287.5,
|
| 963 |
+
261.02885682970026
|
| 964 |
+
]
|
| 965 |
+
},
|
| 966 |
+
{
|
| 967 |
+
"point_id": 31,
|
| 968 |
+
"game_coords": [
|
| 969 |
+
3,
|
| 970 |
+
3
|
| 971 |
+
],
|
| 972 |
+
"adjacent_points": [
|
| 973 |
+
30,
|
| 974 |
+
32,
|
| 975 |
+
41
|
| 976 |
+
],
|
| 977 |
+
"adjacent_hexes": [
|
| 978 |
+
14,
|
| 979 |
+
13,
|
| 980 |
+
9
|
| 981 |
+
],
|
| 982 |
+
"pixel_coords": [
|
| 983 |
+
310,
|
| 984 |
+
300
|
| 985 |
+
]
|
| 986 |
+
},
|
| 987 |
+
{
|
| 988 |
+
"point_id": 32,
|
| 989 |
+
"game_coords": [
|
| 990 |
+
3,
|
| 991 |
+
4
|
| 992 |
+
],
|
| 993 |
+
"adjacent_points": [
|
| 994 |
+
31,
|
| 995 |
+
33,
|
| 996 |
+
21
|
| 997 |
+
],
|
| 998 |
+
"adjacent_hexes": [
|
| 999 |
+
14,
|
| 1000 |
+
10,
|
| 1001 |
+
9
|
| 1002 |
+
],
|
| 1003 |
+
"pixel_coords": [
|
| 1004 |
+
355,
|
| 1005 |
+
300
|
| 1006 |
+
]
|
| 1007 |
+
},
|
| 1008 |
+
{
|
| 1009 |
+
"point_id": 33,
|
| 1010 |
+
"game_coords": [
|
| 1011 |
+
3,
|
| 1012 |
+
5
|
| 1013 |
+
],
|
| 1014 |
+
"adjacent_points": [
|
| 1015 |
+
32,
|
| 1016 |
+
34,
|
| 1017 |
+
43
|
| 1018 |
+
],
|
| 1019 |
+
"adjacent_hexes": [
|
| 1020 |
+
15,
|
| 1021 |
+
14,
|
| 1022 |
+
10
|
| 1023 |
+
],
|
| 1024 |
+
"pixel_coords": [
|
| 1025 |
+
377.5,
|
| 1026 |
+
338.97114317029974
|
| 1027 |
+
]
|
| 1028 |
+
},
|
| 1029 |
+
{
|
| 1030 |
+
"point_id": 34,
|
| 1031 |
+
"game_coords": [
|
| 1032 |
+
3,
|
| 1033 |
+
6
|
| 1034 |
+
],
|
| 1035 |
+
"adjacent_points": [
|
| 1036 |
+
33,
|
| 1037 |
+
35,
|
| 1038 |
+
23
|
| 1039 |
+
],
|
| 1040 |
+
"adjacent_hexes": [
|
| 1041 |
+
15,
|
| 1042 |
+
11,
|
| 1043 |
+
10
|
| 1044 |
+
],
|
| 1045 |
+
"pixel_coords": [
|
| 1046 |
+
422.5,
|
| 1047 |
+
338.97114317029974
|
| 1048 |
+
]
|
| 1049 |
+
},
|
| 1050 |
+
{
|
| 1051 |
+
"point_id": 35,
|
| 1052 |
+
"game_coords": [
|
| 1053 |
+
3,
|
| 1054 |
+
7
|
| 1055 |
+
],
|
| 1056 |
+
"adjacent_points": [
|
| 1057 |
+
34,
|
| 1058 |
+
36,
|
| 1059 |
+
45
|
| 1060 |
+
],
|
| 1061 |
+
"adjacent_hexes": [
|
| 1062 |
+
16,
|
| 1063 |
+
15,
|
| 1064 |
+
11
|
| 1065 |
+
],
|
| 1066 |
+
"pixel_coords": [
|
| 1067 |
+
445,
|
| 1068 |
+
377.9422863405995
|
| 1069 |
+
]
|
| 1070 |
+
},
|
| 1071 |
+
{
|
| 1072 |
+
"point_id": 36,
|
| 1073 |
+
"game_coords": [
|
| 1074 |
+
3,
|
| 1075 |
+
8
|
| 1076 |
+
],
|
| 1077 |
+
"adjacent_points": [
|
| 1078 |
+
35,
|
| 1079 |
+
37,
|
| 1080 |
+
25
|
| 1081 |
+
],
|
| 1082 |
+
"adjacent_hexes": [
|
| 1083 |
+
16,
|
| 1084 |
+
12,
|
| 1085 |
+
11
|
| 1086 |
+
],
|
| 1087 |
+
"pixel_coords": [
|
| 1088 |
+
490,
|
| 1089 |
+
377.9422863405995
|
| 1090 |
+
]
|
| 1091 |
+
},
|
| 1092 |
+
{
|
| 1093 |
+
"point_id": 37,
|
| 1094 |
+
"game_coords": [
|
| 1095 |
+
3,
|
| 1096 |
+
9
|
| 1097 |
+
],
|
| 1098 |
+
"adjacent_points": [
|
| 1099 |
+
36,
|
| 1100 |
+
38,
|
| 1101 |
+
47
|
| 1102 |
+
],
|
| 1103 |
+
"adjacent_hexes": [
|
| 1104 |
+
16,
|
| 1105 |
+
12
|
| 1106 |
+
],
|
| 1107 |
+
"pixel_coords": [
|
| 1108 |
+
512.5,
|
| 1109 |
+
416.9134295108992
|
| 1110 |
+
]
|
| 1111 |
+
},
|
| 1112 |
+
{
|
| 1113 |
+
"point_id": 38,
|
| 1114 |
+
"game_coords": [
|
| 1115 |
+
3,
|
| 1116 |
+
10
|
| 1117 |
+
],
|
| 1118 |
+
"adjacent_points": [
|
| 1119 |
+
37,
|
| 1120 |
+
27
|
| 1121 |
+
],
|
| 1122 |
+
"adjacent_hexes": [
|
| 1123 |
+
12
|
| 1124 |
+
],
|
| 1125 |
+
"pixel_coords": [
|
| 1126 |
+
557.5,
|
| 1127 |
+
416.9134295108992
|
| 1128 |
+
]
|
| 1129 |
+
},
|
| 1130 |
+
{
|
| 1131 |
+
"point_id": 39,
|
| 1132 |
+
"game_coords": [
|
| 1133 |
+
4,
|
| 1134 |
+
0
|
| 1135 |
+
],
|
| 1136 |
+
"adjacent_points": [
|
| 1137 |
+
40,
|
| 1138 |
+
29
|
| 1139 |
+
],
|
| 1140 |
+
"adjacent_hexes": [
|
| 1141 |
+
13
|
| 1142 |
+
],
|
| 1143 |
+
"pixel_coords": [
|
| 1144 |
+
220,
|
| 1145 |
+
300
|
| 1146 |
+
]
|
| 1147 |
+
},
|
| 1148 |
+
{
|
| 1149 |
+
"point_id": 40,
|
| 1150 |
+
"game_coords": [
|
| 1151 |
+
4,
|
| 1152 |
+
1
|
| 1153 |
+
],
|
| 1154 |
+
"adjacent_points": [
|
| 1155 |
+
39,
|
| 1156 |
+
41,
|
| 1157 |
+
48
|
| 1158 |
+
],
|
| 1159 |
+
"adjacent_hexes": [
|
| 1160 |
+
17,
|
| 1161 |
+
13
|
| 1162 |
+
],
|
| 1163 |
+
"pixel_coords": [
|
| 1164 |
+
242.5,
|
| 1165 |
+
338.97114317029974
|
| 1166 |
+
]
|
| 1167 |
+
},
|
| 1168 |
+
{
|
| 1169 |
+
"point_id": 41,
|
| 1170 |
+
"game_coords": [
|
| 1171 |
+
4,
|
| 1172 |
+
2
|
| 1173 |
+
],
|
| 1174 |
+
"adjacent_points": [
|
| 1175 |
+
40,
|
| 1176 |
+
42,
|
| 1177 |
+
31
|
| 1178 |
+
],
|
| 1179 |
+
"adjacent_hexes": [
|
| 1180 |
+
17,
|
| 1181 |
+
14,
|
| 1182 |
+
13
|
| 1183 |
+
],
|
| 1184 |
+
"pixel_coords": [
|
| 1185 |
+
287.5,
|
| 1186 |
+
338.97114317029974
|
| 1187 |
+
]
|
| 1188 |
+
},
|
| 1189 |
+
{
|
| 1190 |
+
"point_id": 42,
|
| 1191 |
+
"game_coords": [
|
| 1192 |
+
4,
|
| 1193 |
+
3
|
| 1194 |
+
],
|
| 1195 |
+
"adjacent_points": [
|
| 1196 |
+
41,
|
| 1197 |
+
43,
|
| 1198 |
+
50
|
| 1199 |
+
],
|
| 1200 |
+
"adjacent_hexes": [
|
| 1201 |
+
18,
|
| 1202 |
+
17,
|
| 1203 |
+
14
|
| 1204 |
+
],
|
| 1205 |
+
"pixel_coords": [
|
| 1206 |
+
310,
|
| 1207 |
+
377.9422863405995
|
| 1208 |
+
]
|
| 1209 |
+
},
|
| 1210 |
+
{
|
| 1211 |
+
"point_id": 43,
|
| 1212 |
+
"game_coords": [
|
| 1213 |
+
4,
|
| 1214 |
+
4
|
| 1215 |
+
],
|
| 1216 |
+
"adjacent_points": [
|
| 1217 |
+
42,
|
| 1218 |
+
44,
|
| 1219 |
+
33
|
| 1220 |
+
],
|
| 1221 |
+
"adjacent_hexes": [
|
| 1222 |
+
18,
|
| 1223 |
+
15,
|
| 1224 |
+
14
|
| 1225 |
+
],
|
| 1226 |
+
"pixel_coords": [
|
| 1227 |
+
355,
|
| 1228 |
+
377.9422863405995
|
| 1229 |
+
]
|
| 1230 |
+
},
|
| 1231 |
+
{
|
| 1232 |
+
"point_id": 44,
|
| 1233 |
+
"game_coords": [
|
| 1234 |
+
4,
|
| 1235 |
+
5
|
| 1236 |
+
],
|
| 1237 |
+
"adjacent_points": [
|
| 1238 |
+
43,
|
| 1239 |
+
45,
|
| 1240 |
+
52
|
| 1241 |
+
],
|
| 1242 |
+
"adjacent_hexes": [
|
| 1243 |
+
19,
|
| 1244 |
+
18,
|
| 1245 |
+
15
|
| 1246 |
+
],
|
| 1247 |
+
"pixel_coords": [
|
| 1248 |
+
377.5,
|
| 1249 |
+
416.9134295108992
|
| 1250 |
+
]
|
| 1251 |
+
},
|
| 1252 |
+
{
|
| 1253 |
+
"point_id": 45,
|
| 1254 |
+
"game_coords": [
|
| 1255 |
+
4,
|
| 1256 |
+
6
|
| 1257 |
+
],
|
| 1258 |
+
"adjacent_points": [
|
| 1259 |
+
44,
|
| 1260 |
+
46,
|
| 1261 |
+
35
|
| 1262 |
+
],
|
| 1263 |
+
"adjacent_hexes": [
|
| 1264 |
+
19,
|
| 1265 |
+
16,
|
| 1266 |
+
15
|
| 1267 |
+
],
|
| 1268 |
+
"pixel_coords": [
|
| 1269 |
+
422.5,
|
| 1270 |
+
416.9134295108992
|
| 1271 |
+
]
|
| 1272 |
+
},
|
| 1273 |
+
{
|
| 1274 |
+
"point_id": 46,
|
| 1275 |
+
"game_coords": [
|
| 1276 |
+
4,
|
| 1277 |
+
7
|
| 1278 |
+
],
|
| 1279 |
+
"adjacent_points": [
|
| 1280 |
+
45,
|
| 1281 |
+
47,
|
| 1282 |
+
54
|
| 1283 |
+
],
|
| 1284 |
+
"adjacent_hexes": [
|
| 1285 |
+
19,
|
| 1286 |
+
16
|
| 1287 |
+
],
|
| 1288 |
+
"pixel_coords": [
|
| 1289 |
+
445,
|
| 1290 |
+
455.88457268119896
|
| 1291 |
+
]
|
| 1292 |
+
},
|
| 1293 |
+
{
|
| 1294 |
+
"point_id": 47,
|
| 1295 |
+
"game_coords": [
|
| 1296 |
+
4,
|
| 1297 |
+
8
|
| 1298 |
+
],
|
| 1299 |
+
"adjacent_points": [
|
| 1300 |
+
46,
|
| 1301 |
+
37
|
| 1302 |
+
],
|
| 1303 |
+
"adjacent_hexes": [
|
| 1304 |
+
16
|
| 1305 |
+
],
|
| 1306 |
+
"pixel_coords": [
|
| 1307 |
+
490,
|
| 1308 |
+
455.88457268119896
|
| 1309 |
+
]
|
| 1310 |
+
},
|
| 1311 |
+
{
|
| 1312 |
+
"point_id": 48,
|
| 1313 |
+
"game_coords": [
|
| 1314 |
+
5,
|
| 1315 |
+
0
|
| 1316 |
+
],
|
| 1317 |
+
"adjacent_points": [
|
| 1318 |
+
49,
|
| 1319 |
+
40
|
| 1320 |
+
],
|
| 1321 |
+
"adjacent_hexes": [
|
| 1322 |
+
17
|
| 1323 |
+
],
|
| 1324 |
+
"pixel_coords": [
|
| 1325 |
+
220,
|
| 1326 |
+
377.9422863405995
|
| 1327 |
+
]
|
| 1328 |
+
},
|
| 1329 |
+
{
|
| 1330 |
+
"point_id": 49,
|
| 1331 |
+
"game_coords": [
|
| 1332 |
+
5,
|
| 1333 |
+
1
|
| 1334 |
+
],
|
| 1335 |
+
"adjacent_points": [
|
| 1336 |
+
48,
|
| 1337 |
+
50
|
| 1338 |
+
],
|
| 1339 |
+
"adjacent_hexes": [
|
| 1340 |
+
17
|
| 1341 |
+
],
|
| 1342 |
+
"pixel_coords": [
|
| 1343 |
+
242.5,
|
| 1344 |
+
416.9134295108992
|
| 1345 |
+
]
|
| 1346 |
+
},
|
| 1347 |
+
{
|
| 1348 |
+
"point_id": 50,
|
| 1349 |
+
"game_coords": [
|
| 1350 |
+
5,
|
| 1351 |
+
2
|
| 1352 |
+
],
|
| 1353 |
+
"adjacent_points": [
|
| 1354 |
+
49,
|
| 1355 |
+
51,
|
| 1356 |
+
42
|
| 1357 |
+
],
|
| 1358 |
+
"adjacent_hexes": [
|
| 1359 |
+
18,
|
| 1360 |
+
17
|
| 1361 |
+
],
|
| 1362 |
+
"pixel_coords": [
|
| 1363 |
+
287.5,
|
| 1364 |
+
416.9134295108992
|
| 1365 |
+
]
|
| 1366 |
+
},
|
| 1367 |
+
{
|
| 1368 |
+
"point_id": 51,
|
| 1369 |
+
"game_coords": [
|
| 1370 |
+
5,
|
| 1371 |
+
3
|
| 1372 |
+
],
|
| 1373 |
+
"adjacent_points": [
|
| 1374 |
+
50,
|
| 1375 |
+
52
|
| 1376 |
+
],
|
| 1377 |
+
"adjacent_hexes": [
|
| 1378 |
+
18
|
| 1379 |
+
],
|
| 1380 |
+
"pixel_coords": [
|
| 1381 |
+
310,
|
| 1382 |
+
455.88457268119896
|
| 1383 |
+
]
|
| 1384 |
+
},
|
| 1385 |
+
{
|
| 1386 |
+
"point_id": 52,
|
| 1387 |
+
"game_coords": [
|
| 1388 |
+
5,
|
| 1389 |
+
4
|
| 1390 |
+
],
|
| 1391 |
+
"adjacent_points": [
|
| 1392 |
+
51,
|
| 1393 |
+
53,
|
| 1394 |
+
44
|
| 1395 |
+
],
|
| 1396 |
+
"adjacent_hexes": [
|
| 1397 |
+
19,
|
| 1398 |
+
18
|
| 1399 |
+
],
|
| 1400 |
+
"pixel_coords": [
|
| 1401 |
+
355,
|
| 1402 |
+
455.88457268119896
|
| 1403 |
+
]
|
| 1404 |
+
},
|
| 1405 |
+
{
|
| 1406 |
+
"point_id": 53,
|
| 1407 |
+
"game_coords": [
|
| 1408 |
+
5,
|
| 1409 |
+
5
|
| 1410 |
+
],
|
| 1411 |
+
"adjacent_points": [
|
| 1412 |
+
52,
|
| 1413 |
+
54
|
| 1414 |
+
],
|
| 1415 |
+
"adjacent_hexes": [
|
| 1416 |
+
19
|
| 1417 |
+
],
|
| 1418 |
+
"pixel_coords": [
|
| 1419 |
+
377.5,
|
| 1420 |
+
494.8557158514987
|
| 1421 |
+
]
|
| 1422 |
+
},
|
| 1423 |
+
{
|
| 1424 |
+
"point_id": 54,
|
| 1425 |
+
"game_coords": [
|
| 1426 |
+
5,
|
| 1427 |
+
6
|
| 1428 |
+
],
|
| 1429 |
+
"adjacent_points": [
|
| 1430 |
+
53,
|
| 1431 |
+
46
|
| 1432 |
+
],
|
| 1433 |
+
"adjacent_hexes": [
|
| 1434 |
+
19
|
| 1435 |
+
],
|
| 1436 |
+
"pixel_coords": [
|
| 1437 |
+
422.5,
|
| 1438 |
+
494.8557158514987
|
| 1439 |
+
]
|
| 1440 |
+
}
|
| 1441 |
+
],
|
| 1442 |
+
"board_graph": {
|
| 1443 |
+
"adjacency": {
|
| 1444 |
+
"1": [
|
| 1445 |
+
2,
|
| 1446 |
+
9
|
| 1447 |
+
],
|
| 1448 |
+
"2": [
|
| 1449 |
+
1,
|
| 1450 |
+
3
|
| 1451 |
+
],
|
| 1452 |
+
"3": [
|
| 1453 |
+
2,
|
| 1454 |
+
4,
|
| 1455 |
+
11
|
| 1456 |
+
],
|
| 1457 |
+
"4": [
|
| 1458 |
+
3,
|
| 1459 |
+
5
|
| 1460 |
+
],
|
| 1461 |
+
"5": [
|
| 1462 |
+
4,
|
| 1463 |
+
6,
|
| 1464 |
+
13
|
| 1465 |
+
],
|
| 1466 |
+
"6": [
|
| 1467 |
+
5,
|
| 1468 |
+
7
|
| 1469 |
+
],
|
| 1470 |
+
"7": [
|
| 1471 |
+
6,
|
| 1472 |
+
15
|
| 1473 |
+
],
|
| 1474 |
+
"8": [
|
| 1475 |
+
9,
|
| 1476 |
+
18
|
| 1477 |
+
],
|
| 1478 |
+
"9": [
|
| 1479 |
+
8,
|
| 1480 |
+
10,
|
| 1481 |
+
1
|
| 1482 |
+
],
|
| 1483 |
+
"10": [
|
| 1484 |
+
9,
|
| 1485 |
+
11,
|
| 1486 |
+
20
|
| 1487 |
+
],
|
| 1488 |
+
"11": [
|
| 1489 |
+
10,
|
| 1490 |
+
12,
|
| 1491 |
+
3
|
| 1492 |
+
],
|
| 1493 |
+
"12": [
|
| 1494 |
+
11,
|
| 1495 |
+
13,
|
| 1496 |
+
22
|
| 1497 |
+
],
|
| 1498 |
+
"13": [
|
| 1499 |
+
12,
|
| 1500 |
+
14,
|
| 1501 |
+
5
|
| 1502 |
+
],
|
| 1503 |
+
"14": [
|
| 1504 |
+
13,
|
| 1505 |
+
15,
|
| 1506 |
+
24
|
| 1507 |
+
],
|
| 1508 |
+
"15": [
|
| 1509 |
+
14,
|
| 1510 |
+
16,
|
| 1511 |
+
7
|
| 1512 |
+
],
|
| 1513 |
+
"16": [
|
| 1514 |
+
15,
|
| 1515 |
+
26
|
| 1516 |
+
],
|
| 1517 |
+
"17": [
|
| 1518 |
+
18,
|
| 1519 |
+
28
|
| 1520 |
+
],
|
| 1521 |
+
"18": [
|
| 1522 |
+
17,
|
| 1523 |
+
19,
|
| 1524 |
+
8
|
| 1525 |
+
],
|
| 1526 |
+
"19": [
|
| 1527 |
+
18,
|
| 1528 |
+
20,
|
| 1529 |
+
30
|
| 1530 |
+
],
|
| 1531 |
+
"20": [
|
| 1532 |
+
19,
|
| 1533 |
+
21,
|
| 1534 |
+
10
|
| 1535 |
+
],
|
| 1536 |
+
"21": [
|
| 1537 |
+
20,
|
| 1538 |
+
22,
|
| 1539 |
+
32
|
| 1540 |
+
],
|
| 1541 |
+
"22": [
|
| 1542 |
+
21,
|
| 1543 |
+
23,
|
| 1544 |
+
12
|
| 1545 |
+
],
|
| 1546 |
+
"23": [
|
| 1547 |
+
22,
|
| 1548 |
+
24,
|
| 1549 |
+
34
|
| 1550 |
+
],
|
| 1551 |
+
"24": [
|
| 1552 |
+
23,
|
| 1553 |
+
25,
|
| 1554 |
+
14
|
| 1555 |
+
],
|
| 1556 |
+
"25": [
|
| 1557 |
+
24,
|
| 1558 |
+
26,
|
| 1559 |
+
36
|
| 1560 |
+
],
|
| 1561 |
+
"26": [
|
| 1562 |
+
25,
|
| 1563 |
+
27,
|
| 1564 |
+
16
|
| 1565 |
+
],
|
| 1566 |
+
"27": [
|
| 1567 |
+
26,
|
| 1568 |
+
38
|
| 1569 |
+
],
|
| 1570 |
+
"28": [
|
| 1571 |
+
29,
|
| 1572 |
+
17
|
| 1573 |
+
],
|
| 1574 |
+
"29": [
|
| 1575 |
+
28,
|
| 1576 |
+
30,
|
| 1577 |
+
39
|
| 1578 |
+
],
|
| 1579 |
+
"30": [
|
| 1580 |
+
29,
|
| 1581 |
+
31,
|
| 1582 |
+
19
|
| 1583 |
+
],
|
| 1584 |
+
"31": [
|
| 1585 |
+
30,
|
| 1586 |
+
32,
|
| 1587 |
+
41
|
| 1588 |
+
],
|
| 1589 |
+
"32": [
|
| 1590 |
+
31,
|
| 1591 |
+
33,
|
| 1592 |
+
21
|
| 1593 |
+
],
|
| 1594 |
+
"33": [
|
| 1595 |
+
32,
|
| 1596 |
+
34,
|
| 1597 |
+
43
|
| 1598 |
+
],
|
| 1599 |
+
"34": [
|
| 1600 |
+
33,
|
| 1601 |
+
35,
|
| 1602 |
+
23
|
| 1603 |
+
],
|
| 1604 |
+
"35": [
|
| 1605 |
+
34,
|
| 1606 |
+
36,
|
| 1607 |
+
45
|
| 1608 |
+
],
|
| 1609 |
+
"36": [
|
| 1610 |
+
35,
|
| 1611 |
+
37,
|
| 1612 |
+
25
|
| 1613 |
+
],
|
| 1614 |
+
"37": [
|
| 1615 |
+
36,
|
| 1616 |
+
38,
|
| 1617 |
+
47
|
| 1618 |
+
],
|
| 1619 |
+
"38": [
|
| 1620 |
+
37,
|
| 1621 |
+
27
|
| 1622 |
+
],
|
| 1623 |
+
"39": [
|
| 1624 |
+
40,
|
| 1625 |
+
29
|
| 1626 |
+
],
|
| 1627 |
+
"40": [
|
| 1628 |
+
39,
|
| 1629 |
+
41,
|
| 1630 |
+
48
|
| 1631 |
+
],
|
| 1632 |
+
"41": [
|
| 1633 |
+
40,
|
| 1634 |
+
42,
|
| 1635 |
+
31
|
| 1636 |
+
],
|
| 1637 |
+
"42": [
|
| 1638 |
+
41,
|
| 1639 |
+
43,
|
| 1640 |
+
50
|
| 1641 |
+
],
|
| 1642 |
+
"43": [
|
| 1643 |
+
42,
|
| 1644 |
+
44,
|
| 1645 |
+
33
|
| 1646 |
+
],
|
| 1647 |
+
"44": [
|
| 1648 |
+
43,
|
| 1649 |
+
45,
|
| 1650 |
+
52
|
| 1651 |
+
],
|
| 1652 |
+
"45": [
|
| 1653 |
+
44,
|
| 1654 |
+
46,
|
| 1655 |
+
35
|
| 1656 |
+
],
|
| 1657 |
+
"46": [
|
| 1658 |
+
45,
|
| 1659 |
+
47,
|
| 1660 |
+
54
|
| 1661 |
+
],
|
| 1662 |
+
"47": [
|
| 1663 |
+
46,
|
| 1664 |
+
37
|
| 1665 |
+
],
|
| 1666 |
+
"48": [
|
| 1667 |
+
49,
|
| 1668 |
+
40
|
| 1669 |
+
],
|
| 1670 |
+
"49": [
|
| 1671 |
+
48,
|
| 1672 |
+
50
|
| 1673 |
+
],
|
| 1674 |
+
"50": [
|
| 1675 |
+
49,
|
| 1676 |
+
51,
|
| 1677 |
+
42
|
| 1678 |
+
],
|
| 1679 |
+
"51": [
|
| 1680 |
+
50,
|
| 1681 |
+
52
|
| 1682 |
+
],
|
| 1683 |
+
"52": [
|
| 1684 |
+
51,
|
| 1685 |
+
53,
|
| 1686 |
+
44
|
| 1687 |
+
],
|
| 1688 |
+
"53": [
|
| 1689 |
+
52,
|
| 1690 |
+
54
|
| 1691 |
+
],
|
| 1692 |
+
"54": [
|
| 1693 |
+
53,
|
| 1694 |
+
46
|
| 1695 |
+
]
|
| 1696 |
+
},
|
| 1697 |
+
"hex_to_points": {
|
| 1698 |
+
"1": [
|
| 1699 |
+
1,
|
| 1700 |
+
2,
|
| 1701 |
+
3,
|
| 1702 |
+
9,
|
| 1703 |
+
10,
|
| 1704 |
+
11
|
| 1705 |
+
],
|
| 1706 |
+
"2": [
|
| 1707 |
+
3,
|
| 1708 |
+
4,
|
| 1709 |
+
5,
|
| 1710 |
+
11,
|
| 1711 |
+
12,
|
| 1712 |
+
13
|
| 1713 |
+
],
|
| 1714 |
+
"3": [
|
| 1715 |
+
5,
|
| 1716 |
+
6,
|
| 1717 |
+
7,
|
| 1718 |
+
13,
|
| 1719 |
+
14,
|
| 1720 |
+
15
|
| 1721 |
+
],
|
| 1722 |
+
"4": [
|
| 1723 |
+
8,
|
| 1724 |
+
9,
|
| 1725 |
+
10,
|
| 1726 |
+
18,
|
| 1727 |
+
19,
|
| 1728 |
+
20
|
| 1729 |
+
],
|
| 1730 |
+
"5": [
|
| 1731 |
+
10,
|
| 1732 |
+
11,
|
| 1733 |
+
12,
|
| 1734 |
+
20,
|
| 1735 |
+
21,
|
| 1736 |
+
22
|
| 1737 |
+
],
|
| 1738 |
+
"6": [
|
| 1739 |
+
12,
|
| 1740 |
+
13,
|
| 1741 |
+
14,
|
| 1742 |
+
22,
|
| 1743 |
+
23,
|
| 1744 |
+
24
|
| 1745 |
+
],
|
| 1746 |
+
"7": [
|
| 1747 |
+
14,
|
| 1748 |
+
15,
|
| 1749 |
+
16,
|
| 1750 |
+
24,
|
| 1751 |
+
25,
|
| 1752 |
+
26
|
| 1753 |
+
],
|
| 1754 |
+
"8": [
|
| 1755 |
+
17,
|
| 1756 |
+
18,
|
| 1757 |
+
19,
|
| 1758 |
+
28,
|
| 1759 |
+
29,
|
| 1760 |
+
30
|
| 1761 |
+
],
|
| 1762 |
+
"9": [
|
| 1763 |
+
19,
|
| 1764 |
+
20,
|
| 1765 |
+
21,
|
| 1766 |
+
30,
|
| 1767 |
+
31,
|
| 1768 |
+
32
|
| 1769 |
+
],
|
| 1770 |
+
"10": [
|
| 1771 |
+
21,
|
| 1772 |
+
22,
|
| 1773 |
+
23,
|
| 1774 |
+
32,
|
| 1775 |
+
33,
|
| 1776 |
+
34
|
| 1777 |
+
],
|
| 1778 |
+
"11": [
|
| 1779 |
+
23,
|
| 1780 |
+
24,
|
| 1781 |
+
25,
|
| 1782 |
+
34,
|
| 1783 |
+
35,
|
| 1784 |
+
36
|
| 1785 |
+
],
|
| 1786 |
+
"12": [
|
| 1787 |
+
25,
|
| 1788 |
+
26,
|
| 1789 |
+
27,
|
| 1790 |
+
36,
|
| 1791 |
+
37,
|
| 1792 |
+
38
|
| 1793 |
+
],
|
| 1794 |
+
"13": [
|
| 1795 |
+
29,
|
| 1796 |
+
30,
|
| 1797 |
+
31,
|
| 1798 |
+
39,
|
| 1799 |
+
40,
|
| 1800 |
+
41
|
| 1801 |
+
],
|
| 1802 |
+
"14": [
|
| 1803 |
+
31,
|
| 1804 |
+
32,
|
| 1805 |
+
33,
|
| 1806 |
+
41,
|
| 1807 |
+
42,
|
| 1808 |
+
43
|
| 1809 |
+
],
|
| 1810 |
+
"15": [
|
| 1811 |
+
33,
|
| 1812 |
+
34,
|
| 1813 |
+
35,
|
| 1814 |
+
43,
|
| 1815 |
+
44,
|
| 1816 |
+
45
|
| 1817 |
+
],
|
| 1818 |
+
"16": [
|
| 1819 |
+
35,
|
| 1820 |
+
36,
|
| 1821 |
+
37,
|
| 1822 |
+
45,
|
| 1823 |
+
46,
|
| 1824 |
+
47
|
| 1825 |
+
],
|
| 1826 |
+
"17": [
|
| 1827 |
+
40,
|
| 1828 |
+
41,
|
| 1829 |
+
42,
|
| 1830 |
+
48,
|
| 1831 |
+
49,
|
| 1832 |
+
50
|
| 1833 |
+
],
|
| 1834 |
+
"18": [
|
| 1835 |
+
42,
|
| 1836 |
+
43,
|
| 1837 |
+
44,
|
| 1838 |
+
50,
|
| 1839 |
+
51,
|
| 1840 |
+
52
|
| 1841 |
+
],
|
| 1842 |
+
"19": [
|
| 1843 |
+
44,
|
| 1844 |
+
45,
|
| 1845 |
+
46,
|
| 1846 |
+
52,
|
| 1847 |
+
53,
|
| 1848 |
+
54
|
| 1849 |
+
]
|
| 1850 |
+
},
|
| 1851 |
+
"total_points": 54,
|
| 1852 |
+
"total_hexes": 19
|
| 1853 |
+
}
|
| 1854 |
+
}
|
| 1855 |
+
]
|
| 1856 |
+
}
|
examples/ai_testing/my_games/game_20251223_204440_final.json
ADDED
|
@@ -0,0 +1,1850 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"hexes": [
|
| 3 |
+
{
|
| 4 |
+
"id": 1,
|
| 5 |
+
"q": 0,
|
| 6 |
+
"r": -2,
|
| 7 |
+
"type": "wood",
|
| 8 |
+
"number": 12,
|
| 9 |
+
"has_robber": false,
|
| 10 |
+
"position": [
|
| 11 |
+
0,
|
| 12 |
+
0
|
| 13 |
+
],
|
| 14 |
+
"axial_coords": [
|
| 15 |
+
0,
|
| 16 |
+
-2
|
| 17 |
+
]
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"id": 2,
|
| 21 |
+
"q": 1,
|
| 22 |
+
"r": -2,
|
| 23 |
+
"type": "sheep",
|
| 24 |
+
"number": 5,
|
| 25 |
+
"has_robber": false,
|
| 26 |
+
"position": [
|
| 27 |
+
0,
|
| 28 |
+
1
|
| 29 |
+
],
|
| 30 |
+
"axial_coords": [
|
| 31 |
+
1,
|
| 32 |
+
-2
|
| 33 |
+
]
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"id": 3,
|
| 37 |
+
"q": 2,
|
| 38 |
+
"r": -2,
|
| 39 |
+
"type": "wood",
|
| 40 |
+
"number": 4,
|
| 41 |
+
"has_robber": false,
|
| 42 |
+
"position": [
|
| 43 |
+
0,
|
| 44 |
+
2
|
| 45 |
+
],
|
| 46 |
+
"axial_coords": [
|
| 47 |
+
2,
|
| 48 |
+
-2
|
| 49 |
+
]
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"id": 4,
|
| 53 |
+
"q": -1,
|
| 54 |
+
"r": -1,
|
| 55 |
+
"type": "sheep",
|
| 56 |
+
"number": 8,
|
| 57 |
+
"has_robber": false,
|
| 58 |
+
"position": [
|
| 59 |
+
1,
|
| 60 |
+
0
|
| 61 |
+
],
|
| 62 |
+
"axial_coords": [
|
| 63 |
+
-1,
|
| 64 |
+
-1
|
| 65 |
+
]
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"id": 5,
|
| 69 |
+
"q": 0,
|
| 70 |
+
"r": -1,
|
| 71 |
+
"type": "brick",
|
| 72 |
+
"number": 6,
|
| 73 |
+
"has_robber": false,
|
| 74 |
+
"position": [
|
| 75 |
+
1,
|
| 76 |
+
1
|
| 77 |
+
],
|
| 78 |
+
"axial_coords": [
|
| 79 |
+
0,
|
| 80 |
+
-1
|
| 81 |
+
]
|
| 82 |
+
},
|
| 83 |
+
{
|
| 84 |
+
"id": 6,
|
| 85 |
+
"q": 1,
|
| 86 |
+
"r": -1,
|
| 87 |
+
"type": "wood",
|
| 88 |
+
"number": 3,
|
| 89 |
+
"has_robber": false,
|
| 90 |
+
"position": [
|
| 91 |
+
1,
|
| 92 |
+
2
|
| 93 |
+
],
|
| 94 |
+
"axial_coords": [
|
| 95 |
+
1,
|
| 96 |
+
-1
|
| 97 |
+
]
|
| 98 |
+
},
|
| 99 |
+
{
|
| 100 |
+
"id": 7,
|
| 101 |
+
"q": 2,
|
| 102 |
+
"r": -1,
|
| 103 |
+
"type": "wheat",
|
| 104 |
+
"number": 8,
|
| 105 |
+
"has_robber": false,
|
| 106 |
+
"position": [
|
| 107 |
+
1,
|
| 108 |
+
3
|
| 109 |
+
],
|
| 110 |
+
"axial_coords": [
|
| 111 |
+
2,
|
| 112 |
+
-1
|
| 113 |
+
]
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"id": 8,
|
| 117 |
+
"q": -2,
|
| 118 |
+
"r": 0,
|
| 119 |
+
"type": "brick",
|
| 120 |
+
"number": 10,
|
| 121 |
+
"has_robber": false,
|
| 122 |
+
"position": [
|
| 123 |
+
2,
|
| 124 |
+
0
|
| 125 |
+
],
|
| 126 |
+
"axial_coords": [
|
| 127 |
+
-2,
|
| 128 |
+
0
|
| 129 |
+
]
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"id": 9,
|
| 133 |
+
"q": -1,
|
| 134 |
+
"r": 0,
|
| 135 |
+
"type": "wood",
|
| 136 |
+
"number": 11,
|
| 137 |
+
"has_robber": false,
|
| 138 |
+
"position": [
|
| 139 |
+
2,
|
| 140 |
+
1
|
| 141 |
+
],
|
| 142 |
+
"axial_coords": [
|
| 143 |
+
-1,
|
| 144 |
+
0
|
| 145 |
+
]
|
| 146 |
+
},
|
| 147 |
+
{
|
| 148 |
+
"id": 10,
|
| 149 |
+
"q": 0,
|
| 150 |
+
"r": 0,
|
| 151 |
+
"type": "desert",
|
| 152 |
+
"number": null,
|
| 153 |
+
"has_robber": true,
|
| 154 |
+
"position": [
|
| 155 |
+
2,
|
| 156 |
+
2
|
| 157 |
+
],
|
| 158 |
+
"axial_coords": [
|
| 159 |
+
0,
|
| 160 |
+
0
|
| 161 |
+
]
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"id": 11,
|
| 165 |
+
"q": 1,
|
| 166 |
+
"r": 0,
|
| 167 |
+
"type": "ore",
|
| 168 |
+
"number": 3,
|
| 169 |
+
"has_robber": false,
|
| 170 |
+
"position": [
|
| 171 |
+
2,
|
| 172 |
+
3
|
| 173 |
+
],
|
| 174 |
+
"axial_coords": [
|
| 175 |
+
1,
|
| 176 |
+
0
|
| 177 |
+
]
|
| 178 |
+
},
|
| 179 |
+
{
|
| 180 |
+
"id": 12,
|
| 181 |
+
"q": 2,
|
| 182 |
+
"r": 0,
|
| 183 |
+
"type": "sheep",
|
| 184 |
+
"number": 4,
|
| 185 |
+
"has_robber": false,
|
| 186 |
+
"position": [
|
| 187 |
+
2,
|
| 188 |
+
4
|
| 189 |
+
],
|
| 190 |
+
"axial_coords": [
|
| 191 |
+
2,
|
| 192 |
+
0
|
| 193 |
+
]
|
| 194 |
+
},
|
| 195 |
+
{
|
| 196 |
+
"id": 13,
|
| 197 |
+
"q": -2,
|
| 198 |
+
"r": 1,
|
| 199 |
+
"type": "brick",
|
| 200 |
+
"number": 10,
|
| 201 |
+
"has_robber": false,
|
| 202 |
+
"position": [
|
| 203 |
+
3,
|
| 204 |
+
0
|
| 205 |
+
],
|
| 206 |
+
"axial_coords": [
|
| 207 |
+
-2,
|
| 208 |
+
1
|
| 209 |
+
]
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"id": 14,
|
| 213 |
+
"q": -1,
|
| 214 |
+
"r": 1,
|
| 215 |
+
"type": "wheat",
|
| 216 |
+
"number": 9,
|
| 217 |
+
"has_robber": false,
|
| 218 |
+
"position": [
|
| 219 |
+
3,
|
| 220 |
+
1
|
| 221 |
+
],
|
| 222 |
+
"axial_coords": [
|
| 223 |
+
-1,
|
| 224 |
+
1
|
| 225 |
+
]
|
| 226 |
+
},
|
| 227 |
+
{
|
| 228 |
+
"id": 15,
|
| 229 |
+
"q": 0,
|
| 230 |
+
"r": 1,
|
| 231 |
+
"type": "wheat",
|
| 232 |
+
"number": 6,
|
| 233 |
+
"has_robber": false,
|
| 234 |
+
"position": [
|
| 235 |
+
3,
|
| 236 |
+
2
|
| 237 |
+
],
|
| 238 |
+
"axial_coords": [
|
| 239 |
+
0,
|
| 240 |
+
1
|
| 241 |
+
]
|
| 242 |
+
},
|
| 243 |
+
{
|
| 244 |
+
"id": 16,
|
| 245 |
+
"q": 1,
|
| 246 |
+
"r": 1,
|
| 247 |
+
"type": "sheep",
|
| 248 |
+
"number": 11,
|
| 249 |
+
"has_robber": false,
|
| 250 |
+
"position": [
|
| 251 |
+
3,
|
| 252 |
+
3
|
| 253 |
+
],
|
| 254 |
+
"axial_coords": [
|
| 255 |
+
1,
|
| 256 |
+
1
|
| 257 |
+
]
|
| 258 |
+
},
|
| 259 |
+
{
|
| 260 |
+
"id": 17,
|
| 261 |
+
"q": -2,
|
| 262 |
+
"r": 2,
|
| 263 |
+
"type": "ore",
|
| 264 |
+
"number": 5,
|
| 265 |
+
"has_robber": false,
|
| 266 |
+
"position": [
|
| 267 |
+
4,
|
| 268 |
+
0
|
| 269 |
+
],
|
| 270 |
+
"axial_coords": [
|
| 271 |
+
-2,
|
| 272 |
+
2
|
| 273 |
+
]
|
| 274 |
+
},
|
| 275 |
+
{
|
| 276 |
+
"id": 18,
|
| 277 |
+
"q": -1,
|
| 278 |
+
"r": 2,
|
| 279 |
+
"type": "wheat",
|
| 280 |
+
"number": 9,
|
| 281 |
+
"has_robber": false,
|
| 282 |
+
"position": [
|
| 283 |
+
4,
|
| 284 |
+
1
|
| 285 |
+
],
|
| 286 |
+
"axial_coords": [
|
| 287 |
+
-1,
|
| 288 |
+
2
|
| 289 |
+
]
|
| 290 |
+
},
|
| 291 |
+
{
|
| 292 |
+
"id": 19,
|
| 293 |
+
"q": 0,
|
| 294 |
+
"r": 2,
|
| 295 |
+
"type": "ore",
|
| 296 |
+
"number": 2,
|
| 297 |
+
"has_robber": false,
|
| 298 |
+
"position": [
|
| 299 |
+
4,
|
| 300 |
+
2
|
| 301 |
+
],
|
| 302 |
+
"axial_coords": [
|
| 303 |
+
0,
|
| 304 |
+
2
|
| 305 |
+
]
|
| 306 |
+
}
|
| 307 |
+
],
|
| 308 |
+
"settlements": [],
|
| 309 |
+
"cities": [],
|
| 310 |
+
"roads": [],
|
| 311 |
+
"players": [
|
| 312 |
+
{
|
| 313 |
+
"id": 0,
|
| 314 |
+
"name": "a",
|
| 315 |
+
"victory_points": 0,
|
| 316 |
+
"total_cards": 0,
|
| 317 |
+
"cards_list": [],
|
| 318 |
+
"dev_cards_list": [],
|
| 319 |
+
"settlements": 0,
|
| 320 |
+
"cities": 0,
|
| 321 |
+
"roads": 0,
|
| 322 |
+
"longest_road": 0,
|
| 323 |
+
"has_longest_road": false,
|
| 324 |
+
"knights": 0,
|
| 325 |
+
"knights_played": 0,
|
| 326 |
+
"has_largest_army": false
|
| 327 |
+
},
|
| 328 |
+
{
|
| 329 |
+
"id": 1,
|
| 330 |
+
"name": "b",
|
| 331 |
+
"victory_points": 0,
|
| 332 |
+
"total_cards": 0,
|
| 333 |
+
"cards_list": [],
|
| 334 |
+
"dev_cards_list": [],
|
| 335 |
+
"settlements": 0,
|
| 336 |
+
"cities": 0,
|
| 337 |
+
"roads": 0,
|
| 338 |
+
"longest_road": 0,
|
| 339 |
+
"has_longest_road": false,
|
| 340 |
+
"knights": 0,
|
| 341 |
+
"knights_played": 0,
|
| 342 |
+
"has_largest_army": false
|
| 343 |
+
},
|
| 344 |
+
{
|
| 345 |
+
"id": 2,
|
| 346 |
+
"name": "c",
|
| 347 |
+
"victory_points": 0,
|
| 348 |
+
"total_cards": 0,
|
| 349 |
+
"cards_list": [],
|
| 350 |
+
"dev_cards_list": [],
|
| 351 |
+
"settlements": 0,
|
| 352 |
+
"cities": 0,
|
| 353 |
+
"roads": 0,
|
| 354 |
+
"longest_road": 0,
|
| 355 |
+
"has_longest_road": false,
|
| 356 |
+
"knights": 0,
|
| 357 |
+
"knights_played": 0,
|
| 358 |
+
"has_largest_army": false
|
| 359 |
+
}
|
| 360 |
+
],
|
| 361 |
+
"current_player": 0,
|
| 362 |
+
"current_phase": "SETUP_FIRST_ROUND",
|
| 363 |
+
"robber_position": [
|
| 364 |
+
2,
|
| 365 |
+
2
|
| 366 |
+
],
|
| 367 |
+
"dice_result": null,
|
| 368 |
+
"points": [
|
| 369 |
+
{
|
| 370 |
+
"point_id": 1,
|
| 371 |
+
"game_coords": [
|
| 372 |
+
0,
|
| 373 |
+
0
|
| 374 |
+
],
|
| 375 |
+
"adjacent_points": [
|
| 376 |
+
2,
|
| 377 |
+
9
|
| 378 |
+
],
|
| 379 |
+
"adjacent_hexes": [
|
| 380 |
+
1
|
| 381 |
+
],
|
| 382 |
+
"pixel_coords": [
|
| 383 |
+
377.5,
|
| 384 |
+
105.14428414850131
|
| 385 |
+
]
|
| 386 |
+
},
|
| 387 |
+
{
|
| 388 |
+
"point_id": 2,
|
| 389 |
+
"game_coords": [
|
| 390 |
+
0,
|
| 391 |
+
1
|
| 392 |
+
],
|
| 393 |
+
"adjacent_points": [
|
| 394 |
+
1,
|
| 395 |
+
3
|
| 396 |
+
],
|
| 397 |
+
"adjacent_hexes": [
|
| 398 |
+
1
|
| 399 |
+
],
|
| 400 |
+
"pixel_coords": [
|
| 401 |
+
422.5,
|
| 402 |
+
105.14428414850128
|
| 403 |
+
]
|
| 404 |
+
},
|
| 405 |
+
{
|
| 406 |
+
"point_id": 3,
|
| 407 |
+
"game_coords": [
|
| 408 |
+
0,
|
| 409 |
+
2
|
| 410 |
+
],
|
| 411 |
+
"adjacent_points": [
|
| 412 |
+
2,
|
| 413 |
+
4,
|
| 414 |
+
11
|
| 415 |
+
],
|
| 416 |
+
"adjacent_hexes": [
|
| 417 |
+
2,
|
| 418 |
+
1
|
| 419 |
+
],
|
| 420 |
+
"pixel_coords": [
|
| 421 |
+
445,
|
| 422 |
+
144.11542731880104
|
| 423 |
+
]
|
| 424 |
+
},
|
| 425 |
+
{
|
| 426 |
+
"point_id": 4,
|
| 427 |
+
"game_coords": [
|
| 428 |
+
0,
|
| 429 |
+
3
|
| 430 |
+
],
|
| 431 |
+
"adjacent_points": [
|
| 432 |
+
3,
|
| 433 |
+
5
|
| 434 |
+
],
|
| 435 |
+
"adjacent_hexes": [
|
| 436 |
+
2
|
| 437 |
+
],
|
| 438 |
+
"pixel_coords": [
|
| 439 |
+
490,
|
| 440 |
+
144.11542731880104
|
| 441 |
+
]
|
| 442 |
+
},
|
| 443 |
+
{
|
| 444 |
+
"point_id": 5,
|
| 445 |
+
"game_coords": [
|
| 446 |
+
0,
|
| 447 |
+
4
|
| 448 |
+
],
|
| 449 |
+
"adjacent_points": [
|
| 450 |
+
4,
|
| 451 |
+
6,
|
| 452 |
+
13
|
| 453 |
+
],
|
| 454 |
+
"adjacent_hexes": [
|
| 455 |
+
3,
|
| 456 |
+
2
|
| 457 |
+
],
|
| 458 |
+
"pixel_coords": [
|
| 459 |
+
512.5,
|
| 460 |
+
183.08657048910078
|
| 461 |
+
]
|
| 462 |
+
},
|
| 463 |
+
{
|
| 464 |
+
"point_id": 6,
|
| 465 |
+
"game_coords": [
|
| 466 |
+
0,
|
| 467 |
+
5
|
| 468 |
+
],
|
| 469 |
+
"adjacent_points": [
|
| 470 |
+
5,
|
| 471 |
+
7
|
| 472 |
+
],
|
| 473 |
+
"adjacent_hexes": [
|
| 474 |
+
3
|
| 475 |
+
],
|
| 476 |
+
"pixel_coords": [
|
| 477 |
+
557.5,
|
| 478 |
+
183.08657048910078
|
| 479 |
+
]
|
| 480 |
+
},
|
| 481 |
+
{
|
| 482 |
+
"point_id": 7,
|
| 483 |
+
"game_coords": [
|
| 484 |
+
0,
|
| 485 |
+
6
|
| 486 |
+
],
|
| 487 |
+
"adjacent_points": [
|
| 488 |
+
6,
|
| 489 |
+
15
|
| 490 |
+
],
|
| 491 |
+
"adjacent_hexes": [
|
| 492 |
+
3
|
| 493 |
+
],
|
| 494 |
+
"pixel_coords": [
|
| 495 |
+
580,
|
| 496 |
+
222.05771365940052
|
| 497 |
+
]
|
| 498 |
+
},
|
| 499 |
+
{
|
| 500 |
+
"point_id": 8,
|
| 501 |
+
"game_coords": [
|
| 502 |
+
1,
|
| 503 |
+
0
|
| 504 |
+
],
|
| 505 |
+
"adjacent_points": [
|
| 506 |
+
9,
|
| 507 |
+
18
|
| 508 |
+
],
|
| 509 |
+
"adjacent_hexes": [
|
| 510 |
+
4
|
| 511 |
+
],
|
| 512 |
+
"pixel_coords": [
|
| 513 |
+
310,
|
| 514 |
+
144.11542731880104
|
| 515 |
+
]
|
| 516 |
+
},
|
| 517 |
+
{
|
| 518 |
+
"point_id": 9,
|
| 519 |
+
"game_coords": [
|
| 520 |
+
1,
|
| 521 |
+
1
|
| 522 |
+
],
|
| 523 |
+
"adjacent_points": [
|
| 524 |
+
8,
|
| 525 |
+
10,
|
| 526 |
+
1
|
| 527 |
+
],
|
| 528 |
+
"adjacent_hexes": [
|
| 529 |
+
4,
|
| 530 |
+
1
|
| 531 |
+
],
|
| 532 |
+
"pixel_coords": [
|
| 533 |
+
355,
|
| 534 |
+
144.11542731880104
|
| 535 |
+
]
|
| 536 |
+
},
|
| 537 |
+
{
|
| 538 |
+
"point_id": 10,
|
| 539 |
+
"game_coords": [
|
| 540 |
+
1,
|
| 541 |
+
2
|
| 542 |
+
],
|
| 543 |
+
"adjacent_points": [
|
| 544 |
+
9,
|
| 545 |
+
11,
|
| 546 |
+
20
|
| 547 |
+
],
|
| 548 |
+
"adjacent_hexes": [
|
| 549 |
+
5,
|
| 550 |
+
4,
|
| 551 |
+
1
|
| 552 |
+
],
|
| 553 |
+
"pixel_coords": [
|
| 554 |
+
377.5,
|
| 555 |
+
183.08657048910078
|
| 556 |
+
]
|
| 557 |
+
},
|
| 558 |
+
{
|
| 559 |
+
"point_id": 11,
|
| 560 |
+
"game_coords": [
|
| 561 |
+
1,
|
| 562 |
+
3
|
| 563 |
+
],
|
| 564 |
+
"adjacent_points": [
|
| 565 |
+
10,
|
| 566 |
+
12,
|
| 567 |
+
3
|
| 568 |
+
],
|
| 569 |
+
"adjacent_hexes": [
|
| 570 |
+
5,
|
| 571 |
+
2,
|
| 572 |
+
1
|
| 573 |
+
],
|
| 574 |
+
"pixel_coords": [
|
| 575 |
+
422.5,
|
| 576 |
+
183.08657048910078
|
| 577 |
+
]
|
| 578 |
+
},
|
| 579 |
+
{
|
| 580 |
+
"point_id": 12,
|
| 581 |
+
"game_coords": [
|
| 582 |
+
1,
|
| 583 |
+
4
|
| 584 |
+
],
|
| 585 |
+
"adjacent_points": [
|
| 586 |
+
11,
|
| 587 |
+
13,
|
| 588 |
+
22
|
| 589 |
+
],
|
| 590 |
+
"adjacent_hexes": [
|
| 591 |
+
6,
|
| 592 |
+
5,
|
| 593 |
+
2
|
| 594 |
+
],
|
| 595 |
+
"pixel_coords": [
|
| 596 |
+
445,
|
| 597 |
+
222.05771365940052
|
| 598 |
+
]
|
| 599 |
+
},
|
| 600 |
+
{
|
| 601 |
+
"point_id": 13,
|
| 602 |
+
"game_coords": [
|
| 603 |
+
1,
|
| 604 |
+
5
|
| 605 |
+
],
|
| 606 |
+
"adjacent_points": [
|
| 607 |
+
12,
|
| 608 |
+
14,
|
| 609 |
+
5
|
| 610 |
+
],
|
| 611 |
+
"adjacent_hexes": [
|
| 612 |
+
6,
|
| 613 |
+
3,
|
| 614 |
+
2
|
| 615 |
+
],
|
| 616 |
+
"pixel_coords": [
|
| 617 |
+
490,
|
| 618 |
+
222.05771365940052
|
| 619 |
+
]
|
| 620 |
+
},
|
| 621 |
+
{
|
| 622 |
+
"point_id": 14,
|
| 623 |
+
"game_coords": [
|
| 624 |
+
1,
|
| 625 |
+
6
|
| 626 |
+
],
|
| 627 |
+
"adjacent_points": [
|
| 628 |
+
13,
|
| 629 |
+
15,
|
| 630 |
+
24
|
| 631 |
+
],
|
| 632 |
+
"adjacent_hexes": [
|
| 633 |
+
7,
|
| 634 |
+
6,
|
| 635 |
+
3
|
| 636 |
+
],
|
| 637 |
+
"pixel_coords": [
|
| 638 |
+
512.5,
|
| 639 |
+
261.02885682970026
|
| 640 |
+
]
|
| 641 |
+
},
|
| 642 |
+
{
|
| 643 |
+
"point_id": 15,
|
| 644 |
+
"game_coords": [
|
| 645 |
+
1,
|
| 646 |
+
7
|
| 647 |
+
],
|
| 648 |
+
"adjacent_points": [
|
| 649 |
+
14,
|
| 650 |
+
16,
|
| 651 |
+
7
|
| 652 |
+
],
|
| 653 |
+
"adjacent_hexes": [
|
| 654 |
+
7,
|
| 655 |
+
3
|
| 656 |
+
],
|
| 657 |
+
"pixel_coords": [
|
| 658 |
+
557.5,
|
| 659 |
+
261.02885682970026
|
| 660 |
+
]
|
| 661 |
+
},
|
| 662 |
+
{
|
| 663 |
+
"point_id": 16,
|
| 664 |
+
"game_coords": [
|
| 665 |
+
1,
|
| 666 |
+
8
|
| 667 |
+
],
|
| 668 |
+
"adjacent_points": [
|
| 669 |
+
15,
|
| 670 |
+
26
|
| 671 |
+
],
|
| 672 |
+
"adjacent_hexes": [
|
| 673 |
+
7
|
| 674 |
+
],
|
| 675 |
+
"pixel_coords": [
|
| 676 |
+
580,
|
| 677 |
+
300
|
| 678 |
+
]
|
| 679 |
+
},
|
| 680 |
+
{
|
| 681 |
+
"point_id": 17,
|
| 682 |
+
"game_coords": [
|
| 683 |
+
2,
|
| 684 |
+
0
|
| 685 |
+
],
|
| 686 |
+
"adjacent_points": [
|
| 687 |
+
18,
|
| 688 |
+
28
|
| 689 |
+
],
|
| 690 |
+
"adjacent_hexes": [
|
| 691 |
+
8
|
| 692 |
+
],
|
| 693 |
+
"pixel_coords": [
|
| 694 |
+
242.49999999999997,
|
| 695 |
+
183.08657048910078
|
| 696 |
+
]
|
| 697 |
+
},
|
| 698 |
+
{
|
| 699 |
+
"point_id": 18,
|
| 700 |
+
"game_coords": [
|
| 701 |
+
2,
|
| 702 |
+
1
|
| 703 |
+
],
|
| 704 |
+
"adjacent_points": [
|
| 705 |
+
17,
|
| 706 |
+
19,
|
| 707 |
+
8
|
| 708 |
+
],
|
| 709 |
+
"adjacent_hexes": [
|
| 710 |
+
8,
|
| 711 |
+
4
|
| 712 |
+
],
|
| 713 |
+
"pixel_coords": [
|
| 714 |
+
287.5,
|
| 715 |
+
183.08657048910078
|
| 716 |
+
]
|
| 717 |
+
},
|
| 718 |
+
{
|
| 719 |
+
"point_id": 19,
|
| 720 |
+
"game_coords": [
|
| 721 |
+
2,
|
| 722 |
+
2
|
| 723 |
+
],
|
| 724 |
+
"adjacent_points": [
|
| 725 |
+
18,
|
| 726 |
+
20,
|
| 727 |
+
30
|
| 728 |
+
],
|
| 729 |
+
"adjacent_hexes": [
|
| 730 |
+
9,
|
| 731 |
+
8,
|
| 732 |
+
4
|
| 733 |
+
],
|
| 734 |
+
"pixel_coords": [
|
| 735 |
+
310,
|
| 736 |
+
222.05771365940052
|
| 737 |
+
]
|
| 738 |
+
},
|
| 739 |
+
{
|
| 740 |
+
"point_id": 20,
|
| 741 |
+
"game_coords": [
|
| 742 |
+
2,
|
| 743 |
+
3
|
| 744 |
+
],
|
| 745 |
+
"adjacent_points": [
|
| 746 |
+
19,
|
| 747 |
+
21,
|
| 748 |
+
10
|
| 749 |
+
],
|
| 750 |
+
"adjacent_hexes": [
|
| 751 |
+
9,
|
| 752 |
+
5,
|
| 753 |
+
4
|
| 754 |
+
],
|
| 755 |
+
"pixel_coords": [
|
| 756 |
+
355,
|
| 757 |
+
222.05771365940052
|
| 758 |
+
]
|
| 759 |
+
},
|
| 760 |
+
{
|
| 761 |
+
"point_id": 21,
|
| 762 |
+
"game_coords": [
|
| 763 |
+
2,
|
| 764 |
+
4
|
| 765 |
+
],
|
| 766 |
+
"adjacent_points": [
|
| 767 |
+
20,
|
| 768 |
+
22,
|
| 769 |
+
32
|
| 770 |
+
],
|
| 771 |
+
"adjacent_hexes": [
|
| 772 |
+
10,
|
| 773 |
+
9,
|
| 774 |
+
5
|
| 775 |
+
],
|
| 776 |
+
"pixel_coords": [
|
| 777 |
+
377.5,
|
| 778 |
+
261.02885682970026
|
| 779 |
+
]
|
| 780 |
+
},
|
| 781 |
+
{
|
| 782 |
+
"point_id": 22,
|
| 783 |
+
"game_coords": [
|
| 784 |
+
2,
|
| 785 |
+
5
|
| 786 |
+
],
|
| 787 |
+
"adjacent_points": [
|
| 788 |
+
21,
|
| 789 |
+
23,
|
| 790 |
+
12
|
| 791 |
+
],
|
| 792 |
+
"adjacent_hexes": [
|
| 793 |
+
10,
|
| 794 |
+
6,
|
| 795 |
+
5
|
| 796 |
+
],
|
| 797 |
+
"pixel_coords": [
|
| 798 |
+
422.5,
|
| 799 |
+
261.02885682970026
|
| 800 |
+
]
|
| 801 |
+
},
|
| 802 |
+
{
|
| 803 |
+
"point_id": 23,
|
| 804 |
+
"game_coords": [
|
| 805 |
+
2,
|
| 806 |
+
6
|
| 807 |
+
],
|
| 808 |
+
"adjacent_points": [
|
| 809 |
+
22,
|
| 810 |
+
24,
|
| 811 |
+
34
|
| 812 |
+
],
|
| 813 |
+
"adjacent_hexes": [
|
| 814 |
+
11,
|
| 815 |
+
10,
|
| 816 |
+
6
|
| 817 |
+
],
|
| 818 |
+
"pixel_coords": [
|
| 819 |
+
445,
|
| 820 |
+
300
|
| 821 |
+
]
|
| 822 |
+
},
|
| 823 |
+
{
|
| 824 |
+
"point_id": 24,
|
| 825 |
+
"game_coords": [
|
| 826 |
+
2,
|
| 827 |
+
7
|
| 828 |
+
],
|
| 829 |
+
"adjacent_points": [
|
| 830 |
+
23,
|
| 831 |
+
25,
|
| 832 |
+
14
|
| 833 |
+
],
|
| 834 |
+
"adjacent_hexes": [
|
| 835 |
+
11,
|
| 836 |
+
7,
|
| 837 |
+
6
|
| 838 |
+
],
|
| 839 |
+
"pixel_coords": [
|
| 840 |
+
490,
|
| 841 |
+
300
|
| 842 |
+
]
|
| 843 |
+
},
|
| 844 |
+
{
|
| 845 |
+
"point_id": 25,
|
| 846 |
+
"game_coords": [
|
| 847 |
+
2,
|
| 848 |
+
8
|
| 849 |
+
],
|
| 850 |
+
"adjacent_points": [
|
| 851 |
+
24,
|
| 852 |
+
26,
|
| 853 |
+
36
|
| 854 |
+
],
|
| 855 |
+
"adjacent_hexes": [
|
| 856 |
+
12,
|
| 857 |
+
11,
|
| 858 |
+
7
|
| 859 |
+
],
|
| 860 |
+
"pixel_coords": [
|
| 861 |
+
512.5,
|
| 862 |
+
338.97114317029974
|
| 863 |
+
]
|
| 864 |
+
},
|
| 865 |
+
{
|
| 866 |
+
"point_id": 26,
|
| 867 |
+
"game_coords": [
|
| 868 |
+
2,
|
| 869 |
+
9
|
| 870 |
+
],
|
| 871 |
+
"adjacent_points": [
|
| 872 |
+
25,
|
| 873 |
+
27,
|
| 874 |
+
16
|
| 875 |
+
],
|
| 876 |
+
"adjacent_hexes": [
|
| 877 |
+
12,
|
| 878 |
+
7
|
| 879 |
+
],
|
| 880 |
+
"pixel_coords": [
|
| 881 |
+
557.5,
|
| 882 |
+
338.97114317029974
|
| 883 |
+
]
|
| 884 |
+
},
|
| 885 |
+
{
|
| 886 |
+
"point_id": 27,
|
| 887 |
+
"game_coords": [
|
| 888 |
+
2,
|
| 889 |
+
10
|
| 890 |
+
],
|
| 891 |
+
"adjacent_points": [
|
| 892 |
+
26,
|
| 893 |
+
38
|
| 894 |
+
],
|
| 895 |
+
"adjacent_hexes": [
|
| 896 |
+
12
|
| 897 |
+
],
|
| 898 |
+
"pixel_coords": [
|
| 899 |
+
580,
|
| 900 |
+
377.9422863405995
|
| 901 |
+
]
|
| 902 |
+
},
|
| 903 |
+
{
|
| 904 |
+
"point_id": 28,
|
| 905 |
+
"game_coords": [
|
| 906 |
+
3,
|
| 907 |
+
0
|
| 908 |
+
],
|
| 909 |
+
"adjacent_points": [
|
| 910 |
+
29,
|
| 911 |
+
17
|
| 912 |
+
],
|
| 913 |
+
"adjacent_hexes": [
|
| 914 |
+
8
|
| 915 |
+
],
|
| 916 |
+
"pixel_coords": [
|
| 917 |
+
220,
|
| 918 |
+
222.05771365940052
|
| 919 |
+
]
|
| 920 |
+
},
|
| 921 |
+
{
|
| 922 |
+
"point_id": 29,
|
| 923 |
+
"game_coords": [
|
| 924 |
+
3,
|
| 925 |
+
1
|
| 926 |
+
],
|
| 927 |
+
"adjacent_points": [
|
| 928 |
+
28,
|
| 929 |
+
30,
|
| 930 |
+
39
|
| 931 |
+
],
|
| 932 |
+
"adjacent_hexes": [
|
| 933 |
+
13,
|
| 934 |
+
8
|
| 935 |
+
],
|
| 936 |
+
"pixel_coords": [
|
| 937 |
+
242.5,
|
| 938 |
+
261.02885682970026
|
| 939 |
+
]
|
| 940 |
+
},
|
| 941 |
+
{
|
| 942 |
+
"point_id": 30,
|
| 943 |
+
"game_coords": [
|
| 944 |
+
3,
|
| 945 |
+
2
|
| 946 |
+
],
|
| 947 |
+
"adjacent_points": [
|
| 948 |
+
29,
|
| 949 |
+
31,
|
| 950 |
+
19
|
| 951 |
+
],
|
| 952 |
+
"adjacent_hexes": [
|
| 953 |
+
13,
|
| 954 |
+
9,
|
| 955 |
+
8
|
| 956 |
+
],
|
| 957 |
+
"pixel_coords": [
|
| 958 |
+
287.5,
|
| 959 |
+
261.02885682970026
|
| 960 |
+
]
|
| 961 |
+
},
|
| 962 |
+
{
|
| 963 |
+
"point_id": 31,
|
| 964 |
+
"game_coords": [
|
| 965 |
+
3,
|
| 966 |
+
3
|
| 967 |
+
],
|
| 968 |
+
"adjacent_points": [
|
| 969 |
+
30,
|
| 970 |
+
32,
|
| 971 |
+
41
|
| 972 |
+
],
|
| 973 |
+
"adjacent_hexes": [
|
| 974 |
+
14,
|
| 975 |
+
13,
|
| 976 |
+
9
|
| 977 |
+
],
|
| 978 |
+
"pixel_coords": [
|
| 979 |
+
310,
|
| 980 |
+
300
|
| 981 |
+
]
|
| 982 |
+
},
|
| 983 |
+
{
|
| 984 |
+
"point_id": 32,
|
| 985 |
+
"game_coords": [
|
| 986 |
+
3,
|
| 987 |
+
4
|
| 988 |
+
],
|
| 989 |
+
"adjacent_points": [
|
| 990 |
+
31,
|
| 991 |
+
33,
|
| 992 |
+
21
|
| 993 |
+
],
|
| 994 |
+
"adjacent_hexes": [
|
| 995 |
+
14,
|
| 996 |
+
10,
|
| 997 |
+
9
|
| 998 |
+
],
|
| 999 |
+
"pixel_coords": [
|
| 1000 |
+
355,
|
| 1001 |
+
300
|
| 1002 |
+
]
|
| 1003 |
+
},
|
| 1004 |
+
{
|
| 1005 |
+
"point_id": 33,
|
| 1006 |
+
"game_coords": [
|
| 1007 |
+
3,
|
| 1008 |
+
5
|
| 1009 |
+
],
|
| 1010 |
+
"adjacent_points": [
|
| 1011 |
+
32,
|
| 1012 |
+
34,
|
| 1013 |
+
43
|
| 1014 |
+
],
|
| 1015 |
+
"adjacent_hexes": [
|
| 1016 |
+
15,
|
| 1017 |
+
14,
|
| 1018 |
+
10
|
| 1019 |
+
],
|
| 1020 |
+
"pixel_coords": [
|
| 1021 |
+
377.5,
|
| 1022 |
+
338.97114317029974
|
| 1023 |
+
]
|
| 1024 |
+
},
|
| 1025 |
+
{
|
| 1026 |
+
"point_id": 34,
|
| 1027 |
+
"game_coords": [
|
| 1028 |
+
3,
|
| 1029 |
+
6
|
| 1030 |
+
],
|
| 1031 |
+
"adjacent_points": [
|
| 1032 |
+
33,
|
| 1033 |
+
35,
|
| 1034 |
+
23
|
| 1035 |
+
],
|
| 1036 |
+
"adjacent_hexes": [
|
| 1037 |
+
15,
|
| 1038 |
+
11,
|
| 1039 |
+
10
|
| 1040 |
+
],
|
| 1041 |
+
"pixel_coords": [
|
| 1042 |
+
422.5,
|
| 1043 |
+
338.97114317029974
|
| 1044 |
+
]
|
| 1045 |
+
},
|
| 1046 |
+
{
|
| 1047 |
+
"point_id": 35,
|
| 1048 |
+
"game_coords": [
|
| 1049 |
+
3,
|
| 1050 |
+
7
|
| 1051 |
+
],
|
| 1052 |
+
"adjacent_points": [
|
| 1053 |
+
34,
|
| 1054 |
+
36,
|
| 1055 |
+
45
|
| 1056 |
+
],
|
| 1057 |
+
"adjacent_hexes": [
|
| 1058 |
+
16,
|
| 1059 |
+
15,
|
| 1060 |
+
11
|
| 1061 |
+
],
|
| 1062 |
+
"pixel_coords": [
|
| 1063 |
+
445,
|
| 1064 |
+
377.9422863405995
|
| 1065 |
+
]
|
| 1066 |
+
},
|
| 1067 |
+
{
|
| 1068 |
+
"point_id": 36,
|
| 1069 |
+
"game_coords": [
|
| 1070 |
+
3,
|
| 1071 |
+
8
|
| 1072 |
+
],
|
| 1073 |
+
"adjacent_points": [
|
| 1074 |
+
35,
|
| 1075 |
+
37,
|
| 1076 |
+
25
|
| 1077 |
+
],
|
| 1078 |
+
"adjacent_hexes": [
|
| 1079 |
+
16,
|
| 1080 |
+
12,
|
| 1081 |
+
11
|
| 1082 |
+
],
|
| 1083 |
+
"pixel_coords": [
|
| 1084 |
+
490,
|
| 1085 |
+
377.9422863405995
|
| 1086 |
+
]
|
| 1087 |
+
},
|
| 1088 |
+
{
|
| 1089 |
+
"point_id": 37,
|
| 1090 |
+
"game_coords": [
|
| 1091 |
+
3,
|
| 1092 |
+
9
|
| 1093 |
+
],
|
| 1094 |
+
"adjacent_points": [
|
| 1095 |
+
36,
|
| 1096 |
+
38,
|
| 1097 |
+
47
|
| 1098 |
+
],
|
| 1099 |
+
"adjacent_hexes": [
|
| 1100 |
+
16,
|
| 1101 |
+
12
|
| 1102 |
+
],
|
| 1103 |
+
"pixel_coords": [
|
| 1104 |
+
512.5,
|
| 1105 |
+
416.9134295108992
|
| 1106 |
+
]
|
| 1107 |
+
},
|
| 1108 |
+
{
|
| 1109 |
+
"point_id": 38,
|
| 1110 |
+
"game_coords": [
|
| 1111 |
+
3,
|
| 1112 |
+
10
|
| 1113 |
+
],
|
| 1114 |
+
"adjacent_points": [
|
| 1115 |
+
37,
|
| 1116 |
+
27
|
| 1117 |
+
],
|
| 1118 |
+
"adjacent_hexes": [
|
| 1119 |
+
12
|
| 1120 |
+
],
|
| 1121 |
+
"pixel_coords": [
|
| 1122 |
+
557.5,
|
| 1123 |
+
416.9134295108992
|
| 1124 |
+
]
|
| 1125 |
+
},
|
| 1126 |
+
{
|
| 1127 |
+
"point_id": 39,
|
| 1128 |
+
"game_coords": [
|
| 1129 |
+
4,
|
| 1130 |
+
0
|
| 1131 |
+
],
|
| 1132 |
+
"adjacent_points": [
|
| 1133 |
+
40,
|
| 1134 |
+
29
|
| 1135 |
+
],
|
| 1136 |
+
"adjacent_hexes": [
|
| 1137 |
+
13
|
| 1138 |
+
],
|
| 1139 |
+
"pixel_coords": [
|
| 1140 |
+
220,
|
| 1141 |
+
300
|
| 1142 |
+
]
|
| 1143 |
+
},
|
| 1144 |
+
{
|
| 1145 |
+
"point_id": 40,
|
| 1146 |
+
"game_coords": [
|
| 1147 |
+
4,
|
| 1148 |
+
1
|
| 1149 |
+
],
|
| 1150 |
+
"adjacent_points": [
|
| 1151 |
+
39,
|
| 1152 |
+
41,
|
| 1153 |
+
48
|
| 1154 |
+
],
|
| 1155 |
+
"adjacent_hexes": [
|
| 1156 |
+
17,
|
| 1157 |
+
13
|
| 1158 |
+
],
|
| 1159 |
+
"pixel_coords": [
|
| 1160 |
+
242.5,
|
| 1161 |
+
338.97114317029974
|
| 1162 |
+
]
|
| 1163 |
+
},
|
| 1164 |
+
{
|
| 1165 |
+
"point_id": 41,
|
| 1166 |
+
"game_coords": [
|
| 1167 |
+
4,
|
| 1168 |
+
2
|
| 1169 |
+
],
|
| 1170 |
+
"adjacent_points": [
|
| 1171 |
+
40,
|
| 1172 |
+
42,
|
| 1173 |
+
31
|
| 1174 |
+
],
|
| 1175 |
+
"adjacent_hexes": [
|
| 1176 |
+
17,
|
| 1177 |
+
14,
|
| 1178 |
+
13
|
| 1179 |
+
],
|
| 1180 |
+
"pixel_coords": [
|
| 1181 |
+
287.5,
|
| 1182 |
+
338.97114317029974
|
| 1183 |
+
]
|
| 1184 |
+
},
|
| 1185 |
+
{
|
| 1186 |
+
"point_id": 42,
|
| 1187 |
+
"game_coords": [
|
| 1188 |
+
4,
|
| 1189 |
+
3
|
| 1190 |
+
],
|
| 1191 |
+
"adjacent_points": [
|
| 1192 |
+
41,
|
| 1193 |
+
43,
|
| 1194 |
+
50
|
| 1195 |
+
],
|
| 1196 |
+
"adjacent_hexes": [
|
| 1197 |
+
18,
|
| 1198 |
+
17,
|
| 1199 |
+
14
|
| 1200 |
+
],
|
| 1201 |
+
"pixel_coords": [
|
| 1202 |
+
310,
|
| 1203 |
+
377.9422863405995
|
| 1204 |
+
]
|
| 1205 |
+
},
|
| 1206 |
+
{
|
| 1207 |
+
"point_id": 43,
|
| 1208 |
+
"game_coords": [
|
| 1209 |
+
4,
|
| 1210 |
+
4
|
| 1211 |
+
],
|
| 1212 |
+
"adjacent_points": [
|
| 1213 |
+
42,
|
| 1214 |
+
44,
|
| 1215 |
+
33
|
| 1216 |
+
],
|
| 1217 |
+
"adjacent_hexes": [
|
| 1218 |
+
18,
|
| 1219 |
+
15,
|
| 1220 |
+
14
|
| 1221 |
+
],
|
| 1222 |
+
"pixel_coords": [
|
| 1223 |
+
355,
|
| 1224 |
+
377.9422863405995
|
| 1225 |
+
]
|
| 1226 |
+
},
|
| 1227 |
+
{
|
| 1228 |
+
"point_id": 44,
|
| 1229 |
+
"game_coords": [
|
| 1230 |
+
4,
|
| 1231 |
+
5
|
| 1232 |
+
],
|
| 1233 |
+
"adjacent_points": [
|
| 1234 |
+
43,
|
| 1235 |
+
45,
|
| 1236 |
+
52
|
| 1237 |
+
],
|
| 1238 |
+
"adjacent_hexes": [
|
| 1239 |
+
19,
|
| 1240 |
+
18,
|
| 1241 |
+
15
|
| 1242 |
+
],
|
| 1243 |
+
"pixel_coords": [
|
| 1244 |
+
377.5,
|
| 1245 |
+
416.9134295108992
|
| 1246 |
+
]
|
| 1247 |
+
},
|
| 1248 |
+
{
|
| 1249 |
+
"point_id": 45,
|
| 1250 |
+
"game_coords": [
|
| 1251 |
+
4,
|
| 1252 |
+
6
|
| 1253 |
+
],
|
| 1254 |
+
"adjacent_points": [
|
| 1255 |
+
44,
|
| 1256 |
+
46,
|
| 1257 |
+
35
|
| 1258 |
+
],
|
| 1259 |
+
"adjacent_hexes": [
|
| 1260 |
+
19,
|
| 1261 |
+
16,
|
| 1262 |
+
15
|
| 1263 |
+
],
|
| 1264 |
+
"pixel_coords": [
|
| 1265 |
+
422.5,
|
| 1266 |
+
416.9134295108992
|
| 1267 |
+
]
|
| 1268 |
+
},
|
| 1269 |
+
{
|
| 1270 |
+
"point_id": 46,
|
| 1271 |
+
"game_coords": [
|
| 1272 |
+
4,
|
| 1273 |
+
7
|
| 1274 |
+
],
|
| 1275 |
+
"adjacent_points": [
|
| 1276 |
+
45,
|
| 1277 |
+
47,
|
| 1278 |
+
54
|
| 1279 |
+
],
|
| 1280 |
+
"adjacent_hexes": [
|
| 1281 |
+
19,
|
| 1282 |
+
16
|
| 1283 |
+
],
|
| 1284 |
+
"pixel_coords": [
|
| 1285 |
+
445,
|
| 1286 |
+
455.88457268119896
|
| 1287 |
+
]
|
| 1288 |
+
},
|
| 1289 |
+
{
|
| 1290 |
+
"point_id": 47,
|
| 1291 |
+
"game_coords": [
|
| 1292 |
+
4,
|
| 1293 |
+
8
|
| 1294 |
+
],
|
| 1295 |
+
"adjacent_points": [
|
| 1296 |
+
46,
|
| 1297 |
+
37
|
| 1298 |
+
],
|
| 1299 |
+
"adjacent_hexes": [
|
| 1300 |
+
16
|
| 1301 |
+
],
|
| 1302 |
+
"pixel_coords": [
|
| 1303 |
+
490,
|
| 1304 |
+
455.88457268119896
|
| 1305 |
+
]
|
| 1306 |
+
},
|
| 1307 |
+
{
|
| 1308 |
+
"point_id": 48,
|
| 1309 |
+
"game_coords": [
|
| 1310 |
+
5,
|
| 1311 |
+
0
|
| 1312 |
+
],
|
| 1313 |
+
"adjacent_points": [
|
| 1314 |
+
49,
|
| 1315 |
+
40
|
| 1316 |
+
],
|
| 1317 |
+
"adjacent_hexes": [
|
| 1318 |
+
17
|
| 1319 |
+
],
|
| 1320 |
+
"pixel_coords": [
|
| 1321 |
+
220,
|
| 1322 |
+
377.9422863405995
|
| 1323 |
+
]
|
| 1324 |
+
},
|
| 1325 |
+
{
|
| 1326 |
+
"point_id": 49,
|
| 1327 |
+
"game_coords": [
|
| 1328 |
+
5,
|
| 1329 |
+
1
|
| 1330 |
+
],
|
| 1331 |
+
"adjacent_points": [
|
| 1332 |
+
48,
|
| 1333 |
+
50
|
| 1334 |
+
],
|
| 1335 |
+
"adjacent_hexes": [
|
| 1336 |
+
17
|
| 1337 |
+
],
|
| 1338 |
+
"pixel_coords": [
|
| 1339 |
+
242.5,
|
| 1340 |
+
416.9134295108992
|
| 1341 |
+
]
|
| 1342 |
+
},
|
| 1343 |
+
{
|
| 1344 |
+
"point_id": 50,
|
| 1345 |
+
"game_coords": [
|
| 1346 |
+
5,
|
| 1347 |
+
2
|
| 1348 |
+
],
|
| 1349 |
+
"adjacent_points": [
|
| 1350 |
+
49,
|
| 1351 |
+
51,
|
| 1352 |
+
42
|
| 1353 |
+
],
|
| 1354 |
+
"adjacent_hexes": [
|
| 1355 |
+
18,
|
| 1356 |
+
17
|
| 1357 |
+
],
|
| 1358 |
+
"pixel_coords": [
|
| 1359 |
+
287.5,
|
| 1360 |
+
416.9134295108992
|
| 1361 |
+
]
|
| 1362 |
+
},
|
| 1363 |
+
{
|
| 1364 |
+
"point_id": 51,
|
| 1365 |
+
"game_coords": [
|
| 1366 |
+
5,
|
| 1367 |
+
3
|
| 1368 |
+
],
|
| 1369 |
+
"adjacent_points": [
|
| 1370 |
+
50,
|
| 1371 |
+
52
|
| 1372 |
+
],
|
| 1373 |
+
"adjacent_hexes": [
|
| 1374 |
+
18
|
| 1375 |
+
],
|
| 1376 |
+
"pixel_coords": [
|
| 1377 |
+
310,
|
| 1378 |
+
455.88457268119896
|
| 1379 |
+
]
|
| 1380 |
+
},
|
| 1381 |
+
{
|
| 1382 |
+
"point_id": 52,
|
| 1383 |
+
"game_coords": [
|
| 1384 |
+
5,
|
| 1385 |
+
4
|
| 1386 |
+
],
|
| 1387 |
+
"adjacent_points": [
|
| 1388 |
+
51,
|
| 1389 |
+
53,
|
| 1390 |
+
44
|
| 1391 |
+
],
|
| 1392 |
+
"adjacent_hexes": [
|
| 1393 |
+
19,
|
| 1394 |
+
18
|
| 1395 |
+
],
|
| 1396 |
+
"pixel_coords": [
|
| 1397 |
+
355,
|
| 1398 |
+
455.88457268119896
|
| 1399 |
+
]
|
| 1400 |
+
},
|
| 1401 |
+
{
|
| 1402 |
+
"point_id": 53,
|
| 1403 |
+
"game_coords": [
|
| 1404 |
+
5,
|
| 1405 |
+
5
|
| 1406 |
+
],
|
| 1407 |
+
"adjacent_points": [
|
| 1408 |
+
52,
|
| 1409 |
+
54
|
| 1410 |
+
],
|
| 1411 |
+
"adjacent_hexes": [
|
| 1412 |
+
19
|
| 1413 |
+
],
|
| 1414 |
+
"pixel_coords": [
|
| 1415 |
+
377.5,
|
| 1416 |
+
494.8557158514987
|
| 1417 |
+
]
|
| 1418 |
+
},
|
| 1419 |
+
{
|
| 1420 |
+
"point_id": 54,
|
| 1421 |
+
"game_coords": [
|
| 1422 |
+
5,
|
| 1423 |
+
6
|
| 1424 |
+
],
|
| 1425 |
+
"adjacent_points": [
|
| 1426 |
+
53,
|
| 1427 |
+
46
|
| 1428 |
+
],
|
| 1429 |
+
"adjacent_hexes": [
|
| 1430 |
+
19
|
| 1431 |
+
],
|
| 1432 |
+
"pixel_coords": [
|
| 1433 |
+
422.5,
|
| 1434 |
+
494.8557158514987
|
| 1435 |
+
]
|
| 1436 |
+
}
|
| 1437 |
+
],
|
| 1438 |
+
"board_graph": {
|
| 1439 |
+
"adjacency": {
|
| 1440 |
+
"1": [
|
| 1441 |
+
2,
|
| 1442 |
+
9
|
| 1443 |
+
],
|
| 1444 |
+
"2": [
|
| 1445 |
+
1,
|
| 1446 |
+
3
|
| 1447 |
+
],
|
| 1448 |
+
"3": [
|
| 1449 |
+
2,
|
| 1450 |
+
4,
|
| 1451 |
+
11
|
| 1452 |
+
],
|
| 1453 |
+
"4": [
|
| 1454 |
+
3,
|
| 1455 |
+
5
|
| 1456 |
+
],
|
| 1457 |
+
"5": [
|
| 1458 |
+
4,
|
| 1459 |
+
6,
|
| 1460 |
+
13
|
| 1461 |
+
],
|
| 1462 |
+
"6": [
|
| 1463 |
+
5,
|
| 1464 |
+
7
|
| 1465 |
+
],
|
| 1466 |
+
"7": [
|
| 1467 |
+
6,
|
| 1468 |
+
15
|
| 1469 |
+
],
|
| 1470 |
+
"8": [
|
| 1471 |
+
9,
|
| 1472 |
+
18
|
| 1473 |
+
],
|
| 1474 |
+
"9": [
|
| 1475 |
+
8,
|
| 1476 |
+
10,
|
| 1477 |
+
1
|
| 1478 |
+
],
|
| 1479 |
+
"10": [
|
| 1480 |
+
9,
|
| 1481 |
+
11,
|
| 1482 |
+
20
|
| 1483 |
+
],
|
| 1484 |
+
"11": [
|
| 1485 |
+
10,
|
| 1486 |
+
12,
|
| 1487 |
+
3
|
| 1488 |
+
],
|
| 1489 |
+
"12": [
|
| 1490 |
+
11,
|
| 1491 |
+
13,
|
| 1492 |
+
22
|
| 1493 |
+
],
|
| 1494 |
+
"13": [
|
| 1495 |
+
12,
|
| 1496 |
+
14,
|
| 1497 |
+
5
|
| 1498 |
+
],
|
| 1499 |
+
"14": [
|
| 1500 |
+
13,
|
| 1501 |
+
15,
|
| 1502 |
+
24
|
| 1503 |
+
],
|
| 1504 |
+
"15": [
|
| 1505 |
+
14,
|
| 1506 |
+
16,
|
| 1507 |
+
7
|
| 1508 |
+
],
|
| 1509 |
+
"16": [
|
| 1510 |
+
15,
|
| 1511 |
+
26
|
| 1512 |
+
],
|
| 1513 |
+
"17": [
|
| 1514 |
+
18,
|
| 1515 |
+
28
|
| 1516 |
+
],
|
| 1517 |
+
"18": [
|
| 1518 |
+
17,
|
| 1519 |
+
19,
|
| 1520 |
+
8
|
| 1521 |
+
],
|
| 1522 |
+
"19": [
|
| 1523 |
+
18,
|
| 1524 |
+
20,
|
| 1525 |
+
30
|
| 1526 |
+
],
|
| 1527 |
+
"20": [
|
| 1528 |
+
19,
|
| 1529 |
+
21,
|
| 1530 |
+
10
|
| 1531 |
+
],
|
| 1532 |
+
"21": [
|
| 1533 |
+
20,
|
| 1534 |
+
22,
|
| 1535 |
+
32
|
| 1536 |
+
],
|
| 1537 |
+
"22": [
|
| 1538 |
+
21,
|
| 1539 |
+
23,
|
| 1540 |
+
12
|
| 1541 |
+
],
|
| 1542 |
+
"23": [
|
| 1543 |
+
22,
|
| 1544 |
+
24,
|
| 1545 |
+
34
|
| 1546 |
+
],
|
| 1547 |
+
"24": [
|
| 1548 |
+
23,
|
| 1549 |
+
25,
|
| 1550 |
+
14
|
| 1551 |
+
],
|
| 1552 |
+
"25": [
|
| 1553 |
+
24,
|
| 1554 |
+
26,
|
| 1555 |
+
36
|
| 1556 |
+
],
|
| 1557 |
+
"26": [
|
| 1558 |
+
25,
|
| 1559 |
+
27,
|
| 1560 |
+
16
|
| 1561 |
+
],
|
| 1562 |
+
"27": [
|
| 1563 |
+
26,
|
| 1564 |
+
38
|
| 1565 |
+
],
|
| 1566 |
+
"28": [
|
| 1567 |
+
29,
|
| 1568 |
+
17
|
| 1569 |
+
],
|
| 1570 |
+
"29": [
|
| 1571 |
+
28,
|
| 1572 |
+
30,
|
| 1573 |
+
39
|
| 1574 |
+
],
|
| 1575 |
+
"30": [
|
| 1576 |
+
29,
|
| 1577 |
+
31,
|
| 1578 |
+
19
|
| 1579 |
+
],
|
| 1580 |
+
"31": [
|
| 1581 |
+
30,
|
| 1582 |
+
32,
|
| 1583 |
+
41
|
| 1584 |
+
],
|
| 1585 |
+
"32": [
|
| 1586 |
+
31,
|
| 1587 |
+
33,
|
| 1588 |
+
21
|
| 1589 |
+
],
|
| 1590 |
+
"33": [
|
| 1591 |
+
32,
|
| 1592 |
+
34,
|
| 1593 |
+
43
|
| 1594 |
+
],
|
| 1595 |
+
"34": [
|
| 1596 |
+
33,
|
| 1597 |
+
35,
|
| 1598 |
+
23
|
| 1599 |
+
],
|
| 1600 |
+
"35": [
|
| 1601 |
+
34,
|
| 1602 |
+
36,
|
| 1603 |
+
45
|
| 1604 |
+
],
|
| 1605 |
+
"36": [
|
| 1606 |
+
35,
|
| 1607 |
+
37,
|
| 1608 |
+
25
|
| 1609 |
+
],
|
| 1610 |
+
"37": [
|
| 1611 |
+
36,
|
| 1612 |
+
38,
|
| 1613 |
+
47
|
| 1614 |
+
],
|
| 1615 |
+
"38": [
|
| 1616 |
+
37,
|
| 1617 |
+
27
|
| 1618 |
+
],
|
| 1619 |
+
"39": [
|
| 1620 |
+
40,
|
| 1621 |
+
29
|
| 1622 |
+
],
|
| 1623 |
+
"40": [
|
| 1624 |
+
39,
|
| 1625 |
+
41,
|
| 1626 |
+
48
|
| 1627 |
+
],
|
| 1628 |
+
"41": [
|
| 1629 |
+
40,
|
| 1630 |
+
42,
|
| 1631 |
+
31
|
| 1632 |
+
],
|
| 1633 |
+
"42": [
|
| 1634 |
+
41,
|
| 1635 |
+
43,
|
| 1636 |
+
50
|
| 1637 |
+
],
|
| 1638 |
+
"43": [
|
| 1639 |
+
42,
|
| 1640 |
+
44,
|
| 1641 |
+
33
|
| 1642 |
+
],
|
| 1643 |
+
"44": [
|
| 1644 |
+
43,
|
| 1645 |
+
45,
|
| 1646 |
+
52
|
| 1647 |
+
],
|
| 1648 |
+
"45": [
|
| 1649 |
+
44,
|
| 1650 |
+
46,
|
| 1651 |
+
35
|
| 1652 |
+
],
|
| 1653 |
+
"46": [
|
| 1654 |
+
45,
|
| 1655 |
+
47,
|
| 1656 |
+
54
|
| 1657 |
+
],
|
| 1658 |
+
"47": [
|
| 1659 |
+
46,
|
| 1660 |
+
37
|
| 1661 |
+
],
|
| 1662 |
+
"48": [
|
| 1663 |
+
49,
|
| 1664 |
+
40
|
| 1665 |
+
],
|
| 1666 |
+
"49": [
|
| 1667 |
+
48,
|
| 1668 |
+
50
|
| 1669 |
+
],
|
| 1670 |
+
"50": [
|
| 1671 |
+
49,
|
| 1672 |
+
51,
|
| 1673 |
+
42
|
| 1674 |
+
],
|
| 1675 |
+
"51": [
|
| 1676 |
+
50,
|
| 1677 |
+
52
|
| 1678 |
+
],
|
| 1679 |
+
"52": [
|
| 1680 |
+
51,
|
| 1681 |
+
53,
|
| 1682 |
+
44
|
| 1683 |
+
],
|
| 1684 |
+
"53": [
|
| 1685 |
+
52,
|
| 1686 |
+
54
|
| 1687 |
+
],
|
| 1688 |
+
"54": [
|
| 1689 |
+
53,
|
| 1690 |
+
46
|
| 1691 |
+
]
|
| 1692 |
+
},
|
| 1693 |
+
"hex_to_points": {
|
| 1694 |
+
"1": [
|
| 1695 |
+
1,
|
| 1696 |
+
2,
|
| 1697 |
+
3,
|
| 1698 |
+
9,
|
| 1699 |
+
10,
|
| 1700 |
+
11
|
| 1701 |
+
],
|
| 1702 |
+
"2": [
|
| 1703 |
+
3,
|
| 1704 |
+
4,
|
| 1705 |
+
5,
|
| 1706 |
+
11,
|
| 1707 |
+
12,
|
| 1708 |
+
13
|
| 1709 |
+
],
|
| 1710 |
+
"3": [
|
| 1711 |
+
5,
|
| 1712 |
+
6,
|
| 1713 |
+
7,
|
| 1714 |
+
13,
|
| 1715 |
+
14,
|
| 1716 |
+
15
|
| 1717 |
+
],
|
| 1718 |
+
"4": [
|
| 1719 |
+
8,
|
| 1720 |
+
9,
|
| 1721 |
+
10,
|
| 1722 |
+
18,
|
| 1723 |
+
19,
|
| 1724 |
+
20
|
| 1725 |
+
],
|
| 1726 |
+
"5": [
|
| 1727 |
+
10,
|
| 1728 |
+
11,
|
| 1729 |
+
12,
|
| 1730 |
+
20,
|
| 1731 |
+
21,
|
| 1732 |
+
22
|
| 1733 |
+
],
|
| 1734 |
+
"6": [
|
| 1735 |
+
12,
|
| 1736 |
+
13,
|
| 1737 |
+
14,
|
| 1738 |
+
22,
|
| 1739 |
+
23,
|
| 1740 |
+
24
|
| 1741 |
+
],
|
| 1742 |
+
"7": [
|
| 1743 |
+
14,
|
| 1744 |
+
15,
|
| 1745 |
+
16,
|
| 1746 |
+
24,
|
| 1747 |
+
25,
|
| 1748 |
+
26
|
| 1749 |
+
],
|
| 1750 |
+
"8": [
|
| 1751 |
+
17,
|
| 1752 |
+
18,
|
| 1753 |
+
19,
|
| 1754 |
+
28,
|
| 1755 |
+
29,
|
| 1756 |
+
30
|
| 1757 |
+
],
|
| 1758 |
+
"9": [
|
| 1759 |
+
19,
|
| 1760 |
+
20,
|
| 1761 |
+
21,
|
| 1762 |
+
30,
|
| 1763 |
+
31,
|
| 1764 |
+
32
|
| 1765 |
+
],
|
| 1766 |
+
"10": [
|
| 1767 |
+
21,
|
| 1768 |
+
22,
|
| 1769 |
+
23,
|
| 1770 |
+
32,
|
| 1771 |
+
33,
|
| 1772 |
+
34
|
| 1773 |
+
],
|
| 1774 |
+
"11": [
|
| 1775 |
+
23,
|
| 1776 |
+
24,
|
| 1777 |
+
25,
|
| 1778 |
+
34,
|
| 1779 |
+
35,
|
| 1780 |
+
36
|
| 1781 |
+
],
|
| 1782 |
+
"12": [
|
| 1783 |
+
25,
|
| 1784 |
+
26,
|
| 1785 |
+
27,
|
| 1786 |
+
36,
|
| 1787 |
+
37,
|
| 1788 |
+
38
|
| 1789 |
+
],
|
| 1790 |
+
"13": [
|
| 1791 |
+
29,
|
| 1792 |
+
30,
|
| 1793 |
+
31,
|
| 1794 |
+
39,
|
| 1795 |
+
40,
|
| 1796 |
+
41
|
| 1797 |
+
],
|
| 1798 |
+
"14": [
|
| 1799 |
+
31,
|
| 1800 |
+
32,
|
| 1801 |
+
33,
|
| 1802 |
+
41,
|
| 1803 |
+
42,
|
| 1804 |
+
43
|
| 1805 |
+
],
|
| 1806 |
+
"15": [
|
| 1807 |
+
33,
|
| 1808 |
+
34,
|
| 1809 |
+
35,
|
| 1810 |
+
43,
|
| 1811 |
+
44,
|
| 1812 |
+
45
|
| 1813 |
+
],
|
| 1814 |
+
"16": [
|
| 1815 |
+
35,
|
| 1816 |
+
36,
|
| 1817 |
+
37,
|
| 1818 |
+
45,
|
| 1819 |
+
46,
|
| 1820 |
+
47
|
| 1821 |
+
],
|
| 1822 |
+
"17": [
|
| 1823 |
+
40,
|
| 1824 |
+
41,
|
| 1825 |
+
42,
|
| 1826 |
+
48,
|
| 1827 |
+
49,
|
| 1828 |
+
50
|
| 1829 |
+
],
|
| 1830 |
+
"18": [
|
| 1831 |
+
42,
|
| 1832 |
+
43,
|
| 1833 |
+
44,
|
| 1834 |
+
50,
|
| 1835 |
+
51,
|
| 1836 |
+
52
|
| 1837 |
+
],
|
| 1838 |
+
"19": [
|
| 1839 |
+
44,
|
| 1840 |
+
45,
|
| 1841 |
+
46,
|
| 1842 |
+
52,
|
| 1843 |
+
53,
|
| 1844 |
+
54
|
| 1845 |
+
]
|
| 1846 |
+
},
|
| 1847 |
+
"total_points": 54,
|
| 1848 |
+
"total_hexes": 19
|
| 1849 |
+
}
|
| 1850 |
+
}
|
examples/ai_testing/my_games/game_20251223_204440_full.json
ADDED
|
@@ -0,0 +1,1856 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"total_states": 1,
|
| 3 |
+
"timestamp": "20251223_204440",
|
| 4 |
+
"states": [
|
| 5 |
+
{
|
| 6 |
+
"hexes": [
|
| 7 |
+
{
|
| 8 |
+
"id": 1,
|
| 9 |
+
"q": 0,
|
| 10 |
+
"r": -2,
|
| 11 |
+
"type": "wood",
|
| 12 |
+
"number": 12,
|
| 13 |
+
"has_robber": false,
|
| 14 |
+
"position": [
|
| 15 |
+
0,
|
| 16 |
+
0
|
| 17 |
+
],
|
| 18 |
+
"axial_coords": [
|
| 19 |
+
0,
|
| 20 |
+
-2
|
| 21 |
+
]
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"id": 2,
|
| 25 |
+
"q": 1,
|
| 26 |
+
"r": -2,
|
| 27 |
+
"type": "sheep",
|
| 28 |
+
"number": 5,
|
| 29 |
+
"has_robber": false,
|
| 30 |
+
"position": [
|
| 31 |
+
0,
|
| 32 |
+
1
|
| 33 |
+
],
|
| 34 |
+
"axial_coords": [
|
| 35 |
+
1,
|
| 36 |
+
-2
|
| 37 |
+
]
|
| 38 |
+
},
|
| 39 |
+
{
|
| 40 |
+
"id": 3,
|
| 41 |
+
"q": 2,
|
| 42 |
+
"r": -2,
|
| 43 |
+
"type": "wood",
|
| 44 |
+
"number": 4,
|
| 45 |
+
"has_robber": false,
|
| 46 |
+
"position": [
|
| 47 |
+
0,
|
| 48 |
+
2
|
| 49 |
+
],
|
| 50 |
+
"axial_coords": [
|
| 51 |
+
2,
|
| 52 |
+
-2
|
| 53 |
+
]
|
| 54 |
+
},
|
| 55 |
+
{
|
| 56 |
+
"id": 4,
|
| 57 |
+
"q": -1,
|
| 58 |
+
"r": -1,
|
| 59 |
+
"type": "sheep",
|
| 60 |
+
"number": 8,
|
| 61 |
+
"has_robber": false,
|
| 62 |
+
"position": [
|
| 63 |
+
1,
|
| 64 |
+
0
|
| 65 |
+
],
|
| 66 |
+
"axial_coords": [
|
| 67 |
+
-1,
|
| 68 |
+
-1
|
| 69 |
+
]
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"id": 5,
|
| 73 |
+
"q": 0,
|
| 74 |
+
"r": -1,
|
| 75 |
+
"type": "brick",
|
| 76 |
+
"number": 6,
|
| 77 |
+
"has_robber": false,
|
| 78 |
+
"position": [
|
| 79 |
+
1,
|
| 80 |
+
1
|
| 81 |
+
],
|
| 82 |
+
"axial_coords": [
|
| 83 |
+
0,
|
| 84 |
+
-1
|
| 85 |
+
]
|
| 86 |
+
},
|
| 87 |
+
{
|
| 88 |
+
"id": 6,
|
| 89 |
+
"q": 1,
|
| 90 |
+
"r": -1,
|
| 91 |
+
"type": "wood",
|
| 92 |
+
"number": 3,
|
| 93 |
+
"has_robber": false,
|
| 94 |
+
"position": [
|
| 95 |
+
1,
|
| 96 |
+
2
|
| 97 |
+
],
|
| 98 |
+
"axial_coords": [
|
| 99 |
+
1,
|
| 100 |
+
-1
|
| 101 |
+
]
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"id": 7,
|
| 105 |
+
"q": 2,
|
| 106 |
+
"r": -1,
|
| 107 |
+
"type": "wheat",
|
| 108 |
+
"number": 8,
|
| 109 |
+
"has_robber": false,
|
| 110 |
+
"position": [
|
| 111 |
+
1,
|
| 112 |
+
3
|
| 113 |
+
],
|
| 114 |
+
"axial_coords": [
|
| 115 |
+
2,
|
| 116 |
+
-1
|
| 117 |
+
]
|
| 118 |
+
},
|
| 119 |
+
{
|
| 120 |
+
"id": 8,
|
| 121 |
+
"q": -2,
|
| 122 |
+
"r": 0,
|
| 123 |
+
"type": "brick",
|
| 124 |
+
"number": 10,
|
| 125 |
+
"has_robber": false,
|
| 126 |
+
"position": [
|
| 127 |
+
2,
|
| 128 |
+
0
|
| 129 |
+
],
|
| 130 |
+
"axial_coords": [
|
| 131 |
+
-2,
|
| 132 |
+
0
|
| 133 |
+
]
|
| 134 |
+
},
|
| 135 |
+
{
|
| 136 |
+
"id": 9,
|
| 137 |
+
"q": -1,
|
| 138 |
+
"r": 0,
|
| 139 |
+
"type": "wood",
|
| 140 |
+
"number": 11,
|
| 141 |
+
"has_robber": false,
|
| 142 |
+
"position": [
|
| 143 |
+
2,
|
| 144 |
+
1
|
| 145 |
+
],
|
| 146 |
+
"axial_coords": [
|
| 147 |
+
-1,
|
| 148 |
+
0
|
| 149 |
+
]
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"id": 10,
|
| 153 |
+
"q": 0,
|
| 154 |
+
"r": 0,
|
| 155 |
+
"type": "desert",
|
| 156 |
+
"number": null,
|
| 157 |
+
"has_robber": true,
|
| 158 |
+
"position": [
|
| 159 |
+
2,
|
| 160 |
+
2
|
| 161 |
+
],
|
| 162 |
+
"axial_coords": [
|
| 163 |
+
0,
|
| 164 |
+
0
|
| 165 |
+
]
|
| 166 |
+
},
|
| 167 |
+
{
|
| 168 |
+
"id": 11,
|
| 169 |
+
"q": 1,
|
| 170 |
+
"r": 0,
|
| 171 |
+
"type": "ore",
|
| 172 |
+
"number": 3,
|
| 173 |
+
"has_robber": false,
|
| 174 |
+
"position": [
|
| 175 |
+
2,
|
| 176 |
+
3
|
| 177 |
+
],
|
| 178 |
+
"axial_coords": [
|
| 179 |
+
1,
|
| 180 |
+
0
|
| 181 |
+
]
|
| 182 |
+
},
|
| 183 |
+
{
|
| 184 |
+
"id": 12,
|
| 185 |
+
"q": 2,
|
| 186 |
+
"r": 0,
|
| 187 |
+
"type": "sheep",
|
| 188 |
+
"number": 4,
|
| 189 |
+
"has_robber": false,
|
| 190 |
+
"position": [
|
| 191 |
+
2,
|
| 192 |
+
4
|
| 193 |
+
],
|
| 194 |
+
"axial_coords": [
|
| 195 |
+
2,
|
| 196 |
+
0
|
| 197 |
+
]
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"id": 13,
|
| 201 |
+
"q": -2,
|
| 202 |
+
"r": 1,
|
| 203 |
+
"type": "brick",
|
| 204 |
+
"number": 10,
|
| 205 |
+
"has_robber": false,
|
| 206 |
+
"position": [
|
| 207 |
+
3,
|
| 208 |
+
0
|
| 209 |
+
],
|
| 210 |
+
"axial_coords": [
|
| 211 |
+
-2,
|
| 212 |
+
1
|
| 213 |
+
]
|
| 214 |
+
},
|
| 215 |
+
{
|
| 216 |
+
"id": 14,
|
| 217 |
+
"q": -1,
|
| 218 |
+
"r": 1,
|
| 219 |
+
"type": "wheat",
|
| 220 |
+
"number": 9,
|
| 221 |
+
"has_robber": false,
|
| 222 |
+
"position": [
|
| 223 |
+
3,
|
| 224 |
+
1
|
| 225 |
+
],
|
| 226 |
+
"axial_coords": [
|
| 227 |
+
-1,
|
| 228 |
+
1
|
| 229 |
+
]
|
| 230 |
+
},
|
| 231 |
+
{
|
| 232 |
+
"id": 15,
|
| 233 |
+
"q": 0,
|
| 234 |
+
"r": 1,
|
| 235 |
+
"type": "wheat",
|
| 236 |
+
"number": 6,
|
| 237 |
+
"has_robber": false,
|
| 238 |
+
"position": [
|
| 239 |
+
3,
|
| 240 |
+
2
|
| 241 |
+
],
|
| 242 |
+
"axial_coords": [
|
| 243 |
+
0,
|
| 244 |
+
1
|
| 245 |
+
]
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"id": 16,
|
| 249 |
+
"q": 1,
|
| 250 |
+
"r": 1,
|
| 251 |
+
"type": "sheep",
|
| 252 |
+
"number": 11,
|
| 253 |
+
"has_robber": false,
|
| 254 |
+
"position": [
|
| 255 |
+
3,
|
| 256 |
+
3
|
| 257 |
+
],
|
| 258 |
+
"axial_coords": [
|
| 259 |
+
1,
|
| 260 |
+
1
|
| 261 |
+
]
|
| 262 |
+
},
|
| 263 |
+
{
|
| 264 |
+
"id": 17,
|
| 265 |
+
"q": -2,
|
| 266 |
+
"r": 2,
|
| 267 |
+
"type": "ore",
|
| 268 |
+
"number": 5,
|
| 269 |
+
"has_robber": false,
|
| 270 |
+
"position": [
|
| 271 |
+
4,
|
| 272 |
+
0
|
| 273 |
+
],
|
| 274 |
+
"axial_coords": [
|
| 275 |
+
-2,
|
| 276 |
+
2
|
| 277 |
+
]
|
| 278 |
+
},
|
| 279 |
+
{
|
| 280 |
+
"id": 18,
|
| 281 |
+
"q": -1,
|
| 282 |
+
"r": 2,
|
| 283 |
+
"type": "wheat",
|
| 284 |
+
"number": 9,
|
| 285 |
+
"has_robber": false,
|
| 286 |
+
"position": [
|
| 287 |
+
4,
|
| 288 |
+
1
|
| 289 |
+
],
|
| 290 |
+
"axial_coords": [
|
| 291 |
+
-1,
|
| 292 |
+
2
|
| 293 |
+
]
|
| 294 |
+
},
|
| 295 |
+
{
|
| 296 |
+
"id": 19,
|
| 297 |
+
"q": 0,
|
| 298 |
+
"r": 2,
|
| 299 |
+
"type": "ore",
|
| 300 |
+
"number": 2,
|
| 301 |
+
"has_robber": false,
|
| 302 |
+
"position": [
|
| 303 |
+
4,
|
| 304 |
+
2
|
| 305 |
+
],
|
| 306 |
+
"axial_coords": [
|
| 307 |
+
0,
|
| 308 |
+
2
|
| 309 |
+
]
|
| 310 |
+
}
|
| 311 |
+
],
|
| 312 |
+
"settlements": [],
|
| 313 |
+
"cities": [],
|
| 314 |
+
"roads": [],
|
| 315 |
+
"players": [
|
| 316 |
+
{
|
| 317 |
+
"id": 0,
|
| 318 |
+
"name": "a",
|
| 319 |
+
"victory_points": 0,
|
| 320 |
+
"total_cards": 0,
|
| 321 |
+
"cards_list": [],
|
| 322 |
+
"dev_cards_list": [],
|
| 323 |
+
"settlements": 0,
|
| 324 |
+
"cities": 0,
|
| 325 |
+
"roads": 0,
|
| 326 |
+
"longest_road": 0,
|
| 327 |
+
"has_longest_road": false,
|
| 328 |
+
"knights": 0,
|
| 329 |
+
"knights_played": 0,
|
| 330 |
+
"has_largest_army": false
|
| 331 |
+
},
|
| 332 |
+
{
|
| 333 |
+
"id": 1,
|
| 334 |
+
"name": "b",
|
| 335 |
+
"victory_points": 0,
|
| 336 |
+
"total_cards": 0,
|
| 337 |
+
"cards_list": [],
|
| 338 |
+
"dev_cards_list": [],
|
| 339 |
+
"settlements": 0,
|
| 340 |
+
"cities": 0,
|
| 341 |
+
"roads": 0,
|
| 342 |
+
"longest_road": 0,
|
| 343 |
+
"has_longest_road": false,
|
| 344 |
+
"knights": 0,
|
| 345 |
+
"knights_played": 0,
|
| 346 |
+
"has_largest_army": false
|
| 347 |
+
},
|
| 348 |
+
{
|
| 349 |
+
"id": 2,
|
| 350 |
+
"name": "c",
|
| 351 |
+
"victory_points": 0,
|
| 352 |
+
"total_cards": 0,
|
| 353 |
+
"cards_list": [],
|
| 354 |
+
"dev_cards_list": [],
|
| 355 |
+
"settlements": 0,
|
| 356 |
+
"cities": 0,
|
| 357 |
+
"roads": 0,
|
| 358 |
+
"longest_road": 0,
|
| 359 |
+
"has_longest_road": false,
|
| 360 |
+
"knights": 0,
|
| 361 |
+
"knights_played": 0,
|
| 362 |
+
"has_largest_army": false
|
| 363 |
+
}
|
| 364 |
+
],
|
| 365 |
+
"current_player": 0,
|
| 366 |
+
"current_phase": "SETUP_FIRST_ROUND",
|
| 367 |
+
"robber_position": [
|
| 368 |
+
2,
|
| 369 |
+
2
|
| 370 |
+
],
|
| 371 |
+
"dice_result": null,
|
| 372 |
+
"points": [
|
| 373 |
+
{
|
| 374 |
+
"point_id": 1,
|
| 375 |
+
"game_coords": [
|
| 376 |
+
0,
|
| 377 |
+
0
|
| 378 |
+
],
|
| 379 |
+
"adjacent_points": [
|
| 380 |
+
2,
|
| 381 |
+
9
|
| 382 |
+
],
|
| 383 |
+
"adjacent_hexes": [
|
| 384 |
+
1
|
| 385 |
+
],
|
| 386 |
+
"pixel_coords": [
|
| 387 |
+
377.5,
|
| 388 |
+
105.14428414850131
|
| 389 |
+
]
|
| 390 |
+
},
|
| 391 |
+
{
|
| 392 |
+
"point_id": 2,
|
| 393 |
+
"game_coords": [
|
| 394 |
+
0,
|
| 395 |
+
1
|
| 396 |
+
],
|
| 397 |
+
"adjacent_points": [
|
| 398 |
+
1,
|
| 399 |
+
3
|
| 400 |
+
],
|
| 401 |
+
"adjacent_hexes": [
|
| 402 |
+
1
|
| 403 |
+
],
|
| 404 |
+
"pixel_coords": [
|
| 405 |
+
422.5,
|
| 406 |
+
105.14428414850128
|
| 407 |
+
]
|
| 408 |
+
},
|
| 409 |
+
{
|
| 410 |
+
"point_id": 3,
|
| 411 |
+
"game_coords": [
|
| 412 |
+
0,
|
| 413 |
+
2
|
| 414 |
+
],
|
| 415 |
+
"adjacent_points": [
|
| 416 |
+
2,
|
| 417 |
+
4,
|
| 418 |
+
11
|
| 419 |
+
],
|
| 420 |
+
"adjacent_hexes": [
|
| 421 |
+
2,
|
| 422 |
+
1
|
| 423 |
+
],
|
| 424 |
+
"pixel_coords": [
|
| 425 |
+
445,
|
| 426 |
+
144.11542731880104
|
| 427 |
+
]
|
| 428 |
+
},
|
| 429 |
+
{
|
| 430 |
+
"point_id": 4,
|
| 431 |
+
"game_coords": [
|
| 432 |
+
0,
|
| 433 |
+
3
|
| 434 |
+
],
|
| 435 |
+
"adjacent_points": [
|
| 436 |
+
3,
|
| 437 |
+
5
|
| 438 |
+
],
|
| 439 |
+
"adjacent_hexes": [
|
| 440 |
+
2
|
| 441 |
+
],
|
| 442 |
+
"pixel_coords": [
|
| 443 |
+
490,
|
| 444 |
+
144.11542731880104
|
| 445 |
+
]
|
| 446 |
+
},
|
| 447 |
+
{
|
| 448 |
+
"point_id": 5,
|
| 449 |
+
"game_coords": [
|
| 450 |
+
0,
|
| 451 |
+
4
|
| 452 |
+
],
|
| 453 |
+
"adjacent_points": [
|
| 454 |
+
4,
|
| 455 |
+
6,
|
| 456 |
+
13
|
| 457 |
+
],
|
| 458 |
+
"adjacent_hexes": [
|
| 459 |
+
3,
|
| 460 |
+
2
|
| 461 |
+
],
|
| 462 |
+
"pixel_coords": [
|
| 463 |
+
512.5,
|
| 464 |
+
183.08657048910078
|
| 465 |
+
]
|
| 466 |
+
},
|
| 467 |
+
{
|
| 468 |
+
"point_id": 6,
|
| 469 |
+
"game_coords": [
|
| 470 |
+
0,
|
| 471 |
+
5
|
| 472 |
+
],
|
| 473 |
+
"adjacent_points": [
|
| 474 |
+
5,
|
| 475 |
+
7
|
| 476 |
+
],
|
| 477 |
+
"adjacent_hexes": [
|
| 478 |
+
3
|
| 479 |
+
],
|
| 480 |
+
"pixel_coords": [
|
| 481 |
+
557.5,
|
| 482 |
+
183.08657048910078
|
| 483 |
+
]
|
| 484 |
+
},
|
| 485 |
+
{
|
| 486 |
+
"point_id": 7,
|
| 487 |
+
"game_coords": [
|
| 488 |
+
0,
|
| 489 |
+
6
|
| 490 |
+
],
|
| 491 |
+
"adjacent_points": [
|
| 492 |
+
6,
|
| 493 |
+
15
|
| 494 |
+
],
|
| 495 |
+
"adjacent_hexes": [
|
| 496 |
+
3
|
| 497 |
+
],
|
| 498 |
+
"pixel_coords": [
|
| 499 |
+
580,
|
| 500 |
+
222.05771365940052
|
| 501 |
+
]
|
| 502 |
+
},
|
| 503 |
+
{
|
| 504 |
+
"point_id": 8,
|
| 505 |
+
"game_coords": [
|
| 506 |
+
1,
|
| 507 |
+
0
|
| 508 |
+
],
|
| 509 |
+
"adjacent_points": [
|
| 510 |
+
9,
|
| 511 |
+
18
|
| 512 |
+
],
|
| 513 |
+
"adjacent_hexes": [
|
| 514 |
+
4
|
| 515 |
+
],
|
| 516 |
+
"pixel_coords": [
|
| 517 |
+
310,
|
| 518 |
+
144.11542731880104
|
| 519 |
+
]
|
| 520 |
+
},
|
| 521 |
+
{
|
| 522 |
+
"point_id": 9,
|
| 523 |
+
"game_coords": [
|
| 524 |
+
1,
|
| 525 |
+
1
|
| 526 |
+
],
|
| 527 |
+
"adjacent_points": [
|
| 528 |
+
8,
|
| 529 |
+
10,
|
| 530 |
+
1
|
| 531 |
+
],
|
| 532 |
+
"adjacent_hexes": [
|
| 533 |
+
4,
|
| 534 |
+
1
|
| 535 |
+
],
|
| 536 |
+
"pixel_coords": [
|
| 537 |
+
355,
|
| 538 |
+
144.11542731880104
|
| 539 |
+
]
|
| 540 |
+
},
|
| 541 |
+
{
|
| 542 |
+
"point_id": 10,
|
| 543 |
+
"game_coords": [
|
| 544 |
+
1,
|
| 545 |
+
2
|
| 546 |
+
],
|
| 547 |
+
"adjacent_points": [
|
| 548 |
+
9,
|
| 549 |
+
11,
|
| 550 |
+
20
|
| 551 |
+
],
|
| 552 |
+
"adjacent_hexes": [
|
| 553 |
+
5,
|
| 554 |
+
4,
|
| 555 |
+
1
|
| 556 |
+
],
|
| 557 |
+
"pixel_coords": [
|
| 558 |
+
377.5,
|
| 559 |
+
183.08657048910078
|
| 560 |
+
]
|
| 561 |
+
},
|
| 562 |
+
{
|
| 563 |
+
"point_id": 11,
|
| 564 |
+
"game_coords": [
|
| 565 |
+
1,
|
| 566 |
+
3
|
| 567 |
+
],
|
| 568 |
+
"adjacent_points": [
|
| 569 |
+
10,
|
| 570 |
+
12,
|
| 571 |
+
3
|
| 572 |
+
],
|
| 573 |
+
"adjacent_hexes": [
|
| 574 |
+
5,
|
| 575 |
+
2,
|
| 576 |
+
1
|
| 577 |
+
],
|
| 578 |
+
"pixel_coords": [
|
| 579 |
+
422.5,
|
| 580 |
+
183.08657048910078
|
| 581 |
+
]
|
| 582 |
+
},
|
| 583 |
+
{
|
| 584 |
+
"point_id": 12,
|
| 585 |
+
"game_coords": [
|
| 586 |
+
1,
|
| 587 |
+
4
|
| 588 |
+
],
|
| 589 |
+
"adjacent_points": [
|
| 590 |
+
11,
|
| 591 |
+
13,
|
| 592 |
+
22
|
| 593 |
+
],
|
| 594 |
+
"adjacent_hexes": [
|
| 595 |
+
6,
|
| 596 |
+
5,
|
| 597 |
+
2
|
| 598 |
+
],
|
| 599 |
+
"pixel_coords": [
|
| 600 |
+
445,
|
| 601 |
+
222.05771365940052
|
| 602 |
+
]
|
| 603 |
+
},
|
| 604 |
+
{
|
| 605 |
+
"point_id": 13,
|
| 606 |
+
"game_coords": [
|
| 607 |
+
1,
|
| 608 |
+
5
|
| 609 |
+
],
|
| 610 |
+
"adjacent_points": [
|
| 611 |
+
12,
|
| 612 |
+
14,
|
| 613 |
+
5
|
| 614 |
+
],
|
| 615 |
+
"adjacent_hexes": [
|
| 616 |
+
6,
|
| 617 |
+
3,
|
| 618 |
+
2
|
| 619 |
+
],
|
| 620 |
+
"pixel_coords": [
|
| 621 |
+
490,
|
| 622 |
+
222.05771365940052
|
| 623 |
+
]
|
| 624 |
+
},
|
| 625 |
+
{
|
| 626 |
+
"point_id": 14,
|
| 627 |
+
"game_coords": [
|
| 628 |
+
1,
|
| 629 |
+
6
|
| 630 |
+
],
|
| 631 |
+
"adjacent_points": [
|
| 632 |
+
13,
|
| 633 |
+
15,
|
| 634 |
+
24
|
| 635 |
+
],
|
| 636 |
+
"adjacent_hexes": [
|
| 637 |
+
7,
|
| 638 |
+
6,
|
| 639 |
+
3
|
| 640 |
+
],
|
| 641 |
+
"pixel_coords": [
|
| 642 |
+
512.5,
|
| 643 |
+
261.02885682970026
|
| 644 |
+
]
|
| 645 |
+
},
|
| 646 |
+
{
|
| 647 |
+
"point_id": 15,
|
| 648 |
+
"game_coords": [
|
| 649 |
+
1,
|
| 650 |
+
7
|
| 651 |
+
],
|
| 652 |
+
"adjacent_points": [
|
| 653 |
+
14,
|
| 654 |
+
16,
|
| 655 |
+
7
|
| 656 |
+
],
|
| 657 |
+
"adjacent_hexes": [
|
| 658 |
+
7,
|
| 659 |
+
3
|
| 660 |
+
],
|
| 661 |
+
"pixel_coords": [
|
| 662 |
+
557.5,
|
| 663 |
+
261.02885682970026
|
| 664 |
+
]
|
| 665 |
+
},
|
| 666 |
+
{
|
| 667 |
+
"point_id": 16,
|
| 668 |
+
"game_coords": [
|
| 669 |
+
1,
|
| 670 |
+
8
|
| 671 |
+
],
|
| 672 |
+
"adjacent_points": [
|
| 673 |
+
15,
|
| 674 |
+
26
|
| 675 |
+
],
|
| 676 |
+
"adjacent_hexes": [
|
| 677 |
+
7
|
| 678 |
+
],
|
| 679 |
+
"pixel_coords": [
|
| 680 |
+
580,
|
| 681 |
+
300
|
| 682 |
+
]
|
| 683 |
+
},
|
| 684 |
+
{
|
| 685 |
+
"point_id": 17,
|
| 686 |
+
"game_coords": [
|
| 687 |
+
2,
|
| 688 |
+
0
|
| 689 |
+
],
|
| 690 |
+
"adjacent_points": [
|
| 691 |
+
18,
|
| 692 |
+
28
|
| 693 |
+
],
|
| 694 |
+
"adjacent_hexes": [
|
| 695 |
+
8
|
| 696 |
+
],
|
| 697 |
+
"pixel_coords": [
|
| 698 |
+
242.49999999999997,
|
| 699 |
+
183.08657048910078
|
| 700 |
+
]
|
| 701 |
+
},
|
| 702 |
+
{
|
| 703 |
+
"point_id": 18,
|
| 704 |
+
"game_coords": [
|
| 705 |
+
2,
|
| 706 |
+
1
|
| 707 |
+
],
|
| 708 |
+
"adjacent_points": [
|
| 709 |
+
17,
|
| 710 |
+
19,
|
| 711 |
+
8
|
| 712 |
+
],
|
| 713 |
+
"adjacent_hexes": [
|
| 714 |
+
8,
|
| 715 |
+
4
|
| 716 |
+
],
|
| 717 |
+
"pixel_coords": [
|
| 718 |
+
287.5,
|
| 719 |
+
183.08657048910078
|
| 720 |
+
]
|
| 721 |
+
},
|
| 722 |
+
{
|
| 723 |
+
"point_id": 19,
|
| 724 |
+
"game_coords": [
|
| 725 |
+
2,
|
| 726 |
+
2
|
| 727 |
+
],
|
| 728 |
+
"adjacent_points": [
|
| 729 |
+
18,
|
| 730 |
+
20,
|
| 731 |
+
30
|
| 732 |
+
],
|
| 733 |
+
"adjacent_hexes": [
|
| 734 |
+
9,
|
| 735 |
+
8,
|
| 736 |
+
4
|
| 737 |
+
],
|
| 738 |
+
"pixel_coords": [
|
| 739 |
+
310,
|
| 740 |
+
222.05771365940052
|
| 741 |
+
]
|
| 742 |
+
},
|
| 743 |
+
{
|
| 744 |
+
"point_id": 20,
|
| 745 |
+
"game_coords": [
|
| 746 |
+
2,
|
| 747 |
+
3
|
| 748 |
+
],
|
| 749 |
+
"adjacent_points": [
|
| 750 |
+
19,
|
| 751 |
+
21,
|
| 752 |
+
10
|
| 753 |
+
],
|
| 754 |
+
"adjacent_hexes": [
|
| 755 |
+
9,
|
| 756 |
+
5,
|
| 757 |
+
4
|
| 758 |
+
],
|
| 759 |
+
"pixel_coords": [
|
| 760 |
+
355,
|
| 761 |
+
222.05771365940052
|
| 762 |
+
]
|
| 763 |
+
},
|
| 764 |
+
{
|
| 765 |
+
"point_id": 21,
|
| 766 |
+
"game_coords": [
|
| 767 |
+
2,
|
| 768 |
+
4
|
| 769 |
+
],
|
| 770 |
+
"adjacent_points": [
|
| 771 |
+
20,
|
| 772 |
+
22,
|
| 773 |
+
32
|
| 774 |
+
],
|
| 775 |
+
"adjacent_hexes": [
|
| 776 |
+
10,
|
| 777 |
+
9,
|
| 778 |
+
5
|
| 779 |
+
],
|
| 780 |
+
"pixel_coords": [
|
| 781 |
+
377.5,
|
| 782 |
+
261.02885682970026
|
| 783 |
+
]
|
| 784 |
+
},
|
| 785 |
+
{
|
| 786 |
+
"point_id": 22,
|
| 787 |
+
"game_coords": [
|
| 788 |
+
2,
|
| 789 |
+
5
|
| 790 |
+
],
|
| 791 |
+
"adjacent_points": [
|
| 792 |
+
21,
|
| 793 |
+
23,
|
| 794 |
+
12
|
| 795 |
+
],
|
| 796 |
+
"adjacent_hexes": [
|
| 797 |
+
10,
|
| 798 |
+
6,
|
| 799 |
+
5
|
| 800 |
+
],
|
| 801 |
+
"pixel_coords": [
|
| 802 |
+
422.5,
|
| 803 |
+
261.02885682970026
|
| 804 |
+
]
|
| 805 |
+
},
|
| 806 |
+
{
|
| 807 |
+
"point_id": 23,
|
| 808 |
+
"game_coords": [
|
| 809 |
+
2,
|
| 810 |
+
6
|
| 811 |
+
],
|
| 812 |
+
"adjacent_points": [
|
| 813 |
+
22,
|
| 814 |
+
24,
|
| 815 |
+
34
|
| 816 |
+
],
|
| 817 |
+
"adjacent_hexes": [
|
| 818 |
+
11,
|
| 819 |
+
10,
|
| 820 |
+
6
|
| 821 |
+
],
|
| 822 |
+
"pixel_coords": [
|
| 823 |
+
445,
|
| 824 |
+
300
|
| 825 |
+
]
|
| 826 |
+
},
|
| 827 |
+
{
|
| 828 |
+
"point_id": 24,
|
| 829 |
+
"game_coords": [
|
| 830 |
+
2,
|
| 831 |
+
7
|
| 832 |
+
],
|
| 833 |
+
"adjacent_points": [
|
| 834 |
+
23,
|
| 835 |
+
25,
|
| 836 |
+
14
|
| 837 |
+
],
|
| 838 |
+
"adjacent_hexes": [
|
| 839 |
+
11,
|
| 840 |
+
7,
|
| 841 |
+
6
|
| 842 |
+
],
|
| 843 |
+
"pixel_coords": [
|
| 844 |
+
490,
|
| 845 |
+
300
|
| 846 |
+
]
|
| 847 |
+
},
|
| 848 |
+
{
|
| 849 |
+
"point_id": 25,
|
| 850 |
+
"game_coords": [
|
| 851 |
+
2,
|
| 852 |
+
8
|
| 853 |
+
],
|
| 854 |
+
"adjacent_points": [
|
| 855 |
+
24,
|
| 856 |
+
26,
|
| 857 |
+
36
|
| 858 |
+
],
|
| 859 |
+
"adjacent_hexes": [
|
| 860 |
+
12,
|
| 861 |
+
11,
|
| 862 |
+
7
|
| 863 |
+
],
|
| 864 |
+
"pixel_coords": [
|
| 865 |
+
512.5,
|
| 866 |
+
338.97114317029974
|
| 867 |
+
]
|
| 868 |
+
},
|
| 869 |
+
{
|
| 870 |
+
"point_id": 26,
|
| 871 |
+
"game_coords": [
|
| 872 |
+
2,
|
| 873 |
+
9
|
| 874 |
+
],
|
| 875 |
+
"adjacent_points": [
|
| 876 |
+
25,
|
| 877 |
+
27,
|
| 878 |
+
16
|
| 879 |
+
],
|
| 880 |
+
"adjacent_hexes": [
|
| 881 |
+
12,
|
| 882 |
+
7
|
| 883 |
+
],
|
| 884 |
+
"pixel_coords": [
|
| 885 |
+
557.5,
|
| 886 |
+
338.97114317029974
|
| 887 |
+
]
|
| 888 |
+
},
|
| 889 |
+
{
|
| 890 |
+
"point_id": 27,
|
| 891 |
+
"game_coords": [
|
| 892 |
+
2,
|
| 893 |
+
10
|
| 894 |
+
],
|
| 895 |
+
"adjacent_points": [
|
| 896 |
+
26,
|
| 897 |
+
38
|
| 898 |
+
],
|
| 899 |
+
"adjacent_hexes": [
|
| 900 |
+
12
|
| 901 |
+
],
|
| 902 |
+
"pixel_coords": [
|
| 903 |
+
580,
|
| 904 |
+
377.9422863405995
|
| 905 |
+
]
|
| 906 |
+
},
|
| 907 |
+
{
|
| 908 |
+
"point_id": 28,
|
| 909 |
+
"game_coords": [
|
| 910 |
+
3,
|
| 911 |
+
0
|
| 912 |
+
],
|
| 913 |
+
"adjacent_points": [
|
| 914 |
+
29,
|
| 915 |
+
17
|
| 916 |
+
],
|
| 917 |
+
"adjacent_hexes": [
|
| 918 |
+
8
|
| 919 |
+
],
|
| 920 |
+
"pixel_coords": [
|
| 921 |
+
220,
|
| 922 |
+
222.05771365940052
|
| 923 |
+
]
|
| 924 |
+
},
|
| 925 |
+
{
|
| 926 |
+
"point_id": 29,
|
| 927 |
+
"game_coords": [
|
| 928 |
+
3,
|
| 929 |
+
1
|
| 930 |
+
],
|
| 931 |
+
"adjacent_points": [
|
| 932 |
+
28,
|
| 933 |
+
30,
|
| 934 |
+
39
|
| 935 |
+
],
|
| 936 |
+
"adjacent_hexes": [
|
| 937 |
+
13,
|
| 938 |
+
8
|
| 939 |
+
],
|
| 940 |
+
"pixel_coords": [
|
| 941 |
+
242.5,
|
| 942 |
+
261.02885682970026
|
| 943 |
+
]
|
| 944 |
+
},
|
| 945 |
+
{
|
| 946 |
+
"point_id": 30,
|
| 947 |
+
"game_coords": [
|
| 948 |
+
3,
|
| 949 |
+
2
|
| 950 |
+
],
|
| 951 |
+
"adjacent_points": [
|
| 952 |
+
29,
|
| 953 |
+
31,
|
| 954 |
+
19
|
| 955 |
+
],
|
| 956 |
+
"adjacent_hexes": [
|
| 957 |
+
13,
|
| 958 |
+
9,
|
| 959 |
+
8
|
| 960 |
+
],
|
| 961 |
+
"pixel_coords": [
|
| 962 |
+
287.5,
|
| 963 |
+
261.02885682970026
|
| 964 |
+
]
|
| 965 |
+
},
|
| 966 |
+
{
|
| 967 |
+
"point_id": 31,
|
| 968 |
+
"game_coords": [
|
| 969 |
+
3,
|
| 970 |
+
3
|
| 971 |
+
],
|
| 972 |
+
"adjacent_points": [
|
| 973 |
+
30,
|
| 974 |
+
32,
|
| 975 |
+
41
|
| 976 |
+
],
|
| 977 |
+
"adjacent_hexes": [
|
| 978 |
+
14,
|
| 979 |
+
13,
|
| 980 |
+
9
|
| 981 |
+
],
|
| 982 |
+
"pixel_coords": [
|
| 983 |
+
310,
|
| 984 |
+
300
|
| 985 |
+
]
|
| 986 |
+
},
|
| 987 |
+
{
|
| 988 |
+
"point_id": 32,
|
| 989 |
+
"game_coords": [
|
| 990 |
+
3,
|
| 991 |
+
4
|
| 992 |
+
],
|
| 993 |
+
"adjacent_points": [
|
| 994 |
+
31,
|
| 995 |
+
33,
|
| 996 |
+
21
|
| 997 |
+
],
|
| 998 |
+
"adjacent_hexes": [
|
| 999 |
+
14,
|
| 1000 |
+
10,
|
| 1001 |
+
9
|
| 1002 |
+
],
|
| 1003 |
+
"pixel_coords": [
|
| 1004 |
+
355,
|
| 1005 |
+
300
|
| 1006 |
+
]
|
| 1007 |
+
},
|
| 1008 |
+
{
|
| 1009 |
+
"point_id": 33,
|
| 1010 |
+
"game_coords": [
|
| 1011 |
+
3,
|
| 1012 |
+
5
|
| 1013 |
+
],
|
| 1014 |
+
"adjacent_points": [
|
| 1015 |
+
32,
|
| 1016 |
+
34,
|
| 1017 |
+
43
|
| 1018 |
+
],
|
| 1019 |
+
"adjacent_hexes": [
|
| 1020 |
+
15,
|
| 1021 |
+
14,
|
| 1022 |
+
10
|
| 1023 |
+
],
|
| 1024 |
+
"pixel_coords": [
|
| 1025 |
+
377.5,
|
| 1026 |
+
338.97114317029974
|
| 1027 |
+
]
|
| 1028 |
+
},
|
| 1029 |
+
{
|
| 1030 |
+
"point_id": 34,
|
| 1031 |
+
"game_coords": [
|
| 1032 |
+
3,
|
| 1033 |
+
6
|
| 1034 |
+
],
|
| 1035 |
+
"adjacent_points": [
|
| 1036 |
+
33,
|
| 1037 |
+
35,
|
| 1038 |
+
23
|
| 1039 |
+
],
|
| 1040 |
+
"adjacent_hexes": [
|
| 1041 |
+
15,
|
| 1042 |
+
11,
|
| 1043 |
+
10
|
| 1044 |
+
],
|
| 1045 |
+
"pixel_coords": [
|
| 1046 |
+
422.5,
|
| 1047 |
+
338.97114317029974
|
| 1048 |
+
]
|
| 1049 |
+
},
|
| 1050 |
+
{
|
| 1051 |
+
"point_id": 35,
|
| 1052 |
+
"game_coords": [
|
| 1053 |
+
3,
|
| 1054 |
+
7
|
| 1055 |
+
],
|
| 1056 |
+
"adjacent_points": [
|
| 1057 |
+
34,
|
| 1058 |
+
36,
|
| 1059 |
+
45
|
| 1060 |
+
],
|
| 1061 |
+
"adjacent_hexes": [
|
| 1062 |
+
16,
|
| 1063 |
+
15,
|
| 1064 |
+
11
|
| 1065 |
+
],
|
| 1066 |
+
"pixel_coords": [
|
| 1067 |
+
445,
|
| 1068 |
+
377.9422863405995
|
| 1069 |
+
]
|
| 1070 |
+
},
|
| 1071 |
+
{
|
| 1072 |
+
"point_id": 36,
|
| 1073 |
+
"game_coords": [
|
| 1074 |
+
3,
|
| 1075 |
+
8
|
| 1076 |
+
],
|
| 1077 |
+
"adjacent_points": [
|
| 1078 |
+
35,
|
| 1079 |
+
37,
|
| 1080 |
+
25
|
| 1081 |
+
],
|
| 1082 |
+
"adjacent_hexes": [
|
| 1083 |
+
16,
|
| 1084 |
+
12,
|
| 1085 |
+
11
|
| 1086 |
+
],
|
| 1087 |
+
"pixel_coords": [
|
| 1088 |
+
490,
|
| 1089 |
+
377.9422863405995
|
| 1090 |
+
]
|
| 1091 |
+
},
|
| 1092 |
+
{
|
| 1093 |
+
"point_id": 37,
|
| 1094 |
+
"game_coords": [
|
| 1095 |
+
3,
|
| 1096 |
+
9
|
| 1097 |
+
],
|
| 1098 |
+
"adjacent_points": [
|
| 1099 |
+
36,
|
| 1100 |
+
38,
|
| 1101 |
+
47
|
| 1102 |
+
],
|
| 1103 |
+
"adjacent_hexes": [
|
| 1104 |
+
16,
|
| 1105 |
+
12
|
| 1106 |
+
],
|
| 1107 |
+
"pixel_coords": [
|
| 1108 |
+
512.5,
|
| 1109 |
+
416.9134295108992
|
| 1110 |
+
]
|
| 1111 |
+
},
|
| 1112 |
+
{
|
| 1113 |
+
"point_id": 38,
|
| 1114 |
+
"game_coords": [
|
| 1115 |
+
3,
|
| 1116 |
+
10
|
| 1117 |
+
],
|
| 1118 |
+
"adjacent_points": [
|
| 1119 |
+
37,
|
| 1120 |
+
27
|
| 1121 |
+
],
|
| 1122 |
+
"adjacent_hexes": [
|
| 1123 |
+
12
|
| 1124 |
+
],
|
| 1125 |
+
"pixel_coords": [
|
| 1126 |
+
557.5,
|
| 1127 |
+
416.9134295108992
|
| 1128 |
+
]
|
| 1129 |
+
},
|
| 1130 |
+
{
|
| 1131 |
+
"point_id": 39,
|
| 1132 |
+
"game_coords": [
|
| 1133 |
+
4,
|
| 1134 |
+
0
|
| 1135 |
+
],
|
| 1136 |
+
"adjacent_points": [
|
| 1137 |
+
40,
|
| 1138 |
+
29
|
| 1139 |
+
],
|
| 1140 |
+
"adjacent_hexes": [
|
| 1141 |
+
13
|
| 1142 |
+
],
|
| 1143 |
+
"pixel_coords": [
|
| 1144 |
+
220,
|
| 1145 |
+
300
|
| 1146 |
+
]
|
| 1147 |
+
},
|
| 1148 |
+
{
|
| 1149 |
+
"point_id": 40,
|
| 1150 |
+
"game_coords": [
|
| 1151 |
+
4,
|
| 1152 |
+
1
|
| 1153 |
+
],
|
| 1154 |
+
"adjacent_points": [
|
| 1155 |
+
39,
|
| 1156 |
+
41,
|
| 1157 |
+
48
|
| 1158 |
+
],
|
| 1159 |
+
"adjacent_hexes": [
|
| 1160 |
+
17,
|
| 1161 |
+
13
|
| 1162 |
+
],
|
| 1163 |
+
"pixel_coords": [
|
| 1164 |
+
242.5,
|
| 1165 |
+
338.97114317029974
|
| 1166 |
+
]
|
| 1167 |
+
},
|
| 1168 |
+
{
|
| 1169 |
+
"point_id": 41,
|
| 1170 |
+
"game_coords": [
|
| 1171 |
+
4,
|
| 1172 |
+
2
|
| 1173 |
+
],
|
| 1174 |
+
"adjacent_points": [
|
| 1175 |
+
40,
|
| 1176 |
+
42,
|
| 1177 |
+
31
|
| 1178 |
+
],
|
| 1179 |
+
"adjacent_hexes": [
|
| 1180 |
+
17,
|
| 1181 |
+
14,
|
| 1182 |
+
13
|
| 1183 |
+
],
|
| 1184 |
+
"pixel_coords": [
|
| 1185 |
+
287.5,
|
| 1186 |
+
338.97114317029974
|
| 1187 |
+
]
|
| 1188 |
+
},
|
| 1189 |
+
{
|
| 1190 |
+
"point_id": 42,
|
| 1191 |
+
"game_coords": [
|
| 1192 |
+
4,
|
| 1193 |
+
3
|
| 1194 |
+
],
|
| 1195 |
+
"adjacent_points": [
|
| 1196 |
+
41,
|
| 1197 |
+
43,
|
| 1198 |
+
50
|
| 1199 |
+
],
|
| 1200 |
+
"adjacent_hexes": [
|
| 1201 |
+
18,
|
| 1202 |
+
17,
|
| 1203 |
+
14
|
| 1204 |
+
],
|
| 1205 |
+
"pixel_coords": [
|
| 1206 |
+
310,
|
| 1207 |
+
377.9422863405995
|
| 1208 |
+
]
|
| 1209 |
+
},
|
| 1210 |
+
{
|
| 1211 |
+
"point_id": 43,
|
| 1212 |
+
"game_coords": [
|
| 1213 |
+
4,
|
| 1214 |
+
4
|
| 1215 |
+
],
|
| 1216 |
+
"adjacent_points": [
|
| 1217 |
+
42,
|
| 1218 |
+
44,
|
| 1219 |
+
33
|
| 1220 |
+
],
|
| 1221 |
+
"adjacent_hexes": [
|
| 1222 |
+
18,
|
| 1223 |
+
15,
|
| 1224 |
+
14
|
| 1225 |
+
],
|
| 1226 |
+
"pixel_coords": [
|
| 1227 |
+
355,
|
| 1228 |
+
377.9422863405995
|
| 1229 |
+
]
|
| 1230 |
+
},
|
| 1231 |
+
{
|
| 1232 |
+
"point_id": 44,
|
| 1233 |
+
"game_coords": [
|
| 1234 |
+
4,
|
| 1235 |
+
5
|
| 1236 |
+
],
|
| 1237 |
+
"adjacent_points": [
|
| 1238 |
+
43,
|
| 1239 |
+
45,
|
| 1240 |
+
52
|
| 1241 |
+
],
|
| 1242 |
+
"adjacent_hexes": [
|
| 1243 |
+
19,
|
| 1244 |
+
18,
|
| 1245 |
+
15
|
| 1246 |
+
],
|
| 1247 |
+
"pixel_coords": [
|
| 1248 |
+
377.5,
|
| 1249 |
+
416.9134295108992
|
| 1250 |
+
]
|
| 1251 |
+
},
|
| 1252 |
+
{
|
| 1253 |
+
"point_id": 45,
|
| 1254 |
+
"game_coords": [
|
| 1255 |
+
4,
|
| 1256 |
+
6
|
| 1257 |
+
],
|
| 1258 |
+
"adjacent_points": [
|
| 1259 |
+
44,
|
| 1260 |
+
46,
|
| 1261 |
+
35
|
| 1262 |
+
],
|
| 1263 |
+
"adjacent_hexes": [
|
| 1264 |
+
19,
|
| 1265 |
+
16,
|
| 1266 |
+
15
|
| 1267 |
+
],
|
| 1268 |
+
"pixel_coords": [
|
| 1269 |
+
422.5,
|
| 1270 |
+
416.9134295108992
|
| 1271 |
+
]
|
| 1272 |
+
},
|
| 1273 |
+
{
|
| 1274 |
+
"point_id": 46,
|
| 1275 |
+
"game_coords": [
|
| 1276 |
+
4,
|
| 1277 |
+
7
|
| 1278 |
+
],
|
| 1279 |
+
"adjacent_points": [
|
| 1280 |
+
45,
|
| 1281 |
+
47,
|
| 1282 |
+
54
|
| 1283 |
+
],
|
| 1284 |
+
"adjacent_hexes": [
|
| 1285 |
+
19,
|
| 1286 |
+
16
|
| 1287 |
+
],
|
| 1288 |
+
"pixel_coords": [
|
| 1289 |
+
445,
|
| 1290 |
+
455.88457268119896
|
| 1291 |
+
]
|
| 1292 |
+
},
|
| 1293 |
+
{
|
| 1294 |
+
"point_id": 47,
|
| 1295 |
+
"game_coords": [
|
| 1296 |
+
4,
|
| 1297 |
+
8
|
| 1298 |
+
],
|
| 1299 |
+
"adjacent_points": [
|
| 1300 |
+
46,
|
| 1301 |
+
37
|
| 1302 |
+
],
|
| 1303 |
+
"adjacent_hexes": [
|
| 1304 |
+
16
|
| 1305 |
+
],
|
| 1306 |
+
"pixel_coords": [
|
| 1307 |
+
490,
|
| 1308 |
+
455.88457268119896
|
| 1309 |
+
]
|
| 1310 |
+
},
|
| 1311 |
+
{
|
| 1312 |
+
"point_id": 48,
|
| 1313 |
+
"game_coords": [
|
| 1314 |
+
5,
|
| 1315 |
+
0
|
| 1316 |
+
],
|
| 1317 |
+
"adjacent_points": [
|
| 1318 |
+
49,
|
| 1319 |
+
40
|
| 1320 |
+
],
|
| 1321 |
+
"adjacent_hexes": [
|
| 1322 |
+
17
|
| 1323 |
+
],
|
| 1324 |
+
"pixel_coords": [
|
| 1325 |
+
220,
|
| 1326 |
+
377.9422863405995
|
| 1327 |
+
]
|
| 1328 |
+
},
|
| 1329 |
+
{
|
| 1330 |
+
"point_id": 49,
|
| 1331 |
+
"game_coords": [
|
| 1332 |
+
5,
|
| 1333 |
+
1
|
| 1334 |
+
],
|
| 1335 |
+
"adjacent_points": [
|
| 1336 |
+
48,
|
| 1337 |
+
50
|
| 1338 |
+
],
|
| 1339 |
+
"adjacent_hexes": [
|
| 1340 |
+
17
|
| 1341 |
+
],
|
| 1342 |
+
"pixel_coords": [
|
| 1343 |
+
242.5,
|
| 1344 |
+
416.9134295108992
|
| 1345 |
+
]
|
| 1346 |
+
},
|
| 1347 |
+
{
|
| 1348 |
+
"point_id": 50,
|
| 1349 |
+
"game_coords": [
|
| 1350 |
+
5,
|
| 1351 |
+
2
|
| 1352 |
+
],
|
| 1353 |
+
"adjacent_points": [
|
| 1354 |
+
49,
|
| 1355 |
+
51,
|
| 1356 |
+
42
|
| 1357 |
+
],
|
| 1358 |
+
"adjacent_hexes": [
|
| 1359 |
+
18,
|
| 1360 |
+
17
|
| 1361 |
+
],
|
| 1362 |
+
"pixel_coords": [
|
| 1363 |
+
287.5,
|
| 1364 |
+
416.9134295108992
|
| 1365 |
+
]
|
| 1366 |
+
},
|
| 1367 |
+
{
|
| 1368 |
+
"point_id": 51,
|
| 1369 |
+
"game_coords": [
|
| 1370 |
+
5,
|
| 1371 |
+
3
|
| 1372 |
+
],
|
| 1373 |
+
"adjacent_points": [
|
| 1374 |
+
50,
|
| 1375 |
+
52
|
| 1376 |
+
],
|
| 1377 |
+
"adjacent_hexes": [
|
| 1378 |
+
18
|
| 1379 |
+
],
|
| 1380 |
+
"pixel_coords": [
|
| 1381 |
+
310,
|
| 1382 |
+
455.88457268119896
|
| 1383 |
+
]
|
| 1384 |
+
},
|
| 1385 |
+
{
|
| 1386 |
+
"point_id": 52,
|
| 1387 |
+
"game_coords": [
|
| 1388 |
+
5,
|
| 1389 |
+
4
|
| 1390 |
+
],
|
| 1391 |
+
"adjacent_points": [
|
| 1392 |
+
51,
|
| 1393 |
+
53,
|
| 1394 |
+
44
|
| 1395 |
+
],
|
| 1396 |
+
"adjacent_hexes": [
|
| 1397 |
+
19,
|
| 1398 |
+
18
|
| 1399 |
+
],
|
| 1400 |
+
"pixel_coords": [
|
| 1401 |
+
355,
|
| 1402 |
+
455.88457268119896
|
| 1403 |
+
]
|
| 1404 |
+
},
|
| 1405 |
+
{
|
| 1406 |
+
"point_id": 53,
|
| 1407 |
+
"game_coords": [
|
| 1408 |
+
5,
|
| 1409 |
+
5
|
| 1410 |
+
],
|
| 1411 |
+
"adjacent_points": [
|
| 1412 |
+
52,
|
| 1413 |
+
54
|
| 1414 |
+
],
|
| 1415 |
+
"adjacent_hexes": [
|
| 1416 |
+
19
|
| 1417 |
+
],
|
| 1418 |
+
"pixel_coords": [
|
| 1419 |
+
377.5,
|
| 1420 |
+
494.8557158514987
|
| 1421 |
+
]
|
| 1422 |
+
},
|
| 1423 |
+
{
|
| 1424 |
+
"point_id": 54,
|
| 1425 |
+
"game_coords": [
|
| 1426 |
+
5,
|
| 1427 |
+
6
|
| 1428 |
+
],
|
| 1429 |
+
"adjacent_points": [
|
| 1430 |
+
53,
|
| 1431 |
+
46
|
| 1432 |
+
],
|
| 1433 |
+
"adjacent_hexes": [
|
| 1434 |
+
19
|
| 1435 |
+
],
|
| 1436 |
+
"pixel_coords": [
|
| 1437 |
+
422.5,
|
| 1438 |
+
494.8557158514987
|
| 1439 |
+
]
|
| 1440 |
+
}
|
| 1441 |
+
],
|
| 1442 |
+
"board_graph": {
|
| 1443 |
+
"adjacency": {
|
| 1444 |
+
"1": [
|
| 1445 |
+
2,
|
| 1446 |
+
9
|
| 1447 |
+
],
|
| 1448 |
+
"2": [
|
| 1449 |
+
1,
|
| 1450 |
+
3
|
| 1451 |
+
],
|
| 1452 |
+
"3": [
|
| 1453 |
+
2,
|
| 1454 |
+
4,
|
| 1455 |
+
11
|
| 1456 |
+
],
|
| 1457 |
+
"4": [
|
| 1458 |
+
3,
|
| 1459 |
+
5
|
| 1460 |
+
],
|
| 1461 |
+
"5": [
|
| 1462 |
+
4,
|
| 1463 |
+
6,
|
| 1464 |
+
13
|
| 1465 |
+
],
|
| 1466 |
+
"6": [
|
| 1467 |
+
5,
|
| 1468 |
+
7
|
| 1469 |
+
],
|
| 1470 |
+
"7": [
|
| 1471 |
+
6,
|
| 1472 |
+
15
|
| 1473 |
+
],
|
| 1474 |
+
"8": [
|
| 1475 |
+
9,
|
| 1476 |
+
18
|
| 1477 |
+
],
|
| 1478 |
+
"9": [
|
| 1479 |
+
8,
|
| 1480 |
+
10,
|
| 1481 |
+
1
|
| 1482 |
+
],
|
| 1483 |
+
"10": [
|
| 1484 |
+
9,
|
| 1485 |
+
11,
|
| 1486 |
+
20
|
| 1487 |
+
],
|
| 1488 |
+
"11": [
|
| 1489 |
+
10,
|
| 1490 |
+
12,
|
| 1491 |
+
3
|
| 1492 |
+
],
|
| 1493 |
+
"12": [
|
| 1494 |
+
11,
|
| 1495 |
+
13,
|
| 1496 |
+
22
|
| 1497 |
+
],
|
| 1498 |
+
"13": [
|
| 1499 |
+
12,
|
| 1500 |
+
14,
|
| 1501 |
+
5
|
| 1502 |
+
],
|
| 1503 |
+
"14": [
|
| 1504 |
+
13,
|
| 1505 |
+
15,
|
| 1506 |
+
24
|
| 1507 |
+
],
|
| 1508 |
+
"15": [
|
| 1509 |
+
14,
|
| 1510 |
+
16,
|
| 1511 |
+
7
|
| 1512 |
+
],
|
| 1513 |
+
"16": [
|
| 1514 |
+
15,
|
| 1515 |
+
26
|
| 1516 |
+
],
|
| 1517 |
+
"17": [
|
| 1518 |
+
18,
|
| 1519 |
+
28
|
| 1520 |
+
],
|
| 1521 |
+
"18": [
|
| 1522 |
+
17,
|
| 1523 |
+
19,
|
| 1524 |
+
8
|
| 1525 |
+
],
|
| 1526 |
+
"19": [
|
| 1527 |
+
18,
|
| 1528 |
+
20,
|
| 1529 |
+
30
|
| 1530 |
+
],
|
| 1531 |
+
"20": [
|
| 1532 |
+
19,
|
| 1533 |
+
21,
|
| 1534 |
+
10
|
| 1535 |
+
],
|
| 1536 |
+
"21": [
|
| 1537 |
+
20,
|
| 1538 |
+
22,
|
| 1539 |
+
32
|
| 1540 |
+
],
|
| 1541 |
+
"22": [
|
| 1542 |
+
21,
|
| 1543 |
+
23,
|
| 1544 |
+
12
|
| 1545 |
+
],
|
| 1546 |
+
"23": [
|
| 1547 |
+
22,
|
| 1548 |
+
24,
|
| 1549 |
+
34
|
| 1550 |
+
],
|
| 1551 |
+
"24": [
|
| 1552 |
+
23,
|
| 1553 |
+
25,
|
| 1554 |
+
14
|
| 1555 |
+
],
|
| 1556 |
+
"25": [
|
| 1557 |
+
24,
|
| 1558 |
+
26,
|
| 1559 |
+
36
|
| 1560 |
+
],
|
| 1561 |
+
"26": [
|
| 1562 |
+
25,
|
| 1563 |
+
27,
|
| 1564 |
+
16
|
| 1565 |
+
],
|
| 1566 |
+
"27": [
|
| 1567 |
+
26,
|
| 1568 |
+
38
|
| 1569 |
+
],
|
| 1570 |
+
"28": [
|
| 1571 |
+
29,
|
| 1572 |
+
17
|
| 1573 |
+
],
|
| 1574 |
+
"29": [
|
| 1575 |
+
28,
|
| 1576 |
+
30,
|
| 1577 |
+
39
|
| 1578 |
+
],
|
| 1579 |
+
"30": [
|
| 1580 |
+
29,
|
| 1581 |
+
31,
|
| 1582 |
+
19
|
| 1583 |
+
],
|
| 1584 |
+
"31": [
|
| 1585 |
+
30,
|
| 1586 |
+
32,
|
| 1587 |
+
41
|
| 1588 |
+
],
|
| 1589 |
+
"32": [
|
| 1590 |
+
31,
|
| 1591 |
+
33,
|
| 1592 |
+
21
|
| 1593 |
+
],
|
| 1594 |
+
"33": [
|
| 1595 |
+
32,
|
| 1596 |
+
34,
|
| 1597 |
+
43
|
| 1598 |
+
],
|
| 1599 |
+
"34": [
|
| 1600 |
+
33,
|
| 1601 |
+
35,
|
| 1602 |
+
23
|
| 1603 |
+
],
|
| 1604 |
+
"35": [
|
| 1605 |
+
34,
|
| 1606 |
+
36,
|
| 1607 |
+
45
|
| 1608 |
+
],
|
| 1609 |
+
"36": [
|
| 1610 |
+
35,
|
| 1611 |
+
37,
|
| 1612 |
+
25
|
| 1613 |
+
],
|
| 1614 |
+
"37": [
|
| 1615 |
+
36,
|
| 1616 |
+
38,
|
| 1617 |
+
47
|
| 1618 |
+
],
|
| 1619 |
+
"38": [
|
| 1620 |
+
37,
|
| 1621 |
+
27
|
| 1622 |
+
],
|
| 1623 |
+
"39": [
|
| 1624 |
+
40,
|
| 1625 |
+
29
|
| 1626 |
+
],
|
| 1627 |
+
"40": [
|
| 1628 |
+
39,
|
| 1629 |
+
41,
|
| 1630 |
+
48
|
| 1631 |
+
],
|
| 1632 |
+
"41": [
|
| 1633 |
+
40,
|
| 1634 |
+
42,
|
| 1635 |
+
31
|
| 1636 |
+
],
|
| 1637 |
+
"42": [
|
| 1638 |
+
41,
|
| 1639 |
+
43,
|
| 1640 |
+
50
|
| 1641 |
+
],
|
| 1642 |
+
"43": [
|
| 1643 |
+
42,
|
| 1644 |
+
44,
|
| 1645 |
+
33
|
| 1646 |
+
],
|
| 1647 |
+
"44": [
|
| 1648 |
+
43,
|
| 1649 |
+
45,
|
| 1650 |
+
52
|
| 1651 |
+
],
|
| 1652 |
+
"45": [
|
| 1653 |
+
44,
|
| 1654 |
+
46,
|
| 1655 |
+
35
|
| 1656 |
+
],
|
| 1657 |
+
"46": [
|
| 1658 |
+
45,
|
| 1659 |
+
47,
|
| 1660 |
+
54
|
| 1661 |
+
],
|
| 1662 |
+
"47": [
|
| 1663 |
+
46,
|
| 1664 |
+
37
|
| 1665 |
+
],
|
| 1666 |
+
"48": [
|
| 1667 |
+
49,
|
| 1668 |
+
40
|
| 1669 |
+
],
|
| 1670 |
+
"49": [
|
| 1671 |
+
48,
|
| 1672 |
+
50
|
| 1673 |
+
],
|
| 1674 |
+
"50": [
|
| 1675 |
+
49,
|
| 1676 |
+
51,
|
| 1677 |
+
42
|
| 1678 |
+
],
|
| 1679 |
+
"51": [
|
| 1680 |
+
50,
|
| 1681 |
+
52
|
| 1682 |
+
],
|
| 1683 |
+
"52": [
|
| 1684 |
+
51,
|
| 1685 |
+
53,
|
| 1686 |
+
44
|
| 1687 |
+
],
|
| 1688 |
+
"53": [
|
| 1689 |
+
52,
|
| 1690 |
+
54
|
| 1691 |
+
],
|
| 1692 |
+
"54": [
|
| 1693 |
+
53,
|
| 1694 |
+
46
|
| 1695 |
+
]
|
| 1696 |
+
},
|
| 1697 |
+
"hex_to_points": {
|
| 1698 |
+
"1": [
|
| 1699 |
+
1,
|
| 1700 |
+
2,
|
| 1701 |
+
3,
|
| 1702 |
+
9,
|
| 1703 |
+
10,
|
| 1704 |
+
11
|
| 1705 |
+
],
|
| 1706 |
+
"2": [
|
| 1707 |
+
3,
|
| 1708 |
+
4,
|
| 1709 |
+
5,
|
| 1710 |
+
11,
|
| 1711 |
+
12,
|
| 1712 |
+
13
|
| 1713 |
+
],
|
| 1714 |
+
"3": [
|
| 1715 |
+
5,
|
| 1716 |
+
6,
|
| 1717 |
+
7,
|
| 1718 |
+
13,
|
| 1719 |
+
14,
|
| 1720 |
+
15
|
| 1721 |
+
],
|
| 1722 |
+
"4": [
|
| 1723 |
+
8,
|
| 1724 |
+
9,
|
| 1725 |
+
10,
|
| 1726 |
+
18,
|
| 1727 |
+
19,
|
| 1728 |
+
20
|
| 1729 |
+
],
|
| 1730 |
+
"5": [
|
| 1731 |
+
10,
|
| 1732 |
+
11,
|
| 1733 |
+
12,
|
| 1734 |
+
20,
|
| 1735 |
+
21,
|
| 1736 |
+
22
|
| 1737 |
+
],
|
| 1738 |
+
"6": [
|
| 1739 |
+
12,
|
| 1740 |
+
13,
|
| 1741 |
+
14,
|
| 1742 |
+
22,
|
| 1743 |
+
23,
|
| 1744 |
+
24
|
| 1745 |
+
],
|
| 1746 |
+
"7": [
|
| 1747 |
+
14,
|
| 1748 |
+
15,
|
| 1749 |
+
16,
|
| 1750 |
+
24,
|
| 1751 |
+
25,
|
| 1752 |
+
26
|
| 1753 |
+
],
|
| 1754 |
+
"8": [
|
| 1755 |
+
17,
|
| 1756 |
+
18,
|
| 1757 |
+
19,
|
| 1758 |
+
28,
|
| 1759 |
+
29,
|
| 1760 |
+
30
|
| 1761 |
+
],
|
| 1762 |
+
"9": [
|
| 1763 |
+
19,
|
| 1764 |
+
20,
|
| 1765 |
+
21,
|
| 1766 |
+
30,
|
| 1767 |
+
31,
|
| 1768 |
+
32
|
| 1769 |
+
],
|
| 1770 |
+
"10": [
|
| 1771 |
+
21,
|
| 1772 |
+
22,
|
| 1773 |
+
23,
|
| 1774 |
+
32,
|
| 1775 |
+
33,
|
| 1776 |
+
34
|
| 1777 |
+
],
|
| 1778 |
+
"11": [
|
| 1779 |
+
23,
|
| 1780 |
+
24,
|
| 1781 |
+
25,
|
| 1782 |
+
34,
|
| 1783 |
+
35,
|
| 1784 |
+
36
|
| 1785 |
+
],
|
| 1786 |
+
"12": [
|
| 1787 |
+
25,
|
| 1788 |
+
26,
|
| 1789 |
+
27,
|
| 1790 |
+
36,
|
| 1791 |
+
37,
|
| 1792 |
+
38
|
| 1793 |
+
],
|
| 1794 |
+
"13": [
|
| 1795 |
+
29,
|
| 1796 |
+
30,
|
| 1797 |
+
31,
|
| 1798 |
+
39,
|
| 1799 |
+
40,
|
| 1800 |
+
41
|
| 1801 |
+
],
|
| 1802 |
+
"14": [
|
| 1803 |
+
31,
|
| 1804 |
+
32,
|
| 1805 |
+
33,
|
| 1806 |
+
41,
|
| 1807 |
+
42,
|
| 1808 |
+
43
|
| 1809 |
+
],
|
| 1810 |
+
"15": [
|
| 1811 |
+
33,
|
| 1812 |
+
34,
|
| 1813 |
+
35,
|
| 1814 |
+
43,
|
| 1815 |
+
44,
|
| 1816 |
+
45
|
| 1817 |
+
],
|
| 1818 |
+
"16": [
|
| 1819 |
+
35,
|
| 1820 |
+
36,
|
| 1821 |
+
37,
|
| 1822 |
+
45,
|
| 1823 |
+
46,
|
| 1824 |
+
47
|
| 1825 |
+
],
|
| 1826 |
+
"17": [
|
| 1827 |
+
40,
|
| 1828 |
+
41,
|
| 1829 |
+
42,
|
| 1830 |
+
48,
|
| 1831 |
+
49,
|
| 1832 |
+
50
|
| 1833 |
+
],
|
| 1834 |
+
"18": [
|
| 1835 |
+
42,
|
| 1836 |
+
43,
|
| 1837 |
+
44,
|
| 1838 |
+
50,
|
| 1839 |
+
51,
|
| 1840 |
+
52
|
| 1841 |
+
],
|
| 1842 |
+
"19": [
|
| 1843 |
+
44,
|
| 1844 |
+
45,
|
| 1845 |
+
46,
|
| 1846 |
+
52,
|
| 1847 |
+
53,
|
| 1848 |
+
54
|
| 1849 |
+
]
|
| 1850 |
+
},
|
| 1851 |
+
"total_points": 54,
|
| 1852 |
+
"total_hexes": 19
|
| 1853 |
+
}
|
| 1854 |
+
}
|
| 1855 |
+
]
|
| 1856 |
+
}
|
examples/ai_testing/my_games/game_20251223_205200_final.json
ADDED
|
@@ -0,0 +1,1850 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"hexes": [
|
| 3 |
+
{
|
| 4 |
+
"id": 1,
|
| 5 |
+
"q": 0,
|
| 6 |
+
"r": -2,
|
| 7 |
+
"type": "wood",
|
| 8 |
+
"number": 12,
|
| 9 |
+
"has_robber": false,
|
| 10 |
+
"position": [
|
| 11 |
+
0,
|
| 12 |
+
0
|
| 13 |
+
],
|
| 14 |
+
"axial_coords": [
|
| 15 |
+
0,
|
| 16 |
+
-2
|
| 17 |
+
]
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"id": 2,
|
| 21 |
+
"q": 1,
|
| 22 |
+
"r": -2,
|
| 23 |
+
"type": "sheep",
|
| 24 |
+
"number": 5,
|
| 25 |
+
"has_robber": false,
|
| 26 |
+
"position": [
|
| 27 |
+
0,
|
| 28 |
+
1
|
| 29 |
+
],
|
| 30 |
+
"axial_coords": [
|
| 31 |
+
1,
|
| 32 |
+
-2
|
| 33 |
+
]
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"id": 3,
|
| 37 |
+
"q": 2,
|
| 38 |
+
"r": -2,
|
| 39 |
+
"type": "wood",
|
| 40 |
+
"number": 4,
|
| 41 |
+
"has_robber": false,
|
| 42 |
+
"position": [
|
| 43 |
+
0,
|
| 44 |
+
2
|
| 45 |
+
],
|
| 46 |
+
"axial_coords": [
|
| 47 |
+
2,
|
| 48 |
+
-2
|
| 49 |
+
]
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"id": 4,
|
| 53 |
+
"q": -1,
|
| 54 |
+
"r": -1,
|
| 55 |
+
"type": "sheep",
|
| 56 |
+
"number": 8,
|
| 57 |
+
"has_robber": false,
|
| 58 |
+
"position": [
|
| 59 |
+
1,
|
| 60 |
+
0
|
| 61 |
+
],
|
| 62 |
+
"axial_coords": [
|
| 63 |
+
-1,
|
| 64 |
+
-1
|
| 65 |
+
]
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"id": 5,
|
| 69 |
+
"q": 0,
|
| 70 |
+
"r": -1,
|
| 71 |
+
"type": "brick",
|
| 72 |
+
"number": 6,
|
| 73 |
+
"has_robber": false,
|
| 74 |
+
"position": [
|
| 75 |
+
1,
|
| 76 |
+
1
|
| 77 |
+
],
|
| 78 |
+
"axial_coords": [
|
| 79 |
+
0,
|
| 80 |
+
-1
|
| 81 |
+
]
|
| 82 |
+
},
|
| 83 |
+
{
|
| 84 |
+
"id": 6,
|
| 85 |
+
"q": 1,
|
| 86 |
+
"r": -1,
|
| 87 |
+
"type": "wood",
|
| 88 |
+
"number": 3,
|
| 89 |
+
"has_robber": false,
|
| 90 |
+
"position": [
|
| 91 |
+
1,
|
| 92 |
+
2
|
| 93 |
+
],
|
| 94 |
+
"axial_coords": [
|
| 95 |
+
1,
|
| 96 |
+
-1
|
| 97 |
+
]
|
| 98 |
+
},
|
| 99 |
+
{
|
| 100 |
+
"id": 7,
|
| 101 |
+
"q": 2,
|
| 102 |
+
"r": -1,
|
| 103 |
+
"type": "wheat",
|
| 104 |
+
"number": 8,
|
| 105 |
+
"has_robber": false,
|
| 106 |
+
"position": [
|
| 107 |
+
1,
|
| 108 |
+
3
|
| 109 |
+
],
|
| 110 |
+
"axial_coords": [
|
| 111 |
+
2,
|
| 112 |
+
-1
|
| 113 |
+
]
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"id": 8,
|
| 117 |
+
"q": -2,
|
| 118 |
+
"r": 0,
|
| 119 |
+
"type": "brick",
|
| 120 |
+
"number": 10,
|
| 121 |
+
"has_robber": false,
|
| 122 |
+
"position": [
|
| 123 |
+
2,
|
| 124 |
+
0
|
| 125 |
+
],
|
| 126 |
+
"axial_coords": [
|
| 127 |
+
-2,
|
| 128 |
+
0
|
| 129 |
+
]
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"id": 9,
|
| 133 |
+
"q": -1,
|
| 134 |
+
"r": 0,
|
| 135 |
+
"type": "wood",
|
| 136 |
+
"number": 11,
|
| 137 |
+
"has_robber": false,
|
| 138 |
+
"position": [
|
| 139 |
+
2,
|
| 140 |
+
1
|
| 141 |
+
],
|
| 142 |
+
"axial_coords": [
|
| 143 |
+
-1,
|
| 144 |
+
0
|
| 145 |
+
]
|
| 146 |
+
},
|
| 147 |
+
{
|
| 148 |
+
"id": 10,
|
| 149 |
+
"q": 0,
|
| 150 |
+
"r": 0,
|
| 151 |
+
"type": "desert",
|
| 152 |
+
"number": null,
|
| 153 |
+
"has_robber": true,
|
| 154 |
+
"position": [
|
| 155 |
+
2,
|
| 156 |
+
2
|
| 157 |
+
],
|
| 158 |
+
"axial_coords": [
|
| 159 |
+
0,
|
| 160 |
+
0
|
| 161 |
+
]
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"id": 11,
|
| 165 |
+
"q": 1,
|
| 166 |
+
"r": 0,
|
| 167 |
+
"type": "ore",
|
| 168 |
+
"number": 3,
|
| 169 |
+
"has_robber": false,
|
| 170 |
+
"position": [
|
| 171 |
+
2,
|
| 172 |
+
3
|
| 173 |
+
],
|
| 174 |
+
"axial_coords": [
|
| 175 |
+
1,
|
| 176 |
+
0
|
| 177 |
+
]
|
| 178 |
+
},
|
| 179 |
+
{
|
| 180 |
+
"id": 12,
|
| 181 |
+
"q": 2,
|
| 182 |
+
"r": 0,
|
| 183 |
+
"type": "sheep",
|
| 184 |
+
"number": 4,
|
| 185 |
+
"has_robber": false,
|
| 186 |
+
"position": [
|
| 187 |
+
2,
|
| 188 |
+
4
|
| 189 |
+
],
|
| 190 |
+
"axial_coords": [
|
| 191 |
+
2,
|
| 192 |
+
0
|
| 193 |
+
]
|
| 194 |
+
},
|
| 195 |
+
{
|
| 196 |
+
"id": 13,
|
| 197 |
+
"q": -2,
|
| 198 |
+
"r": 1,
|
| 199 |
+
"type": "brick",
|
| 200 |
+
"number": 10,
|
| 201 |
+
"has_robber": false,
|
| 202 |
+
"position": [
|
| 203 |
+
3,
|
| 204 |
+
0
|
| 205 |
+
],
|
| 206 |
+
"axial_coords": [
|
| 207 |
+
-2,
|
| 208 |
+
1
|
| 209 |
+
]
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"id": 14,
|
| 213 |
+
"q": -1,
|
| 214 |
+
"r": 1,
|
| 215 |
+
"type": "wheat",
|
| 216 |
+
"number": 9,
|
| 217 |
+
"has_robber": false,
|
| 218 |
+
"position": [
|
| 219 |
+
3,
|
| 220 |
+
1
|
| 221 |
+
],
|
| 222 |
+
"axial_coords": [
|
| 223 |
+
-1,
|
| 224 |
+
1
|
| 225 |
+
]
|
| 226 |
+
},
|
| 227 |
+
{
|
| 228 |
+
"id": 15,
|
| 229 |
+
"q": 0,
|
| 230 |
+
"r": 1,
|
| 231 |
+
"type": "wheat",
|
| 232 |
+
"number": 6,
|
| 233 |
+
"has_robber": false,
|
| 234 |
+
"position": [
|
| 235 |
+
3,
|
| 236 |
+
2
|
| 237 |
+
],
|
| 238 |
+
"axial_coords": [
|
| 239 |
+
0,
|
| 240 |
+
1
|
| 241 |
+
]
|
| 242 |
+
},
|
| 243 |
+
{
|
| 244 |
+
"id": 16,
|
| 245 |
+
"q": 1,
|
| 246 |
+
"r": 1,
|
| 247 |
+
"type": "sheep",
|
| 248 |
+
"number": 11,
|
| 249 |
+
"has_robber": false,
|
| 250 |
+
"position": [
|
| 251 |
+
3,
|
| 252 |
+
3
|
| 253 |
+
],
|
| 254 |
+
"axial_coords": [
|
| 255 |
+
1,
|
| 256 |
+
1
|
| 257 |
+
]
|
| 258 |
+
},
|
| 259 |
+
{
|
| 260 |
+
"id": 17,
|
| 261 |
+
"q": -2,
|
| 262 |
+
"r": 2,
|
| 263 |
+
"type": "ore",
|
| 264 |
+
"number": 5,
|
| 265 |
+
"has_robber": false,
|
| 266 |
+
"position": [
|
| 267 |
+
4,
|
| 268 |
+
0
|
| 269 |
+
],
|
| 270 |
+
"axial_coords": [
|
| 271 |
+
-2,
|
| 272 |
+
2
|
| 273 |
+
]
|
| 274 |
+
},
|
| 275 |
+
{
|
| 276 |
+
"id": 18,
|
| 277 |
+
"q": -1,
|
| 278 |
+
"r": 2,
|
| 279 |
+
"type": "wheat",
|
| 280 |
+
"number": 9,
|
| 281 |
+
"has_robber": false,
|
| 282 |
+
"position": [
|
| 283 |
+
4,
|
| 284 |
+
1
|
| 285 |
+
],
|
| 286 |
+
"axial_coords": [
|
| 287 |
+
-1,
|
| 288 |
+
2
|
| 289 |
+
]
|
| 290 |
+
},
|
| 291 |
+
{
|
| 292 |
+
"id": 19,
|
| 293 |
+
"q": 0,
|
| 294 |
+
"r": 2,
|
| 295 |
+
"type": "ore",
|
| 296 |
+
"number": 2,
|
| 297 |
+
"has_robber": false,
|
| 298 |
+
"position": [
|
| 299 |
+
4,
|
| 300 |
+
2
|
| 301 |
+
],
|
| 302 |
+
"axial_coords": [
|
| 303 |
+
0,
|
| 304 |
+
2
|
| 305 |
+
]
|
| 306 |
+
}
|
| 307 |
+
],
|
| 308 |
+
"settlements": [],
|
| 309 |
+
"cities": [],
|
| 310 |
+
"roads": [],
|
| 311 |
+
"players": [
|
| 312 |
+
{
|
| 313 |
+
"id": 0,
|
| 314 |
+
"name": "A",
|
| 315 |
+
"victory_points": 0,
|
| 316 |
+
"total_cards": 0,
|
| 317 |
+
"cards_list": [],
|
| 318 |
+
"dev_cards_list": [],
|
| 319 |
+
"settlements": 0,
|
| 320 |
+
"cities": 0,
|
| 321 |
+
"roads": 0,
|
| 322 |
+
"longest_road": 0,
|
| 323 |
+
"has_longest_road": false,
|
| 324 |
+
"knights": 0,
|
| 325 |
+
"knights_played": 0,
|
| 326 |
+
"has_largest_army": false
|
| 327 |
+
},
|
| 328 |
+
{
|
| 329 |
+
"id": 1,
|
| 330 |
+
"name": "B",
|
| 331 |
+
"victory_points": 0,
|
| 332 |
+
"total_cards": 0,
|
| 333 |
+
"cards_list": [],
|
| 334 |
+
"dev_cards_list": [],
|
| 335 |
+
"settlements": 0,
|
| 336 |
+
"cities": 0,
|
| 337 |
+
"roads": 0,
|
| 338 |
+
"longest_road": 0,
|
| 339 |
+
"has_longest_road": false,
|
| 340 |
+
"knights": 0,
|
| 341 |
+
"knights_played": 0,
|
| 342 |
+
"has_largest_army": false
|
| 343 |
+
},
|
| 344 |
+
{
|
| 345 |
+
"id": 2,
|
| 346 |
+
"name": "C",
|
| 347 |
+
"victory_points": 0,
|
| 348 |
+
"total_cards": 0,
|
| 349 |
+
"cards_list": [],
|
| 350 |
+
"dev_cards_list": [],
|
| 351 |
+
"settlements": 0,
|
| 352 |
+
"cities": 0,
|
| 353 |
+
"roads": 0,
|
| 354 |
+
"longest_road": 0,
|
| 355 |
+
"has_longest_road": false,
|
| 356 |
+
"knights": 0,
|
| 357 |
+
"knights_played": 0,
|
| 358 |
+
"has_largest_army": false
|
| 359 |
+
}
|
| 360 |
+
],
|
| 361 |
+
"current_player": 0,
|
| 362 |
+
"current_phase": "SETUP_FIRST_ROUND",
|
| 363 |
+
"robber_position": [
|
| 364 |
+
2,
|
| 365 |
+
2
|
| 366 |
+
],
|
| 367 |
+
"dice_result": null,
|
| 368 |
+
"points": [
|
| 369 |
+
{
|
| 370 |
+
"point_id": 1,
|
| 371 |
+
"game_coords": [
|
| 372 |
+
0,
|
| 373 |
+
0
|
| 374 |
+
],
|
| 375 |
+
"adjacent_points": [
|
| 376 |
+
2,
|
| 377 |
+
9
|
| 378 |
+
],
|
| 379 |
+
"adjacent_hexes": [
|
| 380 |
+
1
|
| 381 |
+
],
|
| 382 |
+
"pixel_coords": [
|
| 383 |
+
377.5,
|
| 384 |
+
105.14428414850131
|
| 385 |
+
]
|
| 386 |
+
},
|
| 387 |
+
{
|
| 388 |
+
"point_id": 2,
|
| 389 |
+
"game_coords": [
|
| 390 |
+
0,
|
| 391 |
+
1
|
| 392 |
+
],
|
| 393 |
+
"adjacent_points": [
|
| 394 |
+
1,
|
| 395 |
+
3
|
| 396 |
+
],
|
| 397 |
+
"adjacent_hexes": [
|
| 398 |
+
1
|
| 399 |
+
],
|
| 400 |
+
"pixel_coords": [
|
| 401 |
+
422.5,
|
| 402 |
+
105.14428414850128
|
| 403 |
+
]
|
| 404 |
+
},
|
| 405 |
+
{
|
| 406 |
+
"point_id": 3,
|
| 407 |
+
"game_coords": [
|
| 408 |
+
0,
|
| 409 |
+
2
|
| 410 |
+
],
|
| 411 |
+
"adjacent_points": [
|
| 412 |
+
2,
|
| 413 |
+
4,
|
| 414 |
+
11
|
| 415 |
+
],
|
| 416 |
+
"adjacent_hexes": [
|
| 417 |
+
2,
|
| 418 |
+
1
|
| 419 |
+
],
|
| 420 |
+
"pixel_coords": [
|
| 421 |
+
445,
|
| 422 |
+
144.11542731880104
|
| 423 |
+
]
|
| 424 |
+
},
|
| 425 |
+
{
|
| 426 |
+
"point_id": 4,
|
| 427 |
+
"game_coords": [
|
| 428 |
+
0,
|
| 429 |
+
3
|
| 430 |
+
],
|
| 431 |
+
"adjacent_points": [
|
| 432 |
+
3,
|
| 433 |
+
5
|
| 434 |
+
],
|
| 435 |
+
"adjacent_hexes": [
|
| 436 |
+
2
|
| 437 |
+
],
|
| 438 |
+
"pixel_coords": [
|
| 439 |
+
490,
|
| 440 |
+
144.11542731880104
|
| 441 |
+
]
|
| 442 |
+
},
|
| 443 |
+
{
|
| 444 |
+
"point_id": 5,
|
| 445 |
+
"game_coords": [
|
| 446 |
+
0,
|
| 447 |
+
4
|
| 448 |
+
],
|
| 449 |
+
"adjacent_points": [
|
| 450 |
+
4,
|
| 451 |
+
6,
|
| 452 |
+
13
|
| 453 |
+
],
|
| 454 |
+
"adjacent_hexes": [
|
| 455 |
+
3,
|
| 456 |
+
2
|
| 457 |
+
],
|
| 458 |
+
"pixel_coords": [
|
| 459 |
+
512.5,
|
| 460 |
+
183.08657048910078
|
| 461 |
+
]
|
| 462 |
+
},
|
| 463 |
+
{
|
| 464 |
+
"point_id": 6,
|
| 465 |
+
"game_coords": [
|
| 466 |
+
0,
|
| 467 |
+
5
|
| 468 |
+
],
|
| 469 |
+
"adjacent_points": [
|
| 470 |
+
5,
|
| 471 |
+
7
|
| 472 |
+
],
|
| 473 |
+
"adjacent_hexes": [
|
| 474 |
+
3
|
| 475 |
+
],
|
| 476 |
+
"pixel_coords": [
|
| 477 |
+
557.5,
|
| 478 |
+
183.08657048910078
|
| 479 |
+
]
|
| 480 |
+
},
|
| 481 |
+
{
|
| 482 |
+
"point_id": 7,
|
| 483 |
+
"game_coords": [
|
| 484 |
+
0,
|
| 485 |
+
6
|
| 486 |
+
],
|
| 487 |
+
"adjacent_points": [
|
| 488 |
+
6,
|
| 489 |
+
15
|
| 490 |
+
],
|
| 491 |
+
"adjacent_hexes": [
|
| 492 |
+
3
|
| 493 |
+
],
|
| 494 |
+
"pixel_coords": [
|
| 495 |
+
580,
|
| 496 |
+
222.05771365940052
|
| 497 |
+
]
|
| 498 |
+
},
|
| 499 |
+
{
|
| 500 |
+
"point_id": 8,
|
| 501 |
+
"game_coords": [
|
| 502 |
+
1,
|
| 503 |
+
0
|
| 504 |
+
],
|
| 505 |
+
"adjacent_points": [
|
| 506 |
+
9,
|
| 507 |
+
18
|
| 508 |
+
],
|
| 509 |
+
"adjacent_hexes": [
|
| 510 |
+
4
|
| 511 |
+
],
|
| 512 |
+
"pixel_coords": [
|
| 513 |
+
310,
|
| 514 |
+
144.11542731880104
|
| 515 |
+
]
|
| 516 |
+
},
|
| 517 |
+
{
|
| 518 |
+
"point_id": 9,
|
| 519 |
+
"game_coords": [
|
| 520 |
+
1,
|
| 521 |
+
1
|
| 522 |
+
],
|
| 523 |
+
"adjacent_points": [
|
| 524 |
+
8,
|
| 525 |
+
10,
|
| 526 |
+
1
|
| 527 |
+
],
|
| 528 |
+
"adjacent_hexes": [
|
| 529 |
+
4,
|
| 530 |
+
1
|
| 531 |
+
],
|
| 532 |
+
"pixel_coords": [
|
| 533 |
+
355,
|
| 534 |
+
144.11542731880104
|
| 535 |
+
]
|
| 536 |
+
},
|
| 537 |
+
{
|
| 538 |
+
"point_id": 10,
|
| 539 |
+
"game_coords": [
|
| 540 |
+
1,
|
| 541 |
+
2
|
| 542 |
+
],
|
| 543 |
+
"adjacent_points": [
|
| 544 |
+
9,
|
| 545 |
+
11,
|
| 546 |
+
20
|
| 547 |
+
],
|
| 548 |
+
"adjacent_hexes": [
|
| 549 |
+
5,
|
| 550 |
+
4,
|
| 551 |
+
1
|
| 552 |
+
],
|
| 553 |
+
"pixel_coords": [
|
| 554 |
+
377.5,
|
| 555 |
+
183.08657048910078
|
| 556 |
+
]
|
| 557 |
+
},
|
| 558 |
+
{
|
| 559 |
+
"point_id": 11,
|
| 560 |
+
"game_coords": [
|
| 561 |
+
1,
|
| 562 |
+
3
|
| 563 |
+
],
|
| 564 |
+
"adjacent_points": [
|
| 565 |
+
10,
|
| 566 |
+
12,
|
| 567 |
+
3
|
| 568 |
+
],
|
| 569 |
+
"adjacent_hexes": [
|
| 570 |
+
5,
|
| 571 |
+
2,
|
| 572 |
+
1
|
| 573 |
+
],
|
| 574 |
+
"pixel_coords": [
|
| 575 |
+
422.5,
|
| 576 |
+
183.08657048910078
|
| 577 |
+
]
|
| 578 |
+
},
|
| 579 |
+
{
|
| 580 |
+
"point_id": 12,
|
| 581 |
+
"game_coords": [
|
| 582 |
+
1,
|
| 583 |
+
4
|
| 584 |
+
],
|
| 585 |
+
"adjacent_points": [
|
| 586 |
+
11,
|
| 587 |
+
13,
|
| 588 |
+
22
|
| 589 |
+
],
|
| 590 |
+
"adjacent_hexes": [
|
| 591 |
+
6,
|
| 592 |
+
5,
|
| 593 |
+
2
|
| 594 |
+
],
|
| 595 |
+
"pixel_coords": [
|
| 596 |
+
445,
|
| 597 |
+
222.05771365940052
|
| 598 |
+
]
|
| 599 |
+
},
|
| 600 |
+
{
|
| 601 |
+
"point_id": 13,
|
| 602 |
+
"game_coords": [
|
| 603 |
+
1,
|
| 604 |
+
5
|
| 605 |
+
],
|
| 606 |
+
"adjacent_points": [
|
| 607 |
+
12,
|
| 608 |
+
14,
|
| 609 |
+
5
|
| 610 |
+
],
|
| 611 |
+
"adjacent_hexes": [
|
| 612 |
+
6,
|
| 613 |
+
3,
|
| 614 |
+
2
|
| 615 |
+
],
|
| 616 |
+
"pixel_coords": [
|
| 617 |
+
490,
|
| 618 |
+
222.05771365940052
|
| 619 |
+
]
|
| 620 |
+
},
|
| 621 |
+
{
|
| 622 |
+
"point_id": 14,
|
| 623 |
+
"game_coords": [
|
| 624 |
+
1,
|
| 625 |
+
6
|
| 626 |
+
],
|
| 627 |
+
"adjacent_points": [
|
| 628 |
+
13,
|
| 629 |
+
15,
|
| 630 |
+
24
|
| 631 |
+
],
|
| 632 |
+
"adjacent_hexes": [
|
| 633 |
+
7,
|
| 634 |
+
6,
|
| 635 |
+
3
|
| 636 |
+
],
|
| 637 |
+
"pixel_coords": [
|
| 638 |
+
512.5,
|
| 639 |
+
261.02885682970026
|
| 640 |
+
]
|
| 641 |
+
},
|
| 642 |
+
{
|
| 643 |
+
"point_id": 15,
|
| 644 |
+
"game_coords": [
|
| 645 |
+
1,
|
| 646 |
+
7
|
| 647 |
+
],
|
| 648 |
+
"adjacent_points": [
|
| 649 |
+
14,
|
| 650 |
+
16,
|
| 651 |
+
7
|
| 652 |
+
],
|
| 653 |
+
"adjacent_hexes": [
|
| 654 |
+
7,
|
| 655 |
+
3
|
| 656 |
+
],
|
| 657 |
+
"pixel_coords": [
|
| 658 |
+
557.5,
|
| 659 |
+
261.02885682970026
|
| 660 |
+
]
|
| 661 |
+
},
|
| 662 |
+
{
|
| 663 |
+
"point_id": 16,
|
| 664 |
+
"game_coords": [
|
| 665 |
+
1,
|
| 666 |
+
8
|
| 667 |
+
],
|
| 668 |
+
"adjacent_points": [
|
| 669 |
+
15,
|
| 670 |
+
26
|
| 671 |
+
],
|
| 672 |
+
"adjacent_hexes": [
|
| 673 |
+
7
|
| 674 |
+
],
|
| 675 |
+
"pixel_coords": [
|
| 676 |
+
580,
|
| 677 |
+
300
|
| 678 |
+
]
|
| 679 |
+
},
|
| 680 |
+
{
|
| 681 |
+
"point_id": 17,
|
| 682 |
+
"game_coords": [
|
| 683 |
+
2,
|
| 684 |
+
0
|
| 685 |
+
],
|
| 686 |
+
"adjacent_points": [
|
| 687 |
+
18,
|
| 688 |
+
28
|
| 689 |
+
],
|
| 690 |
+
"adjacent_hexes": [
|
| 691 |
+
8
|
| 692 |
+
],
|
| 693 |
+
"pixel_coords": [
|
| 694 |
+
242.49999999999997,
|
| 695 |
+
183.08657048910078
|
| 696 |
+
]
|
| 697 |
+
},
|
| 698 |
+
{
|
| 699 |
+
"point_id": 18,
|
| 700 |
+
"game_coords": [
|
| 701 |
+
2,
|
| 702 |
+
1
|
| 703 |
+
],
|
| 704 |
+
"adjacent_points": [
|
| 705 |
+
17,
|
| 706 |
+
19,
|
| 707 |
+
8
|
| 708 |
+
],
|
| 709 |
+
"adjacent_hexes": [
|
| 710 |
+
8,
|
| 711 |
+
4
|
| 712 |
+
],
|
| 713 |
+
"pixel_coords": [
|
| 714 |
+
287.5,
|
| 715 |
+
183.08657048910078
|
| 716 |
+
]
|
| 717 |
+
},
|
| 718 |
+
{
|
| 719 |
+
"point_id": 19,
|
| 720 |
+
"game_coords": [
|
| 721 |
+
2,
|
| 722 |
+
2
|
| 723 |
+
],
|
| 724 |
+
"adjacent_points": [
|
| 725 |
+
18,
|
| 726 |
+
20,
|
| 727 |
+
30
|
| 728 |
+
],
|
| 729 |
+
"adjacent_hexes": [
|
| 730 |
+
9,
|
| 731 |
+
8,
|
| 732 |
+
4
|
| 733 |
+
],
|
| 734 |
+
"pixel_coords": [
|
| 735 |
+
310,
|
| 736 |
+
222.05771365940052
|
| 737 |
+
]
|
| 738 |
+
},
|
| 739 |
+
{
|
| 740 |
+
"point_id": 20,
|
| 741 |
+
"game_coords": [
|
| 742 |
+
2,
|
| 743 |
+
3
|
| 744 |
+
],
|
| 745 |
+
"adjacent_points": [
|
| 746 |
+
19,
|
| 747 |
+
21,
|
| 748 |
+
10
|
| 749 |
+
],
|
| 750 |
+
"adjacent_hexes": [
|
| 751 |
+
9,
|
| 752 |
+
5,
|
| 753 |
+
4
|
| 754 |
+
],
|
| 755 |
+
"pixel_coords": [
|
| 756 |
+
355,
|
| 757 |
+
222.05771365940052
|
| 758 |
+
]
|
| 759 |
+
},
|
| 760 |
+
{
|
| 761 |
+
"point_id": 21,
|
| 762 |
+
"game_coords": [
|
| 763 |
+
2,
|
| 764 |
+
4
|
| 765 |
+
],
|
| 766 |
+
"adjacent_points": [
|
| 767 |
+
20,
|
| 768 |
+
22,
|
| 769 |
+
32
|
| 770 |
+
],
|
| 771 |
+
"adjacent_hexes": [
|
| 772 |
+
10,
|
| 773 |
+
9,
|
| 774 |
+
5
|
| 775 |
+
],
|
| 776 |
+
"pixel_coords": [
|
| 777 |
+
377.5,
|
| 778 |
+
261.02885682970026
|
| 779 |
+
]
|
| 780 |
+
},
|
| 781 |
+
{
|
| 782 |
+
"point_id": 22,
|
| 783 |
+
"game_coords": [
|
| 784 |
+
2,
|
| 785 |
+
5
|
| 786 |
+
],
|
| 787 |
+
"adjacent_points": [
|
| 788 |
+
21,
|
| 789 |
+
23,
|
| 790 |
+
12
|
| 791 |
+
],
|
| 792 |
+
"adjacent_hexes": [
|
| 793 |
+
10,
|
| 794 |
+
6,
|
| 795 |
+
5
|
| 796 |
+
],
|
| 797 |
+
"pixel_coords": [
|
| 798 |
+
422.5,
|
| 799 |
+
261.02885682970026
|
| 800 |
+
]
|
| 801 |
+
},
|
| 802 |
+
{
|
| 803 |
+
"point_id": 23,
|
| 804 |
+
"game_coords": [
|
| 805 |
+
2,
|
| 806 |
+
6
|
| 807 |
+
],
|
| 808 |
+
"adjacent_points": [
|
| 809 |
+
22,
|
| 810 |
+
24,
|
| 811 |
+
34
|
| 812 |
+
],
|
| 813 |
+
"adjacent_hexes": [
|
| 814 |
+
11,
|
| 815 |
+
10,
|
| 816 |
+
6
|
| 817 |
+
],
|
| 818 |
+
"pixel_coords": [
|
| 819 |
+
445,
|
| 820 |
+
300
|
| 821 |
+
]
|
| 822 |
+
},
|
| 823 |
+
{
|
| 824 |
+
"point_id": 24,
|
| 825 |
+
"game_coords": [
|
| 826 |
+
2,
|
| 827 |
+
7
|
| 828 |
+
],
|
| 829 |
+
"adjacent_points": [
|
| 830 |
+
23,
|
| 831 |
+
25,
|
| 832 |
+
14
|
| 833 |
+
],
|
| 834 |
+
"adjacent_hexes": [
|
| 835 |
+
11,
|
| 836 |
+
7,
|
| 837 |
+
6
|
| 838 |
+
],
|
| 839 |
+
"pixel_coords": [
|
| 840 |
+
490,
|
| 841 |
+
300
|
| 842 |
+
]
|
| 843 |
+
},
|
| 844 |
+
{
|
| 845 |
+
"point_id": 25,
|
| 846 |
+
"game_coords": [
|
| 847 |
+
2,
|
| 848 |
+
8
|
| 849 |
+
],
|
| 850 |
+
"adjacent_points": [
|
| 851 |
+
24,
|
| 852 |
+
26,
|
| 853 |
+
36
|
| 854 |
+
],
|
| 855 |
+
"adjacent_hexes": [
|
| 856 |
+
12,
|
| 857 |
+
11,
|
| 858 |
+
7
|
| 859 |
+
],
|
| 860 |
+
"pixel_coords": [
|
| 861 |
+
512.5,
|
| 862 |
+
338.97114317029974
|
| 863 |
+
]
|
| 864 |
+
},
|
| 865 |
+
{
|
| 866 |
+
"point_id": 26,
|
| 867 |
+
"game_coords": [
|
| 868 |
+
2,
|
| 869 |
+
9
|
| 870 |
+
],
|
| 871 |
+
"adjacent_points": [
|
| 872 |
+
25,
|
| 873 |
+
27,
|
| 874 |
+
16
|
| 875 |
+
],
|
| 876 |
+
"adjacent_hexes": [
|
| 877 |
+
12,
|
| 878 |
+
7
|
| 879 |
+
],
|
| 880 |
+
"pixel_coords": [
|
| 881 |
+
557.5,
|
| 882 |
+
338.97114317029974
|
| 883 |
+
]
|
| 884 |
+
},
|
| 885 |
+
{
|
| 886 |
+
"point_id": 27,
|
| 887 |
+
"game_coords": [
|
| 888 |
+
2,
|
| 889 |
+
10
|
| 890 |
+
],
|
| 891 |
+
"adjacent_points": [
|
| 892 |
+
26,
|
| 893 |
+
38
|
| 894 |
+
],
|
| 895 |
+
"adjacent_hexes": [
|
| 896 |
+
12
|
| 897 |
+
],
|
| 898 |
+
"pixel_coords": [
|
| 899 |
+
580,
|
| 900 |
+
377.9422863405995
|
| 901 |
+
]
|
| 902 |
+
},
|
| 903 |
+
{
|
| 904 |
+
"point_id": 28,
|
| 905 |
+
"game_coords": [
|
| 906 |
+
3,
|
| 907 |
+
0
|
| 908 |
+
],
|
| 909 |
+
"adjacent_points": [
|
| 910 |
+
29,
|
| 911 |
+
17
|
| 912 |
+
],
|
| 913 |
+
"adjacent_hexes": [
|
| 914 |
+
8
|
| 915 |
+
],
|
| 916 |
+
"pixel_coords": [
|
| 917 |
+
220,
|
| 918 |
+
222.05771365940052
|
| 919 |
+
]
|
| 920 |
+
},
|
| 921 |
+
{
|
| 922 |
+
"point_id": 29,
|
| 923 |
+
"game_coords": [
|
| 924 |
+
3,
|
| 925 |
+
1
|
| 926 |
+
],
|
| 927 |
+
"adjacent_points": [
|
| 928 |
+
28,
|
| 929 |
+
30,
|
| 930 |
+
39
|
| 931 |
+
],
|
| 932 |
+
"adjacent_hexes": [
|
| 933 |
+
13,
|
| 934 |
+
8
|
| 935 |
+
],
|
| 936 |
+
"pixel_coords": [
|
| 937 |
+
242.5,
|
| 938 |
+
261.02885682970026
|
| 939 |
+
]
|
| 940 |
+
},
|
| 941 |
+
{
|
| 942 |
+
"point_id": 30,
|
| 943 |
+
"game_coords": [
|
| 944 |
+
3,
|
| 945 |
+
2
|
| 946 |
+
],
|
| 947 |
+
"adjacent_points": [
|
| 948 |
+
29,
|
| 949 |
+
31,
|
| 950 |
+
19
|
| 951 |
+
],
|
| 952 |
+
"adjacent_hexes": [
|
| 953 |
+
13,
|
| 954 |
+
9,
|
| 955 |
+
8
|
| 956 |
+
],
|
| 957 |
+
"pixel_coords": [
|
| 958 |
+
287.5,
|
| 959 |
+
261.02885682970026
|
| 960 |
+
]
|
| 961 |
+
},
|
| 962 |
+
{
|
| 963 |
+
"point_id": 31,
|
| 964 |
+
"game_coords": [
|
| 965 |
+
3,
|
| 966 |
+
3
|
| 967 |
+
],
|
| 968 |
+
"adjacent_points": [
|
| 969 |
+
30,
|
| 970 |
+
32,
|
| 971 |
+
41
|
| 972 |
+
],
|
| 973 |
+
"adjacent_hexes": [
|
| 974 |
+
14,
|
| 975 |
+
13,
|
| 976 |
+
9
|
| 977 |
+
],
|
| 978 |
+
"pixel_coords": [
|
| 979 |
+
310,
|
| 980 |
+
300
|
| 981 |
+
]
|
| 982 |
+
},
|
| 983 |
+
{
|
| 984 |
+
"point_id": 32,
|
| 985 |
+
"game_coords": [
|
| 986 |
+
3,
|
| 987 |
+
4
|
| 988 |
+
],
|
| 989 |
+
"adjacent_points": [
|
| 990 |
+
31,
|
| 991 |
+
33,
|
| 992 |
+
21
|
| 993 |
+
],
|
| 994 |
+
"adjacent_hexes": [
|
| 995 |
+
14,
|
| 996 |
+
10,
|
| 997 |
+
9
|
| 998 |
+
],
|
| 999 |
+
"pixel_coords": [
|
| 1000 |
+
355,
|
| 1001 |
+
300
|
| 1002 |
+
]
|
| 1003 |
+
},
|
| 1004 |
+
{
|
| 1005 |
+
"point_id": 33,
|
| 1006 |
+
"game_coords": [
|
| 1007 |
+
3,
|
| 1008 |
+
5
|
| 1009 |
+
],
|
| 1010 |
+
"adjacent_points": [
|
| 1011 |
+
32,
|
| 1012 |
+
34,
|
| 1013 |
+
43
|
| 1014 |
+
],
|
| 1015 |
+
"adjacent_hexes": [
|
| 1016 |
+
15,
|
| 1017 |
+
14,
|
| 1018 |
+
10
|
| 1019 |
+
],
|
| 1020 |
+
"pixel_coords": [
|
| 1021 |
+
377.5,
|
| 1022 |
+
338.97114317029974
|
| 1023 |
+
]
|
| 1024 |
+
},
|
| 1025 |
+
{
|
| 1026 |
+
"point_id": 34,
|
| 1027 |
+
"game_coords": [
|
| 1028 |
+
3,
|
| 1029 |
+
6
|
| 1030 |
+
],
|
| 1031 |
+
"adjacent_points": [
|
| 1032 |
+
33,
|
| 1033 |
+
35,
|
| 1034 |
+
23
|
| 1035 |
+
],
|
| 1036 |
+
"adjacent_hexes": [
|
| 1037 |
+
15,
|
| 1038 |
+
11,
|
| 1039 |
+
10
|
| 1040 |
+
],
|
| 1041 |
+
"pixel_coords": [
|
| 1042 |
+
422.5,
|
| 1043 |
+
338.97114317029974
|
| 1044 |
+
]
|
| 1045 |
+
},
|
| 1046 |
+
{
|
| 1047 |
+
"point_id": 35,
|
| 1048 |
+
"game_coords": [
|
| 1049 |
+
3,
|
| 1050 |
+
7
|
| 1051 |
+
],
|
| 1052 |
+
"adjacent_points": [
|
| 1053 |
+
34,
|
| 1054 |
+
36,
|
| 1055 |
+
45
|
| 1056 |
+
],
|
| 1057 |
+
"adjacent_hexes": [
|
| 1058 |
+
16,
|
| 1059 |
+
15,
|
| 1060 |
+
11
|
| 1061 |
+
],
|
| 1062 |
+
"pixel_coords": [
|
| 1063 |
+
445,
|
| 1064 |
+
377.9422863405995
|
| 1065 |
+
]
|
| 1066 |
+
},
|
| 1067 |
+
{
|
| 1068 |
+
"point_id": 36,
|
| 1069 |
+
"game_coords": [
|
| 1070 |
+
3,
|
| 1071 |
+
8
|
| 1072 |
+
],
|
| 1073 |
+
"adjacent_points": [
|
| 1074 |
+
35,
|
| 1075 |
+
37,
|
| 1076 |
+
25
|
| 1077 |
+
],
|
| 1078 |
+
"adjacent_hexes": [
|
| 1079 |
+
16,
|
| 1080 |
+
12,
|
| 1081 |
+
11
|
| 1082 |
+
],
|
| 1083 |
+
"pixel_coords": [
|
| 1084 |
+
490,
|
| 1085 |
+
377.9422863405995
|
| 1086 |
+
]
|
| 1087 |
+
},
|
| 1088 |
+
{
|
| 1089 |
+
"point_id": 37,
|
| 1090 |
+
"game_coords": [
|
| 1091 |
+
3,
|
| 1092 |
+
9
|
| 1093 |
+
],
|
| 1094 |
+
"adjacent_points": [
|
| 1095 |
+
36,
|
| 1096 |
+
38,
|
| 1097 |
+
47
|
| 1098 |
+
],
|
| 1099 |
+
"adjacent_hexes": [
|
| 1100 |
+
16,
|
| 1101 |
+
12
|
| 1102 |
+
],
|
| 1103 |
+
"pixel_coords": [
|
| 1104 |
+
512.5,
|
| 1105 |
+
416.9134295108992
|
| 1106 |
+
]
|
| 1107 |
+
},
|
| 1108 |
+
{
|
| 1109 |
+
"point_id": 38,
|
| 1110 |
+
"game_coords": [
|
| 1111 |
+
3,
|
| 1112 |
+
10
|
| 1113 |
+
],
|
| 1114 |
+
"adjacent_points": [
|
| 1115 |
+
37,
|
| 1116 |
+
27
|
| 1117 |
+
],
|
| 1118 |
+
"adjacent_hexes": [
|
| 1119 |
+
12
|
| 1120 |
+
],
|
| 1121 |
+
"pixel_coords": [
|
| 1122 |
+
557.5,
|
| 1123 |
+
416.9134295108992
|
| 1124 |
+
]
|
| 1125 |
+
},
|
| 1126 |
+
{
|
| 1127 |
+
"point_id": 39,
|
| 1128 |
+
"game_coords": [
|
| 1129 |
+
4,
|
| 1130 |
+
0
|
| 1131 |
+
],
|
| 1132 |
+
"adjacent_points": [
|
| 1133 |
+
40,
|
| 1134 |
+
29
|
| 1135 |
+
],
|
| 1136 |
+
"adjacent_hexes": [
|
| 1137 |
+
13
|
| 1138 |
+
],
|
| 1139 |
+
"pixel_coords": [
|
| 1140 |
+
220,
|
| 1141 |
+
300
|
| 1142 |
+
]
|
| 1143 |
+
},
|
| 1144 |
+
{
|
| 1145 |
+
"point_id": 40,
|
| 1146 |
+
"game_coords": [
|
| 1147 |
+
4,
|
| 1148 |
+
1
|
| 1149 |
+
],
|
| 1150 |
+
"adjacent_points": [
|
| 1151 |
+
39,
|
| 1152 |
+
41,
|
| 1153 |
+
48
|
| 1154 |
+
],
|
| 1155 |
+
"adjacent_hexes": [
|
| 1156 |
+
17,
|
| 1157 |
+
13
|
| 1158 |
+
],
|
| 1159 |
+
"pixel_coords": [
|
| 1160 |
+
242.5,
|
| 1161 |
+
338.97114317029974
|
| 1162 |
+
]
|
| 1163 |
+
},
|
| 1164 |
+
{
|
| 1165 |
+
"point_id": 41,
|
| 1166 |
+
"game_coords": [
|
| 1167 |
+
4,
|
| 1168 |
+
2
|
| 1169 |
+
],
|
| 1170 |
+
"adjacent_points": [
|
| 1171 |
+
40,
|
| 1172 |
+
42,
|
| 1173 |
+
31
|
| 1174 |
+
],
|
| 1175 |
+
"adjacent_hexes": [
|
| 1176 |
+
17,
|
| 1177 |
+
14,
|
| 1178 |
+
13
|
| 1179 |
+
],
|
| 1180 |
+
"pixel_coords": [
|
| 1181 |
+
287.5,
|
| 1182 |
+
338.97114317029974
|
| 1183 |
+
]
|
| 1184 |
+
},
|
| 1185 |
+
{
|
| 1186 |
+
"point_id": 42,
|
| 1187 |
+
"game_coords": [
|
| 1188 |
+
4,
|
| 1189 |
+
3
|
| 1190 |
+
],
|
| 1191 |
+
"adjacent_points": [
|
| 1192 |
+
41,
|
| 1193 |
+
43,
|
| 1194 |
+
50
|
| 1195 |
+
],
|
| 1196 |
+
"adjacent_hexes": [
|
| 1197 |
+
18,
|
| 1198 |
+
17,
|
| 1199 |
+
14
|
| 1200 |
+
],
|
| 1201 |
+
"pixel_coords": [
|
| 1202 |
+
310,
|
| 1203 |
+
377.9422863405995
|
| 1204 |
+
]
|
| 1205 |
+
},
|
| 1206 |
+
{
|
| 1207 |
+
"point_id": 43,
|
| 1208 |
+
"game_coords": [
|
| 1209 |
+
4,
|
| 1210 |
+
4
|
| 1211 |
+
],
|
| 1212 |
+
"adjacent_points": [
|
| 1213 |
+
42,
|
| 1214 |
+
44,
|
| 1215 |
+
33
|
| 1216 |
+
],
|
| 1217 |
+
"adjacent_hexes": [
|
| 1218 |
+
18,
|
| 1219 |
+
15,
|
| 1220 |
+
14
|
| 1221 |
+
],
|
| 1222 |
+
"pixel_coords": [
|
| 1223 |
+
355,
|
| 1224 |
+
377.9422863405995
|
| 1225 |
+
]
|
| 1226 |
+
},
|
| 1227 |
+
{
|
| 1228 |
+
"point_id": 44,
|
| 1229 |
+
"game_coords": [
|
| 1230 |
+
4,
|
| 1231 |
+
5
|
| 1232 |
+
],
|
| 1233 |
+
"adjacent_points": [
|
| 1234 |
+
43,
|
| 1235 |
+
45,
|
| 1236 |
+
52
|
| 1237 |
+
],
|
| 1238 |
+
"adjacent_hexes": [
|
| 1239 |
+
19,
|
| 1240 |
+
18,
|
| 1241 |
+
15
|
| 1242 |
+
],
|
| 1243 |
+
"pixel_coords": [
|
| 1244 |
+
377.5,
|
| 1245 |
+
416.9134295108992
|
| 1246 |
+
]
|
| 1247 |
+
},
|
| 1248 |
+
{
|
| 1249 |
+
"point_id": 45,
|
| 1250 |
+
"game_coords": [
|
| 1251 |
+
4,
|
| 1252 |
+
6
|
| 1253 |
+
],
|
| 1254 |
+
"adjacent_points": [
|
| 1255 |
+
44,
|
| 1256 |
+
46,
|
| 1257 |
+
35
|
| 1258 |
+
],
|
| 1259 |
+
"adjacent_hexes": [
|
| 1260 |
+
19,
|
| 1261 |
+
16,
|
| 1262 |
+
15
|
| 1263 |
+
],
|
| 1264 |
+
"pixel_coords": [
|
| 1265 |
+
422.5,
|
| 1266 |
+
416.9134295108992
|
| 1267 |
+
]
|
| 1268 |
+
},
|
| 1269 |
+
{
|
| 1270 |
+
"point_id": 46,
|
| 1271 |
+
"game_coords": [
|
| 1272 |
+
4,
|
| 1273 |
+
7
|
| 1274 |
+
],
|
| 1275 |
+
"adjacent_points": [
|
| 1276 |
+
45,
|
| 1277 |
+
47,
|
| 1278 |
+
54
|
| 1279 |
+
],
|
| 1280 |
+
"adjacent_hexes": [
|
| 1281 |
+
19,
|
| 1282 |
+
16
|
| 1283 |
+
],
|
| 1284 |
+
"pixel_coords": [
|
| 1285 |
+
445,
|
| 1286 |
+
455.88457268119896
|
| 1287 |
+
]
|
| 1288 |
+
},
|
| 1289 |
+
{
|
| 1290 |
+
"point_id": 47,
|
| 1291 |
+
"game_coords": [
|
| 1292 |
+
4,
|
| 1293 |
+
8
|
| 1294 |
+
],
|
| 1295 |
+
"adjacent_points": [
|
| 1296 |
+
46,
|
| 1297 |
+
37
|
| 1298 |
+
],
|
| 1299 |
+
"adjacent_hexes": [
|
| 1300 |
+
16
|
| 1301 |
+
],
|
| 1302 |
+
"pixel_coords": [
|
| 1303 |
+
490,
|
| 1304 |
+
455.88457268119896
|
| 1305 |
+
]
|
| 1306 |
+
},
|
| 1307 |
+
{
|
| 1308 |
+
"point_id": 48,
|
| 1309 |
+
"game_coords": [
|
| 1310 |
+
5,
|
| 1311 |
+
0
|
| 1312 |
+
],
|
| 1313 |
+
"adjacent_points": [
|
| 1314 |
+
49,
|
| 1315 |
+
40
|
| 1316 |
+
],
|
| 1317 |
+
"adjacent_hexes": [
|
| 1318 |
+
17
|
| 1319 |
+
],
|
| 1320 |
+
"pixel_coords": [
|
| 1321 |
+
220,
|
| 1322 |
+
377.9422863405995
|
| 1323 |
+
]
|
| 1324 |
+
},
|
| 1325 |
+
{
|
| 1326 |
+
"point_id": 49,
|
| 1327 |
+
"game_coords": [
|
| 1328 |
+
5,
|
| 1329 |
+
1
|
| 1330 |
+
],
|
| 1331 |
+
"adjacent_points": [
|
| 1332 |
+
48,
|
| 1333 |
+
50
|
| 1334 |
+
],
|
| 1335 |
+
"adjacent_hexes": [
|
| 1336 |
+
17
|
| 1337 |
+
],
|
| 1338 |
+
"pixel_coords": [
|
| 1339 |
+
242.5,
|
| 1340 |
+
416.9134295108992
|
| 1341 |
+
]
|
| 1342 |
+
},
|
| 1343 |
+
{
|
| 1344 |
+
"point_id": 50,
|
| 1345 |
+
"game_coords": [
|
| 1346 |
+
5,
|
| 1347 |
+
2
|
| 1348 |
+
],
|
| 1349 |
+
"adjacent_points": [
|
| 1350 |
+
49,
|
| 1351 |
+
51,
|
| 1352 |
+
42
|
| 1353 |
+
],
|
| 1354 |
+
"adjacent_hexes": [
|
| 1355 |
+
18,
|
| 1356 |
+
17
|
| 1357 |
+
],
|
| 1358 |
+
"pixel_coords": [
|
| 1359 |
+
287.5,
|
| 1360 |
+
416.9134295108992
|
| 1361 |
+
]
|
| 1362 |
+
},
|
| 1363 |
+
{
|
| 1364 |
+
"point_id": 51,
|
| 1365 |
+
"game_coords": [
|
| 1366 |
+
5,
|
| 1367 |
+
3
|
| 1368 |
+
],
|
| 1369 |
+
"adjacent_points": [
|
| 1370 |
+
50,
|
| 1371 |
+
52
|
| 1372 |
+
],
|
| 1373 |
+
"adjacent_hexes": [
|
| 1374 |
+
18
|
| 1375 |
+
],
|
| 1376 |
+
"pixel_coords": [
|
| 1377 |
+
310,
|
| 1378 |
+
455.88457268119896
|
| 1379 |
+
]
|
| 1380 |
+
},
|
| 1381 |
+
{
|
| 1382 |
+
"point_id": 52,
|
| 1383 |
+
"game_coords": [
|
| 1384 |
+
5,
|
| 1385 |
+
4
|
| 1386 |
+
],
|
| 1387 |
+
"adjacent_points": [
|
| 1388 |
+
51,
|
| 1389 |
+
53,
|
| 1390 |
+
44
|
| 1391 |
+
],
|
| 1392 |
+
"adjacent_hexes": [
|
| 1393 |
+
19,
|
| 1394 |
+
18
|
| 1395 |
+
],
|
| 1396 |
+
"pixel_coords": [
|
| 1397 |
+
355,
|
| 1398 |
+
455.88457268119896
|
| 1399 |
+
]
|
| 1400 |
+
},
|
| 1401 |
+
{
|
| 1402 |
+
"point_id": 53,
|
| 1403 |
+
"game_coords": [
|
| 1404 |
+
5,
|
| 1405 |
+
5
|
| 1406 |
+
],
|
| 1407 |
+
"adjacent_points": [
|
| 1408 |
+
52,
|
| 1409 |
+
54
|
| 1410 |
+
],
|
| 1411 |
+
"adjacent_hexes": [
|
| 1412 |
+
19
|
| 1413 |
+
],
|
| 1414 |
+
"pixel_coords": [
|
| 1415 |
+
377.5,
|
| 1416 |
+
494.8557158514987
|
| 1417 |
+
]
|
| 1418 |
+
},
|
| 1419 |
+
{
|
| 1420 |
+
"point_id": 54,
|
| 1421 |
+
"game_coords": [
|
| 1422 |
+
5,
|
| 1423 |
+
6
|
| 1424 |
+
],
|
| 1425 |
+
"adjacent_points": [
|
| 1426 |
+
53,
|
| 1427 |
+
46
|
| 1428 |
+
],
|
| 1429 |
+
"adjacent_hexes": [
|
| 1430 |
+
19
|
| 1431 |
+
],
|
| 1432 |
+
"pixel_coords": [
|
| 1433 |
+
422.5,
|
| 1434 |
+
494.8557158514987
|
| 1435 |
+
]
|
| 1436 |
+
}
|
| 1437 |
+
],
|
| 1438 |
+
"board_graph": {
|
| 1439 |
+
"adjacency": {
|
| 1440 |
+
"1": [
|
| 1441 |
+
2,
|
| 1442 |
+
9
|
| 1443 |
+
],
|
| 1444 |
+
"2": [
|
| 1445 |
+
1,
|
| 1446 |
+
3
|
| 1447 |
+
],
|
| 1448 |
+
"3": [
|
| 1449 |
+
2,
|
| 1450 |
+
4,
|
| 1451 |
+
11
|
| 1452 |
+
],
|
| 1453 |
+
"4": [
|
| 1454 |
+
3,
|
| 1455 |
+
5
|
| 1456 |
+
],
|
| 1457 |
+
"5": [
|
| 1458 |
+
4,
|
| 1459 |
+
6,
|
| 1460 |
+
13
|
| 1461 |
+
],
|
| 1462 |
+
"6": [
|
| 1463 |
+
5,
|
| 1464 |
+
7
|
| 1465 |
+
],
|
| 1466 |
+
"7": [
|
| 1467 |
+
6,
|
| 1468 |
+
15
|
| 1469 |
+
],
|
| 1470 |
+
"8": [
|
| 1471 |
+
9,
|
| 1472 |
+
18
|
| 1473 |
+
],
|
| 1474 |
+
"9": [
|
| 1475 |
+
8,
|
| 1476 |
+
10,
|
| 1477 |
+
1
|
| 1478 |
+
],
|
| 1479 |
+
"10": [
|
| 1480 |
+
9,
|
| 1481 |
+
11,
|
| 1482 |
+
20
|
| 1483 |
+
],
|
| 1484 |
+
"11": [
|
| 1485 |
+
10,
|
| 1486 |
+
12,
|
| 1487 |
+
3
|
| 1488 |
+
],
|
| 1489 |
+
"12": [
|
| 1490 |
+
11,
|
| 1491 |
+
13,
|
| 1492 |
+
22
|
| 1493 |
+
],
|
| 1494 |
+
"13": [
|
| 1495 |
+
12,
|
| 1496 |
+
14,
|
| 1497 |
+
5
|
| 1498 |
+
],
|
| 1499 |
+
"14": [
|
| 1500 |
+
13,
|
| 1501 |
+
15,
|
| 1502 |
+
24
|
| 1503 |
+
],
|
| 1504 |
+
"15": [
|
| 1505 |
+
14,
|
| 1506 |
+
16,
|
| 1507 |
+
7
|
| 1508 |
+
],
|
| 1509 |
+
"16": [
|
| 1510 |
+
15,
|
| 1511 |
+
26
|
| 1512 |
+
],
|
| 1513 |
+
"17": [
|
| 1514 |
+
18,
|
| 1515 |
+
28
|
| 1516 |
+
],
|
| 1517 |
+
"18": [
|
| 1518 |
+
17,
|
| 1519 |
+
19,
|
| 1520 |
+
8
|
| 1521 |
+
],
|
| 1522 |
+
"19": [
|
| 1523 |
+
18,
|
| 1524 |
+
20,
|
| 1525 |
+
30
|
| 1526 |
+
],
|
| 1527 |
+
"20": [
|
| 1528 |
+
19,
|
| 1529 |
+
21,
|
| 1530 |
+
10
|
| 1531 |
+
],
|
| 1532 |
+
"21": [
|
| 1533 |
+
20,
|
| 1534 |
+
22,
|
| 1535 |
+
32
|
| 1536 |
+
],
|
| 1537 |
+
"22": [
|
| 1538 |
+
21,
|
| 1539 |
+
23,
|
| 1540 |
+
12
|
| 1541 |
+
],
|
| 1542 |
+
"23": [
|
| 1543 |
+
22,
|
| 1544 |
+
24,
|
| 1545 |
+
34
|
| 1546 |
+
],
|
| 1547 |
+
"24": [
|
| 1548 |
+
23,
|
| 1549 |
+
25,
|
| 1550 |
+
14
|
| 1551 |
+
],
|
| 1552 |
+
"25": [
|
| 1553 |
+
24,
|
| 1554 |
+
26,
|
| 1555 |
+
36
|
| 1556 |
+
],
|
| 1557 |
+
"26": [
|
| 1558 |
+
25,
|
| 1559 |
+
27,
|
| 1560 |
+
16
|
| 1561 |
+
],
|
| 1562 |
+
"27": [
|
| 1563 |
+
26,
|
| 1564 |
+
38
|
| 1565 |
+
],
|
| 1566 |
+
"28": [
|
| 1567 |
+
29,
|
| 1568 |
+
17
|
| 1569 |
+
],
|
| 1570 |
+
"29": [
|
| 1571 |
+
28,
|
| 1572 |
+
30,
|
| 1573 |
+
39
|
| 1574 |
+
],
|
| 1575 |
+
"30": [
|
| 1576 |
+
29,
|
| 1577 |
+
31,
|
| 1578 |
+
19
|
| 1579 |
+
],
|
| 1580 |
+
"31": [
|
| 1581 |
+
30,
|
| 1582 |
+
32,
|
| 1583 |
+
41
|
| 1584 |
+
],
|
| 1585 |
+
"32": [
|
| 1586 |
+
31,
|
| 1587 |
+
33,
|
| 1588 |
+
21
|
| 1589 |
+
],
|
| 1590 |
+
"33": [
|
| 1591 |
+
32,
|
| 1592 |
+
34,
|
| 1593 |
+
43
|
| 1594 |
+
],
|
| 1595 |
+
"34": [
|
| 1596 |
+
33,
|
| 1597 |
+
35,
|
| 1598 |
+
23
|
| 1599 |
+
],
|
| 1600 |
+
"35": [
|
| 1601 |
+
34,
|
| 1602 |
+
36,
|
| 1603 |
+
45
|
| 1604 |
+
],
|
| 1605 |
+
"36": [
|
| 1606 |
+
35,
|
| 1607 |
+
37,
|
| 1608 |
+
25
|
| 1609 |
+
],
|
| 1610 |
+
"37": [
|
| 1611 |
+
36,
|
| 1612 |
+
38,
|
| 1613 |
+
47
|
| 1614 |
+
],
|
| 1615 |
+
"38": [
|
| 1616 |
+
37,
|
| 1617 |
+
27
|
| 1618 |
+
],
|
| 1619 |
+
"39": [
|
| 1620 |
+
40,
|
| 1621 |
+
29
|
| 1622 |
+
],
|
| 1623 |
+
"40": [
|
| 1624 |
+
39,
|
| 1625 |
+
41,
|
| 1626 |
+
48
|
| 1627 |
+
],
|
| 1628 |
+
"41": [
|
| 1629 |
+
40,
|
| 1630 |
+
42,
|
| 1631 |
+
31
|
| 1632 |
+
],
|
| 1633 |
+
"42": [
|
| 1634 |
+
41,
|
| 1635 |
+
43,
|
| 1636 |
+
50
|
| 1637 |
+
],
|
| 1638 |
+
"43": [
|
| 1639 |
+
42,
|
| 1640 |
+
44,
|
| 1641 |
+
33
|
| 1642 |
+
],
|
| 1643 |
+
"44": [
|
| 1644 |
+
43,
|
| 1645 |
+
45,
|
| 1646 |
+
52
|
| 1647 |
+
],
|
| 1648 |
+
"45": [
|
| 1649 |
+
44,
|
| 1650 |
+
46,
|
| 1651 |
+
35
|
| 1652 |
+
],
|
| 1653 |
+
"46": [
|
| 1654 |
+
45,
|
| 1655 |
+
47,
|
| 1656 |
+
54
|
| 1657 |
+
],
|
| 1658 |
+
"47": [
|
| 1659 |
+
46,
|
| 1660 |
+
37
|
| 1661 |
+
],
|
| 1662 |
+
"48": [
|
| 1663 |
+
49,
|
| 1664 |
+
40
|
| 1665 |
+
],
|
| 1666 |
+
"49": [
|
| 1667 |
+
48,
|
| 1668 |
+
50
|
| 1669 |
+
],
|
| 1670 |
+
"50": [
|
| 1671 |
+
49,
|
| 1672 |
+
51,
|
| 1673 |
+
42
|
| 1674 |
+
],
|
| 1675 |
+
"51": [
|
| 1676 |
+
50,
|
| 1677 |
+
52
|
| 1678 |
+
],
|
| 1679 |
+
"52": [
|
| 1680 |
+
51,
|
| 1681 |
+
53,
|
| 1682 |
+
44
|
| 1683 |
+
],
|
| 1684 |
+
"53": [
|
| 1685 |
+
52,
|
| 1686 |
+
54
|
| 1687 |
+
],
|
| 1688 |
+
"54": [
|
| 1689 |
+
53,
|
| 1690 |
+
46
|
| 1691 |
+
]
|
| 1692 |
+
},
|
| 1693 |
+
"hex_to_points": {
|
| 1694 |
+
"1": [
|
| 1695 |
+
1,
|
| 1696 |
+
2,
|
| 1697 |
+
3,
|
| 1698 |
+
9,
|
| 1699 |
+
10,
|
| 1700 |
+
11
|
| 1701 |
+
],
|
| 1702 |
+
"2": [
|
| 1703 |
+
3,
|
| 1704 |
+
4,
|
| 1705 |
+
5,
|
| 1706 |
+
11,
|
| 1707 |
+
12,
|
| 1708 |
+
13
|
| 1709 |
+
],
|
| 1710 |
+
"3": [
|
| 1711 |
+
5,
|
| 1712 |
+
6,
|
| 1713 |
+
7,
|
| 1714 |
+
13,
|
| 1715 |
+
14,
|
| 1716 |
+
15
|
| 1717 |
+
],
|
| 1718 |
+
"4": [
|
| 1719 |
+
8,
|
| 1720 |
+
9,
|
| 1721 |
+
10,
|
| 1722 |
+
18,
|
| 1723 |
+
19,
|
| 1724 |
+
20
|
| 1725 |
+
],
|
| 1726 |
+
"5": [
|
| 1727 |
+
10,
|
| 1728 |
+
11,
|
| 1729 |
+
12,
|
| 1730 |
+
20,
|
| 1731 |
+
21,
|
| 1732 |
+
22
|
| 1733 |
+
],
|
| 1734 |
+
"6": [
|
| 1735 |
+
12,
|
| 1736 |
+
13,
|
| 1737 |
+
14,
|
| 1738 |
+
22,
|
| 1739 |
+
23,
|
| 1740 |
+
24
|
| 1741 |
+
],
|
| 1742 |
+
"7": [
|
| 1743 |
+
14,
|
| 1744 |
+
15,
|
| 1745 |
+
16,
|
| 1746 |
+
24,
|
| 1747 |
+
25,
|
| 1748 |
+
26
|
| 1749 |
+
],
|
| 1750 |
+
"8": [
|
| 1751 |
+
17,
|
| 1752 |
+
18,
|
| 1753 |
+
19,
|
| 1754 |
+
28,
|
| 1755 |
+
29,
|
| 1756 |
+
30
|
| 1757 |
+
],
|
| 1758 |
+
"9": [
|
| 1759 |
+
19,
|
| 1760 |
+
20,
|
| 1761 |
+
21,
|
| 1762 |
+
30,
|
| 1763 |
+
31,
|
| 1764 |
+
32
|
| 1765 |
+
],
|
| 1766 |
+
"10": [
|
| 1767 |
+
21,
|
| 1768 |
+
22,
|
| 1769 |
+
23,
|
| 1770 |
+
32,
|
| 1771 |
+
33,
|
| 1772 |
+
34
|
| 1773 |
+
],
|
| 1774 |
+
"11": [
|
| 1775 |
+
23,
|
| 1776 |
+
24,
|
| 1777 |
+
25,
|
| 1778 |
+
34,
|
| 1779 |
+
35,
|
| 1780 |
+
36
|
| 1781 |
+
],
|
| 1782 |
+
"12": [
|
| 1783 |
+
25,
|
| 1784 |
+
26,
|
| 1785 |
+
27,
|
| 1786 |
+
36,
|
| 1787 |
+
37,
|
| 1788 |
+
38
|
| 1789 |
+
],
|
| 1790 |
+
"13": [
|
| 1791 |
+
29,
|
| 1792 |
+
30,
|
| 1793 |
+
31,
|
| 1794 |
+
39,
|
| 1795 |
+
40,
|
| 1796 |
+
41
|
| 1797 |
+
],
|
| 1798 |
+
"14": [
|
| 1799 |
+
31,
|
| 1800 |
+
32,
|
| 1801 |
+
33,
|
| 1802 |
+
41,
|
| 1803 |
+
42,
|
| 1804 |
+
43
|
| 1805 |
+
],
|
| 1806 |
+
"15": [
|
| 1807 |
+
33,
|
| 1808 |
+
34,
|
| 1809 |
+
35,
|
| 1810 |
+
43,
|
| 1811 |
+
44,
|
| 1812 |
+
45
|
| 1813 |
+
],
|
| 1814 |
+
"16": [
|
| 1815 |
+
35,
|
| 1816 |
+
36,
|
| 1817 |
+
37,
|
| 1818 |
+
45,
|
| 1819 |
+
46,
|
| 1820 |
+
47
|
| 1821 |
+
],
|
| 1822 |
+
"17": [
|
| 1823 |
+
40,
|
| 1824 |
+
41,
|
| 1825 |
+
42,
|
| 1826 |
+
48,
|
| 1827 |
+
49,
|
| 1828 |
+
50
|
| 1829 |
+
],
|
| 1830 |
+
"18": [
|
| 1831 |
+
42,
|
| 1832 |
+
43,
|
| 1833 |
+
44,
|
| 1834 |
+
50,
|
| 1835 |
+
51,
|
| 1836 |
+
52
|
| 1837 |
+
],
|
| 1838 |
+
"19": [
|
| 1839 |
+
44,
|
| 1840 |
+
45,
|
| 1841 |
+
46,
|
| 1842 |
+
52,
|
| 1843 |
+
53,
|
| 1844 |
+
54
|
| 1845 |
+
]
|
| 1846 |
+
},
|
| 1847 |
+
"total_points": 54,
|
| 1848 |
+
"total_hexes": 19
|
| 1849 |
+
}
|
| 1850 |
+
}
|
examples/ai_testing/my_games/game_20251223_205200_full.json
ADDED
|
@@ -0,0 +1,1856 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"total_states": 1,
|
| 3 |
+
"timestamp": "20251223_205200",
|
| 4 |
+
"states": [
|
| 5 |
+
{
|
| 6 |
+
"hexes": [
|
| 7 |
+
{
|
| 8 |
+
"id": 1,
|
| 9 |
+
"q": 0,
|
| 10 |
+
"r": -2,
|
| 11 |
+
"type": "wood",
|
| 12 |
+
"number": 12,
|
| 13 |
+
"has_robber": false,
|
| 14 |
+
"position": [
|
| 15 |
+
0,
|
| 16 |
+
0
|
| 17 |
+
],
|
| 18 |
+
"axial_coords": [
|
| 19 |
+
0,
|
| 20 |
+
-2
|
| 21 |
+
]
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"id": 2,
|
| 25 |
+
"q": 1,
|
| 26 |
+
"r": -2,
|
| 27 |
+
"type": "sheep",
|
| 28 |
+
"number": 5,
|
| 29 |
+
"has_robber": false,
|
| 30 |
+
"position": [
|
| 31 |
+
0,
|
| 32 |
+
1
|
| 33 |
+
],
|
| 34 |
+
"axial_coords": [
|
| 35 |
+
1,
|
| 36 |
+
-2
|
| 37 |
+
]
|
| 38 |
+
},
|
| 39 |
+
{
|
| 40 |
+
"id": 3,
|
| 41 |
+
"q": 2,
|
| 42 |
+
"r": -2,
|
| 43 |
+
"type": "wood",
|
| 44 |
+
"number": 4,
|
| 45 |
+
"has_robber": false,
|
| 46 |
+
"position": [
|
| 47 |
+
0,
|
| 48 |
+
2
|
| 49 |
+
],
|
| 50 |
+
"axial_coords": [
|
| 51 |
+
2,
|
| 52 |
+
-2
|
| 53 |
+
]
|
| 54 |
+
},
|
| 55 |
+
{
|
| 56 |
+
"id": 4,
|
| 57 |
+
"q": -1,
|
| 58 |
+
"r": -1,
|
| 59 |
+
"type": "sheep",
|
| 60 |
+
"number": 8,
|
| 61 |
+
"has_robber": false,
|
| 62 |
+
"position": [
|
| 63 |
+
1,
|
| 64 |
+
0
|
| 65 |
+
],
|
| 66 |
+
"axial_coords": [
|
| 67 |
+
-1,
|
| 68 |
+
-1
|
| 69 |
+
]
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"id": 5,
|
| 73 |
+
"q": 0,
|
| 74 |
+
"r": -1,
|
| 75 |
+
"type": "brick",
|
| 76 |
+
"number": 6,
|
| 77 |
+
"has_robber": false,
|
| 78 |
+
"position": [
|
| 79 |
+
1,
|
| 80 |
+
1
|
| 81 |
+
],
|
| 82 |
+
"axial_coords": [
|
| 83 |
+
0,
|
| 84 |
+
-1
|
| 85 |
+
]
|
| 86 |
+
},
|
| 87 |
+
{
|
| 88 |
+
"id": 6,
|
| 89 |
+
"q": 1,
|
| 90 |
+
"r": -1,
|
| 91 |
+
"type": "wood",
|
| 92 |
+
"number": 3,
|
| 93 |
+
"has_robber": false,
|
| 94 |
+
"position": [
|
| 95 |
+
1,
|
| 96 |
+
2
|
| 97 |
+
],
|
| 98 |
+
"axial_coords": [
|
| 99 |
+
1,
|
| 100 |
+
-1
|
| 101 |
+
]
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"id": 7,
|
| 105 |
+
"q": 2,
|
| 106 |
+
"r": -1,
|
| 107 |
+
"type": "wheat",
|
| 108 |
+
"number": 8,
|
| 109 |
+
"has_robber": false,
|
| 110 |
+
"position": [
|
| 111 |
+
1,
|
| 112 |
+
3
|
| 113 |
+
],
|
| 114 |
+
"axial_coords": [
|
| 115 |
+
2,
|
| 116 |
+
-1
|
| 117 |
+
]
|
| 118 |
+
},
|
| 119 |
+
{
|
| 120 |
+
"id": 8,
|
| 121 |
+
"q": -2,
|
| 122 |
+
"r": 0,
|
| 123 |
+
"type": "brick",
|
| 124 |
+
"number": 10,
|
| 125 |
+
"has_robber": false,
|
| 126 |
+
"position": [
|
| 127 |
+
2,
|
| 128 |
+
0
|
| 129 |
+
],
|
| 130 |
+
"axial_coords": [
|
| 131 |
+
-2,
|
| 132 |
+
0
|
| 133 |
+
]
|
| 134 |
+
},
|
| 135 |
+
{
|
| 136 |
+
"id": 9,
|
| 137 |
+
"q": -1,
|
| 138 |
+
"r": 0,
|
| 139 |
+
"type": "wood",
|
| 140 |
+
"number": 11,
|
| 141 |
+
"has_robber": false,
|
| 142 |
+
"position": [
|
| 143 |
+
2,
|
| 144 |
+
1
|
| 145 |
+
],
|
| 146 |
+
"axial_coords": [
|
| 147 |
+
-1,
|
| 148 |
+
0
|
| 149 |
+
]
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"id": 10,
|
| 153 |
+
"q": 0,
|
| 154 |
+
"r": 0,
|
| 155 |
+
"type": "desert",
|
| 156 |
+
"number": null,
|
| 157 |
+
"has_robber": true,
|
| 158 |
+
"position": [
|
| 159 |
+
2,
|
| 160 |
+
2
|
| 161 |
+
],
|
| 162 |
+
"axial_coords": [
|
| 163 |
+
0,
|
| 164 |
+
0
|
| 165 |
+
]
|
| 166 |
+
},
|
| 167 |
+
{
|
| 168 |
+
"id": 11,
|
| 169 |
+
"q": 1,
|
| 170 |
+
"r": 0,
|
| 171 |
+
"type": "ore",
|
| 172 |
+
"number": 3,
|
| 173 |
+
"has_robber": false,
|
| 174 |
+
"position": [
|
| 175 |
+
2,
|
| 176 |
+
3
|
| 177 |
+
],
|
| 178 |
+
"axial_coords": [
|
| 179 |
+
1,
|
| 180 |
+
0
|
| 181 |
+
]
|
| 182 |
+
},
|
| 183 |
+
{
|
| 184 |
+
"id": 12,
|
| 185 |
+
"q": 2,
|
| 186 |
+
"r": 0,
|
| 187 |
+
"type": "sheep",
|
| 188 |
+
"number": 4,
|
| 189 |
+
"has_robber": false,
|
| 190 |
+
"position": [
|
| 191 |
+
2,
|
| 192 |
+
4
|
| 193 |
+
],
|
| 194 |
+
"axial_coords": [
|
| 195 |
+
2,
|
| 196 |
+
0
|
| 197 |
+
]
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"id": 13,
|
| 201 |
+
"q": -2,
|
| 202 |
+
"r": 1,
|
| 203 |
+
"type": "brick",
|
| 204 |
+
"number": 10,
|
| 205 |
+
"has_robber": false,
|
| 206 |
+
"position": [
|
| 207 |
+
3,
|
| 208 |
+
0
|
| 209 |
+
],
|
| 210 |
+
"axial_coords": [
|
| 211 |
+
-2,
|
| 212 |
+
1
|
| 213 |
+
]
|
| 214 |
+
},
|
| 215 |
+
{
|
| 216 |
+
"id": 14,
|
| 217 |
+
"q": -1,
|
| 218 |
+
"r": 1,
|
| 219 |
+
"type": "wheat",
|
| 220 |
+
"number": 9,
|
| 221 |
+
"has_robber": false,
|
| 222 |
+
"position": [
|
| 223 |
+
3,
|
| 224 |
+
1
|
| 225 |
+
],
|
| 226 |
+
"axial_coords": [
|
| 227 |
+
-1,
|
| 228 |
+
1
|
| 229 |
+
]
|
| 230 |
+
},
|
| 231 |
+
{
|
| 232 |
+
"id": 15,
|
| 233 |
+
"q": 0,
|
| 234 |
+
"r": 1,
|
| 235 |
+
"type": "wheat",
|
| 236 |
+
"number": 6,
|
| 237 |
+
"has_robber": false,
|
| 238 |
+
"position": [
|
| 239 |
+
3,
|
| 240 |
+
2
|
| 241 |
+
],
|
| 242 |
+
"axial_coords": [
|
| 243 |
+
0,
|
| 244 |
+
1
|
| 245 |
+
]
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"id": 16,
|
| 249 |
+
"q": 1,
|
| 250 |
+
"r": 1,
|
| 251 |
+
"type": "sheep",
|
| 252 |
+
"number": 11,
|
| 253 |
+
"has_robber": false,
|
| 254 |
+
"position": [
|
| 255 |
+
3,
|
| 256 |
+
3
|
| 257 |
+
],
|
| 258 |
+
"axial_coords": [
|
| 259 |
+
1,
|
| 260 |
+
1
|
| 261 |
+
]
|
| 262 |
+
},
|
| 263 |
+
{
|
| 264 |
+
"id": 17,
|
| 265 |
+
"q": -2,
|
| 266 |
+
"r": 2,
|
| 267 |
+
"type": "ore",
|
| 268 |
+
"number": 5,
|
| 269 |
+
"has_robber": false,
|
| 270 |
+
"position": [
|
| 271 |
+
4,
|
| 272 |
+
0
|
| 273 |
+
],
|
| 274 |
+
"axial_coords": [
|
| 275 |
+
-2,
|
| 276 |
+
2
|
| 277 |
+
]
|
| 278 |
+
},
|
| 279 |
+
{
|
| 280 |
+
"id": 18,
|
| 281 |
+
"q": -1,
|
| 282 |
+
"r": 2,
|
| 283 |
+
"type": "wheat",
|
| 284 |
+
"number": 9,
|
| 285 |
+
"has_robber": false,
|
| 286 |
+
"position": [
|
| 287 |
+
4,
|
| 288 |
+
1
|
| 289 |
+
],
|
| 290 |
+
"axial_coords": [
|
| 291 |
+
-1,
|
| 292 |
+
2
|
| 293 |
+
]
|
| 294 |
+
},
|
| 295 |
+
{
|
| 296 |
+
"id": 19,
|
| 297 |
+
"q": 0,
|
| 298 |
+
"r": 2,
|
| 299 |
+
"type": "ore",
|
| 300 |
+
"number": 2,
|
| 301 |
+
"has_robber": false,
|
| 302 |
+
"position": [
|
| 303 |
+
4,
|
| 304 |
+
2
|
| 305 |
+
],
|
| 306 |
+
"axial_coords": [
|
| 307 |
+
0,
|
| 308 |
+
2
|
| 309 |
+
]
|
| 310 |
+
}
|
| 311 |
+
],
|
| 312 |
+
"settlements": [],
|
| 313 |
+
"cities": [],
|
| 314 |
+
"roads": [],
|
| 315 |
+
"players": [
|
| 316 |
+
{
|
| 317 |
+
"id": 0,
|
| 318 |
+
"name": "A",
|
| 319 |
+
"victory_points": 0,
|
| 320 |
+
"total_cards": 0,
|
| 321 |
+
"cards_list": [],
|
| 322 |
+
"dev_cards_list": [],
|
| 323 |
+
"settlements": 0,
|
| 324 |
+
"cities": 0,
|
| 325 |
+
"roads": 0,
|
| 326 |
+
"longest_road": 0,
|
| 327 |
+
"has_longest_road": false,
|
| 328 |
+
"knights": 0,
|
| 329 |
+
"knights_played": 0,
|
| 330 |
+
"has_largest_army": false
|
| 331 |
+
},
|
| 332 |
+
{
|
| 333 |
+
"id": 1,
|
| 334 |
+
"name": "B",
|
| 335 |
+
"victory_points": 0,
|
| 336 |
+
"total_cards": 0,
|
| 337 |
+
"cards_list": [],
|
| 338 |
+
"dev_cards_list": [],
|
| 339 |
+
"settlements": 0,
|
| 340 |
+
"cities": 0,
|
| 341 |
+
"roads": 0,
|
| 342 |
+
"longest_road": 0,
|
| 343 |
+
"has_longest_road": false,
|
| 344 |
+
"knights": 0,
|
| 345 |
+
"knights_played": 0,
|
| 346 |
+
"has_largest_army": false
|
| 347 |
+
},
|
| 348 |
+
{
|
| 349 |
+
"id": 2,
|
| 350 |
+
"name": "C",
|
| 351 |
+
"victory_points": 0,
|
| 352 |
+
"total_cards": 0,
|
| 353 |
+
"cards_list": [],
|
| 354 |
+
"dev_cards_list": [],
|
| 355 |
+
"settlements": 0,
|
| 356 |
+
"cities": 0,
|
| 357 |
+
"roads": 0,
|
| 358 |
+
"longest_road": 0,
|
| 359 |
+
"has_longest_road": false,
|
| 360 |
+
"knights": 0,
|
| 361 |
+
"knights_played": 0,
|
| 362 |
+
"has_largest_army": false
|
| 363 |
+
}
|
| 364 |
+
],
|
| 365 |
+
"current_player": 0,
|
| 366 |
+
"current_phase": "SETUP_FIRST_ROUND",
|
| 367 |
+
"robber_position": [
|
| 368 |
+
2,
|
| 369 |
+
2
|
| 370 |
+
],
|
| 371 |
+
"dice_result": null,
|
| 372 |
+
"points": [
|
| 373 |
+
{
|
| 374 |
+
"point_id": 1,
|
| 375 |
+
"game_coords": [
|
| 376 |
+
0,
|
| 377 |
+
0
|
| 378 |
+
],
|
| 379 |
+
"adjacent_points": [
|
| 380 |
+
2,
|
| 381 |
+
9
|
| 382 |
+
],
|
| 383 |
+
"adjacent_hexes": [
|
| 384 |
+
1
|
| 385 |
+
],
|
| 386 |
+
"pixel_coords": [
|
| 387 |
+
377.5,
|
| 388 |
+
105.14428414850131
|
| 389 |
+
]
|
| 390 |
+
},
|
| 391 |
+
{
|
| 392 |
+
"point_id": 2,
|
| 393 |
+
"game_coords": [
|
| 394 |
+
0,
|
| 395 |
+
1
|
| 396 |
+
],
|
| 397 |
+
"adjacent_points": [
|
| 398 |
+
1,
|
| 399 |
+
3
|
| 400 |
+
],
|
| 401 |
+
"adjacent_hexes": [
|
| 402 |
+
1
|
| 403 |
+
],
|
| 404 |
+
"pixel_coords": [
|
| 405 |
+
422.5,
|
| 406 |
+
105.14428414850128
|
| 407 |
+
]
|
| 408 |
+
},
|
| 409 |
+
{
|
| 410 |
+
"point_id": 3,
|
| 411 |
+
"game_coords": [
|
| 412 |
+
0,
|
| 413 |
+
2
|
| 414 |
+
],
|
| 415 |
+
"adjacent_points": [
|
| 416 |
+
2,
|
| 417 |
+
4,
|
| 418 |
+
11
|
| 419 |
+
],
|
| 420 |
+
"adjacent_hexes": [
|
| 421 |
+
2,
|
| 422 |
+
1
|
| 423 |
+
],
|
| 424 |
+
"pixel_coords": [
|
| 425 |
+
445,
|
| 426 |
+
144.11542731880104
|
| 427 |
+
]
|
| 428 |
+
},
|
| 429 |
+
{
|
| 430 |
+
"point_id": 4,
|
| 431 |
+
"game_coords": [
|
| 432 |
+
0,
|
| 433 |
+
3
|
| 434 |
+
],
|
| 435 |
+
"adjacent_points": [
|
| 436 |
+
3,
|
| 437 |
+
5
|
| 438 |
+
],
|
| 439 |
+
"adjacent_hexes": [
|
| 440 |
+
2
|
| 441 |
+
],
|
| 442 |
+
"pixel_coords": [
|
| 443 |
+
490,
|
| 444 |
+
144.11542731880104
|
| 445 |
+
]
|
| 446 |
+
},
|
| 447 |
+
{
|
| 448 |
+
"point_id": 5,
|
| 449 |
+
"game_coords": [
|
| 450 |
+
0,
|
| 451 |
+
4
|
| 452 |
+
],
|
| 453 |
+
"adjacent_points": [
|
| 454 |
+
4,
|
| 455 |
+
6,
|
| 456 |
+
13
|
| 457 |
+
],
|
| 458 |
+
"adjacent_hexes": [
|
| 459 |
+
3,
|
| 460 |
+
2
|
| 461 |
+
],
|
| 462 |
+
"pixel_coords": [
|
| 463 |
+
512.5,
|
| 464 |
+
183.08657048910078
|
| 465 |
+
]
|
| 466 |
+
},
|
| 467 |
+
{
|
| 468 |
+
"point_id": 6,
|
| 469 |
+
"game_coords": [
|
| 470 |
+
0,
|
| 471 |
+
5
|
| 472 |
+
],
|
| 473 |
+
"adjacent_points": [
|
| 474 |
+
5,
|
| 475 |
+
7
|
| 476 |
+
],
|
| 477 |
+
"adjacent_hexes": [
|
| 478 |
+
3
|
| 479 |
+
],
|
| 480 |
+
"pixel_coords": [
|
| 481 |
+
557.5,
|
| 482 |
+
183.08657048910078
|
| 483 |
+
]
|
| 484 |
+
},
|
| 485 |
+
{
|
| 486 |
+
"point_id": 7,
|
| 487 |
+
"game_coords": [
|
| 488 |
+
0,
|
| 489 |
+
6
|
| 490 |
+
],
|
| 491 |
+
"adjacent_points": [
|
| 492 |
+
6,
|
| 493 |
+
15
|
| 494 |
+
],
|
| 495 |
+
"adjacent_hexes": [
|
| 496 |
+
3
|
| 497 |
+
],
|
| 498 |
+
"pixel_coords": [
|
| 499 |
+
580,
|
| 500 |
+
222.05771365940052
|
| 501 |
+
]
|
| 502 |
+
},
|
| 503 |
+
{
|
| 504 |
+
"point_id": 8,
|
| 505 |
+
"game_coords": [
|
| 506 |
+
1,
|
| 507 |
+
0
|
| 508 |
+
],
|
| 509 |
+
"adjacent_points": [
|
| 510 |
+
9,
|
| 511 |
+
18
|
| 512 |
+
],
|
| 513 |
+
"adjacent_hexes": [
|
| 514 |
+
4
|
| 515 |
+
],
|
| 516 |
+
"pixel_coords": [
|
| 517 |
+
310,
|
| 518 |
+
144.11542731880104
|
| 519 |
+
]
|
| 520 |
+
},
|
| 521 |
+
{
|
| 522 |
+
"point_id": 9,
|
| 523 |
+
"game_coords": [
|
| 524 |
+
1,
|
| 525 |
+
1
|
| 526 |
+
],
|
| 527 |
+
"adjacent_points": [
|
| 528 |
+
8,
|
| 529 |
+
10,
|
| 530 |
+
1
|
| 531 |
+
],
|
| 532 |
+
"adjacent_hexes": [
|
| 533 |
+
4,
|
| 534 |
+
1
|
| 535 |
+
],
|
| 536 |
+
"pixel_coords": [
|
| 537 |
+
355,
|
| 538 |
+
144.11542731880104
|
| 539 |
+
]
|
| 540 |
+
},
|
| 541 |
+
{
|
| 542 |
+
"point_id": 10,
|
| 543 |
+
"game_coords": [
|
| 544 |
+
1,
|
| 545 |
+
2
|
| 546 |
+
],
|
| 547 |
+
"adjacent_points": [
|
| 548 |
+
9,
|
| 549 |
+
11,
|
| 550 |
+
20
|
| 551 |
+
],
|
| 552 |
+
"adjacent_hexes": [
|
| 553 |
+
5,
|
| 554 |
+
4,
|
| 555 |
+
1
|
| 556 |
+
],
|
| 557 |
+
"pixel_coords": [
|
| 558 |
+
377.5,
|
| 559 |
+
183.08657048910078
|
| 560 |
+
]
|
| 561 |
+
},
|
| 562 |
+
{
|
| 563 |
+
"point_id": 11,
|
| 564 |
+
"game_coords": [
|
| 565 |
+
1,
|
| 566 |
+
3
|
| 567 |
+
],
|
| 568 |
+
"adjacent_points": [
|
| 569 |
+
10,
|
| 570 |
+
12,
|
| 571 |
+
3
|
| 572 |
+
],
|
| 573 |
+
"adjacent_hexes": [
|
| 574 |
+
5,
|
| 575 |
+
2,
|
| 576 |
+
1
|
| 577 |
+
],
|
| 578 |
+
"pixel_coords": [
|
| 579 |
+
422.5,
|
| 580 |
+
183.08657048910078
|
| 581 |
+
]
|
| 582 |
+
},
|
| 583 |
+
{
|
| 584 |
+
"point_id": 12,
|
| 585 |
+
"game_coords": [
|
| 586 |
+
1,
|
| 587 |
+
4
|
| 588 |
+
],
|
| 589 |
+
"adjacent_points": [
|
| 590 |
+
11,
|
| 591 |
+
13,
|
| 592 |
+
22
|
| 593 |
+
],
|
| 594 |
+
"adjacent_hexes": [
|
| 595 |
+
6,
|
| 596 |
+
5,
|
| 597 |
+
2
|
| 598 |
+
],
|
| 599 |
+
"pixel_coords": [
|
| 600 |
+
445,
|
| 601 |
+
222.05771365940052
|
| 602 |
+
]
|
| 603 |
+
},
|
| 604 |
+
{
|
| 605 |
+
"point_id": 13,
|
| 606 |
+
"game_coords": [
|
| 607 |
+
1,
|
| 608 |
+
5
|
| 609 |
+
],
|
| 610 |
+
"adjacent_points": [
|
| 611 |
+
12,
|
| 612 |
+
14,
|
| 613 |
+
5
|
| 614 |
+
],
|
| 615 |
+
"adjacent_hexes": [
|
| 616 |
+
6,
|
| 617 |
+
3,
|
| 618 |
+
2
|
| 619 |
+
],
|
| 620 |
+
"pixel_coords": [
|
| 621 |
+
490,
|
| 622 |
+
222.05771365940052
|
| 623 |
+
]
|
| 624 |
+
},
|
| 625 |
+
{
|
| 626 |
+
"point_id": 14,
|
| 627 |
+
"game_coords": [
|
| 628 |
+
1,
|
| 629 |
+
6
|
| 630 |
+
],
|
| 631 |
+
"adjacent_points": [
|
| 632 |
+
13,
|
| 633 |
+
15,
|
| 634 |
+
24
|
| 635 |
+
],
|
| 636 |
+
"adjacent_hexes": [
|
| 637 |
+
7,
|
| 638 |
+
6,
|
| 639 |
+
3
|
| 640 |
+
],
|
| 641 |
+
"pixel_coords": [
|
| 642 |
+
512.5,
|
| 643 |
+
261.02885682970026
|
| 644 |
+
]
|
| 645 |
+
},
|
| 646 |
+
{
|
| 647 |
+
"point_id": 15,
|
| 648 |
+
"game_coords": [
|
| 649 |
+
1,
|
| 650 |
+
7
|
| 651 |
+
],
|
| 652 |
+
"adjacent_points": [
|
| 653 |
+
14,
|
| 654 |
+
16,
|
| 655 |
+
7
|
| 656 |
+
],
|
| 657 |
+
"adjacent_hexes": [
|
| 658 |
+
7,
|
| 659 |
+
3
|
| 660 |
+
],
|
| 661 |
+
"pixel_coords": [
|
| 662 |
+
557.5,
|
| 663 |
+
261.02885682970026
|
| 664 |
+
]
|
| 665 |
+
},
|
| 666 |
+
{
|
| 667 |
+
"point_id": 16,
|
| 668 |
+
"game_coords": [
|
| 669 |
+
1,
|
| 670 |
+
8
|
| 671 |
+
],
|
| 672 |
+
"adjacent_points": [
|
| 673 |
+
15,
|
| 674 |
+
26
|
| 675 |
+
],
|
| 676 |
+
"adjacent_hexes": [
|
| 677 |
+
7
|
| 678 |
+
],
|
| 679 |
+
"pixel_coords": [
|
| 680 |
+
580,
|
| 681 |
+
300
|
| 682 |
+
]
|
| 683 |
+
},
|
| 684 |
+
{
|
| 685 |
+
"point_id": 17,
|
| 686 |
+
"game_coords": [
|
| 687 |
+
2,
|
| 688 |
+
0
|
| 689 |
+
],
|
| 690 |
+
"adjacent_points": [
|
| 691 |
+
18,
|
| 692 |
+
28
|
| 693 |
+
],
|
| 694 |
+
"adjacent_hexes": [
|
| 695 |
+
8
|
| 696 |
+
],
|
| 697 |
+
"pixel_coords": [
|
| 698 |
+
242.49999999999997,
|
| 699 |
+
183.08657048910078
|
| 700 |
+
]
|
| 701 |
+
},
|
| 702 |
+
{
|
| 703 |
+
"point_id": 18,
|
| 704 |
+
"game_coords": [
|
| 705 |
+
2,
|
| 706 |
+
1
|
| 707 |
+
],
|
| 708 |
+
"adjacent_points": [
|
| 709 |
+
17,
|
| 710 |
+
19,
|
| 711 |
+
8
|
| 712 |
+
],
|
| 713 |
+
"adjacent_hexes": [
|
| 714 |
+
8,
|
| 715 |
+
4
|
| 716 |
+
],
|
| 717 |
+
"pixel_coords": [
|
| 718 |
+
287.5,
|
| 719 |
+
183.08657048910078
|
| 720 |
+
]
|
| 721 |
+
},
|
| 722 |
+
{
|
| 723 |
+
"point_id": 19,
|
| 724 |
+
"game_coords": [
|
| 725 |
+
2,
|
| 726 |
+
2
|
| 727 |
+
],
|
| 728 |
+
"adjacent_points": [
|
| 729 |
+
18,
|
| 730 |
+
20,
|
| 731 |
+
30
|
| 732 |
+
],
|
| 733 |
+
"adjacent_hexes": [
|
| 734 |
+
9,
|
| 735 |
+
8,
|
| 736 |
+
4
|
| 737 |
+
],
|
| 738 |
+
"pixel_coords": [
|
| 739 |
+
310,
|
| 740 |
+
222.05771365940052
|
| 741 |
+
]
|
| 742 |
+
},
|
| 743 |
+
{
|
| 744 |
+
"point_id": 20,
|
| 745 |
+
"game_coords": [
|
| 746 |
+
2,
|
| 747 |
+
3
|
| 748 |
+
],
|
| 749 |
+
"adjacent_points": [
|
| 750 |
+
19,
|
| 751 |
+
21,
|
| 752 |
+
10
|
| 753 |
+
],
|
| 754 |
+
"adjacent_hexes": [
|
| 755 |
+
9,
|
| 756 |
+
5,
|
| 757 |
+
4
|
| 758 |
+
],
|
| 759 |
+
"pixel_coords": [
|
| 760 |
+
355,
|
| 761 |
+
222.05771365940052
|
| 762 |
+
]
|
| 763 |
+
},
|
| 764 |
+
{
|
| 765 |
+
"point_id": 21,
|
| 766 |
+
"game_coords": [
|
| 767 |
+
2,
|
| 768 |
+
4
|
| 769 |
+
],
|
| 770 |
+
"adjacent_points": [
|
| 771 |
+
20,
|
| 772 |
+
22,
|
| 773 |
+
32
|
| 774 |
+
],
|
| 775 |
+
"adjacent_hexes": [
|
| 776 |
+
10,
|
| 777 |
+
9,
|
| 778 |
+
5
|
| 779 |
+
],
|
| 780 |
+
"pixel_coords": [
|
| 781 |
+
377.5,
|
| 782 |
+
261.02885682970026
|
| 783 |
+
]
|
| 784 |
+
},
|
| 785 |
+
{
|
| 786 |
+
"point_id": 22,
|
| 787 |
+
"game_coords": [
|
| 788 |
+
2,
|
| 789 |
+
5
|
| 790 |
+
],
|
| 791 |
+
"adjacent_points": [
|
| 792 |
+
21,
|
| 793 |
+
23,
|
| 794 |
+
12
|
| 795 |
+
],
|
| 796 |
+
"adjacent_hexes": [
|
| 797 |
+
10,
|
| 798 |
+
6,
|
| 799 |
+
5
|
| 800 |
+
],
|
| 801 |
+
"pixel_coords": [
|
| 802 |
+
422.5,
|
| 803 |
+
261.02885682970026
|
| 804 |
+
]
|
| 805 |
+
},
|
| 806 |
+
{
|
| 807 |
+
"point_id": 23,
|
| 808 |
+
"game_coords": [
|
| 809 |
+
2,
|
| 810 |
+
6
|
| 811 |
+
],
|
| 812 |
+
"adjacent_points": [
|
| 813 |
+
22,
|
| 814 |
+
24,
|
| 815 |
+
34
|
| 816 |
+
],
|
| 817 |
+
"adjacent_hexes": [
|
| 818 |
+
11,
|
| 819 |
+
10,
|
| 820 |
+
6
|
| 821 |
+
],
|
| 822 |
+
"pixel_coords": [
|
| 823 |
+
445,
|
| 824 |
+
300
|
| 825 |
+
]
|
| 826 |
+
},
|
| 827 |
+
{
|
| 828 |
+
"point_id": 24,
|
| 829 |
+
"game_coords": [
|
| 830 |
+
2,
|
| 831 |
+
7
|
| 832 |
+
],
|
| 833 |
+
"adjacent_points": [
|
| 834 |
+
23,
|
| 835 |
+
25,
|
| 836 |
+
14
|
| 837 |
+
],
|
| 838 |
+
"adjacent_hexes": [
|
| 839 |
+
11,
|
| 840 |
+
7,
|
| 841 |
+
6
|
| 842 |
+
],
|
| 843 |
+
"pixel_coords": [
|
| 844 |
+
490,
|
| 845 |
+
300
|
| 846 |
+
]
|
| 847 |
+
},
|
| 848 |
+
{
|
| 849 |
+
"point_id": 25,
|
| 850 |
+
"game_coords": [
|
| 851 |
+
2,
|
| 852 |
+
8
|
| 853 |
+
],
|
| 854 |
+
"adjacent_points": [
|
| 855 |
+
24,
|
| 856 |
+
26,
|
| 857 |
+
36
|
| 858 |
+
],
|
| 859 |
+
"adjacent_hexes": [
|
| 860 |
+
12,
|
| 861 |
+
11,
|
| 862 |
+
7
|
| 863 |
+
],
|
| 864 |
+
"pixel_coords": [
|
| 865 |
+
512.5,
|
| 866 |
+
338.97114317029974
|
| 867 |
+
]
|
| 868 |
+
},
|
| 869 |
+
{
|
| 870 |
+
"point_id": 26,
|
| 871 |
+
"game_coords": [
|
| 872 |
+
2,
|
| 873 |
+
9
|
| 874 |
+
],
|
| 875 |
+
"adjacent_points": [
|
| 876 |
+
25,
|
| 877 |
+
27,
|
| 878 |
+
16
|
| 879 |
+
],
|
| 880 |
+
"adjacent_hexes": [
|
| 881 |
+
12,
|
| 882 |
+
7
|
| 883 |
+
],
|
| 884 |
+
"pixel_coords": [
|
| 885 |
+
557.5,
|
| 886 |
+
338.97114317029974
|
| 887 |
+
]
|
| 888 |
+
},
|
| 889 |
+
{
|
| 890 |
+
"point_id": 27,
|
| 891 |
+
"game_coords": [
|
| 892 |
+
2,
|
| 893 |
+
10
|
| 894 |
+
],
|
| 895 |
+
"adjacent_points": [
|
| 896 |
+
26,
|
| 897 |
+
38
|
| 898 |
+
],
|
| 899 |
+
"adjacent_hexes": [
|
| 900 |
+
12
|
| 901 |
+
],
|
| 902 |
+
"pixel_coords": [
|
| 903 |
+
580,
|
| 904 |
+
377.9422863405995
|
| 905 |
+
]
|
| 906 |
+
},
|
| 907 |
+
{
|
| 908 |
+
"point_id": 28,
|
| 909 |
+
"game_coords": [
|
| 910 |
+
3,
|
| 911 |
+
0
|
| 912 |
+
],
|
| 913 |
+
"adjacent_points": [
|
| 914 |
+
29,
|
| 915 |
+
17
|
| 916 |
+
],
|
| 917 |
+
"adjacent_hexes": [
|
| 918 |
+
8
|
| 919 |
+
],
|
| 920 |
+
"pixel_coords": [
|
| 921 |
+
220,
|
| 922 |
+
222.05771365940052
|
| 923 |
+
]
|
| 924 |
+
},
|
| 925 |
+
{
|
| 926 |
+
"point_id": 29,
|
| 927 |
+
"game_coords": [
|
| 928 |
+
3,
|
| 929 |
+
1
|
| 930 |
+
],
|
| 931 |
+
"adjacent_points": [
|
| 932 |
+
28,
|
| 933 |
+
30,
|
| 934 |
+
39
|
| 935 |
+
],
|
| 936 |
+
"adjacent_hexes": [
|
| 937 |
+
13,
|
| 938 |
+
8
|
| 939 |
+
],
|
| 940 |
+
"pixel_coords": [
|
| 941 |
+
242.5,
|
| 942 |
+
261.02885682970026
|
| 943 |
+
]
|
| 944 |
+
},
|
| 945 |
+
{
|
| 946 |
+
"point_id": 30,
|
| 947 |
+
"game_coords": [
|
| 948 |
+
3,
|
| 949 |
+
2
|
| 950 |
+
],
|
| 951 |
+
"adjacent_points": [
|
| 952 |
+
29,
|
| 953 |
+
31,
|
| 954 |
+
19
|
| 955 |
+
],
|
| 956 |
+
"adjacent_hexes": [
|
| 957 |
+
13,
|
| 958 |
+
9,
|
| 959 |
+
8
|
| 960 |
+
],
|
| 961 |
+
"pixel_coords": [
|
| 962 |
+
287.5,
|
| 963 |
+
261.02885682970026
|
| 964 |
+
]
|
| 965 |
+
},
|
| 966 |
+
{
|
| 967 |
+
"point_id": 31,
|
| 968 |
+
"game_coords": [
|
| 969 |
+
3,
|
| 970 |
+
3
|
| 971 |
+
],
|
| 972 |
+
"adjacent_points": [
|
| 973 |
+
30,
|
| 974 |
+
32,
|
| 975 |
+
41
|
| 976 |
+
],
|
| 977 |
+
"adjacent_hexes": [
|
| 978 |
+
14,
|
| 979 |
+
13,
|
| 980 |
+
9
|
| 981 |
+
],
|
| 982 |
+
"pixel_coords": [
|
| 983 |
+
310,
|
| 984 |
+
300
|
| 985 |
+
]
|
| 986 |
+
},
|
| 987 |
+
{
|
| 988 |
+
"point_id": 32,
|
| 989 |
+
"game_coords": [
|
| 990 |
+
3,
|
| 991 |
+
4
|
| 992 |
+
],
|
| 993 |
+
"adjacent_points": [
|
| 994 |
+
31,
|
| 995 |
+
33,
|
| 996 |
+
21
|
| 997 |
+
],
|
| 998 |
+
"adjacent_hexes": [
|
| 999 |
+
14,
|
| 1000 |
+
10,
|
| 1001 |
+
9
|
| 1002 |
+
],
|
| 1003 |
+
"pixel_coords": [
|
| 1004 |
+
355,
|
| 1005 |
+
300
|
| 1006 |
+
]
|
| 1007 |
+
},
|
| 1008 |
+
{
|
| 1009 |
+
"point_id": 33,
|
| 1010 |
+
"game_coords": [
|
| 1011 |
+
3,
|
| 1012 |
+
5
|
| 1013 |
+
],
|
| 1014 |
+
"adjacent_points": [
|
| 1015 |
+
32,
|
| 1016 |
+
34,
|
| 1017 |
+
43
|
| 1018 |
+
],
|
| 1019 |
+
"adjacent_hexes": [
|
| 1020 |
+
15,
|
| 1021 |
+
14,
|
| 1022 |
+
10
|
| 1023 |
+
],
|
| 1024 |
+
"pixel_coords": [
|
| 1025 |
+
377.5,
|
| 1026 |
+
338.97114317029974
|
| 1027 |
+
]
|
| 1028 |
+
},
|
| 1029 |
+
{
|
| 1030 |
+
"point_id": 34,
|
| 1031 |
+
"game_coords": [
|
| 1032 |
+
3,
|
| 1033 |
+
6
|
| 1034 |
+
],
|
| 1035 |
+
"adjacent_points": [
|
| 1036 |
+
33,
|
| 1037 |
+
35,
|
| 1038 |
+
23
|
| 1039 |
+
],
|
| 1040 |
+
"adjacent_hexes": [
|
| 1041 |
+
15,
|
| 1042 |
+
11,
|
| 1043 |
+
10
|
| 1044 |
+
],
|
| 1045 |
+
"pixel_coords": [
|
| 1046 |
+
422.5,
|
| 1047 |
+
338.97114317029974
|
| 1048 |
+
]
|
| 1049 |
+
},
|
| 1050 |
+
{
|
| 1051 |
+
"point_id": 35,
|
| 1052 |
+
"game_coords": [
|
| 1053 |
+
3,
|
| 1054 |
+
7
|
| 1055 |
+
],
|
| 1056 |
+
"adjacent_points": [
|
| 1057 |
+
34,
|
| 1058 |
+
36,
|
| 1059 |
+
45
|
| 1060 |
+
],
|
| 1061 |
+
"adjacent_hexes": [
|
| 1062 |
+
16,
|
| 1063 |
+
15,
|
| 1064 |
+
11
|
| 1065 |
+
],
|
| 1066 |
+
"pixel_coords": [
|
| 1067 |
+
445,
|
| 1068 |
+
377.9422863405995
|
| 1069 |
+
]
|
| 1070 |
+
},
|
| 1071 |
+
{
|
| 1072 |
+
"point_id": 36,
|
| 1073 |
+
"game_coords": [
|
| 1074 |
+
3,
|
| 1075 |
+
8
|
| 1076 |
+
],
|
| 1077 |
+
"adjacent_points": [
|
| 1078 |
+
35,
|
| 1079 |
+
37,
|
| 1080 |
+
25
|
| 1081 |
+
],
|
| 1082 |
+
"adjacent_hexes": [
|
| 1083 |
+
16,
|
| 1084 |
+
12,
|
| 1085 |
+
11
|
| 1086 |
+
],
|
| 1087 |
+
"pixel_coords": [
|
| 1088 |
+
490,
|
| 1089 |
+
377.9422863405995
|
| 1090 |
+
]
|
| 1091 |
+
},
|
| 1092 |
+
{
|
| 1093 |
+
"point_id": 37,
|
| 1094 |
+
"game_coords": [
|
| 1095 |
+
3,
|
| 1096 |
+
9
|
| 1097 |
+
],
|
| 1098 |
+
"adjacent_points": [
|
| 1099 |
+
36,
|
| 1100 |
+
38,
|
| 1101 |
+
47
|
| 1102 |
+
],
|
| 1103 |
+
"adjacent_hexes": [
|
| 1104 |
+
16,
|
| 1105 |
+
12
|
| 1106 |
+
],
|
| 1107 |
+
"pixel_coords": [
|
| 1108 |
+
512.5,
|
| 1109 |
+
416.9134295108992
|
| 1110 |
+
]
|
| 1111 |
+
},
|
| 1112 |
+
{
|
| 1113 |
+
"point_id": 38,
|
| 1114 |
+
"game_coords": [
|
| 1115 |
+
3,
|
| 1116 |
+
10
|
| 1117 |
+
],
|
| 1118 |
+
"adjacent_points": [
|
| 1119 |
+
37,
|
| 1120 |
+
27
|
| 1121 |
+
],
|
| 1122 |
+
"adjacent_hexes": [
|
| 1123 |
+
12
|
| 1124 |
+
],
|
| 1125 |
+
"pixel_coords": [
|
| 1126 |
+
557.5,
|
| 1127 |
+
416.9134295108992
|
| 1128 |
+
]
|
| 1129 |
+
},
|
| 1130 |
+
{
|
| 1131 |
+
"point_id": 39,
|
| 1132 |
+
"game_coords": [
|
| 1133 |
+
4,
|
| 1134 |
+
0
|
| 1135 |
+
],
|
| 1136 |
+
"adjacent_points": [
|
| 1137 |
+
40,
|
| 1138 |
+
29
|
| 1139 |
+
],
|
| 1140 |
+
"adjacent_hexes": [
|
| 1141 |
+
13
|
| 1142 |
+
],
|
| 1143 |
+
"pixel_coords": [
|
| 1144 |
+
220,
|
| 1145 |
+
300
|
| 1146 |
+
]
|
| 1147 |
+
},
|
| 1148 |
+
{
|
| 1149 |
+
"point_id": 40,
|
| 1150 |
+
"game_coords": [
|
| 1151 |
+
4,
|
| 1152 |
+
1
|
| 1153 |
+
],
|
| 1154 |
+
"adjacent_points": [
|
| 1155 |
+
39,
|
| 1156 |
+
41,
|
| 1157 |
+
48
|
| 1158 |
+
],
|
| 1159 |
+
"adjacent_hexes": [
|
| 1160 |
+
17,
|
| 1161 |
+
13
|
| 1162 |
+
],
|
| 1163 |
+
"pixel_coords": [
|
| 1164 |
+
242.5,
|
| 1165 |
+
338.97114317029974
|
| 1166 |
+
]
|
| 1167 |
+
},
|
| 1168 |
+
{
|
| 1169 |
+
"point_id": 41,
|
| 1170 |
+
"game_coords": [
|
| 1171 |
+
4,
|
| 1172 |
+
2
|
| 1173 |
+
],
|
| 1174 |
+
"adjacent_points": [
|
| 1175 |
+
40,
|
| 1176 |
+
42,
|
| 1177 |
+
31
|
| 1178 |
+
],
|
| 1179 |
+
"adjacent_hexes": [
|
| 1180 |
+
17,
|
| 1181 |
+
14,
|
| 1182 |
+
13
|
| 1183 |
+
],
|
| 1184 |
+
"pixel_coords": [
|
| 1185 |
+
287.5,
|
| 1186 |
+
338.97114317029974
|
| 1187 |
+
]
|
| 1188 |
+
},
|
| 1189 |
+
{
|
| 1190 |
+
"point_id": 42,
|
| 1191 |
+
"game_coords": [
|
| 1192 |
+
4,
|
| 1193 |
+
3
|
| 1194 |
+
],
|
| 1195 |
+
"adjacent_points": [
|
| 1196 |
+
41,
|
| 1197 |
+
43,
|
| 1198 |
+
50
|
| 1199 |
+
],
|
| 1200 |
+
"adjacent_hexes": [
|
| 1201 |
+
18,
|
| 1202 |
+
17,
|
| 1203 |
+
14
|
| 1204 |
+
],
|
| 1205 |
+
"pixel_coords": [
|
| 1206 |
+
310,
|
| 1207 |
+
377.9422863405995
|
| 1208 |
+
]
|
| 1209 |
+
},
|
| 1210 |
+
{
|
| 1211 |
+
"point_id": 43,
|
| 1212 |
+
"game_coords": [
|
| 1213 |
+
4,
|
| 1214 |
+
4
|
| 1215 |
+
],
|
| 1216 |
+
"adjacent_points": [
|
| 1217 |
+
42,
|
| 1218 |
+
44,
|
| 1219 |
+
33
|
| 1220 |
+
],
|
| 1221 |
+
"adjacent_hexes": [
|
| 1222 |
+
18,
|
| 1223 |
+
15,
|
| 1224 |
+
14
|
| 1225 |
+
],
|
| 1226 |
+
"pixel_coords": [
|
| 1227 |
+
355,
|
| 1228 |
+
377.9422863405995
|
| 1229 |
+
]
|
| 1230 |
+
},
|
| 1231 |
+
{
|
| 1232 |
+
"point_id": 44,
|
| 1233 |
+
"game_coords": [
|
| 1234 |
+
4,
|
| 1235 |
+
5
|
| 1236 |
+
],
|
| 1237 |
+
"adjacent_points": [
|
| 1238 |
+
43,
|
| 1239 |
+
45,
|
| 1240 |
+
52
|
| 1241 |
+
],
|
| 1242 |
+
"adjacent_hexes": [
|
| 1243 |
+
19,
|
| 1244 |
+
18,
|
| 1245 |
+
15
|
| 1246 |
+
],
|
| 1247 |
+
"pixel_coords": [
|
| 1248 |
+
377.5,
|
| 1249 |
+
416.9134295108992
|
| 1250 |
+
]
|
| 1251 |
+
},
|
| 1252 |
+
{
|
| 1253 |
+
"point_id": 45,
|
| 1254 |
+
"game_coords": [
|
| 1255 |
+
4,
|
| 1256 |
+
6
|
| 1257 |
+
],
|
| 1258 |
+
"adjacent_points": [
|
| 1259 |
+
44,
|
| 1260 |
+
46,
|
| 1261 |
+
35
|
| 1262 |
+
],
|
| 1263 |
+
"adjacent_hexes": [
|
| 1264 |
+
19,
|
| 1265 |
+
16,
|
| 1266 |
+
15
|
| 1267 |
+
],
|
| 1268 |
+
"pixel_coords": [
|
| 1269 |
+
422.5,
|
| 1270 |
+
416.9134295108992
|
| 1271 |
+
]
|
| 1272 |
+
},
|
| 1273 |
+
{
|
| 1274 |
+
"point_id": 46,
|
| 1275 |
+
"game_coords": [
|
| 1276 |
+
4,
|
| 1277 |
+
7
|
| 1278 |
+
],
|
| 1279 |
+
"adjacent_points": [
|
| 1280 |
+
45,
|
| 1281 |
+
47,
|
| 1282 |
+
54
|
| 1283 |
+
],
|
| 1284 |
+
"adjacent_hexes": [
|
| 1285 |
+
19,
|
| 1286 |
+
16
|
| 1287 |
+
],
|
| 1288 |
+
"pixel_coords": [
|
| 1289 |
+
445,
|
| 1290 |
+
455.88457268119896
|
| 1291 |
+
]
|
| 1292 |
+
},
|
| 1293 |
+
{
|
| 1294 |
+
"point_id": 47,
|
| 1295 |
+
"game_coords": [
|
| 1296 |
+
4,
|
| 1297 |
+
8
|
| 1298 |
+
],
|
| 1299 |
+
"adjacent_points": [
|
| 1300 |
+
46,
|
| 1301 |
+
37
|
| 1302 |
+
],
|
| 1303 |
+
"adjacent_hexes": [
|
| 1304 |
+
16
|
| 1305 |
+
],
|
| 1306 |
+
"pixel_coords": [
|
| 1307 |
+
490,
|
| 1308 |
+
455.88457268119896
|
| 1309 |
+
]
|
| 1310 |
+
},
|
| 1311 |
+
{
|
| 1312 |
+
"point_id": 48,
|
| 1313 |
+
"game_coords": [
|
| 1314 |
+
5,
|
| 1315 |
+
0
|
| 1316 |
+
],
|
| 1317 |
+
"adjacent_points": [
|
| 1318 |
+
49,
|
| 1319 |
+
40
|
| 1320 |
+
],
|
| 1321 |
+
"adjacent_hexes": [
|
| 1322 |
+
17
|
| 1323 |
+
],
|
| 1324 |
+
"pixel_coords": [
|
| 1325 |
+
220,
|
| 1326 |
+
377.9422863405995
|
| 1327 |
+
]
|
| 1328 |
+
},
|
| 1329 |
+
{
|
| 1330 |
+
"point_id": 49,
|
| 1331 |
+
"game_coords": [
|
| 1332 |
+
5,
|
| 1333 |
+
1
|
| 1334 |
+
],
|
| 1335 |
+
"adjacent_points": [
|
| 1336 |
+
48,
|
| 1337 |
+
50
|
| 1338 |
+
],
|
| 1339 |
+
"adjacent_hexes": [
|
| 1340 |
+
17
|
| 1341 |
+
],
|
| 1342 |
+
"pixel_coords": [
|
| 1343 |
+
242.5,
|
| 1344 |
+
416.9134295108992
|
| 1345 |
+
]
|
| 1346 |
+
},
|
| 1347 |
+
{
|
| 1348 |
+
"point_id": 50,
|
| 1349 |
+
"game_coords": [
|
| 1350 |
+
5,
|
| 1351 |
+
2
|
| 1352 |
+
],
|
| 1353 |
+
"adjacent_points": [
|
| 1354 |
+
49,
|
| 1355 |
+
51,
|
| 1356 |
+
42
|
| 1357 |
+
],
|
| 1358 |
+
"adjacent_hexes": [
|
| 1359 |
+
18,
|
| 1360 |
+
17
|
| 1361 |
+
],
|
| 1362 |
+
"pixel_coords": [
|
| 1363 |
+
287.5,
|
| 1364 |
+
416.9134295108992
|
| 1365 |
+
]
|
| 1366 |
+
},
|
| 1367 |
+
{
|
| 1368 |
+
"point_id": 51,
|
| 1369 |
+
"game_coords": [
|
| 1370 |
+
5,
|
| 1371 |
+
3
|
| 1372 |
+
],
|
| 1373 |
+
"adjacent_points": [
|
| 1374 |
+
50,
|
| 1375 |
+
52
|
| 1376 |
+
],
|
| 1377 |
+
"adjacent_hexes": [
|
| 1378 |
+
18
|
| 1379 |
+
],
|
| 1380 |
+
"pixel_coords": [
|
| 1381 |
+
310,
|
| 1382 |
+
455.88457268119896
|
| 1383 |
+
]
|
| 1384 |
+
},
|
| 1385 |
+
{
|
| 1386 |
+
"point_id": 52,
|
| 1387 |
+
"game_coords": [
|
| 1388 |
+
5,
|
| 1389 |
+
4
|
| 1390 |
+
],
|
| 1391 |
+
"adjacent_points": [
|
| 1392 |
+
51,
|
| 1393 |
+
53,
|
| 1394 |
+
44
|
| 1395 |
+
],
|
| 1396 |
+
"adjacent_hexes": [
|
| 1397 |
+
19,
|
| 1398 |
+
18
|
| 1399 |
+
],
|
| 1400 |
+
"pixel_coords": [
|
| 1401 |
+
355,
|
| 1402 |
+
455.88457268119896
|
| 1403 |
+
]
|
| 1404 |
+
},
|
| 1405 |
+
{
|
| 1406 |
+
"point_id": 53,
|
| 1407 |
+
"game_coords": [
|
| 1408 |
+
5,
|
| 1409 |
+
5
|
| 1410 |
+
],
|
| 1411 |
+
"adjacent_points": [
|
| 1412 |
+
52,
|
| 1413 |
+
54
|
| 1414 |
+
],
|
| 1415 |
+
"adjacent_hexes": [
|
| 1416 |
+
19
|
| 1417 |
+
],
|
| 1418 |
+
"pixel_coords": [
|
| 1419 |
+
377.5,
|
| 1420 |
+
494.8557158514987
|
| 1421 |
+
]
|
| 1422 |
+
},
|
| 1423 |
+
{
|
| 1424 |
+
"point_id": 54,
|
| 1425 |
+
"game_coords": [
|
| 1426 |
+
5,
|
| 1427 |
+
6
|
| 1428 |
+
],
|
| 1429 |
+
"adjacent_points": [
|
| 1430 |
+
53,
|
| 1431 |
+
46
|
| 1432 |
+
],
|
| 1433 |
+
"adjacent_hexes": [
|
| 1434 |
+
19
|
| 1435 |
+
],
|
| 1436 |
+
"pixel_coords": [
|
| 1437 |
+
422.5,
|
| 1438 |
+
494.8557158514987
|
| 1439 |
+
]
|
| 1440 |
+
}
|
| 1441 |
+
],
|
| 1442 |
+
"board_graph": {
|
| 1443 |
+
"adjacency": {
|
| 1444 |
+
"1": [
|
| 1445 |
+
2,
|
| 1446 |
+
9
|
| 1447 |
+
],
|
| 1448 |
+
"2": [
|
| 1449 |
+
1,
|
| 1450 |
+
3
|
| 1451 |
+
],
|
| 1452 |
+
"3": [
|
| 1453 |
+
2,
|
| 1454 |
+
4,
|
| 1455 |
+
11
|
| 1456 |
+
],
|
| 1457 |
+
"4": [
|
| 1458 |
+
3,
|
| 1459 |
+
5
|
| 1460 |
+
],
|
| 1461 |
+
"5": [
|
| 1462 |
+
4,
|
| 1463 |
+
6,
|
| 1464 |
+
13
|
| 1465 |
+
],
|
| 1466 |
+
"6": [
|
| 1467 |
+
5,
|
| 1468 |
+
7
|
| 1469 |
+
],
|
| 1470 |
+
"7": [
|
| 1471 |
+
6,
|
| 1472 |
+
15
|
| 1473 |
+
],
|
| 1474 |
+
"8": [
|
| 1475 |
+
9,
|
| 1476 |
+
18
|
| 1477 |
+
],
|
| 1478 |
+
"9": [
|
| 1479 |
+
8,
|
| 1480 |
+
10,
|
| 1481 |
+
1
|
| 1482 |
+
],
|
| 1483 |
+
"10": [
|
| 1484 |
+
9,
|
| 1485 |
+
11,
|
| 1486 |
+
20
|
| 1487 |
+
],
|
| 1488 |
+
"11": [
|
| 1489 |
+
10,
|
| 1490 |
+
12,
|
| 1491 |
+
3
|
| 1492 |
+
],
|
| 1493 |
+
"12": [
|
| 1494 |
+
11,
|
| 1495 |
+
13,
|
| 1496 |
+
22
|
| 1497 |
+
],
|
| 1498 |
+
"13": [
|
| 1499 |
+
12,
|
| 1500 |
+
14,
|
| 1501 |
+
5
|
| 1502 |
+
],
|
| 1503 |
+
"14": [
|
| 1504 |
+
13,
|
| 1505 |
+
15,
|
| 1506 |
+
24
|
| 1507 |
+
],
|
| 1508 |
+
"15": [
|
| 1509 |
+
14,
|
| 1510 |
+
16,
|
| 1511 |
+
7
|
| 1512 |
+
],
|
| 1513 |
+
"16": [
|
| 1514 |
+
15,
|
| 1515 |
+
26
|
| 1516 |
+
],
|
| 1517 |
+
"17": [
|
| 1518 |
+
18,
|
| 1519 |
+
28
|
| 1520 |
+
],
|
| 1521 |
+
"18": [
|
| 1522 |
+
17,
|
| 1523 |
+
19,
|
| 1524 |
+
8
|
| 1525 |
+
],
|
| 1526 |
+
"19": [
|
| 1527 |
+
18,
|
| 1528 |
+
20,
|
| 1529 |
+
30
|
| 1530 |
+
],
|
| 1531 |
+
"20": [
|
| 1532 |
+
19,
|
| 1533 |
+
21,
|
| 1534 |
+
10
|
| 1535 |
+
],
|
| 1536 |
+
"21": [
|
| 1537 |
+
20,
|
| 1538 |
+
22,
|
| 1539 |
+
32
|
| 1540 |
+
],
|
| 1541 |
+
"22": [
|
| 1542 |
+
21,
|
| 1543 |
+
23,
|
| 1544 |
+
12
|
| 1545 |
+
],
|
| 1546 |
+
"23": [
|
| 1547 |
+
22,
|
| 1548 |
+
24,
|
| 1549 |
+
34
|
| 1550 |
+
],
|
| 1551 |
+
"24": [
|
| 1552 |
+
23,
|
| 1553 |
+
25,
|
| 1554 |
+
14
|
| 1555 |
+
],
|
| 1556 |
+
"25": [
|
| 1557 |
+
24,
|
| 1558 |
+
26,
|
| 1559 |
+
36
|
| 1560 |
+
],
|
| 1561 |
+
"26": [
|
| 1562 |
+
25,
|
| 1563 |
+
27,
|
| 1564 |
+
16
|
| 1565 |
+
],
|
| 1566 |
+
"27": [
|
| 1567 |
+
26,
|
| 1568 |
+
38
|
| 1569 |
+
],
|
| 1570 |
+
"28": [
|
| 1571 |
+
29,
|
| 1572 |
+
17
|
| 1573 |
+
],
|
| 1574 |
+
"29": [
|
| 1575 |
+
28,
|
| 1576 |
+
30,
|
| 1577 |
+
39
|
| 1578 |
+
],
|
| 1579 |
+
"30": [
|
| 1580 |
+
29,
|
| 1581 |
+
31,
|
| 1582 |
+
19
|
| 1583 |
+
],
|
| 1584 |
+
"31": [
|
| 1585 |
+
30,
|
| 1586 |
+
32,
|
| 1587 |
+
41
|
| 1588 |
+
],
|
| 1589 |
+
"32": [
|
| 1590 |
+
31,
|
| 1591 |
+
33,
|
| 1592 |
+
21
|
| 1593 |
+
],
|
| 1594 |
+
"33": [
|
| 1595 |
+
32,
|
| 1596 |
+
34,
|
| 1597 |
+
43
|
| 1598 |
+
],
|
| 1599 |
+
"34": [
|
| 1600 |
+
33,
|
| 1601 |
+
35,
|
| 1602 |
+
23
|
| 1603 |
+
],
|
| 1604 |
+
"35": [
|
| 1605 |
+
34,
|
| 1606 |
+
36,
|
| 1607 |
+
45
|
| 1608 |
+
],
|
| 1609 |
+
"36": [
|
| 1610 |
+
35,
|
| 1611 |
+
37,
|
| 1612 |
+
25
|
| 1613 |
+
],
|
| 1614 |
+
"37": [
|
| 1615 |
+
36,
|
| 1616 |
+
38,
|
| 1617 |
+
47
|
| 1618 |
+
],
|
| 1619 |
+
"38": [
|
| 1620 |
+
37,
|
| 1621 |
+
27
|
| 1622 |
+
],
|
| 1623 |
+
"39": [
|
| 1624 |
+
40,
|
| 1625 |
+
29
|
| 1626 |
+
],
|
| 1627 |
+
"40": [
|
| 1628 |
+
39,
|
| 1629 |
+
41,
|
| 1630 |
+
48
|
| 1631 |
+
],
|
| 1632 |
+
"41": [
|
| 1633 |
+
40,
|
| 1634 |
+
42,
|
| 1635 |
+
31
|
| 1636 |
+
],
|
| 1637 |
+
"42": [
|
| 1638 |
+
41,
|
| 1639 |
+
43,
|
| 1640 |
+
50
|
| 1641 |
+
],
|
| 1642 |
+
"43": [
|
| 1643 |
+
42,
|
| 1644 |
+
44,
|
| 1645 |
+
33
|
| 1646 |
+
],
|
| 1647 |
+
"44": [
|
| 1648 |
+
43,
|
| 1649 |
+
45,
|
| 1650 |
+
52
|
| 1651 |
+
],
|
| 1652 |
+
"45": [
|
| 1653 |
+
44,
|
| 1654 |
+
46,
|
| 1655 |
+
35
|
| 1656 |
+
],
|
| 1657 |
+
"46": [
|
| 1658 |
+
45,
|
| 1659 |
+
47,
|
| 1660 |
+
54
|
| 1661 |
+
],
|
| 1662 |
+
"47": [
|
| 1663 |
+
46,
|
| 1664 |
+
37
|
| 1665 |
+
],
|
| 1666 |
+
"48": [
|
| 1667 |
+
49,
|
| 1668 |
+
40
|
| 1669 |
+
],
|
| 1670 |
+
"49": [
|
| 1671 |
+
48,
|
| 1672 |
+
50
|
| 1673 |
+
],
|
| 1674 |
+
"50": [
|
| 1675 |
+
49,
|
| 1676 |
+
51,
|
| 1677 |
+
42
|
| 1678 |
+
],
|
| 1679 |
+
"51": [
|
| 1680 |
+
50,
|
| 1681 |
+
52
|
| 1682 |
+
],
|
| 1683 |
+
"52": [
|
| 1684 |
+
51,
|
| 1685 |
+
53,
|
| 1686 |
+
44
|
| 1687 |
+
],
|
| 1688 |
+
"53": [
|
| 1689 |
+
52,
|
| 1690 |
+
54
|
| 1691 |
+
],
|
| 1692 |
+
"54": [
|
| 1693 |
+
53,
|
| 1694 |
+
46
|
| 1695 |
+
]
|
| 1696 |
+
},
|
| 1697 |
+
"hex_to_points": {
|
| 1698 |
+
"1": [
|
| 1699 |
+
1,
|
| 1700 |
+
2,
|
| 1701 |
+
3,
|
| 1702 |
+
9,
|
| 1703 |
+
10,
|
| 1704 |
+
11
|
| 1705 |
+
],
|
| 1706 |
+
"2": [
|
| 1707 |
+
3,
|
| 1708 |
+
4,
|
| 1709 |
+
5,
|
| 1710 |
+
11,
|
| 1711 |
+
12,
|
| 1712 |
+
13
|
| 1713 |
+
],
|
| 1714 |
+
"3": [
|
| 1715 |
+
5,
|
| 1716 |
+
6,
|
| 1717 |
+
7,
|
| 1718 |
+
13,
|
| 1719 |
+
14,
|
| 1720 |
+
15
|
| 1721 |
+
],
|
| 1722 |
+
"4": [
|
| 1723 |
+
8,
|
| 1724 |
+
9,
|
| 1725 |
+
10,
|
| 1726 |
+
18,
|
| 1727 |
+
19,
|
| 1728 |
+
20
|
| 1729 |
+
],
|
| 1730 |
+
"5": [
|
| 1731 |
+
10,
|
| 1732 |
+
11,
|
| 1733 |
+
12,
|
| 1734 |
+
20,
|
| 1735 |
+
21,
|
| 1736 |
+
22
|
| 1737 |
+
],
|
| 1738 |
+
"6": [
|
| 1739 |
+
12,
|
| 1740 |
+
13,
|
| 1741 |
+
14,
|
| 1742 |
+
22,
|
| 1743 |
+
23,
|
| 1744 |
+
24
|
| 1745 |
+
],
|
| 1746 |
+
"7": [
|
| 1747 |
+
14,
|
| 1748 |
+
15,
|
| 1749 |
+
16,
|
| 1750 |
+
24,
|
| 1751 |
+
25,
|
| 1752 |
+
26
|
| 1753 |
+
],
|
| 1754 |
+
"8": [
|
| 1755 |
+
17,
|
| 1756 |
+
18,
|
| 1757 |
+
19,
|
| 1758 |
+
28,
|
| 1759 |
+
29,
|
| 1760 |
+
30
|
| 1761 |
+
],
|
| 1762 |
+
"9": [
|
| 1763 |
+
19,
|
| 1764 |
+
20,
|
| 1765 |
+
21,
|
| 1766 |
+
30,
|
| 1767 |
+
31,
|
| 1768 |
+
32
|
| 1769 |
+
],
|
| 1770 |
+
"10": [
|
| 1771 |
+
21,
|
| 1772 |
+
22,
|
| 1773 |
+
23,
|
| 1774 |
+
32,
|
| 1775 |
+
33,
|
| 1776 |
+
34
|
| 1777 |
+
],
|
| 1778 |
+
"11": [
|
| 1779 |
+
23,
|
| 1780 |
+
24,
|
| 1781 |
+
25,
|
| 1782 |
+
34,
|
| 1783 |
+
35,
|
| 1784 |
+
36
|
| 1785 |
+
],
|
| 1786 |
+
"12": [
|
| 1787 |
+
25,
|
| 1788 |
+
26,
|
| 1789 |
+
27,
|
| 1790 |
+
36,
|
| 1791 |
+
37,
|
| 1792 |
+
38
|
| 1793 |
+
],
|
| 1794 |
+
"13": [
|
| 1795 |
+
29,
|
| 1796 |
+
30,
|
| 1797 |
+
31,
|
| 1798 |
+
39,
|
| 1799 |
+
40,
|
| 1800 |
+
41
|
| 1801 |
+
],
|
| 1802 |
+
"14": [
|
| 1803 |
+
31,
|
| 1804 |
+
32,
|
| 1805 |
+
33,
|
| 1806 |
+
41,
|
| 1807 |
+
42,
|
| 1808 |
+
43
|
| 1809 |
+
],
|
| 1810 |
+
"15": [
|
| 1811 |
+
33,
|
| 1812 |
+
34,
|
| 1813 |
+
35,
|
| 1814 |
+
43,
|
| 1815 |
+
44,
|
| 1816 |
+
45
|
| 1817 |
+
],
|
| 1818 |
+
"16": [
|
| 1819 |
+
35,
|
| 1820 |
+
36,
|
| 1821 |
+
37,
|
| 1822 |
+
45,
|
| 1823 |
+
46,
|
| 1824 |
+
47
|
| 1825 |
+
],
|
| 1826 |
+
"17": [
|
| 1827 |
+
40,
|
| 1828 |
+
41,
|
| 1829 |
+
42,
|
| 1830 |
+
48,
|
| 1831 |
+
49,
|
| 1832 |
+
50
|
| 1833 |
+
],
|
| 1834 |
+
"18": [
|
| 1835 |
+
42,
|
| 1836 |
+
43,
|
| 1837 |
+
44,
|
| 1838 |
+
50,
|
| 1839 |
+
51,
|
| 1840 |
+
52
|
| 1841 |
+
],
|
| 1842 |
+
"19": [
|
| 1843 |
+
44,
|
| 1844 |
+
45,
|
| 1845 |
+
46,
|
| 1846 |
+
52,
|
| 1847 |
+
53,
|
| 1848 |
+
54
|
| 1849 |
+
]
|
| 1850 |
+
},
|
| 1851 |
+
"total_points": 54,
|
| 1852 |
+
"total_hexes": 19
|
| 1853 |
+
}
|
| 1854 |
+
}
|
| 1855 |
+
]
|
| 1856 |
+
}
|
examples/ai_testing/play_and_capture.py
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Play Interactive Game with Guaranteed State Capture
|
| 3 |
+
----------------------------------------------------
|
| 4 |
+
This version captures EVERY game state update reliably.
|
| 5 |
+
"""
|
| 6 |
+
|
| 7 |
+
import sys
|
| 8 |
+
from pathlib import Path
|
| 9 |
+
import json
|
| 10 |
+
import signal
|
| 11 |
+
import atexit
|
| 12 |
+
from datetime import datetime
|
| 13 |
+
|
| 14 |
+
# Add parent directory to path
|
| 15 |
+
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
| 16 |
+
|
| 17 |
+
from pycatan import RealGame
|
| 18 |
+
from pycatan.management import game_manager as gm_module
|
| 19 |
+
|
| 20 |
+
# Global list to capture states
|
| 21 |
+
captured_states = []
|
| 22 |
+
original_update_state = None
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
def capturing_wrapper(original_method):
|
| 26 |
+
"""Wrap the update_full_state method to capture all calls."""
|
| 27 |
+
def wrapper(self, game_state=None):
|
| 28 |
+
# Call original
|
| 29 |
+
result = original_method(self, game_state)
|
| 30 |
+
|
| 31 |
+
# Capture from web visualization
|
| 32 |
+
for viz in self.visualizations:
|
| 33 |
+
if hasattr(viz, 'current_game_state') and viz.current_game_state:
|
| 34 |
+
state_copy = json.loads(json.dumps(viz.current_game_state))
|
| 35 |
+
captured_states.append(state_copy)
|
| 36 |
+
print(f"[Captured state #{len(captured_states)}]", flush=True)
|
| 37 |
+
break # Only capture once per update
|
| 38 |
+
|
| 39 |
+
return result
|
| 40 |
+
return wrapper
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
def save_all_states():
|
| 44 |
+
"""Save all captured states to files."""
|
| 45 |
+
if not captured_states:
|
| 46 |
+
print("\n⚠️ No states were captured during this game.")
|
| 47 |
+
return
|
| 48 |
+
|
| 49 |
+
# Create output directory
|
| 50 |
+
output_dir = Path('examples/ai_testing/my_games')
|
| 51 |
+
output_dir.mkdir(exist_ok=True)
|
| 52 |
+
|
| 53 |
+
# Generate timestamp
|
| 54 |
+
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
|
| 55 |
+
|
| 56 |
+
# Save full history
|
| 57 |
+
history_file = output_dir / f'game_{timestamp}_full.json'
|
| 58 |
+
with open(history_file, 'w', encoding='utf-8') as f:
|
| 59 |
+
json.dump({
|
| 60 |
+
'total_states': len(captured_states),
|
| 61 |
+
'timestamp': timestamp,
|
| 62 |
+
'states': captured_states
|
| 63 |
+
}, f, indent=2, ensure_ascii=False)
|
| 64 |
+
|
| 65 |
+
# Save final state
|
| 66 |
+
final_file = output_dir / f'game_{timestamp}_final.json'
|
| 67 |
+
with open(final_file, 'w', encoding='utf-8') as f:
|
| 68 |
+
json.dump(captured_states[-1], f, indent=2, ensure_ascii=False)
|
| 69 |
+
|
| 70 |
+
# Also save to standard location
|
| 71 |
+
sample_file = Path('examples/ai_testing/sample_states/captured_game.json')
|
| 72 |
+
sample_file.parent.mkdir(exist_ok=True)
|
| 73 |
+
with open(sample_file, 'w', encoding='utf-8') as f:
|
| 74 |
+
json.dump(captured_states[-1], f, indent=2, ensure_ascii=False)
|
| 75 |
+
|
| 76 |
+
print("\n" + "="*80)
|
| 77 |
+
print("✅ GAME SAVED SUCCESSFULLY!")
|
| 78 |
+
print("="*80)
|
| 79 |
+
print(f"\nTotal states captured: {len(captured_states)}")
|
| 80 |
+
print(f"\nSaved to:")
|
| 81 |
+
print(f" 📁 Full history: {history_file}")
|
| 82 |
+
print(f" 📄 Final state: {final_file}")
|
| 83 |
+
print(f" 📌 Quick access: {sample_file}")
|
| 84 |
+
print("\n" + "="*80)
|
| 85 |
+
|
| 86 |
+
# Print summary
|
| 87 |
+
if captured_states:
|
| 88 |
+
final = captured_states[-1]
|
| 89 |
+
print("\n📊 FINAL GAME STATE:")
|
| 90 |
+
print(f" Phase: {final.get('current_phase', 'UNKNOWN')}")
|
| 91 |
+
print(f" Settlements: {len(final.get('settlements', []))}")
|
| 92 |
+
print(f" Cities: {len(final.get('cities', []))}")
|
| 93 |
+
print(f" Roads: {len(final.get('roads', []))}")
|
| 94 |
+
|
| 95 |
+
for player in final.get('players', []):
|
| 96 |
+
print(f"\n Player {player['id']} ({player['name']}):")
|
| 97 |
+
print(f" Victory Points: {player['victory_points']}")
|
| 98 |
+
print(f" Resources: {len(player.get('cards_list', []))}")
|
| 99 |
+
print(f" Settlements: {player['settlements']}")
|
| 100 |
+
print(f" Roads: {player['roads']}")
|
| 101 |
+
|
| 102 |
+
print("="*80)
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
# Register save function
|
| 106 |
+
atexit.register(save_all_states)
|
| 107 |
+
|
| 108 |
+
|
| 109 |
+
def signal_handler(sig, frame):
|
| 110 |
+
"""Handle Ctrl+C gracefully."""
|
| 111 |
+
print("\n\n🛑 Game interrupted...")
|
| 112 |
+
sys.exit(0)
|
| 113 |
+
|
| 114 |
+
|
| 115 |
+
signal.signal(signal.SIGINT, signal_handler)
|
| 116 |
+
|
| 117 |
+
|
| 118 |
+
def main():
|
| 119 |
+
print("="*80)
|
| 120 |
+
print("🎮 CATAN WITH GUARANTEED STATE CAPTURE")
|
| 121 |
+
print("="*80)
|
| 122 |
+
print("\nEvery game action will be automatically saved!")
|
| 123 |
+
print("Press Ctrl+C anytime to stop and save.")
|
| 124 |
+
print("="*80 + "\n")
|
| 125 |
+
|
| 126 |
+
# Patch the VisualizationManager's update_full_state
|
| 127 |
+
from pycatan.visualizations.visualization import VisualizationManager
|
| 128 |
+
VisualizationManager.update_full_state = capturing_wrapper(
|
| 129 |
+
VisualizationManager.update_full_state
|
| 130 |
+
)
|
| 131 |
+
|
| 132 |
+
try:
|
| 133 |
+
# Start game
|
| 134 |
+
game = RealGame()
|
| 135 |
+
game.run()
|
| 136 |
+
|
| 137 |
+
except KeyboardInterrupt:
|
| 138 |
+
print("\n\n✅ Game stopped")
|
| 139 |
+
except EOFError:
|
| 140 |
+
print("\n\n✅ Game completed")
|
| 141 |
+
except Exception as e:
|
| 142 |
+
print(f"\n\n❌ Error: {e}")
|
| 143 |
+
import traceback
|
| 144 |
+
traceback.print_exc()
|
| 145 |
+
|
| 146 |
+
|
| 147 |
+
if __name__ == '__main__':
|
| 148 |
+
main()
|
examples/ai_testing/play_and_save.py
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Play Interactive Game and Auto-Save States
|
| 3 |
+
-------------------------------------------
|
| 4 |
+
Play Catan interactively in your browser, and all states
|
| 5 |
+
are automatically captured and saved to JSON files.
|
| 6 |
+
|
| 7 |
+
Usage:
|
| 8 |
+
python examples/ai_testing/play_and_save.py
|
| 9 |
+
"""
|
| 10 |
+
|
| 11 |
+
import sys
|
| 12 |
+
from pathlib import Path
|
| 13 |
+
import json
|
| 14 |
+
import signal
|
| 15 |
+
import atexit
|
| 16 |
+
|
| 17 |
+
# Add parent directory to path
|
| 18 |
+
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
| 19 |
+
|
| 20 |
+
from pycatan import RealGame
|
| 21 |
+
from pycatan.visualizations.web_visualization import WebVisualization
|
| 22 |
+
|
| 23 |
+
# Global list to capture states
|
| 24 |
+
captured_states = []
|
| 25 |
+
game_active = False
|
| 26 |
+
|
| 27 |
+
# Store original functions
|
| 28 |
+
original_web_update = WebVisualization.update_full_state
|
| 29 |
+
original_display_action = None
|
| 30 |
+
|
| 31 |
+
try:
|
| 32 |
+
from pycatan.management.game_manager import GameManager
|
| 33 |
+
original_display_action = GameManager.display_action
|
| 34 |
+
except:
|
| 35 |
+
pass
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
def capturing_update(self, game_state):
|
| 39 |
+
"""Capture all state updates automatically."""
|
| 40 |
+
global captured_states
|
| 41 |
+
|
| 42 |
+
# Call original function
|
| 43 |
+
original_web_update(self, game_state)
|
| 44 |
+
|
| 45 |
+
# Capture the state
|
| 46 |
+
if hasattr(self, 'current_game_state') and self.current_game_state:
|
| 47 |
+
state_copy = json.loads(json.dumps(self.current_game_state))
|
| 48 |
+
captured_states.append(state_copy)
|
| 49 |
+
|
| 50 |
+
# Print notification (less verbose)
|
| 51 |
+
if len(captured_states) % 5 == 0 or len(captured_states) == 1:
|
| 52 |
+
print(f"[Captured {len(captured_states)} states so far...]", flush=True)
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
def capturing_display_action(self, action, result=None):
|
| 56 |
+
"""Hook into display_action to capture after each action."""
|
| 57 |
+
# Call original
|
| 58 |
+
if original_display_action:
|
| 59 |
+
original_display_action(self, action, result)
|
| 60 |
+
|
| 61 |
+
# Force a state capture by updating all visualizations
|
| 62 |
+
if hasattr(self, 'visualization_manager'):
|
| 63 |
+
try:
|
| 64 |
+
self.visualization_manager.update_full_state(self.game.get_state())
|
| 65 |
+
except:
|
| 66 |
+
pass
|
| 67 |
+
|
| 68 |
+
|
| 69 |
+
def save_all_states():
|
| 70 |
+
"""Save all captured states to files."""
|
| 71 |
+
if not captured_states:
|
| 72 |
+
print("\n⚠️ No states were captured during this game.")
|
| 73 |
+
return
|
| 74 |
+
|
| 75 |
+
# Create output directory
|
| 76 |
+
output_dir = Path('examples/ai_testing/my_games')
|
| 77 |
+
output_dir.mkdir(exist_ok=True)
|
| 78 |
+
|
| 79 |
+
# Generate timestamp for unique filename
|
| 80 |
+
from datetime import datetime
|
| 81 |
+
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
|
| 82 |
+
|
| 83 |
+
# Save full game history
|
| 84 |
+
history_file = output_dir / f'game_{timestamp}_full.json'
|
| 85 |
+
with open(history_file, 'w', encoding='utf-8') as f:
|
| 86 |
+
json.dump({
|
| 87 |
+
'total_states': len(captured_states),
|
| 88 |
+
'timestamp': timestamp,
|
| 89 |
+
'states': captured_states
|
| 90 |
+
}, f, indent=2, ensure_ascii=False)
|
| 91 |
+
|
| 92 |
+
# Save just the final state
|
| 93 |
+
final_file = output_dir / f'game_{timestamp}_final.json'
|
| 94 |
+
with open(final_file, 'w', encoding='utf-8') as f:
|
| 95 |
+
json.dump(captured_states[-1], f, indent=2, ensure_ascii=False)
|
| 96 |
+
|
| 97 |
+
# Also save to standard location
|
| 98 |
+
sample_file = Path('examples/ai_testing/sample_states/captured_game.json')
|
| 99 |
+
sample_file.parent.mkdir(exist_ok=True)
|
| 100 |
+
with open(sample_file, 'w', encoding='utf-8') as f:
|
| 101 |
+
json.dump(captured_states[-1], f, indent=2, ensure_ascii=False)
|
| 102 |
+
|
| 103 |
+
print("\n" + "="*80)
|
| 104 |
+
print("✅ GAME SAVED SUCCESSFULLY!")
|
| 105 |
+
print("="*80)
|
| 106 |
+
print(f"\nTotal states captured: {len(captured_states)}")
|
| 107 |
+
print(f"\nSaved to:")
|
| 108 |
+
print(f" 📁 Full game history: {history_file}")
|
| 109 |
+
print(f" 📄 Final state: {final_file}")
|
| 110 |
+
print(f" 📌 Standard location: {sample_file}")
|
| 111 |
+
print("\n" + "="*80)
|
| 112 |
+
|
| 113 |
+
# Print summary
|
| 114 |
+
if captured_states:
|
| 115 |
+
final_state = captured_states[-1]
|
| 116 |
+
print("\n📊 FINAL GAME STATE:")
|
| 117 |
+
print(f" Current Phase: {final_state.get('current_phase', 'UNKNOWN')}")
|
| 118 |
+
print(f" Settlements: {len(final_state.get('settlements', []))}")
|
| 119 |
+
print(f" Cities: {len(final_state.get('cities', []))}")
|
| 120 |
+
print(f" Roads: {len(final_state.get('roads', []))}")
|
| 121 |
+
print(f" Players: {len(final_state.get('players', []))}")
|
| 122 |
+
print("="*80)
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
# Register save function to run on exit
|
| 126 |
+
atexit.register(save_all_states)
|
| 127 |
+
|
| 128 |
+
|
| 129 |
+
def signal_handler(sig, frame):
|
| 130 |
+
"""Handle Ctrl+C gracefully."""
|
| 131 |
+
print("\n\n🛑 Game interrupted by user...")
|
| 132 |
+
save_all_states()
|
| 133 |
+
sys.exit(0)
|
| 134 |
+
|
| 135 |
+
|
| 136 |
+
# Register signal handler
|
| 137 |
+
signal.signal(signal.SIGINT, signal_handler)
|
| 138 |
+
|
| 139 |
+
|
| 140 |
+
def main():
|
| 141 |
+
global game_active
|
| 142 |
+
|
| 143 |
+
print("="*80)
|
| 144 |
+
print("🎮 INTERACTIVE CATAN WITH AUTO-SAVE")
|
| 145 |
+
print("="*80)
|
| 146 |
+
print("\nPlay the game normally in your browser.")
|
| 147 |
+
print("All states will be automatically captured and saved!")
|
| 148 |
+
print("\nPress Ctrl+C at any time to stop and save.")
|
| 149 |
+
print("="*80 + "\n")
|
| 150 |
+
|
| 151 |
+
# Apply the patches
|
| 152 |
+
WebVisualization.update_full_state = capturing_update
|
| 153 |
+
|
| 154 |
+
# Also patch GameManager if available
|
| 155 |
+
if original_display_action:
|
| 156 |
+
from pycatan.management.game_manager import GameManager
|
| 157 |
+
GameManager.display_action = capturing_display_action
|
| 158 |
+
|
| 159 |
+
try:
|
| 160 |
+
# Start the game
|
| 161 |
+
game_active = True
|
| 162 |
+
game = RealGame()
|
| 163 |
+
game.run()
|
| 164 |
+
|
| 165 |
+
except KeyboardInterrupt:
|
| 166 |
+
print("\n\n🛑 Game stopped by user")
|
| 167 |
+
except EOFError:
|
| 168 |
+
print("\n\n✅ Game completed")
|
| 169 |
+
except Exception as e:
|
| 170 |
+
print(f"\n\n❌ Error: {e}")
|
| 171 |
+
import traceback
|
| 172 |
+
traceback.print_exc()
|
| 173 |
+
finally:
|
| 174 |
+
game_active = False
|
| 175 |
+
# save_all_states() will be called by atexit
|
| 176 |
+
|
| 177 |
+
|
| 178 |
+
if __name__ == '__main__':
|
| 179 |
+
main()
|
examples/ai_testing/sample_states/captured_game.json
ADDED
|
@@ -0,0 +1,1850 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"hexes": [
|
| 3 |
+
{
|
| 4 |
+
"id": 1,
|
| 5 |
+
"q": 0,
|
| 6 |
+
"r": -2,
|
| 7 |
+
"type": "wood",
|
| 8 |
+
"number": 12,
|
| 9 |
+
"has_robber": false,
|
| 10 |
+
"position": [
|
| 11 |
+
0,
|
| 12 |
+
0
|
| 13 |
+
],
|
| 14 |
+
"axial_coords": [
|
| 15 |
+
0,
|
| 16 |
+
-2
|
| 17 |
+
]
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"id": 2,
|
| 21 |
+
"q": 1,
|
| 22 |
+
"r": -2,
|
| 23 |
+
"type": "sheep",
|
| 24 |
+
"number": 5,
|
| 25 |
+
"has_robber": false,
|
| 26 |
+
"position": [
|
| 27 |
+
0,
|
| 28 |
+
1
|
| 29 |
+
],
|
| 30 |
+
"axial_coords": [
|
| 31 |
+
1,
|
| 32 |
+
-2
|
| 33 |
+
]
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"id": 3,
|
| 37 |
+
"q": 2,
|
| 38 |
+
"r": -2,
|
| 39 |
+
"type": "wood",
|
| 40 |
+
"number": 4,
|
| 41 |
+
"has_robber": false,
|
| 42 |
+
"position": [
|
| 43 |
+
0,
|
| 44 |
+
2
|
| 45 |
+
],
|
| 46 |
+
"axial_coords": [
|
| 47 |
+
2,
|
| 48 |
+
-2
|
| 49 |
+
]
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"id": 4,
|
| 53 |
+
"q": -1,
|
| 54 |
+
"r": -1,
|
| 55 |
+
"type": "sheep",
|
| 56 |
+
"number": 8,
|
| 57 |
+
"has_robber": false,
|
| 58 |
+
"position": [
|
| 59 |
+
1,
|
| 60 |
+
0
|
| 61 |
+
],
|
| 62 |
+
"axial_coords": [
|
| 63 |
+
-1,
|
| 64 |
+
-1
|
| 65 |
+
]
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"id": 5,
|
| 69 |
+
"q": 0,
|
| 70 |
+
"r": -1,
|
| 71 |
+
"type": "brick",
|
| 72 |
+
"number": 6,
|
| 73 |
+
"has_robber": false,
|
| 74 |
+
"position": [
|
| 75 |
+
1,
|
| 76 |
+
1
|
| 77 |
+
],
|
| 78 |
+
"axial_coords": [
|
| 79 |
+
0,
|
| 80 |
+
-1
|
| 81 |
+
]
|
| 82 |
+
},
|
| 83 |
+
{
|
| 84 |
+
"id": 6,
|
| 85 |
+
"q": 1,
|
| 86 |
+
"r": -1,
|
| 87 |
+
"type": "wood",
|
| 88 |
+
"number": 3,
|
| 89 |
+
"has_robber": false,
|
| 90 |
+
"position": [
|
| 91 |
+
1,
|
| 92 |
+
2
|
| 93 |
+
],
|
| 94 |
+
"axial_coords": [
|
| 95 |
+
1,
|
| 96 |
+
-1
|
| 97 |
+
]
|
| 98 |
+
},
|
| 99 |
+
{
|
| 100 |
+
"id": 7,
|
| 101 |
+
"q": 2,
|
| 102 |
+
"r": -1,
|
| 103 |
+
"type": "wheat",
|
| 104 |
+
"number": 8,
|
| 105 |
+
"has_robber": false,
|
| 106 |
+
"position": [
|
| 107 |
+
1,
|
| 108 |
+
3
|
| 109 |
+
],
|
| 110 |
+
"axial_coords": [
|
| 111 |
+
2,
|
| 112 |
+
-1
|
| 113 |
+
]
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"id": 8,
|
| 117 |
+
"q": -2,
|
| 118 |
+
"r": 0,
|
| 119 |
+
"type": "brick",
|
| 120 |
+
"number": 10,
|
| 121 |
+
"has_robber": false,
|
| 122 |
+
"position": [
|
| 123 |
+
2,
|
| 124 |
+
0
|
| 125 |
+
],
|
| 126 |
+
"axial_coords": [
|
| 127 |
+
-2,
|
| 128 |
+
0
|
| 129 |
+
]
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"id": 9,
|
| 133 |
+
"q": -1,
|
| 134 |
+
"r": 0,
|
| 135 |
+
"type": "wood",
|
| 136 |
+
"number": 11,
|
| 137 |
+
"has_robber": false,
|
| 138 |
+
"position": [
|
| 139 |
+
2,
|
| 140 |
+
1
|
| 141 |
+
],
|
| 142 |
+
"axial_coords": [
|
| 143 |
+
-1,
|
| 144 |
+
0
|
| 145 |
+
]
|
| 146 |
+
},
|
| 147 |
+
{
|
| 148 |
+
"id": 10,
|
| 149 |
+
"q": 0,
|
| 150 |
+
"r": 0,
|
| 151 |
+
"type": "desert",
|
| 152 |
+
"number": null,
|
| 153 |
+
"has_robber": true,
|
| 154 |
+
"position": [
|
| 155 |
+
2,
|
| 156 |
+
2
|
| 157 |
+
],
|
| 158 |
+
"axial_coords": [
|
| 159 |
+
0,
|
| 160 |
+
0
|
| 161 |
+
]
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"id": 11,
|
| 165 |
+
"q": 1,
|
| 166 |
+
"r": 0,
|
| 167 |
+
"type": "ore",
|
| 168 |
+
"number": 3,
|
| 169 |
+
"has_robber": false,
|
| 170 |
+
"position": [
|
| 171 |
+
2,
|
| 172 |
+
3
|
| 173 |
+
],
|
| 174 |
+
"axial_coords": [
|
| 175 |
+
1,
|
| 176 |
+
0
|
| 177 |
+
]
|
| 178 |
+
},
|
| 179 |
+
{
|
| 180 |
+
"id": 12,
|
| 181 |
+
"q": 2,
|
| 182 |
+
"r": 0,
|
| 183 |
+
"type": "sheep",
|
| 184 |
+
"number": 4,
|
| 185 |
+
"has_robber": false,
|
| 186 |
+
"position": [
|
| 187 |
+
2,
|
| 188 |
+
4
|
| 189 |
+
],
|
| 190 |
+
"axial_coords": [
|
| 191 |
+
2,
|
| 192 |
+
0
|
| 193 |
+
]
|
| 194 |
+
},
|
| 195 |
+
{
|
| 196 |
+
"id": 13,
|
| 197 |
+
"q": -2,
|
| 198 |
+
"r": 1,
|
| 199 |
+
"type": "brick",
|
| 200 |
+
"number": 10,
|
| 201 |
+
"has_robber": false,
|
| 202 |
+
"position": [
|
| 203 |
+
3,
|
| 204 |
+
0
|
| 205 |
+
],
|
| 206 |
+
"axial_coords": [
|
| 207 |
+
-2,
|
| 208 |
+
1
|
| 209 |
+
]
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"id": 14,
|
| 213 |
+
"q": -1,
|
| 214 |
+
"r": 1,
|
| 215 |
+
"type": "wheat",
|
| 216 |
+
"number": 9,
|
| 217 |
+
"has_robber": false,
|
| 218 |
+
"position": [
|
| 219 |
+
3,
|
| 220 |
+
1
|
| 221 |
+
],
|
| 222 |
+
"axial_coords": [
|
| 223 |
+
-1,
|
| 224 |
+
1
|
| 225 |
+
]
|
| 226 |
+
},
|
| 227 |
+
{
|
| 228 |
+
"id": 15,
|
| 229 |
+
"q": 0,
|
| 230 |
+
"r": 1,
|
| 231 |
+
"type": "wheat",
|
| 232 |
+
"number": 6,
|
| 233 |
+
"has_robber": false,
|
| 234 |
+
"position": [
|
| 235 |
+
3,
|
| 236 |
+
2
|
| 237 |
+
],
|
| 238 |
+
"axial_coords": [
|
| 239 |
+
0,
|
| 240 |
+
1
|
| 241 |
+
]
|
| 242 |
+
},
|
| 243 |
+
{
|
| 244 |
+
"id": 16,
|
| 245 |
+
"q": 1,
|
| 246 |
+
"r": 1,
|
| 247 |
+
"type": "sheep",
|
| 248 |
+
"number": 11,
|
| 249 |
+
"has_robber": false,
|
| 250 |
+
"position": [
|
| 251 |
+
3,
|
| 252 |
+
3
|
| 253 |
+
],
|
| 254 |
+
"axial_coords": [
|
| 255 |
+
1,
|
| 256 |
+
1
|
| 257 |
+
]
|
| 258 |
+
},
|
| 259 |
+
{
|
| 260 |
+
"id": 17,
|
| 261 |
+
"q": -2,
|
| 262 |
+
"r": 2,
|
| 263 |
+
"type": "ore",
|
| 264 |
+
"number": 5,
|
| 265 |
+
"has_robber": false,
|
| 266 |
+
"position": [
|
| 267 |
+
4,
|
| 268 |
+
0
|
| 269 |
+
],
|
| 270 |
+
"axial_coords": [
|
| 271 |
+
-2,
|
| 272 |
+
2
|
| 273 |
+
]
|
| 274 |
+
},
|
| 275 |
+
{
|
| 276 |
+
"id": 18,
|
| 277 |
+
"q": -1,
|
| 278 |
+
"r": 2,
|
| 279 |
+
"type": "wheat",
|
| 280 |
+
"number": 9,
|
| 281 |
+
"has_robber": false,
|
| 282 |
+
"position": [
|
| 283 |
+
4,
|
| 284 |
+
1
|
| 285 |
+
],
|
| 286 |
+
"axial_coords": [
|
| 287 |
+
-1,
|
| 288 |
+
2
|
| 289 |
+
]
|
| 290 |
+
},
|
| 291 |
+
{
|
| 292 |
+
"id": 19,
|
| 293 |
+
"q": 0,
|
| 294 |
+
"r": 2,
|
| 295 |
+
"type": "ore",
|
| 296 |
+
"number": 2,
|
| 297 |
+
"has_robber": false,
|
| 298 |
+
"position": [
|
| 299 |
+
4,
|
| 300 |
+
2
|
| 301 |
+
],
|
| 302 |
+
"axial_coords": [
|
| 303 |
+
0,
|
| 304 |
+
2
|
| 305 |
+
]
|
| 306 |
+
}
|
| 307 |
+
],
|
| 308 |
+
"settlements": [],
|
| 309 |
+
"cities": [],
|
| 310 |
+
"roads": [],
|
| 311 |
+
"players": [
|
| 312 |
+
{
|
| 313 |
+
"id": 0,
|
| 314 |
+
"name": "A",
|
| 315 |
+
"victory_points": 0,
|
| 316 |
+
"total_cards": 0,
|
| 317 |
+
"cards_list": [],
|
| 318 |
+
"dev_cards_list": [],
|
| 319 |
+
"settlements": 0,
|
| 320 |
+
"cities": 0,
|
| 321 |
+
"roads": 0,
|
| 322 |
+
"longest_road": 0,
|
| 323 |
+
"has_longest_road": false,
|
| 324 |
+
"knights": 0,
|
| 325 |
+
"knights_played": 0,
|
| 326 |
+
"has_largest_army": false
|
| 327 |
+
},
|
| 328 |
+
{
|
| 329 |
+
"id": 1,
|
| 330 |
+
"name": "B",
|
| 331 |
+
"victory_points": 0,
|
| 332 |
+
"total_cards": 0,
|
| 333 |
+
"cards_list": [],
|
| 334 |
+
"dev_cards_list": [],
|
| 335 |
+
"settlements": 0,
|
| 336 |
+
"cities": 0,
|
| 337 |
+
"roads": 0,
|
| 338 |
+
"longest_road": 0,
|
| 339 |
+
"has_longest_road": false,
|
| 340 |
+
"knights": 0,
|
| 341 |
+
"knights_played": 0,
|
| 342 |
+
"has_largest_army": false
|
| 343 |
+
},
|
| 344 |
+
{
|
| 345 |
+
"id": 2,
|
| 346 |
+
"name": "C",
|
| 347 |
+
"victory_points": 0,
|
| 348 |
+
"total_cards": 0,
|
| 349 |
+
"cards_list": [],
|
| 350 |
+
"dev_cards_list": [],
|
| 351 |
+
"settlements": 0,
|
| 352 |
+
"cities": 0,
|
| 353 |
+
"roads": 0,
|
| 354 |
+
"longest_road": 0,
|
| 355 |
+
"has_longest_road": false,
|
| 356 |
+
"knights": 0,
|
| 357 |
+
"knights_played": 0,
|
| 358 |
+
"has_largest_army": false
|
| 359 |
+
}
|
| 360 |
+
],
|
| 361 |
+
"current_player": 0,
|
| 362 |
+
"current_phase": "SETUP_FIRST_ROUND",
|
| 363 |
+
"robber_position": [
|
| 364 |
+
2,
|
| 365 |
+
2
|
| 366 |
+
],
|
| 367 |
+
"dice_result": null,
|
| 368 |
+
"points": [
|
| 369 |
+
{
|
| 370 |
+
"point_id": 1,
|
| 371 |
+
"game_coords": [
|
| 372 |
+
0,
|
| 373 |
+
0
|
| 374 |
+
],
|
| 375 |
+
"adjacent_points": [
|
| 376 |
+
2,
|
| 377 |
+
9
|
| 378 |
+
],
|
| 379 |
+
"adjacent_hexes": [
|
| 380 |
+
1
|
| 381 |
+
],
|
| 382 |
+
"pixel_coords": [
|
| 383 |
+
377.5,
|
| 384 |
+
105.14428414850131
|
| 385 |
+
]
|
| 386 |
+
},
|
| 387 |
+
{
|
| 388 |
+
"point_id": 2,
|
| 389 |
+
"game_coords": [
|
| 390 |
+
0,
|
| 391 |
+
1
|
| 392 |
+
],
|
| 393 |
+
"adjacent_points": [
|
| 394 |
+
1,
|
| 395 |
+
3
|
| 396 |
+
],
|
| 397 |
+
"adjacent_hexes": [
|
| 398 |
+
1
|
| 399 |
+
],
|
| 400 |
+
"pixel_coords": [
|
| 401 |
+
422.5,
|
| 402 |
+
105.14428414850128
|
| 403 |
+
]
|
| 404 |
+
},
|
| 405 |
+
{
|
| 406 |
+
"point_id": 3,
|
| 407 |
+
"game_coords": [
|
| 408 |
+
0,
|
| 409 |
+
2
|
| 410 |
+
],
|
| 411 |
+
"adjacent_points": [
|
| 412 |
+
2,
|
| 413 |
+
4,
|
| 414 |
+
11
|
| 415 |
+
],
|
| 416 |
+
"adjacent_hexes": [
|
| 417 |
+
2,
|
| 418 |
+
1
|
| 419 |
+
],
|
| 420 |
+
"pixel_coords": [
|
| 421 |
+
445,
|
| 422 |
+
144.11542731880104
|
| 423 |
+
]
|
| 424 |
+
},
|
| 425 |
+
{
|
| 426 |
+
"point_id": 4,
|
| 427 |
+
"game_coords": [
|
| 428 |
+
0,
|
| 429 |
+
3
|
| 430 |
+
],
|
| 431 |
+
"adjacent_points": [
|
| 432 |
+
3,
|
| 433 |
+
5
|
| 434 |
+
],
|
| 435 |
+
"adjacent_hexes": [
|
| 436 |
+
2
|
| 437 |
+
],
|
| 438 |
+
"pixel_coords": [
|
| 439 |
+
490,
|
| 440 |
+
144.11542731880104
|
| 441 |
+
]
|
| 442 |
+
},
|
| 443 |
+
{
|
| 444 |
+
"point_id": 5,
|
| 445 |
+
"game_coords": [
|
| 446 |
+
0,
|
| 447 |
+
4
|
| 448 |
+
],
|
| 449 |
+
"adjacent_points": [
|
| 450 |
+
4,
|
| 451 |
+
6,
|
| 452 |
+
13
|
| 453 |
+
],
|
| 454 |
+
"adjacent_hexes": [
|
| 455 |
+
3,
|
| 456 |
+
2
|
| 457 |
+
],
|
| 458 |
+
"pixel_coords": [
|
| 459 |
+
512.5,
|
| 460 |
+
183.08657048910078
|
| 461 |
+
]
|
| 462 |
+
},
|
| 463 |
+
{
|
| 464 |
+
"point_id": 6,
|
| 465 |
+
"game_coords": [
|
| 466 |
+
0,
|
| 467 |
+
5
|
| 468 |
+
],
|
| 469 |
+
"adjacent_points": [
|
| 470 |
+
5,
|
| 471 |
+
7
|
| 472 |
+
],
|
| 473 |
+
"adjacent_hexes": [
|
| 474 |
+
3
|
| 475 |
+
],
|
| 476 |
+
"pixel_coords": [
|
| 477 |
+
557.5,
|
| 478 |
+
183.08657048910078
|
| 479 |
+
]
|
| 480 |
+
},
|
| 481 |
+
{
|
| 482 |
+
"point_id": 7,
|
| 483 |
+
"game_coords": [
|
| 484 |
+
0,
|
| 485 |
+
6
|
| 486 |
+
],
|
| 487 |
+
"adjacent_points": [
|
| 488 |
+
6,
|
| 489 |
+
15
|
| 490 |
+
],
|
| 491 |
+
"adjacent_hexes": [
|
| 492 |
+
3
|
| 493 |
+
],
|
| 494 |
+
"pixel_coords": [
|
| 495 |
+
580,
|
| 496 |
+
222.05771365940052
|
| 497 |
+
]
|
| 498 |
+
},
|
| 499 |
+
{
|
| 500 |
+
"point_id": 8,
|
| 501 |
+
"game_coords": [
|
| 502 |
+
1,
|
| 503 |
+
0
|
| 504 |
+
],
|
| 505 |
+
"adjacent_points": [
|
| 506 |
+
9,
|
| 507 |
+
18
|
| 508 |
+
],
|
| 509 |
+
"adjacent_hexes": [
|
| 510 |
+
4
|
| 511 |
+
],
|
| 512 |
+
"pixel_coords": [
|
| 513 |
+
310,
|
| 514 |
+
144.11542731880104
|
| 515 |
+
]
|
| 516 |
+
},
|
| 517 |
+
{
|
| 518 |
+
"point_id": 9,
|
| 519 |
+
"game_coords": [
|
| 520 |
+
1,
|
| 521 |
+
1
|
| 522 |
+
],
|
| 523 |
+
"adjacent_points": [
|
| 524 |
+
8,
|
| 525 |
+
10,
|
| 526 |
+
1
|
| 527 |
+
],
|
| 528 |
+
"adjacent_hexes": [
|
| 529 |
+
4,
|
| 530 |
+
1
|
| 531 |
+
],
|
| 532 |
+
"pixel_coords": [
|
| 533 |
+
355,
|
| 534 |
+
144.11542731880104
|
| 535 |
+
]
|
| 536 |
+
},
|
| 537 |
+
{
|
| 538 |
+
"point_id": 10,
|
| 539 |
+
"game_coords": [
|
| 540 |
+
1,
|
| 541 |
+
2
|
| 542 |
+
],
|
| 543 |
+
"adjacent_points": [
|
| 544 |
+
9,
|
| 545 |
+
11,
|
| 546 |
+
20
|
| 547 |
+
],
|
| 548 |
+
"adjacent_hexes": [
|
| 549 |
+
5,
|
| 550 |
+
4,
|
| 551 |
+
1
|
| 552 |
+
],
|
| 553 |
+
"pixel_coords": [
|
| 554 |
+
377.5,
|
| 555 |
+
183.08657048910078
|
| 556 |
+
]
|
| 557 |
+
},
|
| 558 |
+
{
|
| 559 |
+
"point_id": 11,
|
| 560 |
+
"game_coords": [
|
| 561 |
+
1,
|
| 562 |
+
3
|
| 563 |
+
],
|
| 564 |
+
"adjacent_points": [
|
| 565 |
+
10,
|
| 566 |
+
12,
|
| 567 |
+
3
|
| 568 |
+
],
|
| 569 |
+
"adjacent_hexes": [
|
| 570 |
+
5,
|
| 571 |
+
2,
|
| 572 |
+
1
|
| 573 |
+
],
|
| 574 |
+
"pixel_coords": [
|
| 575 |
+
422.5,
|
| 576 |
+
183.08657048910078
|
| 577 |
+
]
|
| 578 |
+
},
|
| 579 |
+
{
|
| 580 |
+
"point_id": 12,
|
| 581 |
+
"game_coords": [
|
| 582 |
+
1,
|
| 583 |
+
4
|
| 584 |
+
],
|
| 585 |
+
"adjacent_points": [
|
| 586 |
+
11,
|
| 587 |
+
13,
|
| 588 |
+
22
|
| 589 |
+
],
|
| 590 |
+
"adjacent_hexes": [
|
| 591 |
+
6,
|
| 592 |
+
5,
|
| 593 |
+
2
|
| 594 |
+
],
|
| 595 |
+
"pixel_coords": [
|
| 596 |
+
445,
|
| 597 |
+
222.05771365940052
|
| 598 |
+
]
|
| 599 |
+
},
|
| 600 |
+
{
|
| 601 |
+
"point_id": 13,
|
| 602 |
+
"game_coords": [
|
| 603 |
+
1,
|
| 604 |
+
5
|
| 605 |
+
],
|
| 606 |
+
"adjacent_points": [
|
| 607 |
+
12,
|
| 608 |
+
14,
|
| 609 |
+
5
|
| 610 |
+
],
|
| 611 |
+
"adjacent_hexes": [
|
| 612 |
+
6,
|
| 613 |
+
3,
|
| 614 |
+
2
|
| 615 |
+
],
|
| 616 |
+
"pixel_coords": [
|
| 617 |
+
490,
|
| 618 |
+
222.05771365940052
|
| 619 |
+
]
|
| 620 |
+
},
|
| 621 |
+
{
|
| 622 |
+
"point_id": 14,
|
| 623 |
+
"game_coords": [
|
| 624 |
+
1,
|
| 625 |
+
6
|
| 626 |
+
],
|
| 627 |
+
"adjacent_points": [
|
| 628 |
+
13,
|
| 629 |
+
15,
|
| 630 |
+
24
|
| 631 |
+
],
|
| 632 |
+
"adjacent_hexes": [
|
| 633 |
+
7,
|
| 634 |
+
6,
|
| 635 |
+
3
|
| 636 |
+
],
|
| 637 |
+
"pixel_coords": [
|
| 638 |
+
512.5,
|
| 639 |
+
261.02885682970026
|
| 640 |
+
]
|
| 641 |
+
},
|
| 642 |
+
{
|
| 643 |
+
"point_id": 15,
|
| 644 |
+
"game_coords": [
|
| 645 |
+
1,
|
| 646 |
+
7
|
| 647 |
+
],
|
| 648 |
+
"adjacent_points": [
|
| 649 |
+
14,
|
| 650 |
+
16,
|
| 651 |
+
7
|
| 652 |
+
],
|
| 653 |
+
"adjacent_hexes": [
|
| 654 |
+
7,
|
| 655 |
+
3
|
| 656 |
+
],
|
| 657 |
+
"pixel_coords": [
|
| 658 |
+
557.5,
|
| 659 |
+
261.02885682970026
|
| 660 |
+
]
|
| 661 |
+
},
|
| 662 |
+
{
|
| 663 |
+
"point_id": 16,
|
| 664 |
+
"game_coords": [
|
| 665 |
+
1,
|
| 666 |
+
8
|
| 667 |
+
],
|
| 668 |
+
"adjacent_points": [
|
| 669 |
+
15,
|
| 670 |
+
26
|
| 671 |
+
],
|
| 672 |
+
"adjacent_hexes": [
|
| 673 |
+
7
|
| 674 |
+
],
|
| 675 |
+
"pixel_coords": [
|
| 676 |
+
580,
|
| 677 |
+
300
|
| 678 |
+
]
|
| 679 |
+
},
|
| 680 |
+
{
|
| 681 |
+
"point_id": 17,
|
| 682 |
+
"game_coords": [
|
| 683 |
+
2,
|
| 684 |
+
0
|
| 685 |
+
],
|
| 686 |
+
"adjacent_points": [
|
| 687 |
+
18,
|
| 688 |
+
28
|
| 689 |
+
],
|
| 690 |
+
"adjacent_hexes": [
|
| 691 |
+
8
|
| 692 |
+
],
|
| 693 |
+
"pixel_coords": [
|
| 694 |
+
242.49999999999997,
|
| 695 |
+
183.08657048910078
|
| 696 |
+
]
|
| 697 |
+
},
|
| 698 |
+
{
|
| 699 |
+
"point_id": 18,
|
| 700 |
+
"game_coords": [
|
| 701 |
+
2,
|
| 702 |
+
1
|
| 703 |
+
],
|
| 704 |
+
"adjacent_points": [
|
| 705 |
+
17,
|
| 706 |
+
19,
|
| 707 |
+
8
|
| 708 |
+
],
|
| 709 |
+
"adjacent_hexes": [
|
| 710 |
+
8,
|
| 711 |
+
4
|
| 712 |
+
],
|
| 713 |
+
"pixel_coords": [
|
| 714 |
+
287.5,
|
| 715 |
+
183.08657048910078
|
| 716 |
+
]
|
| 717 |
+
},
|
| 718 |
+
{
|
| 719 |
+
"point_id": 19,
|
| 720 |
+
"game_coords": [
|
| 721 |
+
2,
|
| 722 |
+
2
|
| 723 |
+
],
|
| 724 |
+
"adjacent_points": [
|
| 725 |
+
18,
|
| 726 |
+
20,
|
| 727 |
+
30
|
| 728 |
+
],
|
| 729 |
+
"adjacent_hexes": [
|
| 730 |
+
9,
|
| 731 |
+
8,
|
| 732 |
+
4
|
| 733 |
+
],
|
| 734 |
+
"pixel_coords": [
|
| 735 |
+
310,
|
| 736 |
+
222.05771365940052
|
| 737 |
+
]
|
| 738 |
+
},
|
| 739 |
+
{
|
| 740 |
+
"point_id": 20,
|
| 741 |
+
"game_coords": [
|
| 742 |
+
2,
|
| 743 |
+
3
|
| 744 |
+
],
|
| 745 |
+
"adjacent_points": [
|
| 746 |
+
19,
|
| 747 |
+
21,
|
| 748 |
+
10
|
| 749 |
+
],
|
| 750 |
+
"adjacent_hexes": [
|
| 751 |
+
9,
|
| 752 |
+
5,
|
| 753 |
+
4
|
| 754 |
+
],
|
| 755 |
+
"pixel_coords": [
|
| 756 |
+
355,
|
| 757 |
+
222.05771365940052
|
| 758 |
+
]
|
| 759 |
+
},
|
| 760 |
+
{
|
| 761 |
+
"point_id": 21,
|
| 762 |
+
"game_coords": [
|
| 763 |
+
2,
|
| 764 |
+
4
|
| 765 |
+
],
|
| 766 |
+
"adjacent_points": [
|
| 767 |
+
20,
|
| 768 |
+
22,
|
| 769 |
+
32
|
| 770 |
+
],
|
| 771 |
+
"adjacent_hexes": [
|
| 772 |
+
10,
|
| 773 |
+
9,
|
| 774 |
+
5
|
| 775 |
+
],
|
| 776 |
+
"pixel_coords": [
|
| 777 |
+
377.5,
|
| 778 |
+
261.02885682970026
|
| 779 |
+
]
|
| 780 |
+
},
|
| 781 |
+
{
|
| 782 |
+
"point_id": 22,
|
| 783 |
+
"game_coords": [
|
| 784 |
+
2,
|
| 785 |
+
5
|
| 786 |
+
],
|
| 787 |
+
"adjacent_points": [
|
| 788 |
+
21,
|
| 789 |
+
23,
|
| 790 |
+
12
|
| 791 |
+
],
|
| 792 |
+
"adjacent_hexes": [
|
| 793 |
+
10,
|
| 794 |
+
6,
|
| 795 |
+
5
|
| 796 |
+
],
|
| 797 |
+
"pixel_coords": [
|
| 798 |
+
422.5,
|
| 799 |
+
261.02885682970026
|
| 800 |
+
]
|
| 801 |
+
},
|
| 802 |
+
{
|
| 803 |
+
"point_id": 23,
|
| 804 |
+
"game_coords": [
|
| 805 |
+
2,
|
| 806 |
+
6
|
| 807 |
+
],
|
| 808 |
+
"adjacent_points": [
|
| 809 |
+
22,
|
| 810 |
+
24,
|
| 811 |
+
34
|
| 812 |
+
],
|
| 813 |
+
"adjacent_hexes": [
|
| 814 |
+
11,
|
| 815 |
+
10,
|
| 816 |
+
6
|
| 817 |
+
],
|
| 818 |
+
"pixel_coords": [
|
| 819 |
+
445,
|
| 820 |
+
300
|
| 821 |
+
]
|
| 822 |
+
},
|
| 823 |
+
{
|
| 824 |
+
"point_id": 24,
|
| 825 |
+
"game_coords": [
|
| 826 |
+
2,
|
| 827 |
+
7
|
| 828 |
+
],
|
| 829 |
+
"adjacent_points": [
|
| 830 |
+
23,
|
| 831 |
+
25,
|
| 832 |
+
14
|
| 833 |
+
],
|
| 834 |
+
"adjacent_hexes": [
|
| 835 |
+
11,
|
| 836 |
+
7,
|
| 837 |
+
6
|
| 838 |
+
],
|
| 839 |
+
"pixel_coords": [
|
| 840 |
+
490,
|
| 841 |
+
300
|
| 842 |
+
]
|
| 843 |
+
},
|
| 844 |
+
{
|
| 845 |
+
"point_id": 25,
|
| 846 |
+
"game_coords": [
|
| 847 |
+
2,
|
| 848 |
+
8
|
| 849 |
+
],
|
| 850 |
+
"adjacent_points": [
|
| 851 |
+
24,
|
| 852 |
+
26,
|
| 853 |
+
36
|
| 854 |
+
],
|
| 855 |
+
"adjacent_hexes": [
|
| 856 |
+
12,
|
| 857 |
+
11,
|
| 858 |
+
7
|
| 859 |
+
],
|
| 860 |
+
"pixel_coords": [
|
| 861 |
+
512.5,
|
| 862 |
+
338.97114317029974
|
| 863 |
+
]
|
| 864 |
+
},
|
| 865 |
+
{
|
| 866 |
+
"point_id": 26,
|
| 867 |
+
"game_coords": [
|
| 868 |
+
2,
|
| 869 |
+
9
|
| 870 |
+
],
|
| 871 |
+
"adjacent_points": [
|
| 872 |
+
25,
|
| 873 |
+
27,
|
| 874 |
+
16
|
| 875 |
+
],
|
| 876 |
+
"adjacent_hexes": [
|
| 877 |
+
12,
|
| 878 |
+
7
|
| 879 |
+
],
|
| 880 |
+
"pixel_coords": [
|
| 881 |
+
557.5,
|
| 882 |
+
338.97114317029974
|
| 883 |
+
]
|
| 884 |
+
},
|
| 885 |
+
{
|
| 886 |
+
"point_id": 27,
|
| 887 |
+
"game_coords": [
|
| 888 |
+
2,
|
| 889 |
+
10
|
| 890 |
+
],
|
| 891 |
+
"adjacent_points": [
|
| 892 |
+
26,
|
| 893 |
+
38
|
| 894 |
+
],
|
| 895 |
+
"adjacent_hexes": [
|
| 896 |
+
12
|
| 897 |
+
],
|
| 898 |
+
"pixel_coords": [
|
| 899 |
+
580,
|
| 900 |
+
377.9422863405995
|
| 901 |
+
]
|
| 902 |
+
},
|
| 903 |
+
{
|
| 904 |
+
"point_id": 28,
|
| 905 |
+
"game_coords": [
|
| 906 |
+
3,
|
| 907 |
+
0
|
| 908 |
+
],
|
| 909 |
+
"adjacent_points": [
|
| 910 |
+
29,
|
| 911 |
+
17
|
| 912 |
+
],
|
| 913 |
+
"adjacent_hexes": [
|
| 914 |
+
8
|
| 915 |
+
],
|
| 916 |
+
"pixel_coords": [
|
| 917 |
+
220,
|
| 918 |
+
222.05771365940052
|
| 919 |
+
]
|
| 920 |
+
},
|
| 921 |
+
{
|
| 922 |
+
"point_id": 29,
|
| 923 |
+
"game_coords": [
|
| 924 |
+
3,
|
| 925 |
+
1
|
| 926 |
+
],
|
| 927 |
+
"adjacent_points": [
|
| 928 |
+
28,
|
| 929 |
+
30,
|
| 930 |
+
39
|
| 931 |
+
],
|
| 932 |
+
"adjacent_hexes": [
|
| 933 |
+
13,
|
| 934 |
+
8
|
| 935 |
+
],
|
| 936 |
+
"pixel_coords": [
|
| 937 |
+
242.5,
|
| 938 |
+
261.02885682970026
|
| 939 |
+
]
|
| 940 |
+
},
|
| 941 |
+
{
|
| 942 |
+
"point_id": 30,
|
| 943 |
+
"game_coords": [
|
| 944 |
+
3,
|
| 945 |
+
2
|
| 946 |
+
],
|
| 947 |
+
"adjacent_points": [
|
| 948 |
+
29,
|
| 949 |
+
31,
|
| 950 |
+
19
|
| 951 |
+
],
|
| 952 |
+
"adjacent_hexes": [
|
| 953 |
+
13,
|
| 954 |
+
9,
|
| 955 |
+
8
|
| 956 |
+
],
|
| 957 |
+
"pixel_coords": [
|
| 958 |
+
287.5,
|
| 959 |
+
261.02885682970026
|
| 960 |
+
]
|
| 961 |
+
},
|
| 962 |
+
{
|
| 963 |
+
"point_id": 31,
|
| 964 |
+
"game_coords": [
|
| 965 |
+
3,
|
| 966 |
+
3
|
| 967 |
+
],
|
| 968 |
+
"adjacent_points": [
|
| 969 |
+
30,
|
| 970 |
+
32,
|
| 971 |
+
41
|
| 972 |
+
],
|
| 973 |
+
"adjacent_hexes": [
|
| 974 |
+
14,
|
| 975 |
+
13,
|
| 976 |
+
9
|
| 977 |
+
],
|
| 978 |
+
"pixel_coords": [
|
| 979 |
+
310,
|
| 980 |
+
300
|
| 981 |
+
]
|
| 982 |
+
},
|
| 983 |
+
{
|
| 984 |
+
"point_id": 32,
|
| 985 |
+
"game_coords": [
|
| 986 |
+
3,
|
| 987 |
+
4
|
| 988 |
+
],
|
| 989 |
+
"adjacent_points": [
|
| 990 |
+
31,
|
| 991 |
+
33,
|
| 992 |
+
21
|
| 993 |
+
],
|
| 994 |
+
"adjacent_hexes": [
|
| 995 |
+
14,
|
| 996 |
+
10,
|
| 997 |
+
9
|
| 998 |
+
],
|
| 999 |
+
"pixel_coords": [
|
| 1000 |
+
355,
|
| 1001 |
+
300
|
| 1002 |
+
]
|
| 1003 |
+
},
|
| 1004 |
+
{
|
| 1005 |
+
"point_id": 33,
|
| 1006 |
+
"game_coords": [
|
| 1007 |
+
3,
|
| 1008 |
+
5
|
| 1009 |
+
],
|
| 1010 |
+
"adjacent_points": [
|
| 1011 |
+
32,
|
| 1012 |
+
34,
|
| 1013 |
+
43
|
| 1014 |
+
],
|
| 1015 |
+
"adjacent_hexes": [
|
| 1016 |
+
15,
|
| 1017 |
+
14,
|
| 1018 |
+
10
|
| 1019 |
+
],
|
| 1020 |
+
"pixel_coords": [
|
| 1021 |
+
377.5,
|
| 1022 |
+
338.97114317029974
|
| 1023 |
+
]
|
| 1024 |
+
},
|
| 1025 |
+
{
|
| 1026 |
+
"point_id": 34,
|
| 1027 |
+
"game_coords": [
|
| 1028 |
+
3,
|
| 1029 |
+
6
|
| 1030 |
+
],
|
| 1031 |
+
"adjacent_points": [
|
| 1032 |
+
33,
|
| 1033 |
+
35,
|
| 1034 |
+
23
|
| 1035 |
+
],
|
| 1036 |
+
"adjacent_hexes": [
|
| 1037 |
+
15,
|
| 1038 |
+
11,
|
| 1039 |
+
10
|
| 1040 |
+
],
|
| 1041 |
+
"pixel_coords": [
|
| 1042 |
+
422.5,
|
| 1043 |
+
338.97114317029974
|
| 1044 |
+
]
|
| 1045 |
+
},
|
| 1046 |
+
{
|
| 1047 |
+
"point_id": 35,
|
| 1048 |
+
"game_coords": [
|
| 1049 |
+
3,
|
| 1050 |
+
7
|
| 1051 |
+
],
|
| 1052 |
+
"adjacent_points": [
|
| 1053 |
+
34,
|
| 1054 |
+
36,
|
| 1055 |
+
45
|
| 1056 |
+
],
|
| 1057 |
+
"adjacent_hexes": [
|
| 1058 |
+
16,
|
| 1059 |
+
15,
|
| 1060 |
+
11
|
| 1061 |
+
],
|
| 1062 |
+
"pixel_coords": [
|
| 1063 |
+
445,
|
| 1064 |
+
377.9422863405995
|
| 1065 |
+
]
|
| 1066 |
+
},
|
| 1067 |
+
{
|
| 1068 |
+
"point_id": 36,
|
| 1069 |
+
"game_coords": [
|
| 1070 |
+
3,
|
| 1071 |
+
8
|
| 1072 |
+
],
|
| 1073 |
+
"adjacent_points": [
|
| 1074 |
+
35,
|
| 1075 |
+
37,
|
| 1076 |
+
25
|
| 1077 |
+
],
|
| 1078 |
+
"adjacent_hexes": [
|
| 1079 |
+
16,
|
| 1080 |
+
12,
|
| 1081 |
+
11
|
| 1082 |
+
],
|
| 1083 |
+
"pixel_coords": [
|
| 1084 |
+
490,
|
| 1085 |
+
377.9422863405995
|
| 1086 |
+
]
|
| 1087 |
+
},
|
| 1088 |
+
{
|
| 1089 |
+
"point_id": 37,
|
| 1090 |
+
"game_coords": [
|
| 1091 |
+
3,
|
| 1092 |
+
9
|
| 1093 |
+
],
|
| 1094 |
+
"adjacent_points": [
|
| 1095 |
+
36,
|
| 1096 |
+
38,
|
| 1097 |
+
47
|
| 1098 |
+
],
|
| 1099 |
+
"adjacent_hexes": [
|
| 1100 |
+
16,
|
| 1101 |
+
12
|
| 1102 |
+
],
|
| 1103 |
+
"pixel_coords": [
|
| 1104 |
+
512.5,
|
| 1105 |
+
416.9134295108992
|
| 1106 |
+
]
|
| 1107 |
+
},
|
| 1108 |
+
{
|
| 1109 |
+
"point_id": 38,
|
| 1110 |
+
"game_coords": [
|
| 1111 |
+
3,
|
| 1112 |
+
10
|
| 1113 |
+
],
|
| 1114 |
+
"adjacent_points": [
|
| 1115 |
+
37,
|
| 1116 |
+
27
|
| 1117 |
+
],
|
| 1118 |
+
"adjacent_hexes": [
|
| 1119 |
+
12
|
| 1120 |
+
],
|
| 1121 |
+
"pixel_coords": [
|
| 1122 |
+
557.5,
|
| 1123 |
+
416.9134295108992
|
| 1124 |
+
]
|
| 1125 |
+
},
|
| 1126 |
+
{
|
| 1127 |
+
"point_id": 39,
|
| 1128 |
+
"game_coords": [
|
| 1129 |
+
4,
|
| 1130 |
+
0
|
| 1131 |
+
],
|
| 1132 |
+
"adjacent_points": [
|
| 1133 |
+
40,
|
| 1134 |
+
29
|
| 1135 |
+
],
|
| 1136 |
+
"adjacent_hexes": [
|
| 1137 |
+
13
|
| 1138 |
+
],
|
| 1139 |
+
"pixel_coords": [
|
| 1140 |
+
220,
|
| 1141 |
+
300
|
| 1142 |
+
]
|
| 1143 |
+
},
|
| 1144 |
+
{
|
| 1145 |
+
"point_id": 40,
|
| 1146 |
+
"game_coords": [
|
| 1147 |
+
4,
|
| 1148 |
+
1
|
| 1149 |
+
],
|
| 1150 |
+
"adjacent_points": [
|
| 1151 |
+
39,
|
| 1152 |
+
41,
|
| 1153 |
+
48
|
| 1154 |
+
],
|
| 1155 |
+
"adjacent_hexes": [
|
| 1156 |
+
17,
|
| 1157 |
+
13
|
| 1158 |
+
],
|
| 1159 |
+
"pixel_coords": [
|
| 1160 |
+
242.5,
|
| 1161 |
+
338.97114317029974
|
| 1162 |
+
]
|
| 1163 |
+
},
|
| 1164 |
+
{
|
| 1165 |
+
"point_id": 41,
|
| 1166 |
+
"game_coords": [
|
| 1167 |
+
4,
|
| 1168 |
+
2
|
| 1169 |
+
],
|
| 1170 |
+
"adjacent_points": [
|
| 1171 |
+
40,
|
| 1172 |
+
42,
|
| 1173 |
+
31
|
| 1174 |
+
],
|
| 1175 |
+
"adjacent_hexes": [
|
| 1176 |
+
17,
|
| 1177 |
+
14,
|
| 1178 |
+
13
|
| 1179 |
+
],
|
| 1180 |
+
"pixel_coords": [
|
| 1181 |
+
287.5,
|
| 1182 |
+
338.97114317029974
|
| 1183 |
+
]
|
| 1184 |
+
},
|
| 1185 |
+
{
|
| 1186 |
+
"point_id": 42,
|
| 1187 |
+
"game_coords": [
|
| 1188 |
+
4,
|
| 1189 |
+
3
|
| 1190 |
+
],
|
| 1191 |
+
"adjacent_points": [
|
| 1192 |
+
41,
|
| 1193 |
+
43,
|
| 1194 |
+
50
|
| 1195 |
+
],
|
| 1196 |
+
"adjacent_hexes": [
|
| 1197 |
+
18,
|
| 1198 |
+
17,
|
| 1199 |
+
14
|
| 1200 |
+
],
|
| 1201 |
+
"pixel_coords": [
|
| 1202 |
+
310,
|
| 1203 |
+
377.9422863405995
|
| 1204 |
+
]
|
| 1205 |
+
},
|
| 1206 |
+
{
|
| 1207 |
+
"point_id": 43,
|
| 1208 |
+
"game_coords": [
|
| 1209 |
+
4,
|
| 1210 |
+
4
|
| 1211 |
+
],
|
| 1212 |
+
"adjacent_points": [
|
| 1213 |
+
42,
|
| 1214 |
+
44,
|
| 1215 |
+
33
|
| 1216 |
+
],
|
| 1217 |
+
"adjacent_hexes": [
|
| 1218 |
+
18,
|
| 1219 |
+
15,
|
| 1220 |
+
14
|
| 1221 |
+
],
|
| 1222 |
+
"pixel_coords": [
|
| 1223 |
+
355,
|
| 1224 |
+
377.9422863405995
|
| 1225 |
+
]
|
| 1226 |
+
},
|
| 1227 |
+
{
|
| 1228 |
+
"point_id": 44,
|
| 1229 |
+
"game_coords": [
|
| 1230 |
+
4,
|
| 1231 |
+
5
|
| 1232 |
+
],
|
| 1233 |
+
"adjacent_points": [
|
| 1234 |
+
43,
|
| 1235 |
+
45,
|
| 1236 |
+
52
|
| 1237 |
+
],
|
| 1238 |
+
"adjacent_hexes": [
|
| 1239 |
+
19,
|
| 1240 |
+
18,
|
| 1241 |
+
15
|
| 1242 |
+
],
|
| 1243 |
+
"pixel_coords": [
|
| 1244 |
+
377.5,
|
| 1245 |
+
416.9134295108992
|
| 1246 |
+
]
|
| 1247 |
+
},
|
| 1248 |
+
{
|
| 1249 |
+
"point_id": 45,
|
| 1250 |
+
"game_coords": [
|
| 1251 |
+
4,
|
| 1252 |
+
6
|
| 1253 |
+
],
|
| 1254 |
+
"adjacent_points": [
|
| 1255 |
+
44,
|
| 1256 |
+
46,
|
| 1257 |
+
35
|
| 1258 |
+
],
|
| 1259 |
+
"adjacent_hexes": [
|
| 1260 |
+
19,
|
| 1261 |
+
16,
|
| 1262 |
+
15
|
| 1263 |
+
],
|
| 1264 |
+
"pixel_coords": [
|
| 1265 |
+
422.5,
|
| 1266 |
+
416.9134295108992
|
| 1267 |
+
]
|
| 1268 |
+
},
|
| 1269 |
+
{
|
| 1270 |
+
"point_id": 46,
|
| 1271 |
+
"game_coords": [
|
| 1272 |
+
4,
|
| 1273 |
+
7
|
| 1274 |
+
],
|
| 1275 |
+
"adjacent_points": [
|
| 1276 |
+
45,
|
| 1277 |
+
47,
|
| 1278 |
+
54
|
| 1279 |
+
],
|
| 1280 |
+
"adjacent_hexes": [
|
| 1281 |
+
19,
|
| 1282 |
+
16
|
| 1283 |
+
],
|
| 1284 |
+
"pixel_coords": [
|
| 1285 |
+
445,
|
| 1286 |
+
455.88457268119896
|
| 1287 |
+
]
|
| 1288 |
+
},
|
| 1289 |
+
{
|
| 1290 |
+
"point_id": 47,
|
| 1291 |
+
"game_coords": [
|
| 1292 |
+
4,
|
| 1293 |
+
8
|
| 1294 |
+
],
|
| 1295 |
+
"adjacent_points": [
|
| 1296 |
+
46,
|
| 1297 |
+
37
|
| 1298 |
+
],
|
| 1299 |
+
"adjacent_hexes": [
|
| 1300 |
+
16
|
| 1301 |
+
],
|
| 1302 |
+
"pixel_coords": [
|
| 1303 |
+
490,
|
| 1304 |
+
455.88457268119896
|
| 1305 |
+
]
|
| 1306 |
+
},
|
| 1307 |
+
{
|
| 1308 |
+
"point_id": 48,
|
| 1309 |
+
"game_coords": [
|
| 1310 |
+
5,
|
| 1311 |
+
0
|
| 1312 |
+
],
|
| 1313 |
+
"adjacent_points": [
|
| 1314 |
+
49,
|
| 1315 |
+
40
|
| 1316 |
+
],
|
| 1317 |
+
"adjacent_hexes": [
|
| 1318 |
+
17
|
| 1319 |
+
],
|
| 1320 |
+
"pixel_coords": [
|
| 1321 |
+
220,
|
| 1322 |
+
377.9422863405995
|
| 1323 |
+
]
|
| 1324 |
+
},
|
| 1325 |
+
{
|
| 1326 |
+
"point_id": 49,
|
| 1327 |
+
"game_coords": [
|
| 1328 |
+
5,
|
| 1329 |
+
1
|
| 1330 |
+
],
|
| 1331 |
+
"adjacent_points": [
|
| 1332 |
+
48,
|
| 1333 |
+
50
|
| 1334 |
+
],
|
| 1335 |
+
"adjacent_hexes": [
|
| 1336 |
+
17
|
| 1337 |
+
],
|
| 1338 |
+
"pixel_coords": [
|
| 1339 |
+
242.5,
|
| 1340 |
+
416.9134295108992
|
| 1341 |
+
]
|
| 1342 |
+
},
|
| 1343 |
+
{
|
| 1344 |
+
"point_id": 50,
|
| 1345 |
+
"game_coords": [
|
| 1346 |
+
5,
|
| 1347 |
+
2
|
| 1348 |
+
],
|
| 1349 |
+
"adjacent_points": [
|
| 1350 |
+
49,
|
| 1351 |
+
51,
|
| 1352 |
+
42
|
| 1353 |
+
],
|
| 1354 |
+
"adjacent_hexes": [
|
| 1355 |
+
18,
|
| 1356 |
+
17
|
| 1357 |
+
],
|
| 1358 |
+
"pixel_coords": [
|
| 1359 |
+
287.5,
|
| 1360 |
+
416.9134295108992
|
| 1361 |
+
]
|
| 1362 |
+
},
|
| 1363 |
+
{
|
| 1364 |
+
"point_id": 51,
|
| 1365 |
+
"game_coords": [
|
| 1366 |
+
5,
|
| 1367 |
+
3
|
| 1368 |
+
],
|
| 1369 |
+
"adjacent_points": [
|
| 1370 |
+
50,
|
| 1371 |
+
52
|
| 1372 |
+
],
|
| 1373 |
+
"adjacent_hexes": [
|
| 1374 |
+
18
|
| 1375 |
+
],
|
| 1376 |
+
"pixel_coords": [
|
| 1377 |
+
310,
|
| 1378 |
+
455.88457268119896
|
| 1379 |
+
]
|
| 1380 |
+
},
|
| 1381 |
+
{
|
| 1382 |
+
"point_id": 52,
|
| 1383 |
+
"game_coords": [
|
| 1384 |
+
5,
|
| 1385 |
+
4
|
| 1386 |
+
],
|
| 1387 |
+
"adjacent_points": [
|
| 1388 |
+
51,
|
| 1389 |
+
53,
|
| 1390 |
+
44
|
| 1391 |
+
],
|
| 1392 |
+
"adjacent_hexes": [
|
| 1393 |
+
19,
|
| 1394 |
+
18
|
| 1395 |
+
],
|
| 1396 |
+
"pixel_coords": [
|
| 1397 |
+
355,
|
| 1398 |
+
455.88457268119896
|
| 1399 |
+
]
|
| 1400 |
+
},
|
| 1401 |
+
{
|
| 1402 |
+
"point_id": 53,
|
| 1403 |
+
"game_coords": [
|
| 1404 |
+
5,
|
| 1405 |
+
5
|
| 1406 |
+
],
|
| 1407 |
+
"adjacent_points": [
|
| 1408 |
+
52,
|
| 1409 |
+
54
|
| 1410 |
+
],
|
| 1411 |
+
"adjacent_hexes": [
|
| 1412 |
+
19
|
| 1413 |
+
],
|
| 1414 |
+
"pixel_coords": [
|
| 1415 |
+
377.5,
|
| 1416 |
+
494.8557158514987
|
| 1417 |
+
]
|
| 1418 |
+
},
|
| 1419 |
+
{
|
| 1420 |
+
"point_id": 54,
|
| 1421 |
+
"game_coords": [
|
| 1422 |
+
5,
|
| 1423 |
+
6
|
| 1424 |
+
],
|
| 1425 |
+
"adjacent_points": [
|
| 1426 |
+
53,
|
| 1427 |
+
46
|
| 1428 |
+
],
|
| 1429 |
+
"adjacent_hexes": [
|
| 1430 |
+
19
|
| 1431 |
+
],
|
| 1432 |
+
"pixel_coords": [
|
| 1433 |
+
422.5,
|
| 1434 |
+
494.8557158514987
|
| 1435 |
+
]
|
| 1436 |
+
}
|
| 1437 |
+
],
|
| 1438 |
+
"board_graph": {
|
| 1439 |
+
"adjacency": {
|
| 1440 |
+
"1": [
|
| 1441 |
+
2,
|
| 1442 |
+
9
|
| 1443 |
+
],
|
| 1444 |
+
"2": [
|
| 1445 |
+
1,
|
| 1446 |
+
3
|
| 1447 |
+
],
|
| 1448 |
+
"3": [
|
| 1449 |
+
2,
|
| 1450 |
+
4,
|
| 1451 |
+
11
|
| 1452 |
+
],
|
| 1453 |
+
"4": [
|
| 1454 |
+
3,
|
| 1455 |
+
5
|
| 1456 |
+
],
|
| 1457 |
+
"5": [
|
| 1458 |
+
4,
|
| 1459 |
+
6,
|
| 1460 |
+
13
|
| 1461 |
+
],
|
| 1462 |
+
"6": [
|
| 1463 |
+
5,
|
| 1464 |
+
7
|
| 1465 |
+
],
|
| 1466 |
+
"7": [
|
| 1467 |
+
6,
|
| 1468 |
+
15
|
| 1469 |
+
],
|
| 1470 |
+
"8": [
|
| 1471 |
+
9,
|
| 1472 |
+
18
|
| 1473 |
+
],
|
| 1474 |
+
"9": [
|
| 1475 |
+
8,
|
| 1476 |
+
10,
|
| 1477 |
+
1
|
| 1478 |
+
],
|
| 1479 |
+
"10": [
|
| 1480 |
+
9,
|
| 1481 |
+
11,
|
| 1482 |
+
20
|
| 1483 |
+
],
|
| 1484 |
+
"11": [
|
| 1485 |
+
10,
|
| 1486 |
+
12,
|
| 1487 |
+
3
|
| 1488 |
+
],
|
| 1489 |
+
"12": [
|
| 1490 |
+
11,
|
| 1491 |
+
13,
|
| 1492 |
+
22
|
| 1493 |
+
],
|
| 1494 |
+
"13": [
|
| 1495 |
+
12,
|
| 1496 |
+
14,
|
| 1497 |
+
5
|
| 1498 |
+
],
|
| 1499 |
+
"14": [
|
| 1500 |
+
13,
|
| 1501 |
+
15,
|
| 1502 |
+
24
|
| 1503 |
+
],
|
| 1504 |
+
"15": [
|
| 1505 |
+
14,
|
| 1506 |
+
16,
|
| 1507 |
+
7
|
| 1508 |
+
],
|
| 1509 |
+
"16": [
|
| 1510 |
+
15,
|
| 1511 |
+
26
|
| 1512 |
+
],
|
| 1513 |
+
"17": [
|
| 1514 |
+
18,
|
| 1515 |
+
28
|
| 1516 |
+
],
|
| 1517 |
+
"18": [
|
| 1518 |
+
17,
|
| 1519 |
+
19,
|
| 1520 |
+
8
|
| 1521 |
+
],
|
| 1522 |
+
"19": [
|
| 1523 |
+
18,
|
| 1524 |
+
20,
|
| 1525 |
+
30
|
| 1526 |
+
],
|
| 1527 |
+
"20": [
|
| 1528 |
+
19,
|
| 1529 |
+
21,
|
| 1530 |
+
10
|
| 1531 |
+
],
|
| 1532 |
+
"21": [
|
| 1533 |
+
20,
|
| 1534 |
+
22,
|
| 1535 |
+
32
|
| 1536 |
+
],
|
| 1537 |
+
"22": [
|
| 1538 |
+
21,
|
| 1539 |
+
23,
|
| 1540 |
+
12
|
| 1541 |
+
],
|
| 1542 |
+
"23": [
|
| 1543 |
+
22,
|
| 1544 |
+
24,
|
| 1545 |
+
34
|
| 1546 |
+
],
|
| 1547 |
+
"24": [
|
| 1548 |
+
23,
|
| 1549 |
+
25,
|
| 1550 |
+
14
|
| 1551 |
+
],
|
| 1552 |
+
"25": [
|
| 1553 |
+
24,
|
| 1554 |
+
26,
|
| 1555 |
+
36
|
| 1556 |
+
],
|
| 1557 |
+
"26": [
|
| 1558 |
+
25,
|
| 1559 |
+
27,
|
| 1560 |
+
16
|
| 1561 |
+
],
|
| 1562 |
+
"27": [
|
| 1563 |
+
26,
|
| 1564 |
+
38
|
| 1565 |
+
],
|
| 1566 |
+
"28": [
|
| 1567 |
+
29,
|
| 1568 |
+
17
|
| 1569 |
+
],
|
| 1570 |
+
"29": [
|
| 1571 |
+
28,
|
| 1572 |
+
30,
|
| 1573 |
+
39
|
| 1574 |
+
],
|
| 1575 |
+
"30": [
|
| 1576 |
+
29,
|
| 1577 |
+
31,
|
| 1578 |
+
19
|
| 1579 |
+
],
|
| 1580 |
+
"31": [
|
| 1581 |
+
30,
|
| 1582 |
+
32,
|
| 1583 |
+
41
|
| 1584 |
+
],
|
| 1585 |
+
"32": [
|
| 1586 |
+
31,
|
| 1587 |
+
33,
|
| 1588 |
+
21
|
| 1589 |
+
],
|
| 1590 |
+
"33": [
|
| 1591 |
+
32,
|
| 1592 |
+
34,
|
| 1593 |
+
43
|
| 1594 |
+
],
|
| 1595 |
+
"34": [
|
| 1596 |
+
33,
|
| 1597 |
+
35,
|
| 1598 |
+
23
|
| 1599 |
+
],
|
| 1600 |
+
"35": [
|
| 1601 |
+
34,
|
| 1602 |
+
36,
|
| 1603 |
+
45
|
| 1604 |
+
],
|
| 1605 |
+
"36": [
|
| 1606 |
+
35,
|
| 1607 |
+
37,
|
| 1608 |
+
25
|
| 1609 |
+
],
|
| 1610 |
+
"37": [
|
| 1611 |
+
36,
|
| 1612 |
+
38,
|
| 1613 |
+
47
|
| 1614 |
+
],
|
| 1615 |
+
"38": [
|
| 1616 |
+
37,
|
| 1617 |
+
27
|
| 1618 |
+
],
|
| 1619 |
+
"39": [
|
| 1620 |
+
40,
|
| 1621 |
+
29
|
| 1622 |
+
],
|
| 1623 |
+
"40": [
|
| 1624 |
+
39,
|
| 1625 |
+
41,
|
| 1626 |
+
48
|
| 1627 |
+
],
|
| 1628 |
+
"41": [
|
| 1629 |
+
40,
|
| 1630 |
+
42,
|
| 1631 |
+
31
|
| 1632 |
+
],
|
| 1633 |
+
"42": [
|
| 1634 |
+
41,
|
| 1635 |
+
43,
|
| 1636 |
+
50
|
| 1637 |
+
],
|
| 1638 |
+
"43": [
|
| 1639 |
+
42,
|
| 1640 |
+
44,
|
| 1641 |
+
33
|
| 1642 |
+
],
|
| 1643 |
+
"44": [
|
| 1644 |
+
43,
|
| 1645 |
+
45,
|
| 1646 |
+
52
|
| 1647 |
+
],
|
| 1648 |
+
"45": [
|
| 1649 |
+
44,
|
| 1650 |
+
46,
|
| 1651 |
+
35
|
| 1652 |
+
],
|
| 1653 |
+
"46": [
|
| 1654 |
+
45,
|
| 1655 |
+
47,
|
| 1656 |
+
54
|
| 1657 |
+
],
|
| 1658 |
+
"47": [
|
| 1659 |
+
46,
|
| 1660 |
+
37
|
| 1661 |
+
],
|
| 1662 |
+
"48": [
|
| 1663 |
+
49,
|
| 1664 |
+
40
|
| 1665 |
+
],
|
| 1666 |
+
"49": [
|
| 1667 |
+
48,
|
| 1668 |
+
50
|
| 1669 |
+
],
|
| 1670 |
+
"50": [
|
| 1671 |
+
49,
|
| 1672 |
+
51,
|
| 1673 |
+
42
|
| 1674 |
+
],
|
| 1675 |
+
"51": [
|
| 1676 |
+
50,
|
| 1677 |
+
52
|
| 1678 |
+
],
|
| 1679 |
+
"52": [
|
| 1680 |
+
51,
|
| 1681 |
+
53,
|
| 1682 |
+
44
|
| 1683 |
+
],
|
| 1684 |
+
"53": [
|
| 1685 |
+
52,
|
| 1686 |
+
54
|
| 1687 |
+
],
|
| 1688 |
+
"54": [
|
| 1689 |
+
53,
|
| 1690 |
+
46
|
| 1691 |
+
]
|
| 1692 |
+
},
|
| 1693 |
+
"hex_to_points": {
|
| 1694 |
+
"1": [
|
| 1695 |
+
1,
|
| 1696 |
+
2,
|
| 1697 |
+
3,
|
| 1698 |
+
9,
|
| 1699 |
+
10,
|
| 1700 |
+
11
|
| 1701 |
+
],
|
| 1702 |
+
"2": [
|
| 1703 |
+
3,
|
| 1704 |
+
4,
|
| 1705 |
+
5,
|
| 1706 |
+
11,
|
| 1707 |
+
12,
|
| 1708 |
+
13
|
| 1709 |
+
],
|
| 1710 |
+
"3": [
|
| 1711 |
+
5,
|
| 1712 |
+
6,
|
| 1713 |
+
7,
|
| 1714 |
+
13,
|
| 1715 |
+
14,
|
| 1716 |
+
15
|
| 1717 |
+
],
|
| 1718 |
+
"4": [
|
| 1719 |
+
8,
|
| 1720 |
+
9,
|
| 1721 |
+
10,
|
| 1722 |
+
18,
|
| 1723 |
+
19,
|
| 1724 |
+
20
|
| 1725 |
+
],
|
| 1726 |
+
"5": [
|
| 1727 |
+
10,
|
| 1728 |
+
11,
|
| 1729 |
+
12,
|
| 1730 |
+
20,
|
| 1731 |
+
21,
|
| 1732 |
+
22
|
| 1733 |
+
],
|
| 1734 |
+
"6": [
|
| 1735 |
+
12,
|
| 1736 |
+
13,
|
| 1737 |
+
14,
|
| 1738 |
+
22,
|
| 1739 |
+
23,
|
| 1740 |
+
24
|
| 1741 |
+
],
|
| 1742 |
+
"7": [
|
| 1743 |
+
14,
|
| 1744 |
+
15,
|
| 1745 |
+
16,
|
| 1746 |
+
24,
|
| 1747 |
+
25,
|
| 1748 |
+
26
|
| 1749 |
+
],
|
| 1750 |
+
"8": [
|
| 1751 |
+
17,
|
| 1752 |
+
18,
|
| 1753 |
+
19,
|
| 1754 |
+
28,
|
| 1755 |
+
29,
|
| 1756 |
+
30
|
| 1757 |
+
],
|
| 1758 |
+
"9": [
|
| 1759 |
+
19,
|
| 1760 |
+
20,
|
| 1761 |
+
21,
|
| 1762 |
+
30,
|
| 1763 |
+
31,
|
| 1764 |
+
32
|
| 1765 |
+
],
|
| 1766 |
+
"10": [
|
| 1767 |
+
21,
|
| 1768 |
+
22,
|
| 1769 |
+
23,
|
| 1770 |
+
32,
|
| 1771 |
+
33,
|
| 1772 |
+
34
|
| 1773 |
+
],
|
| 1774 |
+
"11": [
|
| 1775 |
+
23,
|
| 1776 |
+
24,
|
| 1777 |
+
25,
|
| 1778 |
+
34,
|
| 1779 |
+
35,
|
| 1780 |
+
36
|
| 1781 |
+
],
|
| 1782 |
+
"12": [
|
| 1783 |
+
25,
|
| 1784 |
+
26,
|
| 1785 |
+
27,
|
| 1786 |
+
36,
|
| 1787 |
+
37,
|
| 1788 |
+
38
|
| 1789 |
+
],
|
| 1790 |
+
"13": [
|
| 1791 |
+
29,
|
| 1792 |
+
30,
|
| 1793 |
+
31,
|
| 1794 |
+
39,
|
| 1795 |
+
40,
|
| 1796 |
+
41
|
| 1797 |
+
],
|
| 1798 |
+
"14": [
|
| 1799 |
+
31,
|
| 1800 |
+
32,
|
| 1801 |
+
33,
|
| 1802 |
+
41,
|
| 1803 |
+
42,
|
| 1804 |
+
43
|
| 1805 |
+
],
|
| 1806 |
+
"15": [
|
| 1807 |
+
33,
|
| 1808 |
+
34,
|
| 1809 |
+
35,
|
| 1810 |
+
43,
|
| 1811 |
+
44,
|
| 1812 |
+
45
|
| 1813 |
+
],
|
| 1814 |
+
"16": [
|
| 1815 |
+
35,
|
| 1816 |
+
36,
|
| 1817 |
+
37,
|
| 1818 |
+
45,
|
| 1819 |
+
46,
|
| 1820 |
+
47
|
| 1821 |
+
],
|
| 1822 |
+
"17": [
|
| 1823 |
+
40,
|
| 1824 |
+
41,
|
| 1825 |
+
42,
|
| 1826 |
+
48,
|
| 1827 |
+
49,
|
| 1828 |
+
50
|
| 1829 |
+
],
|
| 1830 |
+
"18": [
|
| 1831 |
+
42,
|
| 1832 |
+
43,
|
| 1833 |
+
44,
|
| 1834 |
+
50,
|
| 1835 |
+
51,
|
| 1836 |
+
52
|
| 1837 |
+
],
|
| 1838 |
+
"19": [
|
| 1839 |
+
44,
|
| 1840 |
+
45,
|
| 1841 |
+
46,
|
| 1842 |
+
52,
|
| 1843 |
+
53,
|
| 1844 |
+
54
|
| 1845 |
+
]
|
| 1846 |
+
},
|
| 1847 |
+
"total_points": 54,
|
| 1848 |
+
"total_hexes": 19
|
| 1849 |
+
}
|
| 1850 |
+
}
|
examples/ai_testing/sample_states/early_game.json
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"game_id": "early_game",
|
| 3 |
+
"turn_number": 1,
|
| 4 |
+
"current_player": 0,
|
| 5 |
+
"game_phase": "NORMAL_PLAY",
|
| 6 |
+
"turn_phase": "PLAYER_ACTIONS",
|
| 7 |
+
"dice_rolled": [3, 4],
|
| 8 |
+
"board_state": {
|
| 9 |
+
"tiles": [
|
| 10 |
+
{"coords": [0, 0], "type": "HILLS", "number": 3, "has_robber": false},
|
| 11 |
+
{"coords": [0, 1], "type": "PASTURE", "number": 6, "has_robber": false},
|
| 12 |
+
{"coords": [0, 2], "type": "MOUNTAINS", "number": 5, "has_robber": false},
|
| 13 |
+
{"coords": [1, 0], "type": "FIELDS", "number": 4, "has_robber": false},
|
| 14 |
+
{"coords": [1, 1], "type": "FOREST", "number": 11, "has_robber": false},
|
| 15 |
+
{"coords": [1, 2], "type": "PASTURE", "number": 12, "has_robber": false},
|
| 16 |
+
{"coords": [1, 3], "type": "FIELDS", "number": 9, "has_robber": false},
|
| 17 |
+
{"coords": [2, 0], "type": "FOREST", "number": 8, "has_robber": false},
|
| 18 |
+
{"coords": [2, 1], "type": "DESERT", "number": null, "has_robber": true},
|
| 19 |
+
{"coords": [2, 2], "type": "FOREST", "number": 10, "has_robber": false},
|
| 20 |
+
{"coords": [2, 3], "type": "MOUNTAINS", "number": 9, "has_robber": false},
|
| 21 |
+
{"coords": [3, 0], "type": "HILLS", "number": 11, "has_robber": false},
|
| 22 |
+
{"coords": [3, 1], "type": "FIELDS", "number": 2, "has_robber": false},
|
| 23 |
+
{"coords": [3, 2], "type": "PASTURE", "number": 6, "has_robber": false},
|
| 24 |
+
{"coords": [4, 0], "type": "PASTURE", "number": 4, "has_robber": false},
|
| 25 |
+
{"coords": [4, 1], "type": "FIELDS", "number": 5, "has_robber": false},
|
| 26 |
+
{"coords": [4, 2], "type": "MOUNTAINS", "number": 10, "has_robber": false}
|
| 27 |
+
],
|
| 28 |
+
"robber_position": [2, 1],
|
| 29 |
+
"harbors": [],
|
| 30 |
+
"buildings": {
|
| 31 |
+
"[0, 0]": {"type": "SETTLEMENT", "owner": 0},
|
| 32 |
+
"[1, 5]": {"type": "SETTLEMENT", "owner": 1},
|
| 33 |
+
"[3, 2]": {"type": "SETTLEMENT", "owner": 2},
|
| 34 |
+
"[4, 1]": {"type": "SETTLEMENT", "owner": 0},
|
| 35 |
+
"[2, 4]": {"type": "SETTLEMENT", "owner": 1},
|
| 36 |
+
"[5, 3]": {"type": "SETTLEMENT", "owner": 2}
|
| 37 |
+
},
|
| 38 |
+
"roads": [
|
| 39 |
+
{"start": [0, 0], "end": [1, 0], "owner": 0},
|
| 40 |
+
{"start": [1, 5], "end": [2, 5], "owner": 1},
|
| 41 |
+
{"start": [3, 2], "end": [4, 2], "owner": 2},
|
| 42 |
+
{"start": [4, 1], "end": [5, 1], "owner": 0},
|
| 43 |
+
{"start": [2, 4], "end": [3, 4], "owner": 1},
|
| 44 |
+
{"start": [5, 3], "end": [6, 3], "owner": 2}
|
| 45 |
+
]
|
| 46 |
+
},
|
| 47 |
+
"players_state": [
|
| 48 |
+
{
|
| 49 |
+
"player_id": 0,
|
| 50 |
+
"name": "Player 0 (Red)",
|
| 51 |
+
"cards": ["WOOD", "WOOD", "BRICK", "WHEAT"],
|
| 52 |
+
"dev_cards": [],
|
| 53 |
+
"settlements": [[0, 0], [4, 1]],
|
| 54 |
+
"cities": [],
|
| 55 |
+
"roads": [[[0, 0], [1, 0]], [[4, 1], [5, 1]]],
|
| 56 |
+
"victory_points": 2,
|
| 57 |
+
"longest_road_length": 1,
|
| 58 |
+
"has_longest_road": false,
|
| 59 |
+
"has_largest_army": false,
|
| 60 |
+
"knights_played": 0
|
| 61 |
+
},
|
| 62 |
+
{
|
| 63 |
+
"player_id": 1,
|
| 64 |
+
"name": "Player 1 (Blue)",
|
| 65 |
+
"cards": ["SHEEP", "WHEAT", "ORE"],
|
| 66 |
+
"dev_cards": [],
|
| 67 |
+
"settlements": [[1, 5], [2, 4]],
|
| 68 |
+
"cities": [],
|
| 69 |
+
"roads": [[[1, 5], [2, 5]], [[2, 4], [3, 4]]],
|
| 70 |
+
"victory_points": 2,
|
| 71 |
+
"longest_road_length": 1,
|
| 72 |
+
"has_longest_road": false,
|
| 73 |
+
"has_largest_army": false,
|
| 74 |
+
"knights_played": 0
|
| 75 |
+
},
|
| 76 |
+
{
|
| 77 |
+
"player_id": 2,
|
| 78 |
+
"name": "Player 2 (Green)",
|
| 79 |
+
"cards": ["WOOD", "BRICK", "SHEEP"],
|
| 80 |
+
"dev_cards": [],
|
| 81 |
+
"settlements": [[3, 2], [5, 3]],
|
| 82 |
+
"cities": [],
|
| 83 |
+
"roads": [[[3, 2], [4, 2]], [[5, 3], [6, 3]]],
|
| 84 |
+
"victory_points": 2,
|
| 85 |
+
"longest_road_length": 1,
|
| 86 |
+
"has_longest_road": false,
|
| 87 |
+
"has_largest_army": false,
|
| 88 |
+
"knights_played": 0
|
| 89 |
+
}
|
| 90 |
+
]
|
| 91 |
+
}
|
examples/ai_testing/sample_states/mid_game_competitive.json
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"game_id": "mid_game_competitive",
|
| 3 |
+
"turn_number": 15,
|
| 4 |
+
"current_player": 1,
|
| 5 |
+
"game_phase": "NORMAL_PLAY",
|
| 6 |
+
"turn_phase": "PLAYER_ACTIONS",
|
| 7 |
+
"dice_rolled": [5, 6],
|
| 8 |
+
"board_state": {
|
| 9 |
+
"tiles": [
|
| 10 |
+
{"coords": [0, 0], "type": "HILLS", "number": 3, "has_robber": false},
|
| 11 |
+
{"coords": [0, 1], "type": "PASTURE", "number": 6, "has_robber": false},
|
| 12 |
+
{"coords": [0, 2], "type": "MOUNTAINS", "number": 5, "has_robber": false},
|
| 13 |
+
{"coords": [1, 0], "type": "FIELDS", "number": 4, "has_robber": false},
|
| 14 |
+
{"coords": [1, 1], "type": "FOREST", "number": 11, "has_robber": false},
|
| 15 |
+
{"coords": [1, 2], "type": "PASTURE", "number": 12, "has_robber": false},
|
| 16 |
+
{"coords": [1, 3], "type": "FIELDS", "number": 9, "has_robber": false},
|
| 17 |
+
{"coords": [2, 0], "type": "FOREST", "number": 8, "has_robber": false},
|
| 18 |
+
{"coords": [2, 1], "type": "DESERT", "number": null, "has_robber": false},
|
| 19 |
+
{"coords": [2, 2], "type": "FOREST", "number": 10, "has_robber": true},
|
| 20 |
+
{"coords": [2, 3], "type": "MOUNTAINS", "number": 9, "has_robber": false},
|
| 21 |
+
{"coords": [3, 0], "type": "HILLS", "number": 11, "has_robber": false},
|
| 22 |
+
{"coords": [3, 1], "type": "FIELDS", "number": 2, "has_robber": false},
|
| 23 |
+
{"coords": [3, 2], "type": "PASTURE", "number": 6, "has_robber": false},
|
| 24 |
+
{"coords": [4, 0], "type": "PASTURE", "number": 4, "has_robber": false},
|
| 25 |
+
{"coords": [4, 1], "type": "FIELDS", "number": 5, "has_robber": false},
|
| 26 |
+
{"coords": [4, 2], "type": "MOUNTAINS", "number": 10, "has_robber": false}
|
| 27 |
+
],
|
| 28 |
+
"robber_position": [2, 2],
|
| 29 |
+
"harbors": [],
|
| 30 |
+
"buildings": {
|
| 31 |
+
"[0, 0]": {"type": "CITY", "owner": 0},
|
| 32 |
+
"[1, 5]": {"type": "SETTLEMENT", "owner": 1},
|
| 33 |
+
"[3, 2]": {"type": "SETTLEMENT", "owner": 2},
|
| 34 |
+
"[4, 1]": {"type": "SETTLEMENT", "owner": 0},
|
| 35 |
+
"[2, 4]": {"type": "CITY", "owner": 1},
|
| 36 |
+
"[5, 3]": {"type": "SETTLEMENT", "owner": 2},
|
| 37 |
+
"[1, 1]": {"type": "SETTLEMENT", "owner": 0},
|
| 38 |
+
"[3, 5]": {"type": "SETTLEMENT", "owner": 1},
|
| 39 |
+
"[6, 2]": {"type": "SETTLEMENT", "owner": 2}
|
| 40 |
+
},
|
| 41 |
+
"roads": [
|
| 42 |
+
{"start": [0, 0], "end": [1, 0], "owner": 0},
|
| 43 |
+
{"start": [1, 0], "end": [2, 0], "owner": 0},
|
| 44 |
+
{"start": [1, 5], "end": [2, 5], "owner": 1},
|
| 45 |
+
{"start": [2, 5], "end": [3, 5], "owner": 1},
|
| 46 |
+
{"start": [3, 2], "end": [4, 2], "owner": 2},
|
| 47 |
+
{"start": [4, 2], "end": [5, 2], "owner": 2},
|
| 48 |
+
{"start": [4, 1], "end": [5, 1], "owner": 0},
|
| 49 |
+
{"start": [2, 4], "end": [3, 4], "owner": 1},
|
| 50 |
+
{"start": [5, 3], "end": [6, 3], "owner": 2},
|
| 51 |
+
{"start": [0, 0], "end": [0, 1], "owner": 0},
|
| 52 |
+
{"start": [0, 1], "end": [1, 1], "owner": 0},
|
| 53 |
+
{"start": [5, 2], "end": [6, 2], "owner": 2}
|
| 54 |
+
]
|
| 55 |
+
},
|
| 56 |
+
"players_state": [
|
| 57 |
+
{
|
| 58 |
+
"player_id": 0,
|
| 59 |
+
"name": "Player 0 (Red)",
|
| 60 |
+
"cards": ["WOOD", "WOOD", "BRICK", "WHEAT", "ORE", "ORE", "SHEEP"],
|
| 61 |
+
"dev_cards": ["KNIGHT", "VICTORY_POINT"],
|
| 62 |
+
"settlements": [[4, 1], [1, 1]],
|
| 63 |
+
"cities": [[0, 0]],
|
| 64 |
+
"roads": [
|
| 65 |
+
[[0, 0], [1, 0]],
|
| 66 |
+
[[1, 0], [2, 0]],
|
| 67 |
+
[[4, 1], [5, 1]],
|
| 68 |
+
[[0, 0], [0, 1]],
|
| 69 |
+
[[0, 1], [1, 1]]
|
| 70 |
+
],
|
| 71 |
+
"victory_points": 6,
|
| 72 |
+
"longest_road_length": 5,
|
| 73 |
+
"has_longest_road": true,
|
| 74 |
+
"has_largest_army": false,
|
| 75 |
+
"knights_played": 1
|
| 76 |
+
},
|
| 77 |
+
{
|
| 78 |
+
"player_id": 1,
|
| 79 |
+
"name": "Player 1 (Blue)",
|
| 80 |
+
"cards": ["SHEEP", "SHEEP", "WHEAT", "WHEAT", "ORE", "BRICK"],
|
| 81 |
+
"dev_cards": ["KNIGHT", "KNIGHT", "ROAD_BUILDING"],
|
| 82 |
+
"settlements": [[1, 5], [3, 5]],
|
| 83 |
+
"cities": [[2, 4]],
|
| 84 |
+
"roads": [
|
| 85 |
+
[[1, 5], [2, 5]],
|
| 86 |
+
[[2, 5], [3, 5]],
|
| 87 |
+
[[2, 4], [3, 4]]
|
| 88 |
+
],
|
| 89 |
+
"victory_points": 5,
|
| 90 |
+
"longest_road_length": 2,
|
| 91 |
+
"has_longest_road": false,
|
| 92 |
+
"has_largest_army": false,
|
| 93 |
+
"knights_played": 2
|
| 94 |
+
},
|
| 95 |
+
{
|
| 96 |
+
"player_id": 2,
|
| 97 |
+
"name": "Player 2 (Green)",
|
| 98 |
+
"cards": ["WOOD", "WOOD", "BRICK", "BRICK", "SHEEP", "WHEAT"],
|
| 99 |
+
"dev_cards": ["YEAR_OF_PLENTY"],
|
| 100 |
+
"settlements": [[3, 2], [5, 3], [6, 2]],
|
| 101 |
+
"cities": [],
|
| 102 |
+
"roads": [
|
| 103 |
+
[[3, 2], [4, 2]],
|
| 104 |
+
[[4, 2], [5, 2]],
|
| 105 |
+
[[5, 3], [6, 3]],
|
| 106 |
+
[[5, 2], [6, 2]]
|
| 107 |
+
],
|
| 108 |
+
"victory_points": 4,
|
| 109 |
+
"longest_road_length": 4,
|
| 110 |
+
"has_longest_road": false,
|
| 111 |
+
"has_largest_army": false,
|
| 112 |
+
"knights_played": 0
|
| 113 |
+
}
|
| 114 |
+
]
|
| 115 |
+
}
|
examples/ai_testing/show_complete_state.py
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Show Complete Game State
|
| 3 |
+
-------------------------
|
| 4 |
+
Runs a game to a specific point and shows the COMPLETE JSON.
|
| 5 |
+
"""
|
| 6 |
+
|
| 7 |
+
import sys
|
| 8 |
+
from pathlib import Path
|
| 9 |
+
import os
|
| 10 |
+
import json
|
| 11 |
+
|
| 12 |
+
# Add parent directory to path
|
| 13 |
+
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
| 14 |
+
|
| 15 |
+
from pycatan.visualizations.web_visualization import WebVisualization
|
| 16 |
+
|
| 17 |
+
# Capture states
|
| 18 |
+
captured_states = []
|
| 19 |
+
update_counter = 0
|
| 20 |
+
|
| 21 |
+
original_update = WebVisualization.update_full_state
|
| 22 |
+
original_start_server = WebVisualization.start_server
|
| 23 |
+
|
| 24 |
+
def capturing_update(self, game_state):
|
| 25 |
+
"""Capture and save all states."""
|
| 26 |
+
global update_counter
|
| 27 |
+
original_update(self, game_state)
|
| 28 |
+
|
| 29 |
+
if hasattr(self, 'current_game_state') and self.current_game_state:
|
| 30 |
+
update_counter += 1
|
| 31 |
+
state_copy = json.loads(json.dumps(self.current_game_state))
|
| 32 |
+
captured_states.append(state_copy)
|
| 33 |
+
|
| 34 |
+
# Print just a notification
|
| 35 |
+
print(f"\r[Captured state #{update_counter}]", end='', flush=True)
|
| 36 |
+
|
| 37 |
+
def no_server(self):
|
| 38 |
+
"""Disable web server."""
|
| 39 |
+
self.running = True
|
| 40 |
+
|
| 41 |
+
# Apply patches
|
| 42 |
+
WebVisualization.update_full_state = capturing_update
|
| 43 |
+
WebVisualization.start_server = no_server
|
| 44 |
+
|
| 45 |
+
|
| 46 |
+
def print_complete_state(state, title="COMPLETE GAME STATE"):
|
| 47 |
+
"""Print the complete state in a readable format."""
|
| 48 |
+
print("\n" + "="*80)
|
| 49 |
+
print(f"🎮 {title}")
|
| 50 |
+
print("="*80)
|
| 51 |
+
|
| 52 |
+
# Print complete JSON
|
| 53 |
+
print(json.dumps(state, indent=2, ensure_ascii=False))
|
| 54 |
+
|
| 55 |
+
print("\n" + "="*80)
|
| 56 |
+
print("📊 SUMMARY")
|
| 57 |
+
print("="*80)
|
| 58 |
+
|
| 59 |
+
# Summary
|
| 60 |
+
print(f"\n🎲 Game Info:")
|
| 61 |
+
print(f" Current Player: {state.get('current_player', '?')}")
|
| 62 |
+
print(f" Game Phase: {state.get('current_phase', '?')}")
|
| 63 |
+
|
| 64 |
+
if state.get('dice_result'):
|
| 65 |
+
print(f" Last Dice: {state['dice_result']}")
|
| 66 |
+
|
| 67 |
+
print(f"\n🗺️ Board:")
|
| 68 |
+
print(f" Hexes: {len(state.get('hexes', []))}")
|
| 69 |
+
hexes_by_type = {}
|
| 70 |
+
for hex in state.get('hexes', []):
|
| 71 |
+
htype = hex.get('type', 'unknown')
|
| 72 |
+
hexes_by_type[htype] = hexes_by_type.get(htype, 0) + 1
|
| 73 |
+
for htype, count in sorted(hexes_by_type.items()):
|
| 74 |
+
print(f" - {htype}: {count}")
|
| 75 |
+
|
| 76 |
+
robber = state.get('robber_position')
|
| 77 |
+
if robber:
|
| 78 |
+
print(f" Robber: {robber}")
|
| 79 |
+
|
| 80 |
+
print(f"\n🏘️ Buildings:")
|
| 81 |
+
settlements = state.get('settlements', [])
|
| 82 |
+
cities = state.get('cities', [])
|
| 83 |
+
roads = state.get('roads', [])
|
| 84 |
+
print(f" Settlements: {len(settlements)}")
|
| 85 |
+
for s in settlements[:5]: # Show first 5
|
| 86 |
+
print(f" - Point {s.get('point_id')}: Player {s.get('owner')}")
|
| 87 |
+
if len(settlements) > 5:
|
| 88 |
+
print(f" ... and {len(settlements)-5} more")
|
| 89 |
+
|
| 90 |
+
print(f" Cities: {len(cities)}")
|
| 91 |
+
for c in cities[:5]:
|
| 92 |
+
print(f" - Point {c.get('point_id')}: Player {c.get('owner')}")
|
| 93 |
+
if len(cities) > 5:
|
| 94 |
+
print(f" ... and {len(cities)-5} more")
|
| 95 |
+
|
| 96 |
+
print(f" Roads: {len(roads)}")
|
| 97 |
+
for r in roads[:5]:
|
| 98 |
+
print(f" - {r.get('start_point')} -> {r.get('end_point')}: Player {r.get('owner')}")
|
| 99 |
+
if len(roads) > 5:
|
| 100 |
+
print(f" ... and {len(roads)-5} more")
|
| 101 |
+
|
| 102 |
+
print(f"\n👥 Players: {len(state.get('players', []))}")
|
| 103 |
+
for player in state.get('players', []):
|
| 104 |
+
print(f"\n Player {player.get('id')}: {player.get('name', 'Unknown')}")
|
| 105 |
+
print(f" Victory Points: {player.get('victory_points', 0)}")
|
| 106 |
+
print(f" Resources: {len(player.get('cards', []))} cards")
|
| 107 |
+
if player.get('cards'):
|
| 108 |
+
card_counts = {}
|
| 109 |
+
for card in player['cards']:
|
| 110 |
+
card_counts[card] = card_counts.get(card, 0) + 1
|
| 111 |
+
print(f" {dict(card_counts)}")
|
| 112 |
+
print(f" Dev Cards: {len(player.get('dev_cards', []))}")
|
| 113 |
+
if player.get('dev_cards'):
|
| 114 |
+
print(f" {player['dev_cards']}")
|
| 115 |
+
print(f" Knights Played: {player.get('knights_played', 0)}")
|
| 116 |
+
if player.get('has_longest_road'):
|
| 117 |
+
print(f" 🛣️ Has LONGEST ROAD")
|
| 118 |
+
if player.get('has_largest_army'):
|
| 119 |
+
print(f" ⚔️ Has LARGEST ARMY")
|
| 120 |
+
|
| 121 |
+
print("\n" + "="*80)
|
| 122 |
+
|
| 123 |
+
|
| 124 |
+
def main():
|
| 125 |
+
if len(sys.argv) > 1:
|
| 126 |
+
input_file = sys.argv[1]
|
| 127 |
+
else:
|
| 128 |
+
input_file = 'examples/data/game_moves_3Players.txt'
|
| 129 |
+
|
| 130 |
+
print(f"\nRunning game with: {input_file}")
|
| 131 |
+
print("(Web server disabled, capturing states...)\n")
|
| 132 |
+
|
| 133 |
+
# Read inputs
|
| 134 |
+
with open(input_file, 'r', encoding='utf-8') as f:
|
| 135 |
+
inputs = f.read()
|
| 136 |
+
|
| 137 |
+
from io import StringIO
|
| 138 |
+
sys.stdin = StringIO(inputs)
|
| 139 |
+
|
| 140 |
+
try:
|
| 141 |
+
from pycatan import RealGame
|
| 142 |
+
game = RealGame()
|
| 143 |
+
game.run()
|
| 144 |
+
|
| 145 |
+
except (EOFError, KeyboardInterrupt):
|
| 146 |
+
print("\n\nGame stopped")
|
| 147 |
+
except Exception as e:
|
| 148 |
+
print(f"\n\nError: {e}")
|
| 149 |
+
|
| 150 |
+
# Show results
|
| 151 |
+
print(f"\n\n{'='*80}")
|
| 152 |
+
print(f"✅ Captured {len(captured_states)} states total")
|
| 153 |
+
print("="*80)
|
| 154 |
+
|
| 155 |
+
if captured_states:
|
| 156 |
+
# Save all states
|
| 157 |
+
output_dir = Path('examples/ai_testing/captured_states')
|
| 158 |
+
output_dir.mkdir(exist_ok=True)
|
| 159 |
+
|
| 160 |
+
# Save first state
|
| 161 |
+
first_state = captured_states[0]
|
| 162 |
+
first_file = output_dir / 'state_001_initial.json'
|
| 163 |
+
with open(first_file, 'w', encoding='utf-8') as f:
|
| 164 |
+
json.dump(first_state, f, indent=2, ensure_ascii=False)
|
| 165 |
+
print(f"\n💾 Saved first state to: {first_file}")
|
| 166 |
+
|
| 167 |
+
# Save last state
|
| 168 |
+
last_state = captured_states[-1]
|
| 169 |
+
last_file = output_dir / f'state_{len(captured_states):03d}_final.json'
|
| 170 |
+
with open(last_file, 'w', encoding='utf-8') as f:
|
| 171 |
+
json.dump(last_state, f, indent=2, ensure_ascii=False)
|
| 172 |
+
print(f"💾 Saved last state to: {last_file}")
|
| 173 |
+
|
| 174 |
+
# Also save to sample_states for compatibility
|
| 175 |
+
sample_file = Path('examples/ai_testing/sample_states/captured_game.json')
|
| 176 |
+
sample_file.parent.mkdir(exist_ok=True)
|
| 177 |
+
with open(sample_file, 'w', encoding='utf-8') as f:
|
| 178 |
+
json.dump(last_state, f, indent=2, ensure_ascii=False)
|
| 179 |
+
print(f"💾 Saved to: {sample_file}")
|
| 180 |
+
|
| 181 |
+
# Print complete final state
|
| 182 |
+
print_complete_state(last_state, "FINAL GAME STATE - THIS IS WHAT AI SEES")
|
| 183 |
+
|
| 184 |
+
print("\n" + "="*80)
|
| 185 |
+
print("📝 To see full JSON of any state, check the files above")
|
| 186 |
+
print("🌐 To view in browser, run:")
|
| 187 |
+
print(f" py examples/ai_testing/visualize_game_state.py --state-file {sample_file}")
|
| 188 |
+
print("="*80)
|
| 189 |
+
else:
|
| 190 |
+
print("❌ No states were captured!")
|
| 191 |
+
|
| 192 |
+
|
| 193 |
+
if __name__ == '__main__':
|
| 194 |
+
main()
|
examples/ai_testing/simple_capture.py
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Simple Game State Capturer
|
| 3 |
+
---------------------------
|
| 4 |
+
Runs a game and prints the JSON at each major point.
|
| 5 |
+
WITHOUT starting a web server (to avoid port conflicts).
|
| 6 |
+
"""
|
| 7 |
+
|
| 8 |
+
import sys
|
| 9 |
+
from pathlib import Path
|
| 10 |
+
import os
|
| 11 |
+
|
| 12 |
+
# Add parent directory to path for imports
|
| 13 |
+
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
| 14 |
+
|
| 15 |
+
import json
|
| 16 |
+
from pycatan.visualizations.web_visualization import WebVisualization
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
# Monkey-patch to capture states WITHOUT starting server
|
| 20 |
+
original_update = WebVisualization.update_full_state
|
| 21 |
+
original_start_server = WebVisualization.start_server
|
| 22 |
+
captured_states = []
|
| 23 |
+
|
| 24 |
+
def capturing_update(self, game_state):
|
| 25 |
+
"""Capture state and print JSON."""
|
| 26 |
+
original_update(self, game_state)
|
| 27 |
+
|
| 28 |
+
if hasattr(self, 'current_game_state') and self.current_game_state:
|
| 29 |
+
print("\n" + "="*80)
|
| 30 |
+
print("GAME STATE JSON (This is what AI receives)")
|
| 31 |
+
print("="*80)
|
| 32 |
+
print(json.dumps(self.current_game_state, indent=2, ensure_ascii=False))
|
| 33 |
+
print("="*80 + "\n")
|
| 34 |
+
|
| 35 |
+
# Save to list
|
| 36 |
+
captured_states.append(self.current_game_state.copy())
|
| 37 |
+
|
| 38 |
+
def no_start_server(self):
|
| 39 |
+
"""Don't start the server - just capture data."""
|
| 40 |
+
print("[INFO] Web server disabled for capture mode")
|
| 41 |
+
self.running = True # Pretend it's running
|
| 42 |
+
pass
|
| 43 |
+
|
| 44 |
+
# Apply monkey patches
|
| 45 |
+
WebVisualization.update_full_state = capturing_update
|
| 46 |
+
WebVisualization.start_server = no_start_server
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
def main():
|
| 50 |
+
"""Run game with input file."""
|
| 51 |
+
import sys
|
| 52 |
+
import os
|
| 53 |
+
|
| 54 |
+
# Fix encoding for Windows console
|
| 55 |
+
if sys.platform == 'win32':
|
| 56 |
+
os.environ['PYTHONIOENCODING'] = 'utf-8'
|
| 57 |
+
|
| 58 |
+
# Check if input file provided
|
| 59 |
+
if len(sys.argv) > 1:
|
| 60 |
+
input_file = sys.argv[1]
|
| 61 |
+
else:
|
| 62 |
+
input_file = 'examples/data/game_moves_3Players.txt'
|
| 63 |
+
|
| 64 |
+
print(f"\nRunning game with inputs from: {input_file}")
|
| 65 |
+
print("="*80)
|
| 66 |
+
|
| 67 |
+
# Read inputs
|
| 68 |
+
with open(input_file, 'r', encoding='utf-8') as f:
|
| 69 |
+
inputs = f.read()
|
| 70 |
+
|
| 71 |
+
# Feed to stdin
|
| 72 |
+
from io import StringIO
|
| 73 |
+
sys.stdin = StringIO(inputs)
|
| 74 |
+
|
| 75 |
+
try:
|
| 76 |
+
print("[INFO] Starting game in capture mode (web server disabled)")
|
| 77 |
+
print("="*80)
|
| 78 |
+
|
| 79 |
+
# Import after patching
|
| 80 |
+
from pycatan import RealGame
|
| 81 |
+
|
| 82 |
+
# Run the game - this will print JSON at each update
|
| 83 |
+
game = RealGame()
|
| 84 |
+
game.run()
|
| 85 |
+
|
| 86 |
+
except (EOFError, KeyboardInterrupt):
|
| 87 |
+
print("\n\nGame stopped")
|
| 88 |
+
except Exception as e:
|
| 89 |
+
print(f"\nError: {e}")
|
| 90 |
+
import traceback
|
| 91 |
+
traceback.print_exc()
|
| 92 |
+
|
| 93 |
+
print("\n" + "="*80)
|
| 94 |
+
print(f"Captured {len(captured_states)} states total")
|
| 95 |
+
print("="*80)
|
| 96 |
+
|
| 97 |
+
# Save last state
|
| 98 |
+
if captured_states:
|
| 99 |
+
output_file = 'examples/ai_testing/sample_states/captured_game.json'
|
| 100 |
+
os.makedirs(os.path.dirname(output_file), exist_ok=True)
|
| 101 |
+
with open(output_file, 'w', encoding='utf-8') as f:
|
| 102 |
+
json.dump(captured_states[-1], f, indent=2, ensure_ascii=False)
|
| 103 |
+
print(f"Last state saved to: {output_file}")
|
| 104 |
+
else:
|
| 105 |
+
print("WARNING: No states were captured!")
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
if __name__ == '__main__':
|
| 109 |
+
main()
|
examples/ai_testing/visualize_game_state.py
ADDED
|
@@ -0,0 +1,364 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Visualize Game State for AI Testing
|
| 3 |
+
------------------------------------
|
| 4 |
+
This script creates a specific game state and displays it using Web Visualizer.
|
| 5 |
+
It also prints all the JSON data that would be sent to an AI agent.
|
| 6 |
+
|
| 7 |
+
Usage:
|
| 8 |
+
python visualize_game_state.py [--state-file STATE_FILE]
|
| 9 |
+
|
| 10 |
+
If STATE_FILE is not provided, uses a default test state.
|
| 11 |
+
"""
|
| 12 |
+
|
| 13 |
+
import sys
|
| 14 |
+
import json
|
| 15 |
+
import time
|
| 16 |
+
import threading
|
| 17 |
+
from pathlib import Path
|
| 18 |
+
|
| 19 |
+
# Add parent directory to path for imports
|
| 20 |
+
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
| 21 |
+
|
| 22 |
+
from pycatan.core.game import Game
|
| 23 |
+
from pycatan.management.actions import GameState, PlayerState, BoardState, GamePhase, TurnPhase
|
| 24 |
+
from pycatan.visualizations.web_visualization import WebVisualization
|
| 25 |
+
from pycatan.core.card import ResCard, DevCard
|
| 26 |
+
from pycatan.core.building import Building
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
class GameStateCapture:
|
| 30 |
+
"""Captures and displays all JSON data sent to Web Visualizer."""
|
| 31 |
+
|
| 32 |
+
def __init__(self, web_viz):
|
| 33 |
+
self.web_viz = web_viz
|
| 34 |
+
self.captured_states = []
|
| 35 |
+
self.captured_events = []
|
| 36 |
+
|
| 37 |
+
def capture_state_update(self, game_state):
|
| 38 |
+
"""Capture and print game state JSON."""
|
| 39 |
+
print("\n" + "="*80)
|
| 40 |
+
print("📊 GAME STATE JSON (This is what the AI would receive)")
|
| 41 |
+
print("="*80)
|
| 42 |
+
|
| 43 |
+
# Convert to web format (same as what web visualizer does)
|
| 44 |
+
web_format = self.web_viz._convert_game_state(game_state)
|
| 45 |
+
|
| 46 |
+
# Print formatted JSON
|
| 47 |
+
json_str = json.dumps(web_format, indent=2, ensure_ascii=False)
|
| 48 |
+
print(json_str)
|
| 49 |
+
|
| 50 |
+
print("\n" + "="*80)
|
| 51 |
+
print("📈 SUMMARY")
|
| 52 |
+
print("="*80)
|
| 53 |
+
self._print_summary(web_format)
|
| 54 |
+
|
| 55 |
+
self.captured_states.append(web_format)
|
| 56 |
+
return web_format
|
| 57 |
+
|
| 58 |
+
def _print_summary(self, state_data):
|
| 59 |
+
"""Print a human-readable summary of the game state."""
|
| 60 |
+
print(f"Current Player: {state_data.get('current_player', 0)}")
|
| 61 |
+
print(f"Game Phase: {state_data.get('current_phase', 'UNKNOWN')}")
|
| 62 |
+
print(f"Robber Position: {state_data.get('robber_position', 'Unknown')}")
|
| 63 |
+
|
| 64 |
+
if state_data.get('dice_result'):
|
| 65 |
+
print(f"Last Dice Roll: {state_data['dice_result']}")
|
| 66 |
+
|
| 67 |
+
print(f"\nBoard:")
|
| 68 |
+
print(f" - Hexes: {len(state_data.get('hexes', []))}")
|
| 69 |
+
print(f" - Settlements: {len(state_data.get('settlements', []))}")
|
| 70 |
+
print(f" - Cities: {len(state_data.get('cities', []))}")
|
| 71 |
+
print(f" - Roads: {len(state_data.get('roads', []))}")
|
| 72 |
+
|
| 73 |
+
print(f"\nPlayers: {len(state_data.get('players', []))}")
|
| 74 |
+
for player in state_data.get('players', []):
|
| 75 |
+
print(f" Player {player.get('id', '?')}: {player.get('name', 'Unknown')}")
|
| 76 |
+
print(f" - Victory Points: {player.get('victory_points', 0)}")
|
| 77 |
+
print(f" - Resources: {len(player.get('cards', []))}")
|
| 78 |
+
print(f" - Dev Cards: {len(player.get('dev_cards', []))}")
|
| 79 |
+
if player.get('has_longest_road'):
|
| 80 |
+
print(f" - Has Longest Road!")
|
| 81 |
+
if player.get('has_largest_army'):
|
| 82 |
+
print(f" - Has Largest Army!")
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
def create_test_game_state():
|
| 86 |
+
"""
|
| 87 |
+
Create a test game state with some buildings and resources.
|
| 88 |
+
This simulates a game in progress.
|
| 89 |
+
"""
|
| 90 |
+
print("\n🎮 Creating test game state...")
|
| 91 |
+
|
| 92 |
+
# Create a real game to get proper board structure
|
| 93 |
+
game = Game(num_of_players=3)
|
| 94 |
+
|
| 95 |
+
# Build some structures for testing
|
| 96 |
+
# Player 0 (Red) - settlements and roads
|
| 97 |
+
point1 = game.board.points[0][0] # Top left
|
| 98 |
+
point2 = game.board.points[1][0] # Below it
|
| 99 |
+
|
| 100 |
+
# Starting phase - build without resources
|
| 101 |
+
game.add_settlement(0, point1, is_starting=True)
|
| 102 |
+
game.add_road(0, point1, point2, is_starting=True)
|
| 103 |
+
|
| 104 |
+
# Player 1 (Blue)
|
| 105 |
+
point4 = game.board.points[2][2]
|
| 106 |
+
point5 = game.board.points[3][2]
|
| 107 |
+
game.add_settlement(1, point4, is_starting=True)
|
| 108 |
+
game.add_road(1, point4, point5, is_starting=True)
|
| 109 |
+
|
| 110 |
+
# Player 2 (Green)
|
| 111 |
+
point6 = game.board.points[4][3]
|
| 112 |
+
point7 = game.board.points[5][3]
|
| 113 |
+
game.add_settlement(2, point6, is_starting=True)
|
| 114 |
+
game.add_road(2, point6, point7, is_starting=True)
|
| 115 |
+
|
| 116 |
+
# Second round of starting placements
|
| 117 |
+
game.add_settlement(2, game.board.points[1][3], is_starting=True)
|
| 118 |
+
game.add_road(2, game.board.points[1][3], game.board.points[2][3], is_starting=True)
|
| 119 |
+
|
| 120 |
+
game.add_settlement(1, game.board.points[2][1], is_starting=True)
|
| 121 |
+
game.add_road(1, game.board.points[2][1], game.board.points[3][1], is_starting=True)
|
| 122 |
+
|
| 123 |
+
game.add_settlement(0, game.board.points[4][1], is_starting=True)
|
| 124 |
+
game.add_road(0, game.board.points[4][1], game.board.points[5][1], is_starting=True)
|
| 125 |
+
|
| 126 |
+
# Give players some resources
|
| 127 |
+
game.players[0].cards[ResCard.Wood] = 3
|
| 128 |
+
game.players[0].cards[ResCard.Brick] = 2
|
| 129 |
+
game.players[0].cards[ResCard.Wheat] = 2
|
| 130 |
+
game.players[0].cards[ResCard.Ore] = 1
|
| 131 |
+
|
| 132 |
+
game.players[1].cards[ResCard.Sheep] = 4
|
| 133 |
+
game.players[1].cards[ResCard.Wheat] = 1
|
| 134 |
+
game.players[1].cards[ResCard.Ore] = 2
|
| 135 |
+
|
| 136 |
+
game.players[2].cards[ResCard.Wood] = 2
|
| 137 |
+
game.players[2].cards[ResCard.Brick] = 3
|
| 138 |
+
game.players[2].cards[ResCard.Sheep] = 1
|
| 139 |
+
|
| 140 |
+
# Give player 0 some development cards
|
| 141 |
+
game.players[0].dev_cards[DevCard.Knight] = 2
|
| 142 |
+
game.players[0].dev_cards[DevCard.VictoryPoint] = 1
|
| 143 |
+
game.players[0].knights_played = 1
|
| 144 |
+
|
| 145 |
+
# Position robber on a tile
|
| 146 |
+
game.board.robber = game.board.tiles[2][1] # Move to a different tile
|
| 147 |
+
|
| 148 |
+
print("✅ Test game state created!")
|
| 149 |
+
print(f" - 3 Players")
|
| 150 |
+
print(f" - 6 Settlements placed")
|
| 151 |
+
print(f" - 6 Roads built")
|
| 152 |
+
print(f" - Resources distributed")
|
| 153 |
+
print(f" - Robber positioned")
|
| 154 |
+
|
| 155 |
+
return game
|
| 156 |
+
|
| 157 |
+
|
| 158 |
+
def game_to_game_state(game: Game) -> GameState:
|
| 159 |
+
"""
|
| 160 |
+
Convert a Game object to a GameState object for visualization.
|
| 161 |
+
"""
|
| 162 |
+
# Create board state
|
| 163 |
+
tiles = []
|
| 164 |
+
for row_idx, row in enumerate(game.board.tiles):
|
| 165 |
+
for col_idx, tile in enumerate(row):
|
| 166 |
+
if tile: # Skip None tiles
|
| 167 |
+
tiles.append({
|
| 168 |
+
'coords': [row_idx, col_idx],
|
| 169 |
+
'type': tile.tile_type.name if tile.tile_type else 'DESERT',
|
| 170 |
+
'number': tile.number if hasattr(tile, 'number') else None,
|
| 171 |
+
'has_robber': tile == game.board.robber
|
| 172 |
+
})
|
| 173 |
+
|
| 174 |
+
# Create buildings dictionary
|
| 175 |
+
buildings = {}
|
| 176 |
+
for row in game.board.points:
|
| 177 |
+
for point in row:
|
| 178 |
+
if point.building:
|
| 179 |
+
coords = tuple([point.row, point.index])
|
| 180 |
+
building_type_name = "SETTLEMENT" if point.building.type == Building.BUILDING_SETTLEMENT else \
|
| 181 |
+
"CITY" if point.building.type == Building.BUILDING_CITY else "UNKNOWN"
|
| 182 |
+
buildings[coords] = {
|
| 183 |
+
'type': building_type_name,
|
| 184 |
+
'owner': point.building.owner
|
| 185 |
+
}
|
| 186 |
+
|
| 187 |
+
# Create roads list
|
| 188 |
+
roads = []
|
| 189 |
+
for player in game.players:
|
| 190 |
+
for road in player.roads:
|
| 191 |
+
roads.append({
|
| 192 |
+
'start': [road.start.row, road.start.index],
|
| 193 |
+
'end': [road.end.row, road.end.index],
|
| 194 |
+
'owner': road.owner
|
| 195 |
+
})
|
| 196 |
+
|
| 197 |
+
# Find robber position
|
| 198 |
+
robber_pos = (0, 0)
|
| 199 |
+
if game.board.robber:
|
| 200 |
+
robber_pos = (game.board.robber.row, game.board.robber.index)
|
| 201 |
+
|
| 202 |
+
board_state = BoardState(
|
| 203 |
+
tiles=tiles,
|
| 204 |
+
robber_position=robber_pos,
|
| 205 |
+
harbors=[], # Can be added if needed
|
| 206 |
+
buildings=buildings,
|
| 207 |
+
roads=roads
|
| 208 |
+
)
|
| 209 |
+
|
| 210 |
+
# Create player states
|
| 211 |
+
players_state = []
|
| 212 |
+
for player in game.players:
|
| 213 |
+
# Convert cards to list of strings
|
| 214 |
+
cards = []
|
| 215 |
+
for card_type, count in player.cards.items():
|
| 216 |
+
cards.extend([card_type.name] * count)
|
| 217 |
+
|
| 218 |
+
dev_cards = []
|
| 219 |
+
for card_type, count in player.dev_cards.items():
|
| 220 |
+
dev_cards.extend([card_type.name] * count)
|
| 221 |
+
|
| 222 |
+
# Get settlements and cities
|
| 223 |
+
settlements = []
|
| 224 |
+
cities = []
|
| 225 |
+
for row in game.board.points:
|
| 226 |
+
for point in row:
|
| 227 |
+
if point.building and point.building.owner == player.player_num:
|
| 228 |
+
coords = (point.row, point.index)
|
| 229 |
+
if point.building.type == Building.BUILDING_SETTLEMENT:
|
| 230 |
+
settlements.append(coords)
|
| 231 |
+
elif point.building.type == Building.BUILDING_CITY:
|
| 232 |
+
cities.append(coords)
|
| 233 |
+
|
| 234 |
+
# Get roads (as tuples of start, end)
|
| 235 |
+
roads_list = []
|
| 236 |
+
for road in player.roads:
|
| 237 |
+
roads_list.append(((road.start.row, road.start.index),
|
| 238 |
+
(road.end.row, road.end.index)))
|
| 239 |
+
|
| 240 |
+
player_state = PlayerState(
|
| 241 |
+
player_id=player.player_num,
|
| 242 |
+
name=f"Player {player.player_num}",
|
| 243 |
+
cards=cards,
|
| 244 |
+
dev_cards=dev_cards,
|
| 245 |
+
settlements=settlements,
|
| 246 |
+
cities=cities,
|
| 247 |
+
roads=roads_list,
|
| 248 |
+
victory_points=player.victory_points,
|
| 249 |
+
longest_road_length=player.longest_road_length,
|
| 250 |
+
has_longest_road=player.has_longest_road,
|
| 251 |
+
has_largest_army=player.has_largest_army,
|
| 252 |
+
knights_played=player.knights_played
|
| 253 |
+
)
|
| 254 |
+
players_state.append(player_state)
|
| 255 |
+
|
| 256 |
+
# Create full game state
|
| 257 |
+
game_state = GameState(
|
| 258 |
+
game_id="test_game",
|
| 259 |
+
turn_number=5,
|
| 260 |
+
current_player=0,
|
| 261 |
+
game_phase=GamePhase.NORMAL_PLAY,
|
| 262 |
+
turn_phase=TurnPhase.PLAYER_ACTIONS,
|
| 263 |
+
board_state=board_state,
|
| 264 |
+
players_state=players_state,
|
| 265 |
+
dice_rolled=(4, 3) # Example dice roll
|
| 266 |
+
)
|
| 267 |
+
|
| 268 |
+
return game_state
|
| 269 |
+
|
| 270 |
+
|
| 271 |
+
def load_game_state_from_file(filepath: str) -> GameState:
|
| 272 |
+
"""
|
| 273 |
+
Load a game state from a JSON file.
|
| 274 |
+
|
| 275 |
+
Args:
|
| 276 |
+
filepath: Path to JSON file containing game state
|
| 277 |
+
|
| 278 |
+
Returns:
|
| 279 |
+
GameState object
|
| 280 |
+
"""
|
| 281 |
+
with open(filepath, 'r', encoding='utf-8') as f:
|
| 282 |
+
data = json.load(f)
|
| 283 |
+
|
| 284 |
+
# Reconstruct GameState from JSON
|
| 285 |
+
# This is a simplified version - may need expansion
|
| 286 |
+
board_state = BoardState(**data['board_state'])
|
| 287 |
+
players_state = [PlayerState(**p) for p in data['players_state']]
|
| 288 |
+
|
| 289 |
+
game_state = GameState(
|
| 290 |
+
game_id=data.get('game_id', 'loaded_game'),
|
| 291 |
+
turn_number=data.get('turn_number', 0),
|
| 292 |
+
current_player=data.get('current_player', 0),
|
| 293 |
+
game_phase=GamePhase[data.get('game_phase', 'NORMAL_PLAY')],
|
| 294 |
+
turn_phase=TurnPhase[data.get('turn_phase', 'PLAYER_ACTIONS')],
|
| 295 |
+
board_state=board_state,
|
| 296 |
+
players_state=players_state,
|
| 297 |
+
dice_rolled=tuple(data['dice_rolled']) if data.get('dice_rolled') else None
|
| 298 |
+
)
|
| 299 |
+
|
| 300 |
+
return game_state
|
| 301 |
+
|
| 302 |
+
|
| 303 |
+
def main():
|
| 304 |
+
"""Main function to visualize game state."""
|
| 305 |
+
import argparse
|
| 306 |
+
|
| 307 |
+
parser = argparse.ArgumentParser(description='Visualize game state for AI testing')
|
| 308 |
+
parser.add_argument('--state-file', type=str, help='Path to game state JSON file')
|
| 309 |
+
parser.add_argument('--port', type=int, default=5000, help='Port for web server')
|
| 310 |
+
parser.add_argument('--no-browser', action='store_true', help='Don\'t open browser automatically')
|
| 311 |
+
|
| 312 |
+
args = parser.parse_args()
|
| 313 |
+
|
| 314 |
+
# Create or load game state
|
| 315 |
+
if args.state_file:
|
| 316 |
+
print(f"\n📂 Loading game state from: {args.state_file}")
|
| 317 |
+
game_state = load_game_state_from_file(args.state_file)
|
| 318 |
+
else:
|
| 319 |
+
print("\n🎲 Using default test game state...")
|
| 320 |
+
game = create_test_game_state()
|
| 321 |
+
game_state = game_to_game_state(game)
|
| 322 |
+
|
| 323 |
+
# Create web visualization
|
| 324 |
+
print(f"\n🌐 Starting Web Visualizer on port {args.port}...")
|
| 325 |
+
web_viz = WebVisualization(port=args.port, auto_open=not args.no_browser)
|
| 326 |
+
|
| 327 |
+
# Create capture wrapper
|
| 328 |
+
capture = GameStateCapture(web_viz)
|
| 329 |
+
|
| 330 |
+
# Capture and print the JSON
|
| 331 |
+
web_format = capture.capture_state_update(game_state)
|
| 332 |
+
|
| 333 |
+
# Update the visualization
|
| 334 |
+
web_viz.update_full_state(game_state)
|
| 335 |
+
|
| 336 |
+
# Start the web server in a separate thread
|
| 337 |
+
def run_server():
|
| 338 |
+
web_viz.start()
|
| 339 |
+
|
| 340 |
+
server_thread = threading.Thread(target=run_server, daemon=True)
|
| 341 |
+
server_thread.start()
|
| 342 |
+
|
| 343 |
+
# Wait a moment for server to start
|
| 344 |
+
time.sleep(1)
|
| 345 |
+
|
| 346 |
+
print("\n" + "="*80)
|
| 347 |
+
print("🎮 WEB VISUALIZER RUNNING")
|
| 348 |
+
print("="*80)
|
| 349 |
+
print(f"URL: http://localhost:{args.port}")
|
| 350 |
+
print("\nThe game state is now visible in your browser.")
|
| 351 |
+
print("The JSON data above is what an AI agent would receive.")
|
| 352 |
+
print("\nPress Ctrl+C to stop the server.")
|
| 353 |
+
print("="*80)
|
| 354 |
+
|
| 355 |
+
try:
|
| 356 |
+
# Keep the main thread alive
|
| 357 |
+
while True:
|
| 358 |
+
time.sleep(1)
|
| 359 |
+
except KeyboardInterrupt:
|
| 360 |
+
print("\n\n👋 Shutting down...")
|
| 361 |
+
|
| 362 |
+
|
| 363 |
+
if __name__ == '__main__':
|
| 364 |
+
main()
|
pycatan/core/game.py
CHANGED
|
@@ -79,12 +79,10 @@ class Game:
|
|
| 79 |
return Statuses.ERR_CARDS
|
| 80 |
# removes the cards
|
| 81 |
self.players[player].remove_cards(needed_cards)
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
self.players[player].add_dev_card(DevCard.YearOfPlenty)
|
| 85 |
-
# self.players[player].add_dev_card(self.dev_deck[0]) # Original: random card
|
| 86 |
# removes that dev card from the deck
|
| 87 |
-
|
| 88 |
return Statuses.ALL_GOOD
|
| 89 |
|
| 90 |
# gives players the proper cards for a given roll
|
|
|
|
| 79 |
return Statuses.ERR_CARDS
|
| 80 |
# removes the cards
|
| 81 |
self.players[player].remove_cards(needed_cards)
|
| 82 |
+
|
| 83 |
+
self.players[player].add_dev_card(self.dev_deck[0])
|
|
|
|
|
|
|
| 84 |
# removes that dev card from the deck
|
| 85 |
+
del self.dev_deck[0] # Commented out: not removing from deck in debug mode
|
| 86 |
return Statuses.ALL_GOOD
|
| 87 |
|
| 88 |
# gives players the proper cards for a given roll
|
pycatan/visualizations/web_visualization.py
CHANGED
|
@@ -282,7 +282,10 @@ class WebVisualization(Visualization):
|
|
| 282 |
'current_player': getattr(game_state, 'current_player', 0),
|
| 283 |
'current_phase': getattr(game_state, 'game_phase', 'ACTION').name if hasattr(getattr(game_state, 'game_phase', None), 'name') else str(getattr(game_state, 'game_phase', 'ACTION')),
|
| 284 |
'robber_position': None,
|
| 285 |
-
'dice_result': getattr(game_state, 'dice_rolled', None)
|
|
|
|
|
|
|
|
|
|
| 286 |
}
|
| 287 |
|
| 288 |
# Convert board data
|
|
@@ -393,6 +396,57 @@ class WebVisualization(Visualization):
|
|
| 393 |
|
| 394 |
return hexes
|
| 395 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 396 |
def _find_robber_position(self, board_state) -> Optional[int]:
|
| 397 |
"""Find which hex has the robber."""
|
| 398 |
if hasattr(board_state, 'robber_position'):
|
|
|
|
| 282 |
'current_player': getattr(game_state, 'current_player', 0),
|
| 283 |
'current_phase': getattr(game_state, 'game_phase', 'ACTION').name if hasattr(getattr(game_state, 'game_phase', None), 'name') else str(getattr(game_state, 'game_phase', 'ACTION')),
|
| 284 |
'robber_position': None,
|
| 285 |
+
'dice_result': getattr(game_state, 'dice_rolled', None),
|
| 286 |
+
# Add board structure information - CRITICAL FOR AI!
|
| 287 |
+
'points': self._get_points_info(),
|
| 288 |
+
'board_graph': self._get_board_graph()
|
| 289 |
}
|
| 290 |
|
| 291 |
# Convert board data
|
|
|
|
| 396 |
|
| 397 |
return hexes
|
| 398 |
|
| 399 |
+
def _get_points_info(self) -> List[Dict[str, Any]]:
|
| 400 |
+
"""
|
| 401 |
+
Get complete information about all points on the board.
|
| 402 |
+
CRITICAL FOR AI - provides board structure and connectivity.
|
| 403 |
+
|
| 404 |
+
Returns:
|
| 405 |
+
List of point definitions with adjacency information
|
| 406 |
+
"""
|
| 407 |
+
points_info = []
|
| 408 |
+
|
| 409 |
+
for point_id in board_definition.get_all_point_ids():
|
| 410 |
+
point_def = board_definition.points.get(point_id)
|
| 411 |
+
if point_def:
|
| 412 |
+
points_info.append({
|
| 413 |
+
'point_id': point_id,
|
| 414 |
+
'game_coords': list(point_def.game_coords),
|
| 415 |
+
'adjacent_points': point_def.adjacent_points, # Which points connect via roads
|
| 416 |
+
'adjacent_hexes': point_def.adjacent_hexes, # Which hexes touch this point
|
| 417 |
+
'pixel_coords': list(point_def.pixel_coords) # For visualization
|
| 418 |
+
})
|
| 419 |
+
|
| 420 |
+
return points_info
|
| 421 |
+
|
| 422 |
+
def _get_board_graph(self) -> Dict[str, Any]:
|
| 423 |
+
"""
|
| 424 |
+
Get the board as a graph structure for AI pathfinding and strategy.
|
| 425 |
+
|
| 426 |
+
Returns:
|
| 427 |
+
Graph representation with nodes (points) and edges (possible roads)
|
| 428 |
+
"""
|
| 429 |
+
# Create adjacency list for quick lookup
|
| 430 |
+
adjacency = {}
|
| 431 |
+
for point_id in board_definition.get_all_point_ids():
|
| 432 |
+
point_def = board_definition.points.get(point_id)
|
| 433 |
+
if point_def:
|
| 434 |
+
adjacency[point_id] = point_def.adjacent_points
|
| 435 |
+
|
| 436 |
+
# Get hex-to-points mapping for resource strategy
|
| 437 |
+
hex_to_points = {}
|
| 438 |
+
for hex_id in board_definition.get_all_hex_ids():
|
| 439 |
+
hex_def = board_definition.hexes.get(hex_id)
|
| 440 |
+
if hex_def:
|
| 441 |
+
hex_to_points[hex_id] = hex_def.adjacent_points
|
| 442 |
+
|
| 443 |
+
return {
|
| 444 |
+
'adjacency': adjacency, # point_id -> [connected_point_ids]
|
| 445 |
+
'hex_to_points': hex_to_points, # hex_id -> [point_ids_on_hex]
|
| 446 |
+
'total_points': len(board_definition.points),
|
| 447 |
+
'total_hexes': len(board_definition.hexes)
|
| 448 |
+
}
|
| 449 |
+
|
| 450 |
def _find_robber_position(self, board_state) -> Optional[int]:
|
| 451 |
"""Find which hex has the robber."""
|
| 452 |
if hasattr(board_state, 'robber_position'):
|
run.bat
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@echo off
|
| 2 |
+
REM Activate virtual environment and run the Catan game
|
| 3 |
+
call .venv\Scripts\activate.bat
|
| 4 |
+
python play_catan.py
|
| 5 |
+
pause
|