json added
This commit is contained in:
parent
e022043240
commit
f6541cf652
@ -10,7 +10,7 @@ UP = 'UP'
|
|||||||
DOWN = 'DOWN'
|
DOWN = 'DOWN'
|
||||||
LEFT = 'LEFT'
|
LEFT = 'LEFT'
|
||||||
RIGHT = 'RIGHT'
|
RIGHT = 'RIGHT'
|
||||||
DEFUSE = 'DEFUSE'
|
DEFUSE = 'defuse'
|
||||||
MOVE = 'MOVE'
|
MOVE = 'MOVE'
|
||||||
|
|
||||||
DECOY = 'Decoy'
|
DECOY = 'Decoy'
|
||||||
@ -28,4 +28,6 @@ NO = "no"
|
|||||||
NONE = "none"
|
NONE = "none"
|
||||||
IMMEDIATE = "immediate"
|
IMMEDIATE = "immediate"
|
||||||
MEDIUM = 'medium'
|
MEDIUM = 'medium'
|
||||||
|
POLIGON = 'poligon'
|
||||||
|
DETONATE = 'detonate'
|
||||||
|
|
||||||
|
@ -1,165 +1 @@
|
|||||||
{
|
{"defusable": {"no": {"bomb_type": {"Atomic Bomb": {"detonation_area": {"large": "poligon", "small": "detonate"}}, "Chemical Bomb": {"detonation_duration": {"immediate": {"detonation_area": {"large": "poligon", "small": {"size": {"large": "detonate", "medium": "detonate", "small": "poligon"}}}}, "long": {"size": {"large": {"detonation_area": {"large": "poligon", "small": "detonate"}}, "medium": "poligon", "small": "poligon"}}, "none": "poligon", "short": "detonate"}}, "Claymore": {"detonation_area": {"large": {"detonation_duration": {"immediate": {"size": {"large": "detonate", "medium": "poligon", "small": "poligon"}}, "long": "poligon", "none": "poligon", "short": "poligon"}}, "small": {"size": {"large": {"detonation_duration": {"immediate": "poligon", "long": "poligon", "none": "detonate", "short": "detonate"}}, "medium": {"detonation_duration": {"immediate": "detonate", "long": "poligon", "none": "poligon", "short": "poligon"}}, "small": "detonate"}}}}, "Decoy": "poligon", "Land Mine": {"detonation_duration": {"immediate": "detonate", "long": {"size": {"large": "poligon", "medium": "detonate", "small": "detonate"}}, "none": "poligon", "short": "poligon"}}}}, "yes": {"bomb_type": {"Atomic Bomb": {"detonation_area": {"large": "defuse", "small": "detonate"}}, "Chemical Bomb": "defuse", "Claymore": {"detonation_duration": {"immediate": {"detonation_area": {"large": {"size": {"large": "poligon", "medium": "defuse", "small": "poligon"}}, "small": {"size": {"large": "detonate", "medium": "poligon", "small": "detonate"}}}}, "long": {"size": {"large": {"detonation_area": {"large": "detonate", "small": "defuse"}}, "medium": "defuse", "small": "defuse"}}, "none": "defuse", "short": {"size": {"large": "defuse", "medium": {"detonation_area": {"large": "poligon", "small": "detonate"}}, "small": "defuse"}}}}, "Decoy": "poligon", "Land Mine": {"detonation_duration": {"immediate": "defuse", "long": "defuse", "none": "poligon", "short": "defuse"}}}}}}
|
||||||
"defusable": {
|
|
||||||
"no": {
|
|
||||||
"bomb_type": {
|
|
||||||
"Atomic Bomb": {
|
|
||||||
"detonation_area": {
|
|
||||||
"large": "poligon",
|
|
||||||
"small": "detonate"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Chemical Bomb": {
|
|
||||||
"detonation_duration": {
|
|
||||||
"immediate": {
|
|
||||||
"detonation_area": {
|
|
||||||
"large": "poligon",
|
|
||||||
"small": {
|
|
||||||
"size": {
|
|
||||||
"large": "detonate",
|
|
||||||
"medium": "detonate",
|
|
||||||
"small": "poligon"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"long": {
|
|
||||||
"size": {
|
|
||||||
"large": {
|
|
||||||
"detonation_area": {
|
|
||||||
"large": "poligon",
|
|
||||||
"small": "detonate"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"medium": "poligon",
|
|
||||||
"small": "poligon"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"none": "poligon",
|
|
||||||
"short": "detonate"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Claymore": {
|
|
||||||
"detonation_area": {
|
|
||||||
"large": {
|
|
||||||
"detonation_duration": {
|
|
||||||
"immediate": {
|
|
||||||
"size": {
|
|
||||||
"large": "detonate",
|
|
||||||
"medium": "poligon",
|
|
||||||
"small": "poligon"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"long": "poligon",
|
|
||||||
"none": "poligon",
|
|
||||||
"short": "poligon"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"small": {
|
|
||||||
"size": {
|
|
||||||
"large": {
|
|
||||||
"detonation_duration": {
|
|
||||||
"immediate": "poligon",
|
|
||||||
"long": "poligon",
|
|
||||||
"none": "detonate",
|
|
||||||
"short": "detonate"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"medium": {
|
|
||||||
"detonation_duration": {
|
|
||||||
"immediate": "detonate",
|
|
||||||
"long": "poligon",
|
|
||||||
"none": "poligon",
|
|
||||||
"short": "poligon"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"small": "detonate"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Decoy": "poligon",
|
|
||||||
"Land Mine": {
|
|
||||||
"detonation_duration": {
|
|
||||||
"immediate": "detonate",
|
|
||||||
"long": {
|
|
||||||
"size": {
|
|
||||||
"large": "poligon",
|
|
||||||
"medium": "detonate",
|
|
||||||
"small": "detonate"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"none": "poligon",
|
|
||||||
"short": "poligon"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"yes": {
|
|
||||||
"bomb_type": {
|
|
||||||
"Atomic Bomb": {
|
|
||||||
"detonation_area": {
|
|
||||||
"large": "defuse",
|
|
||||||
"small": "detonate"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Chemical Bomb": "defuse",
|
|
||||||
"Claymore": {
|
|
||||||
"detonation_duration": {
|
|
||||||
"immediate": {
|
|
||||||
"detonation_area": {
|
|
||||||
"large": {
|
|
||||||
"size": {
|
|
||||||
"large": "poligon",
|
|
||||||
"medium": "defuse",
|
|
||||||
"small": "poligon"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"small": {
|
|
||||||
"size": {
|
|
||||||
"large": "detonate",
|
|
||||||
"medium": "poligon",
|
|
||||||
"small": "detonate"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"long": {
|
|
||||||
"size": {
|
|
||||||
"large": {
|
|
||||||
"detonation_area": {
|
|
||||||
"large": "detonate",
|
|
||||||
"small": "defuse"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"medium": "defuse",
|
|
||||||
"small": "defuse"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"none": "defuse",
|
|
||||||
"short": {
|
|
||||||
"size": {
|
|
||||||
"large": "defuse",
|
|
||||||
"medium": {
|
|
||||||
"detonation_area": {
|
|
||||||
"large": "poligon",
|
|
||||||
"small": "detonate"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"small": "defuse"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Decoy": "poligon",
|
|
||||||
"Land Mine": {
|
|
||||||
"detonation_duration": {
|
|
||||||
"immediate": "defuse",
|
|
||||||
"long": "defuse",
|
|
||||||
"none": "poligon",
|
|
||||||
"short": "defuse"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,5 +1,5 @@
|
|||||||
import pygame
|
import pygame
|
||||||
from Constants import ROWS, COLS, UP, LEFT, DOWN, RIGHT
|
from Constants import ROWS, COLS, UP, LEFT, DOWN, RIGHT, DETONATE, DEFUSE, POLIGON
|
||||||
|
|
||||||
|
|
||||||
class Agent(object):
|
class Agent(object):
|
||||||
@ -28,7 +28,12 @@ class Agent(object):
|
|||||||
def getOrientation(self):
|
def getOrientation(self):
|
||||||
return self.orientation
|
return self.orientation
|
||||||
|
|
||||||
|
def changeImage(self, imageType):
|
||||||
|
if imageType == DETONATE:
|
||||||
|
self.image = pygame.image.load('Engine/' + DETONATE + '.png')
|
||||||
|
if imageType == DEFUSE:
|
||||||
|
self.image = pygame.image.load('Engine/' + DEFUSE + '.png')
|
||||||
|
self.image = pygame.image.load('Engine/agent.png')
|
||||||
|
|
||||||
|
|
||||||
# def ifNotOnEdge(self, destination):
|
# def ifNotOnEdge(self, destination):
|
||||||
|
@ -109,8 +109,6 @@ class BfsPathFinder:
|
|||||||
|
|
||||||
def checkGoal(self, current):
|
def checkGoal(self, current):
|
||||||
if current.state.getPoint() in self.board.bombMap:
|
if current.state.getPoint() in self.board.bombMap:
|
||||||
bomb = self.board.getBomb(current.state.getPoint())
|
|
||||||
self.dTree.key(self.dTree.tree, bomb)
|
|
||||||
self.goal = Node(current,DEFUSE)
|
self.goal = Node(current,DEFUSE)
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import random
|
import random
|
||||||
|
|
||||||
import pygame
|
import pygame
|
||||||
from Constants import SQUARE_SIZE, GREEN, RIGHT, LEFT, UP, DOWN, COLS, ROWS, DECOY, ATOMIC_BOMB, CHEMICAL_BOMB, MOVE, CLAYMORE, LAND_MINE
|
from Constants import SQUARE_SIZE, GREEN, RIGHT, LEFT, UP, DOWN, COLS, ROWS, DECOY, ATOMIC_BOMB, CHEMICAL_BOMB, MOVE, CLAYMORE, LAND_MINE, DEFUSE, DETONATE, POLIGON
|
||||||
from Engine.Board import Board
|
from Engine.Board import Board
|
||||||
from Engine.Agent import Agent
|
from Engine.Agent import Agent
|
||||||
from Engine.BombFactory import BombFactory
|
from Engine.BombFactory import BombFactory
|
||||||
@ -13,6 +13,8 @@ from Engine.PathFinder import PathFinder
|
|||||||
from Engine.Mud import Mud
|
from Engine.Mud import Mud
|
||||||
from Engine.DecisionTree import DecisionTree
|
from Engine.DecisionTree import DecisionTree
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Game:
|
class Game:
|
||||||
def __init__(self, win):
|
def __init__(self, win):
|
||||||
self._init(win)
|
self._init(win)
|
||||||
@ -29,7 +31,6 @@ class Game:
|
|||||||
self.dTree = DecisionTree(False)
|
self.dTree = DecisionTree(False)
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
self.defuseBomb()
|
|
||||||
self.board.drawSquares(self.win)
|
self.board.drawSquares(self.win)
|
||||||
self.board.drawBombs()
|
self.board.drawBombs()
|
||||||
self.board.drawStones()
|
self.board.drawStones()
|
||||||
@ -108,6 +109,7 @@ class Game:
|
|||||||
return BombFactory.create(LAND_MINE)
|
return BombFactory.create(LAND_MINE)
|
||||||
|
|
||||||
def findBomb(self):
|
def findBomb(self):
|
||||||
|
self.agent.changeImage("default")
|
||||||
# return BfsPathFinder(self.board).findBomb(State(self.agent.getOrientation(),Point(self.agent.getPoint().getX(),self.agent.getPoint().getY())))
|
# return BfsPathFinder(self.board).findBomb(State(self.agent.getOrientation(),Point(self.agent.getPoint().getX(),self.agent.getPoint().getY())))
|
||||||
return PathFinder(self.board,self.dTree).findBomb(State(self.agent.getOrientation(),Point(self.agent.getPoint().getX(),self.agent.getPoint().getY())))
|
return PathFinder(self.board,self.dTree).findBomb(State(self.agent.getOrientation(),Point(self.agent.getPoint().getX(),self.agent.getPoint().getY())))
|
||||||
|
|
||||||
@ -163,6 +165,23 @@ class Game:
|
|||||||
self.agent.point.y += 1
|
self.agent.point.y += 1
|
||||||
else:
|
else:
|
||||||
self.agent.point.y -= 1
|
self.agent.point.y -= 1
|
||||||
|
elif action == DEFUSE:
|
||||||
|
self.defuseAction()
|
||||||
|
elif action == DETONATE:
|
||||||
|
self.detonateAction()
|
||||||
|
elif action == POLIGON:
|
||||||
|
self.poligionAction()
|
||||||
|
|
||||||
|
def defuseAction(self):
|
||||||
|
self.agent.changeImage(DEFUSE)
|
||||||
|
self.defuseBomb()
|
||||||
|
|
||||||
|
def detonateAction(self):
|
||||||
|
self.agent.changeImage(DETONATE)
|
||||||
|
|
||||||
|
def poligionAction(self):
|
||||||
|
self.defuseBomb()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Engine/defuse.png
Normal file
BIN
Engine/defuse.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
BIN
Engine/detonate.png
Normal file
BIN
Engine/detonate.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
Binary file not shown.
Loading…
Reference in New Issue
Block a user