长评10 游戏时长 1h+好评中评差评有趣好玩286 画面优秀20 音效动听16 UI美观12 轻松护肝11 运行稳定性39 玩法设计20
优雅地**, 暴力给答案不可取。
非常棒的一个小烧脑游戏,适合慢慢玩。好游戏需要大家支持, 开发人员不易,$2.99送上,希望n年后毕业的我开发的游戏,能有欣赏者愿意支持。
既然热评已经暴力地给出答案了,那么我也给上我的答案(通用答案1.0版,求出任何题的所有解法)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 17/7/24 下午6:53
# @Author : ZMS
# @Site :
# @File : caculaterGame.py
# @Location:
# @Software: PyCharm
# calculator Game solving algorithm 1.0
import re
from itertools import product
# test 0, level 14 to test (start = 0, tar = 24, step = 6, btn=[+5, *3, *5, bs])
# bs == backSpace, denoting the '<<'button on the game
class CalGamer:
def __init__(self, start, tar):
self.start = start
self.tar = tar
def do_btn(self, btn):
addPattern = re.compile(r'^\+(\d)$')
multiPattern = re.compile(r'^\*(\d)$')
minusPattern = re.compile(r'^-(\d)$')
bsPattern = re.compile(r'^bs$')
if addPattern.findall(btn):
self.start += int(addPattern.findall(btn)[0])
if minusPattern.findall(btn):
self.start -= int(minusPattern.findall(btn)[0])
if self.start < 0:
self.start = 0
if multiPattern.findall(btn):
self.start *= int(multiPattern.findall(btn)[0])
if bsPattern.match(btn):
if self.start >= 10:
self.start = int(str(self.start)[:-1])
else:
self.start = 0
def isOver(self):
if self.start == self.tar:
return True
def GameOn(start, tar, step, btns):
btnLines = product(btns, repeat=step)
for btnLine in btnLines:
NewGame = CalGamer(start, tar)
for btn in btnLine:
NewGame.do_btn(btn)
else:
if NewGame.isOver():
print(btnLine)
start, tar, step = map(int, input().split())
btns = input().split()
GameOn(start=start, tar=tar, step=step, btns=btns)
有py运行环境者相信也知道怎么用这个文件, 要说的是我没有写出所有的运算符号按钮, 因为我只拿我开始卡壳的第14关(我数学很差的也很笨)做了实验, 有心者只需在dobtn方法中添加你遇到的新按钮即可。
脑子是个好东西, 希望大家多动脑。 最后,我想在座的没几个发现14关有8种解法^_^(我也是测试后很惊讶!!