見出し画像

Python Pro Bootcamp、6日目 - 組み込み関数・自作関数の使い方

Pythonの組み込み関数について学習。その他自作の関数を呼び出して使う方法も。Pythonは自作関数を簡単に作って活用することができるところが面白いですね。「必要な機能があったら組み込み関数・ライブラリーを駆使して自分で新しい関数を作る」というのがプログラマーの発想です。

今回は学習にReeborgというWEBサイトを活用しました。

Reeborgが6回壁を乗り越えるためのプログラム

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

def jump():
    move()
    turn_left()
    move()
    turn_right()
    move()
    turn_right()
    move()
    turn_left()
    
jump_count = 6
while jump_count > 0:
    jump()
    jump_count -= 1
    Print(jump_count)

Reeborgが可変長のトラックと壁を乗り越えるためのプログラム

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

 #段差を超えられる様プログラムを変更
    
def jump():
    #まず左を向く
    turn_left() 
    #壁が左側にある間は前進
    while wall_on_right():
        move()   
    #壁がなくなったら乗り越える
    turn_right()
    move()
    turn_right()
    #前方に壁がない間は前進
    while front_is_clear():
        move()
    turn_left()
    
#目的地につくまではジャンプと前進を繰り返す
while not at_goal():
    if wall_in_front():
        jump()
    else:
        Move()

Reeborgが可変長の迷路を抜け出すためのプログラム

「右手に沿って壁を進めば迷路を抜け出せる」という、「右手法」をプログラムに落とし込む。

①前方クリア&右クリア :右に方向転換→前進
②前方に壁&右に壁がある :右に方向転換
③前方クリア&右に壁がある :前進
④前方に壁&右クリア :右に方向転換

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

def move_reeborg():
    #①前方クリア&右クリア:右に方向転換→前進
    if( front_is_clear() and right_is_clear() ):
        turn_right()
        move()
    #②前方に壁&右に壁がある :右に方向転換
    elif( wall_in_front() or wall_in_right() ):
        turn_right()
    #③前方クリア&右に壁がある :前進  
    elif( front_is_clear() and wall_in_right() ):
    move()
    
while not at_goal():
    move_reeborg()

7日目には「ハングマン」のミニゲームを実際に作る予定。頑張りますね。

この記事が気に入ったらサポートをしてみませんか?