หน้า 10 จาก 13แผงโค้ด Python

บล็อกของผืนที่กำลังแก้ ในรูป Python ที่อ่านได้ พิมพ์ได้ และกลับเป็นบล็อกเสมอ

มันคืออะไร

ในแท็บโค้ด ปุ่ม Python ท้ายแถบเลือกที่อยู่ เปิดแผงทางขวาของผืนบล็อก แผงนี้แสดงบล็อกทุกใบของผืนที่กำลังแก้เป็นโค้ด Python และพิมพ์ลงไปได้เลย บล็อกจะโผล่ทางซ้ายทันทีที่บรรทัดอ่านออก

บล็อกเป็นตัวจริงเสมอ โค้ดเป็นแค่อีกรูปหนึ่งของบล็อกชุดเดียวกัน จึงพิมพ์ได้เฉพาะสิ่งที่มีบล็อก ทุกช่องรับได้แค่ค่าที่ชิปของบล็อกนั้นรับ ไม่มีสูตรในช่อง ไม่มี else ไม่มี and และ or นี่ไม่ใช่ข้อจำกัดที่ลืมทำ แต่เป็นกติกาที่ทำให้สองฝั่งไม่มีวันเถียงกัน

@on_key("เว้นวรรค")
def กด_เว้นวรรค():
    set_vel_y(9)
    play_sfx("กระโดด")

@on_start
def นับเวลา():
    while True:
        wait(2)
        ผ่านท่อ += 1

@on_tick(when=ผ่านท่อ >= 3)
def ทุกจังหวะ():
    win()

อ่านโค้ดยังไง

บนบล็อกในโค้ด
หัวกฎบรรทัด @ชื่อเหตุการณ์ แล้วตามด้วย def ชื่อกฎ(): ปุ่ม ชิ้นส่วน หรือข้อความของหัวกฎ อยู่ในวงเล็บ เงื่อนไขของหัวกฎเขียนว่า when= เช่น @on_tick(when=คะแนน >= 3)
คำสั่งชื่ออังกฤษของบล็อก แล้วค่าของทุกช่องในวงเล็บตามลำดับ เช่น move_toward("ประตู", 3)ชื่อปุ่ม ชื่อเสียง ชื่อวัตถุ ชื่อชิ้นส่วน และชื่อด่าน เป็นคำเดียวกับที่เห็นบนบล็อก อยู่ในเครื่องหมายคำพูด
ตั้ง เพิ่ม และคิดเลขคะแนน = 0 คือตั้ง คะแนน += 1 คือเพิ่ม คะแนน = คะแนน * 2 คือคิดเลข ชื่อตัวแปรเขียนตรง ๆ ไม่มีเครื่องหมายคำพูด ชื่อที่มีช่องว่างจะกลายเป็นขีดล่าง
ทำซ้ำ วนตลอด และถ้าfor _ in range(3): while True: และ if คะแนน >= 3: บล็อกข้างในเยื้องเข้าไปสี่ช่อง ถ้ายังไม่มีอะไรข้างใน เขียน pass ไว้ก่อน
ค่าในช่องตัวเลข ชื่อตัวแปร random(1, 10) หรือค่าที่รับรู้ เช่น distance_to("ผู้เล่น")ค่าใช่หรือไม่ใช่เขียนแบบ Python ได้เลย เช่น if grounded(): และ if not key_down("A"):
ชื่อกฎชื่อหลัง def เป็นป้ายอัตโนมัติจากเหตุการณ์ พิมพ์ชื่ออื่นแทนได้ แล้วชื่อนั้นจะโชว์บนหัวกฎในผืนบล็อกด้วย พิมพ์ป้ายอัตโนมัติกลับเมื่อไรคือเลิกตั้งชื่อ

พิมพ์ยังไงให้เร็ว

  • พิมพ์ชื่อบล็อกไม่กี่ตัว จะได้รายการให้เลือก ค้นได้ทั้งชื่ออังกฤษและคำไทยบนบล็อกพิมพ์ กระโดด ก็เจอ jump
  • เลือกแล้วได้ทั้งบรรทัดพร้อมค่าตั้งต้นของบล็อกนั้น ค่าแรกถูกเลือกไว้ให้พิมพ์ทับ กด Tab เลื่อนไปค่าถัดไป
  • พิมพ์ @ ที่ต้นบรรทัด จะได้เหตุการณ์ให้เลือก และได้ทั้งหัวกฎกับ def มาพร้อมกัน
  • ในวงเล็บ รายการเสนอเฉพาะค่าที่ช่องนั้นรับ ชื่อปุ่มในช่องปุ่ม ชื่อเสียงในช่องเสียง
  • Enter เยื้องบรรทัดใหม่ให้เท่าบรรทัดก่อน และเยื้องเพิ่มหลังบรรทัดที่ลงท้ายด้วย :
  • Ctrl+Space เปิดรายการเมื่อไรก็ได้ กด Escape แล้วค่อย Tab ถ้าจะออกจากช่องด้วยคีย์บอร์ด

เมื่อโค้ดยังอ่านไม่ออก

บรรทัดที่ติดจะขึ้นสีแดง และแถบล่างบอกว่าติดอะไรพร้อมวิธีเขียนแทน เช่น พิมพ์ print จะได้ยินว่าที่นี่ใช้บล็อกโชว์ข้อความและเขียนยังไง ระหว่างนั้นผืนบล็อกจะล็อกไว้เพราะสองฝั่งกำลังไม่ตรงกัน แก้ให้ถูกบล็อกก็ปลดล็อกเอง

ปุ่ม ดึงจากบล็อก ที่หัวแผง ทิ้งสิ่งที่พิมพ์ค้างแล้วเอาโค้ดตามบล็อกกลับมา มันถามยืนยันก่อนเสมอเพราะไม่มีปุ่มย้อนสำหรับข้อความที่ถูกทิ้ง

ระหว่างเล่นทดสอบแบบดีบั๊ก แผงโค้ดอ่านได้อย่างเดียว และบรรทัดของกฎที่กำลังทำงานจะสว่างขึ้น เหมือนบล็อกทางซ้าย ใช้ดูว่ากฎข้อไหนยิงอยู่จริง

แผงนี้เป็นทางเสริมของผืนบล็อก บนจอกว้างไม่ถึงพันยี่สิบสี่พิกเซลจะไม่มีปุ่ม Python และบนจอโน้ตบุ๊กที่แบ่งครึ่งแล้ว ลิ้นชักบล็อกจะหลบไปก่อนระหว่างที่แผงเปิดอยู่