Changeset - 782476e472ab
[Not reviewed]
default
0 5 0
Laman - 7 years ago 2017-12-01 19:51:08

configurable image directory, refactored constants
5 files changed with 20 insertions and 15 deletions:
0 comments (0 inline, 0 general)
src/config.py
Show inline comments
 
@@ -3,8 +3,10 @@ import logging
 
import json
 

	
 

	
 
srcDir=os.path.dirname(__file__)
 

	
 
logging.basicConfig(format='%(asctime)s %(levelname)s: %(message)s', level=logging.DEBUG)
 
with open(os.path.join(os.path.dirname(__file__), "..", "config.json")) as f:
 
with open(os.path.join(srcDir, "..", "config.json")) as f:
 
	cfgFile=json.load(f)
 

	
 
class misc:
 
@@ -12,6 +14,9 @@ class misc:
 
	version=(0,0,0)
 
	defaultImage=file.get("defaultImage", 0)
 

	
 
	_imgDir=file.get("imgDir","../images")
 
	imgDir=_imgDir if os.path.isabs(_imgDir) else os.path.join(srcDir,_imgDir)
 

	
 
class gui:
 
	file=cfgFile["gui"]
 
	showBigPoints=file.get("showBigPoints", False)
src/core.py
Show inline comments
 
@@ -21,10 +21,9 @@ class Core:
 
		self._ownMessages=MsgQueue(self._handleEvent)
 
		self._guiMessages=MsgQueue()
 

	
 
		self._imgDir=os.path.join(os.path.dirname(__file__), "..","images")
 
		self._imgs=sorted(os.listdir(self._imgDir))
 
		self._imgs=sorted(os.listdir(cfg.misc.imgDir))
 
		self._imgIndex=cfg.misc.defaultImage
 
		imgPath=os.path.join(self._imgDir,self._imgs[self._imgIndex])
 
		imgPath=os.path.join(cfg.misc.imgDir,self._imgs[self._imgIndex])
 
		self._frame=PIL.Image.open(imgPath)
 

	
 
		self._guiProc=multiprocessing.Process(name="gui", target=gui, args=(self._guiMessages,self._ownMessages))
 
@@ -42,7 +41,7 @@ class Core:
 

	
 
	def relativeFrame(self,step):
 
		self._imgIndex=(self._imgIndex+step)%len(self._imgs)
 
		imgPath=os.path.join(self._imgDir,self._imgs[self._imgIndex])
 
		imgPath=os.path.join(cfg.misc.imgDir,self._imgs[self._imgIndex])
 
		self._frame=PIL.Image.open(imgPath)
 
		self._guiMessages.send("setCurrentFrame",(self._frame.copy(),))
 
		self.analyze()
 
@@ -54,6 +53,7 @@ class Core:
 
				self._guiMessages.send("setGameState",(self.detector.board,))
 

	
 
				self.go.transitionMove(self.detector.board)
 
				log.debug("game record: %s",self.go._record)
 
			else:
 
				log.info("illegal position detected")
 

	
src/gamerecord.py
Show inline comments
 
import logging as log
 

	
 

	
 
colorNames={1:"B",-1:"W"}
 
from util import colorNames
 

	
 

	
 
class Point:
src/go.py
Show inline comments
 
import logging as log
 

	
 
from util import EMPTY,BLACK,WHITE,colorNames
 
from gamerecord import GameRecord
 

	
 

	
 
EMPTY=0
 
BLACK=1
 
WHITE=-1
 

	
 

	
 
class Go:
 
	## Initializes self.board to a list[r][c]=EMPTY.
 
	def __init__(self,boardSize=19):
 
@@ -24,7 +20,7 @@ class Go:
 
	#  @param color BLACK or WHITE
 
	#  @return True on success, False on failure (illegal move)
 
	def move(self,color,row,col):
 
		if color!=self.toMove: log.warning("move by %s out of order",color)
 
		if color!=self.toMove: log.warning("move by %s out of order",colorNames[color])
 
		if self.board[row][col]!=EMPTY: return False
 

	
 
		self.board[row][col]=color
src/util.py
Show inline comments
 
@@ -2,6 +2,13 @@ import multiprocessing
 
import logging as log
 

	
 

	
 
EMPTY=0
 
BLACK=1
 
WHITE=-1
 

	
 
colorNames={BLACK:"B",WHITE:"W"}
 

	
 

	
 
class MsgQueue:
 
	def __init__(self,handler=None):
 
		self._queue=multiprocessing.Queue()
0 comments (0 inline, 0 general)