diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 3b66410..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "git.ignoreLimitWarning": true -} \ No newline at end of file diff --git a/assets/sprites/mines/1.jpg b/assets/sprites/mines/1.jpg index ccbc870..49eb69d 100644 Binary files a/assets/sprites/mines/1.jpg and b/assets/sprites/mines/1.jpg differ diff --git a/assets/sprites/mines/1.png b/assets/sprites/mines/1.png deleted file mode 100644 index ff3c622..0000000 Binary files a/assets/sprites/mines/1.png and /dev/null differ diff --git a/assets/sprites/mines/2.jpg b/assets/sprites/mines/2.jpg index 93342b1..b9cfe49 100644 Binary files a/assets/sprites/mines/2.jpg and b/assets/sprites/mines/2.jpg differ diff --git a/assets/sprites/mines/3.jpg b/assets/sprites/mines/3.jpg new file mode 100644 index 0000000..dbf6e6b Binary files /dev/null and b/assets/sprites/mines/3.jpg differ diff --git a/assets/sprites/mines/4.jpg b/assets/sprites/mines/4.jpg new file mode 100644 index 0000000..31ae2e3 Binary files /dev/null and b/assets/sprites/mines/4.jpg differ diff --git a/assets/sprites/mines/5.jpg b/assets/sprites/mines/5.jpg new file mode 100644 index 0000000..955b2bd Binary files /dev/null and b/assets/sprites/mines/5.jpg differ diff --git a/assets/sprites/mines/6.jpg b/assets/sprites/mines/6.jpg new file mode 100644 index 0000000..ae594a9 Binary files /dev/null and b/assets/sprites/mines/6.jpg differ diff --git a/assets/sprites/mines/7.jpg b/assets/sprites/mines/7.jpg new file mode 100644 index 0000000..12214d6 Binary files /dev/null and b/assets/sprites/mines/7.jpg differ diff --git a/assets/sprites/mines/8.jpg b/assets/sprites/mines/8.jpg new file mode 100644 index 0000000..5824e35 Binary files /dev/null and b/assets/sprites/mines/8.jpg differ diff --git a/assets/sprites/mines/9.jpg b/assets/sprites/mines/9.jpg new file mode 100644 index 0000000..061b4f9 Binary files /dev/null and b/assets/sprites/mines/9.jpg differ diff --git a/assets/sprites/mines/zle.jpg b/assets/sprites/mines/zle.jpg new file mode 100644 index 0000000..1b4d2ab Binary files /dev/null and b/assets/sprites/mines/zle.jpg differ diff --git a/assets/sprites/mines/zle2.jpg b/assets/sprites/mines/zle2.jpg new file mode 100644 index 0000000..878711f Binary files /dev/null and b/assets/sprites/mines/zle2.jpg differ diff --git a/assets/sprites/mines/zle3.jpg b/assets/sprites/mines/zle3.jpg new file mode 100644 index 0000000..bf50def Binary files /dev/null and b/assets/sprites/mines/zle3.jpg differ diff --git a/assets/sprites/mines/zle4.jpg b/assets/sprites/mines/zle4.jpg new file mode 100644 index 0000000..a3c7cbc Binary files /dev/null and b/assets/sprites/mines/zle4.jpg differ diff --git a/assets/sprites/mines/zle5.jpg b/assets/sprites/mines/zle5.jpg new file mode 100644 index 0000000..5e3a8a9 Binary files /dev/null and b/assets/sprites/mines/zle5.jpg differ diff --git a/assets/sprites/mines/zle6.jpg b/assets/sprites/mines/zle6.jpg new file mode 100644 index 0000000..1247869 Binary files /dev/null and b/assets/sprites/mines/zle6.jpg differ diff --git a/assets/sprites/notmines/1.jpg b/assets/sprites/notmines/1.jpg index db435b8..f511ad1 100644 Binary files a/assets/sprites/notmines/1.jpg and b/assets/sprites/notmines/1.jpg differ diff --git a/assets/sprites/notmines/1.png b/assets/sprites/notmines/1.png deleted file mode 100644 index 87f6e2b..0000000 Binary files a/assets/sprites/notmines/1.png and /dev/null differ diff --git a/assets/sprites/notmines/10.jpg b/assets/sprites/notmines/10.jpg new file mode 100644 index 0000000..e636837 Binary files /dev/null and b/assets/sprites/notmines/10.jpg differ diff --git a/assets/sprites/notmines/11.jpg b/assets/sprites/notmines/11.jpg new file mode 100644 index 0000000..b9bf63e Binary files /dev/null and b/assets/sprites/notmines/11.jpg differ diff --git a/assets/sprites/notmines/12.jpg b/assets/sprites/notmines/12.jpg new file mode 100644 index 0000000..5bebd79 Binary files /dev/null and b/assets/sprites/notmines/12.jpg differ diff --git a/assets/sprites/notmines/13.jpg b/assets/sprites/notmines/13.jpg new file mode 100644 index 0000000..8bb59a8 Binary files /dev/null and b/assets/sprites/notmines/13.jpg differ diff --git a/assets/sprites/notmines/2.jpg b/assets/sprites/notmines/2.jpg index 30112cb..79fa09f 100644 Binary files a/assets/sprites/notmines/2.jpg and b/assets/sprites/notmines/2.jpg differ diff --git a/assets/sprites/notmines/3.jpg b/assets/sprites/notmines/3.jpg new file mode 100644 index 0000000..db3dad7 Binary files /dev/null and b/assets/sprites/notmines/3.jpg differ diff --git a/assets/sprites/notmines/4.jpg b/assets/sprites/notmines/4.jpg new file mode 100644 index 0000000..e5bfb0c Binary files /dev/null and b/assets/sprites/notmines/4.jpg differ diff --git a/assets/sprites/notmines/5.jpg b/assets/sprites/notmines/5.jpg new file mode 100644 index 0000000..a2a66d7 Binary files /dev/null and b/assets/sprites/notmines/5.jpg differ diff --git a/assets/sprites/notmines/6.jpg b/assets/sprites/notmines/6.jpg new file mode 100644 index 0000000..0f81260 Binary files /dev/null and b/assets/sprites/notmines/6.jpg differ diff --git a/assets/sprites/notmines/7.jpg b/assets/sprites/notmines/7.jpg new file mode 100644 index 0000000..fa8a01a Binary files /dev/null and b/assets/sprites/notmines/7.jpg differ diff --git a/assets/sprites/notmines/8.jpg b/assets/sprites/notmines/8.jpg new file mode 100644 index 0000000..ee69257 Binary files /dev/null and b/assets/sprites/notmines/8.jpg differ diff --git a/assets/sprites/notmines/9.jpg b/assets/sprites/notmines/9.jpg new file mode 100644 index 0000000..e9053f1 Binary files /dev/null and b/assets/sprites/notmines/9.jpg differ diff --git a/assets/sprites/notmines/zle.jpg b/assets/sprites/notmines/zle.jpg new file mode 100644 index 0000000..d40c603 Binary files /dev/null and b/assets/sprites/notmines/zle.jpg differ diff --git a/assets/sprites/notmines/zle2.jpg b/assets/sprites/notmines/zle2.jpg new file mode 100644 index 0000000..a7ea89b Binary files /dev/null and b/assets/sprites/notmines/zle2.jpg differ diff --git a/classes/minesweeper.py b/classes/minesweeper.py index 22d90d3..79e0931 100644 --- a/classes/minesweeper.py +++ b/classes/minesweeper.py @@ -23,10 +23,10 @@ class NotMine(): self.position_y = position_y self.size = size self.ismine = False - self.image_path = "assets/sprites/notmines/" + str(randrange(1, 3)) + ".jpg" + self.image_path = "assets/sprites/notmines/" + str(randrange(1, 10)) + ".jpg" self.image = pygame.image.load(self.image_path) self.image = pygame.transform.scale(self.image, (self.size, self.size)) - self.font = pygame.font.SysFont('Comic Sans MS', int(self.size * 0.3)) + self.font = pygame.font.SysFont('Comic Sans MS', int(self.size * 0.25)) self.done_text = self.font.render("", False, (255,0,0)) def draw(self, window): @@ -59,10 +59,10 @@ class Mine(): self.weight = weight self.explosion_timer = timer self.difficulty = difficulty - self.image_path = "assets/sprites/mines/" + str(randrange(1, 3)) + ".jpg" + self.image_path = "assets/sprites/mines/" + str(randrange(1, 10)) + ".jpg" self.image = pygame.image.load(self.image_path) self.image = pygame.transform.scale(self.image, (self.size, self.size)) - self.font = pygame.font.SysFont('Comic Sans MS', int(self.size * 0.3)) + self.font = pygame.font.SysFont('Comic Sans MS', int(self.size * 0.25)) self.image_text = self.font.render(str(self.weight), False, (255, 0, 0)) self.timer_text = self.font.render(str(self.explosion_timer), False, (255, 0, 0)) self.difficulty_text = self.font.render(str(self.difficulty), False, (255, 0, 0)) @@ -438,16 +438,24 @@ class Minesweeper: for encounter in self.current_map.encounters: if (self.position_x, self.position_y) == (encounter.position_x, encounter.position_y): - #tutaj będzie sprawdzanie zdjęcia i na podstawie tego przypisywane true albo false do decisionismine + #wykrywanie po zadjęciu czy mina czy nie decisionismine = self.neural_network.recognize(encounter.image_path) #wykryto błędnie if decisionismine != encounter.ismine: - print("ERROR: Decision was not right") - self.current_map.encounters.clear() + print("ERROR: Decision was not correct") + #self.current_map.encounters.clear() + if encounter.ismine: + encounter.image_text = encounter.font.render("MISS", False, (255, 0, 0)) + encounter.difficulty_text = encounter.font.render("", False, (255, 0, 0)) + else: + encounter.done_text = encounter.font.render("MISS", False, (255,0,0)) + self.current_map.encounters.remove(encounter) + print("") break #wykryto poprawnie, że mina elif decisionismine: + print("Decision was correct") print("Mine? - Yes") print("") tree = decisionTrees.DecisionTrees() @@ -461,6 +469,7 @@ class Minesweeper: break #wykryto poprawnie, że niemina else: + print("Decision was correct") print("Mine? - No") print("") encounter.done_text = encounter.font.render("X", False, (255,0,0)) diff --git a/classes/neuralNetwork.py b/classes/neuralNetwork.py index 885ac8b..07399e5 100644 --- a/classes/neuralNetwork.py +++ b/classes/neuralNetwork.py @@ -14,7 +14,7 @@ warnings.filterwarnings('ignore') create_model = False learning_sets_path = "data/learning_sets" save_model_path = "data/models/true_mine_recognizer.model" -load_model_path = "data/models/mine_recognizer.model" +load_model_path = "data/models/true_mine_recognizer.model" image_size = 128 class NeuralNetwork(): @@ -98,12 +98,10 @@ class NeuralNetwork(): prediction = self.model.predict(image_array) if prediction[0] > 0.5: predict = "notmine" - accuracy = prediction[0] * 100 elif prediction[0] <= 0.5: predict = "mine" - accuracy = (1 - prediction[0]) * 100 - print("Image: ",image_path," is classified as: ", predict," with: ", accuracy, " accuracy") + print("Image: ",image_path," is classified as: ", predict) if predict == "mine": return True else: diff --git a/data/models/mine_recognizer.model/variables/variables.index b/data/models/mine_recognizer.model/variables/variables.index deleted file mode 100644 index 58125cf..0000000 Binary files a/data/models/mine_recognizer.model/variables/variables.index and /dev/null differ diff --git a/data/models/mine_recognizer.model/keras_metadata.pb b/data/models/true_mine_recognizer.model/keras_metadata.pb similarity index 100% rename from data/models/mine_recognizer.model/keras_metadata.pb rename to data/models/true_mine_recognizer.model/keras_metadata.pb diff --git a/data/models/mine_recognizer.model/saved_model.pb b/data/models/true_mine_recognizer.model/saved_model.pb similarity index 93% rename from data/models/mine_recognizer.model/saved_model.pb rename to data/models/true_mine_recognizer.model/saved_model.pb index 1fa6dbc..9e2c052 100644 Binary files a/data/models/mine_recognizer.model/saved_model.pb and b/data/models/true_mine_recognizer.model/saved_model.pb differ diff --git a/data/models/mine_recognizer.model/variables/variables.data-00000-of-00001 b/data/models/true_mine_recognizer.model/variables/variables.data-00000-of-00001 similarity index 83% rename from data/models/mine_recognizer.model/variables/variables.data-00000-of-00001 rename to data/models/true_mine_recognizer.model/variables/variables.data-00000-of-00001 index 2975eaf..f3bb615 100644 Binary files a/data/models/mine_recognizer.model/variables/variables.data-00000-of-00001 and b/data/models/true_mine_recognizer.model/variables/variables.data-00000-of-00001 differ diff --git a/data/models/true_mine_recognizer.model/variables/variables.index b/data/models/true_mine_recognizer.model/variables/variables.index new file mode 100644 index 0000000..7be39db Binary files /dev/null and b/data/models/true_mine_recognizer.model/variables/variables.index differ diff --git a/outputs/rules/rules.json b/outputs/rules/rules.json index 562d000..76bc158 100644 --- a/outputs/rules/rules.json +++ b/outputs/rules/rules.json @@ -1,31 +1,31 @@ [ -{"current_level": 1, "leaf_id": "3da5aae2-e008-11ec-95c1-d43d7ef1576e", "parents": "root", "rule": "else: return 'detonate'", "feature_idx": -1, "feature_name": "", "instances": 200, "metric": 0, "return_statement": 0, "tree_id": 0}, -{"current_level": 1, "leaf_id": "3da6bcfb-e008-11ec-ba71-d43d7ef1576e", "parents": "root", "rule": "if obj[4]<=80.67436609605278:", "feature_idx": 4, "feature_name": "Random_detonation_chance", "instances": 200, "metric": 0.9964625048848765, "return_statement": 0, "tree_id": 0}, -{"current_level": 2, "leaf_id": "3db49dc5-e008-11ec-b425-d43d7ef1576e", "parents": "3da6bcfb-e008-11ec-ba71-d43d7ef1576e", "rule": "else: return 'detonate'", "feature_idx": -1, "feature_name": "", "instances": 161, "metric": 0, "return_statement": 0, "tree_id": 0}, -{"current_level": 2, "leaf_id": "3db5af1f-e008-11ec-ba0b-d43d7ef1576e", "parents": "3da6bcfb-e008-11ec-ba71-d43d7ef1576e", "rule": "if obj[2]<=0:", "feature_idx": 2, "feature_name": "Protection_from_defuse", "instances": 161, "metric": 0.9203523274205176, "return_statement": 0, "tree_id": 0}, -{"current_level": 3, "leaf_id": "3dc2a6e1-e008-11ec-ba72-d43d7ef1576e", "parents": "3db5af1f-e008-11ec-ba0b-d43d7ef1576e", "rule": "else: return 'detonate'", "feature_idx": -1, "feature_name": "", "instances": 135, "metric": 0, "return_statement": 0, "tree_id": 0}, -{"current_level": 3, "leaf_id": "3dc39134-e008-11ec-9943-d43d7ef1576e", "parents": "3db5af1f-e008-11ec-ba0b-d43d7ef1576e", "rule": "if obj[3]<=7:", "feature_idx": 3, "feature_name": "Meters_under_the_ground", "instances": 135, "metric": 0.7364977795505669, "return_statement": 0, "tree_id": 0}, -{"current_level": 4, "leaf_id": "3dcd2d59-e008-11ec-9f6f-d43d7ef1576e", "parents": "3dc39134-e008-11ec-9943-d43d7ef1576e", "rule": "else: return 'defuse'", "feature_idx": -1, "feature_name": "", "instances": 116, "metric": 0, "return_statement": 0, "tree_id": 0}, -{"current_level": 4, "leaf_id": "3dce17a5-e008-11ec-acb7-d43d7ef1576e", "parents": "3dc39134-e008-11ec-9943-d43d7ef1576e", "rule": "if obj[1]<=1997.8794790831414:", "feature_idx": 1, "feature_name": "Year(older_more_difficult)", "instances": 116, "metric": 0.3936164041111624, "return_statement": 0, "tree_id": 0}, -{"current_level": 5, "leaf_id": "3dd4f4e4-e008-11ec-9a04-d43d7ef1576e", "parents": "3dce17a5-e008-11ec-acb7-d43d7ef1576e", "rule": "else: return 'defuse'", "feature_idx": -1, "feature_name": "", "instances": 97, "metric": 0, "return_statement": 0, "tree_id": 0}, -{"current_level": 5, "leaf_id": "3dd5df33-e008-11ec-a66b-d43d7ef1576e", "parents": "3dce17a5-e008-11ec-acb7-d43d7ef1576e", "rule": "if obj[5]<=2:", "feature_idx": 5, "feature_name": "Detonation_power_in_m", "instances": 97, "metric": 0.445693177722561, "return_statement": 0, "tree_id": 0}, -{"current_level": 6, "leaf_id": "3dd9615a-e008-11ec-a021-d43d7ef1576e", "parents": "3dd5df33-e008-11ec-a66b-d43d7ef1576e", "rule": "else: return 'defuse'", "feature_idx": -1, "feature_name": "", "instances": 65, "metric": 0, "return_statement": 0, "tree_id": 0}, -{"current_level": 6, "leaf_id": "3dda7234-e008-11ec-bf9b-d43d7ef1576e", "parents": "3dd5df33-e008-11ec-a66b-d43d7ef1576e", "rule": "if obj[0]>3:", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 65, "metric": 0.33352200393097664, "return_statement": 0, "tree_id": 0}, -{"current_level": 7, "leaf_id": "3dda7235-e008-11ec-bf80-d43d7ef1576e", "parents": "3dda7234-e008-11ec-bf9b-d43d7ef1576e", "rule": "return 'defuse'", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 65, "metric": 0, "return_statement": 1, "tree_id": 0}, -{"current_level": 6, "leaf_id": "3de6589c-e008-11ec-b9e2-d43d7ef1576e", "parents": "3dd5df33-e008-11ec-a66b-d43d7ef1576e", "rule": "if obj[0]<=3:", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 65, "metric": 0.33352200393097664, "return_statement": 0, "tree_id": 0}, -{"current_level": 7, "leaf_id": "3de6589d-e008-11ec-ac82-d43d7ef1576e", "parents": "3de6589c-e008-11ec-b9e2-d43d7ef1576e", "rule": "return 'defuse'", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 65, "metric": 0, "return_statement": 1, "tree_id": 0}, -{"current_level": 5, "leaf_id": "3dfdfd61-e008-11ec-a211-d43d7ef1576e", "parents": "3dce17a5-e008-11ec-acb7-d43d7ef1576e", "rule": "if obj[5]>2:", "feature_idx": 5, "feature_name": "Detonation_power_in_m", "instances": 97, "metric": 0.445693177722561, "return_statement": 0, "tree_id": 0}, -{"current_level": 6, "leaf_id": "3e01a611-e008-11ec-910f-d43d7ef1576e", "parents": "3dfdfd61-e008-11ec-a211-d43d7ef1576e", "rule": "else: return 'defuse'", "feature_idx": -1, "feature_name": "", "instances": 32, "metric": 0, "return_statement": 0, "tree_id": 0}, -{"current_level": 6, "leaf_id": "3e029055-e008-11ec-94d4-d43d7ef1576e", "parents": "3dfdfd61-e008-11ec-a211-d43d7ef1576e", "rule": "if obj[0]<=7:", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 32, "metric": 0.6252624052234231, "return_statement": 0, "tree_id": 0}, -{"current_level": 7, "leaf_id": "3e029056-e008-11ec-80d0-d43d7ef1576e", "parents": "3e029055-e008-11ec-94d4-d43d7ef1576e", "rule": "return 'defuse'", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 32, "metric": 0, "return_statement": 1, "tree_id": 0}, -{"current_level": 6, "leaf_id": "3e0e9dd1-e008-11ec-8ed3-d43d7ef1576e", "parents": "3dfdfd61-e008-11ec-a211-d43d7ef1576e", "rule": "if obj[0]>7:", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 32, "metric": 0.6252624052234231, "return_statement": 0, "tree_id": 0}, -{"current_level": 7, "leaf_id": "3e0e9dd2-e008-11ec-9bd3-d43d7ef1576e", "parents": "3e0e9dd1-e008-11ec-8ed3-d43d7ef1576e", "rule": "return 'defuse'", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 32, "metric": 0, "return_statement": 1, "tree_id": 0}, -{"current_level": 4, "leaf_id": "3e324f8e-e008-11ec-a2cf-d43d7ef1576e", "parents": "3dc39134-e008-11ec-9943-d43d7ef1576e", "rule": "if obj[1]>1997.8794790831414:", "feature_idx": 1, "feature_name": "Year(older_more_difficult)", "instances": 116, "metric": 0.3936164041111624, "return_statement": 0, "tree_id": 0}, -{"current_level": 5, "leaf_id": "3e324f8f-e008-11ec-b0e5-d43d7ef1576e", "parents": "3e324f8e-e008-11ec-a2cf-d43d7ef1576e", "rule": "return 'defuse'", "feature_idx": 1, "feature_name": "Year(older_more_difficult)", "instances": 116, "metric": 0, "return_statement": 1, "tree_id": 0}, -{"current_level": 3, "leaf_id": "3e4a6970-e008-11ec-82ec-d43d7ef1576e", "parents": "3db5af1f-e008-11ec-ba0b-d43d7ef1576e", "rule": "if obj[3]>7:", "feature_idx": 3, "feature_name": "Meters_under_the_ground", "instances": 135, "metric": 0.7364977795505669, "return_statement": 0, "tree_id": 0}, -{"current_level": 4, "leaf_id": "3e4a6971-e008-11ec-b6a1-d43d7ef1576e", "parents": "3e4a6970-e008-11ec-82ec-d43d7ef1576e", "rule": "return 'detonate'", "feature_idx": 3, "feature_name": "Meters_under_the_ground", "instances": 135, "metric": 0, "return_statement": 1, "tree_id": 0}, -{"current_level": 2, "leaf_id": "3e625c50-e008-11ec-8286-d43d7ef1576e", "parents": "3da6bcfb-e008-11ec-ba71-d43d7ef1576e", "rule": "if obj[2]>0:", "feature_idx": 2, "feature_name": "Protection_from_defuse", "instances": 161, "metric": 0.9203523274205176, "return_statement": 0, "tree_id": 0}, -{"current_level": 3, "leaf_id": "3e625c51-e008-11ec-bcac-d43d7ef1576e", "parents": "3e625c50-e008-11ec-8286-d43d7ef1576e", "rule": "return 'detonate'", "feature_idx": 2, "feature_name": "Protection_from_defuse", "instances": 161, "metric": 0, "return_statement": 1, "tree_id": 0}, -{"current_level": 1, "leaf_id": "3e7da9c6-e008-11ec-9254-d43d7ef1576e", "parents": "root", "rule": "if obj[4]>80.67436609605278:", "feature_idx": 4, "feature_name": "Random_detonation_chance", "instances": 200, "metric": 0.9964625048848765, "return_statement": 0, "tree_id": 0}, -{"current_level": 2, "leaf_id": "3e7da9c7-e008-11ec-81ca-d43d7ef1576e", "parents": "3e7da9c6-e008-11ec-9254-d43d7ef1576e", "rule": "return 'detonate'", "feature_idx": 4, "feature_name": "Random_detonation_chance", "instances": 200, "metric": 0, "return_statement": 1, "tree_id": 0} +{"current_level": 1, "leaf_id": "a5207776-e038-11ec-81fa-d43d7ef1576e", "parents": "root", "rule": "else: return 'detonate'", "feature_idx": -1, "feature_name": "", "instances": 200, "metric": 0, "return_statement": 0, "tree_id": 0}, +{"current_level": 1, "leaf_id": "a52161b8-e038-11ec-a09a-d43d7ef1576e", "parents": "root", "rule": "if obj[4]<=80.67436609605278:", "feature_idx": 4, "feature_name": "Random_detonation_chance", "instances": 200, "metric": 0.9964625048848765, "return_statement": 0, "tree_id": 0}, +{"current_level": 2, "leaf_id": "a5307c65-e038-11ec-b18b-d43d7ef1576e", "parents": "a52161b8-e038-11ec-a09a-d43d7ef1576e", "rule": "else: return 'detonate'", "feature_idx": -1, "feature_name": "", "instances": 161, "metric": 0, "return_statement": 0, "tree_id": 0}, +{"current_level": 2, "leaf_id": "a5318dc0-e038-11ec-986d-d43d7ef1576e", "parents": "a52161b8-e038-11ec-a09a-d43d7ef1576e", "rule": "if obj[2]<=0:", "feature_idx": 2, "feature_name": "Protection_from_defuse", "instances": 161, "metric": 0.9203523274205176, "return_statement": 0, "tree_id": 0}, +{"current_level": 3, "leaf_id": "a53f21ad-e038-11ec-a443-d43d7ef1576e", "parents": "a5318dc0-e038-11ec-986d-d43d7ef1576e", "rule": "else: return 'detonate'", "feature_idx": -1, "feature_name": "", "instances": 135, "metric": 0, "return_statement": 0, "tree_id": 0}, +{"current_level": 3, "leaf_id": "a5403290-e038-11ec-9ad7-d43d7ef1576e", "parents": "a5318dc0-e038-11ec-986d-d43d7ef1576e", "rule": "if obj[3]<=7:", "feature_idx": 3, "feature_name": "Meters_under_the_ground", "instances": 135, "metric": 0.7364977795505669, "return_statement": 0, "tree_id": 0}, +{"current_level": 4, "leaf_id": "a549f58f-e038-11ec-9721-d43d7ef1576e", "parents": "a5403290-e038-11ec-9ad7-d43d7ef1576e", "rule": "else: return 'defuse'", "feature_idx": -1, "feature_name": "", "instances": 116, "metric": 0, "return_statement": 0, "tree_id": 0}, +{"current_level": 4, "leaf_id": "a54adfdd-e038-11ec-ab1c-d43d7ef1576e", "parents": "a5403290-e038-11ec-9ad7-d43d7ef1576e", "rule": "if obj[1]<=1997.8794790831414:", "feature_idx": 1, "feature_name": "Year(older_more_difficult)", "instances": 116, "metric": 0.3936164041111624, "return_statement": 0, "tree_id": 0}, +{"current_level": 5, "leaf_id": "a5525982-e038-11ec-a259-d43d7ef1576e", "parents": "a54adfdd-e038-11ec-ab1c-d43d7ef1576e", "rule": "else: return 'defuse'", "feature_idx": -1, "feature_name": "", "instances": 97, "metric": 0, "return_statement": 0, "tree_id": 0}, +{"current_level": 5, "leaf_id": "a55343a5-e038-11ec-8973-d43d7ef1576e", "parents": "a54adfdd-e038-11ec-ab1c-d43d7ef1576e", "rule": "if obj[5]<=2:", "feature_idx": 5, "feature_name": "Detonation_power_in_m", "instances": 97, "metric": 0.445693177722561, "return_statement": 0, "tree_id": 0}, +{"current_level": 6, "leaf_id": "a55713e5-e038-11ec-b018-d43d7ef1576e", "parents": "a55343a5-e038-11ec-8973-d43d7ef1576e", "rule": "else: return 'defuse'", "feature_idx": -1, "feature_name": "", "instances": 65, "metric": 0, "return_statement": 0, "tree_id": 0}, +{"current_level": 6, "leaf_id": "a55824b5-e038-11ec-a34f-d43d7ef1576e", "parents": "a55343a5-e038-11ec-8973-d43d7ef1576e", "rule": "if obj[0]>3:", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 65, "metric": 0.33352200393097664, "return_statement": 0, "tree_id": 0}, +{"current_level": 7, "leaf_id": "a55824b6-e038-11ec-bb03-d43d7ef1576e", "parents": "a55824b5-e038-11ec-a34f-d43d7ef1576e", "rule": "return 'defuse'", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 65, "metric": 0, "return_statement": 1, "tree_id": 0}, +{"current_level": 6, "leaf_id": "a564f4e5-e038-11ec-a139-d43d7ef1576e", "parents": "a55343a5-e038-11ec-8973-d43d7ef1576e", "rule": "if obj[0]<=3:", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 65, "metric": 0.33352200393097664, "return_statement": 0, "tree_id": 0}, +{"current_level": 7, "leaf_id": "a564f4e6-e038-11ec-b59b-d43d7ef1576e", "parents": "a564f4e5-e038-11ec-a139-d43d7ef1576e", "rule": "return 'defuse'", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 65, "metric": 0, "return_statement": 1, "tree_id": 0}, +{"current_level": 5, "leaf_id": "a57d103d-e038-11ec-837c-d43d7ef1576e", "parents": "a54adfdd-e038-11ec-ab1c-d43d7ef1576e", "rule": "if obj[5]>2:", "feature_idx": 5, "feature_name": "Detonation_power_in_m", "instances": 97, "metric": 0.445693177722561, "return_statement": 0, "tree_id": 0}, +{"current_level": 6, "leaf_id": "a580b941-e038-11ec-8b02-d43d7ef1576e", "parents": "a57d103d-e038-11ec-837c-d43d7ef1576e", "rule": "else: return 'defuse'", "feature_idx": -1, "feature_name": "", "instances": 32, "metric": 0, "return_statement": 0, "tree_id": 0}, +{"current_level": 6, "leaf_id": "a581cac7-e038-11ec-9903-d43d7ef1576e", "parents": "a57d103d-e038-11ec-837c-d43d7ef1576e", "rule": "if obj[0]<=7:", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 32, "metric": 0.6252624052234231, "return_statement": 0, "tree_id": 0}, +{"current_level": 7, "leaf_id": "a581cac8-e038-11ec-9a27-d43d7ef1576e", "parents": "a581cac7-e038-11ec-9903-d43d7ef1576e", "rule": "return 'defuse'", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 32, "metric": 0, "return_statement": 1, "tree_id": 0}, +{"current_level": 6, "leaf_id": "a58dd70d-e038-11ec-9d70-d43d7ef1576e", "parents": "a57d103d-e038-11ec-837c-d43d7ef1576e", "rule": "if obj[0]>7:", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 32, "metric": 0.6252624052234231, "return_statement": 0, "tree_id": 0}, +{"current_level": 7, "leaf_id": "a58dd70e-e038-11ec-a5cf-d43d7ef1576e", "parents": "a58dd70d-e038-11ec-9d70-d43d7ef1576e", "rule": "return 'defuse'", "feature_idx": 0, "feature_name": "Size(bigger_more_difficult)", "instances": 32, "metric": 0, "return_statement": 1, "tree_id": 0}, +{"current_level": 4, "leaf_id": "a5b27499-e038-11ec-9c75-d43d7ef1576e", "parents": "a5403290-e038-11ec-9ad7-d43d7ef1576e", "rule": "if obj[1]>1997.8794790831414:", "feature_idx": 1, "feature_name": "Year(older_more_difficult)", "instances": 116, "metric": 0.3936164041111624, "return_statement": 0, "tree_id": 0}, +{"current_level": 5, "leaf_id": "a5b2749a-e038-11ec-ad1c-d43d7ef1576e", "parents": "a5b27499-e038-11ec-9c75-d43d7ef1576e", "rule": "return 'defuse'", "feature_idx": 1, "feature_name": "Year(older_more_difficult)", "instances": 116, "metric": 0, "return_statement": 1, "tree_id": 0}, +{"current_level": 3, "leaf_id": "a5cadc0d-e038-11ec-ab67-d43d7ef1576e", "parents": "a5318dc0-e038-11ec-986d-d43d7ef1576e", "rule": "if obj[3]>7:", "feature_idx": 3, "feature_name": "Meters_under_the_ground", "instances": 135, "metric": 0.7364977795505669, "return_statement": 0, "tree_id": 0}, +{"current_level": 4, "leaf_id": "a5cadc0e-e038-11ec-bd41-d43d7ef1576e", "parents": "a5cadc0d-e038-11ec-ab67-d43d7ef1576e", "rule": "return 'detonate'", "feature_idx": 3, "feature_name": "Meters_under_the_ground", "instances": 135, "metric": 0, "return_statement": 1, "tree_id": 0}, +{"current_level": 2, "leaf_id": "a5e31ebf-e038-11ec-9eb3-d43d7ef1576e", "parents": "a52161b8-e038-11ec-a09a-d43d7ef1576e", "rule": "if obj[2]>0:", "feature_idx": 2, "feature_name": "Protection_from_defuse", "instances": 161, "metric": 0.9203523274205176, "return_statement": 0, "tree_id": 0}, +{"current_level": 3, "leaf_id": "a5e31ec0-e038-11ec-86a5-d43d7ef1576e", "parents": "a5e31ebf-e038-11ec-9eb3-d43d7ef1576e", "rule": "return 'detonate'", "feature_idx": 2, "feature_name": "Protection_from_defuse", "instances": 161, "metric": 0, "return_statement": 1, "tree_id": 0}, +{"current_level": 1, "leaf_id": "a5fb1242-e038-11ec-bb21-d43d7ef1576e", "parents": "root", "rule": "if obj[4]>80.67436609605278:", "feature_idx": 4, "feature_name": "Random_detonation_chance", "instances": 200, "metric": 0.9964625048848765, "return_statement": 0, "tree_id": 0}, +{"current_level": 2, "leaf_id": "a5fb1243-e038-11ec-9433-d43d7ef1576e", "parents": "a5fb1242-e038-11ec-bb21-d43d7ef1576e", "rule": "return 'detonate'", "feature_idx": 4, "feature_name": "Random_detonation_chance", "instances": 200, "metric": 0, "return_statement": 1, "tree_id": 0} ] \ No newline at end of file