Example #1
0
	def AlgoFullRandom(cls, debug=False):
		import random

		agent = Minesweeper(1, 1, cls.size)
		while len(agent):
			if debug:
				print agent
			agent.step(*random.choice(agent.safeStep))
Example #2
0
	def AlgoSimpleStrategy(cls, debug=False, default=0.3):
		def ratio(cls, x, y):
			fn = lambda x, y: cls[x, y]/float(cls.empty(x, y))
			nr  = [[_x, _y] for _x in range(x-1, x+2) for _y in (y-1, y+1) if 0 < cls[_x, _y]]
			nr += [[_x, y] for _x in (x-1, x+1) if 0 < cls[_x, y]]
			if nr:
				return max([fn(*_) for _ in nr])
			else:
				return default

		agent = Minesweeper(1, 1, cls.size, debug=debug)
		while len(agent):
			if debug: print agent, len(agent)
			steps = [[_, ratio(agent, *_)] for _ in agent.safeStep]
			steps = sorted(steps, key=lambda x: x[1])
			agent.step(*steps[0][0])