我正在尝试制作一个迷宫求解器,它正在工作,除了用"o"标记的路径,我希望它标有">","<","v","^"取决于路径的方向.这是它解决迷宫的代码的一部分:
def solve(self,x,y):
maze = self.maze
#Base case
if y > len(maze) or x > len(maze[y]):
return False
if maze[y][x] == "E":
return True
if maze[y][x] != " ":
return False
#marking
maze[y][x] = "o"
#recursive case
if self.solve(x+1,y) == True : #right
return True
if self.solve(x,y+1) == True : #down
return True
if self.solve(x-1,y) == True : #left
return True
if self.solve(x,y-1) == True : #up
return True
#Backtracking
maze[y][x] = " "
return False
Run Code Online (Sandbox Code Playgroud)
这是一个未解决的迷宫的例子:
####################################
#S# ## …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我需要获取前一个凌晨4点,而不是当前日期的凌晨4点.
例如:
March 05, 10:00 am那么我应该期望回来:March 05, 4:00 amMarch 05, 02:00 am那么我应该期望回来:March 04, 4:00 am实现我正在使用的Calendar.nextDate.除了每个月的最后一天,它适用于本月的每日.
let components = DateComponents(hour: 4, minute: 0, second: 0)
let date = Calendar.current.date(from: DateComponents(year: 2018,
month: 03,
day: 05,
hour: 13,
minute: 25,
second: 0))!
let result = Calendar.current.nextDate(after: date,
matching: components,
matchingPolicy: .nextTime,
direction: .backward)
Run Code Online (Sandbox Code Playgroud)
输出:
date = "Mar 5, 2018 at 1:25 PM"
result = "Mar 5, 2018 at 4:00 AM"
Run Code Online (Sandbox Code Playgroud)