走迷宫。海龟通过视觉,判断哪里是墙,哪里能走通


# -*- coding: utf-8 -*-
from turtle import *
g=[[0,0,1,0],[0,1,0,1],[1,1,0,0],[0,1,1,0],[0,1,0,1],[1,1,0,0],[0,1,1,0],[0,1,0,1],[0,1,0,1],[1,1,0,0],
[1,0,1,0],[0,1,1,1],[1,0,0,1],[0,0,1,1],[1,1,0,0],[0,0,1,1],[1,0,0,0],[1,1,1,0],[0,1,1,0],[1,0,0,1],
[0,0,1,1],[1,1,0,0],[0,1,1,0],[1,1,0,1],[0,0,1,0],[1,1,0,0],[0,0,1,1],[1,0,0,1],[1,0,1,0],[1,1,1,0],
[0,1,1,0],[0,0,0,1],[1,0,0,1],[0,1,1,0],[1,0,0,0],[0,0,1,1],[1,1,0,1],[0,1,1,0],[0,0,0,0],[1,0,0,0],
[0,0,1,1],[0,1,0,1],[0,1,0,1],[1,0,0,1],[0,0,1,1],[1,1,0,1],[0,1,1,1],[0,0,0,1],[0,0,0,1],[1,0,0,0]]
setup(550,350)
bgpic('c:/1/1.png')
shape('turtle')
pensize(11)
pencolor('red')
penup()
tracer(False)
setposition(-225,150)
tracer(True)
pendown()
delay(100)
right(90)
forward(50) # 海龟迈入迷宫
fx=3 # 方向朝下 | fangxiang的缩写:fx | 右上左下分别用0 1 2 3代替
x=0 # x代表海龟在50个格子中的哪个格子里
while x!=49: # 49 代表右下方出口处的那个格子
fx-=1 # 向右看
if fx==-1: # 保持fx 为 0 1 2 3
fx=3
if g[x][fx]==0: #如果可以通行
right(90)
forward(50)
# 获取当前位置
if fx==0:
x+=1
if fx==1:
x-=10
if fx==2:
x-=1
if fx==3:
x+=10
else:
left(90)
fx+=2
fx=fx%4 # fx 保持在 0 1 2 3之间
seth(-90)
forward(50)
update()
done()
if ,就是海龟在判断:它的右方没有墙壁,就右转90度,走 1 个格子
世界上,所有的人工智能,其核心,就是靠 if
程序问题:海龟总是在转身,似乎海龟的左眼瞎了,右眼看路。能否不要让海龟没事别转身?

