[課程討論] Day 6 - Beginner - Python Functions & Karel

Py基礎組,已於2021/3/14 PM 9:00,進行Day 6課程˙討論。
相關資訊,更新於此。

1 Like

謝謝,會議主持人Phillis精闢的講解。
以下為Phillis的筆記的連結。

2 Likes

昨天說的機器人走迷宮(Maze*),附上我的code在下方(我發現我們那組的討論中,我也有放,不過當時沒放右轉的function code),純參考,每個人的寫法或有不同。

忘記在論壇還是 Discord 中,看到 @DotTw 提過,這種解法,碰到四週都是空地時會有問題,不過我還沒空去研究,解法應該會先試這個方式:如果連續繞四次回到原地時,就強制往前一步。

def turn_right(): 
    turn_left()
    turn_left()
    turn_left()

## 可以右轉就右轉並前進、不然可以前進就前進、都不行就左轉;左轉後可前進就進前、不能前進就左轉再前進
def next_step(): 
	if right_is_clear():
		turn_right()
		move()
	elif front_is_clear():
		move()
	else:
		turn_left()
		if front_is_clear():
			move()
		else:
			turn_left()
			if front_is_clear(): # 前方應該沒東西,不然四面都是牆,但還是防呆一下,也許出題的人程式沒寫好
				move() 
		
while not at_goal():
	next_step()

機器人走迷宮 Maze

https://reeborg.ca/reeborg.html?lang=en&mode=python&menu=worlds%2Fmenus%2Freeborg_intro_en.json&name=Maze&url=worlds%2Ftutorial_en%2Fmaze1.json

1 Like

所以老師的解法裡,一開始也有走到底撞牆後左轉去達成一開始右邊就是牆壁的情況。

2 Likes