ในตอนที่สี่ของการแนะนำการเขียนโปรแกรม เราจะค้นพบบทบาทพื้นฐานของรูทีนย่อยและสาธิตการใช้งานโดยสร้างหนึ่งในวิดีโอเกมคลาสสิกที่ยิ่งใหญ่ที่สุดขึ้นมาใหม่: PONG!
ขั้นตอนที่ 1/4: เตือนความจำตอนก่อนหน้า
Small Basic คือภาษาการเขียนโปรแกรมเบื้องต้นที่ออกแบบมาเพื่อทำให้การเขียนโปรแกรมเป็นเรื่องสนุก นี่เป็นส่วนหนึ่งของโครงการริเริ่มใหม่ของ Microsoft ที่มุ่งส่งเสริมให้เยาวชน (อายุ 7 ถึง 77 ปี) ค้นพบความสุขของการเขียนโปรแกรม หากต้องการข้อมูลเพิ่มเติม คลิก —ไอซี-
ในตอนแรกของเรา (ดูไอซี ) เราได้นำเสนอสภาพแวดล้อมการพัฒนาแสดงให้เห็นว่าซอฟต์แวร์ไม่เพียงแต่ทำให้สามารถสร้างแอปพลิเคชันขนาดเล็กที่เรียบง่าย (ในโหมดคอนโซล) เท่านั้น แต่ยังรวมถึงแอปพลิเคชันที่ซับซ้อนยิ่งขึ้นที่สามารถสืบค้นบริการบนเว็บ เช่นฟลิคเกอร์-ไอซี -
ในตอนที่สอง (ดูไอซี) เราได้ศึกษาแนวคิดพื้นฐานบางอย่างของภาษาเช่นตัวแปร ลูป และการทดสอบ- เราอธิบายพวกเขาด้วยเกมตัวเลขลึกลับ-ดูไอซี-
ในตอนที่สาม (ดูไอซี) เราได้เห็นแล้วว่า Small Basic ได้รับแรงบันดาลใจจากภาษาโลโก้เพื่อให้คำแนะนำด้านกราฟิกที่สนุกสนานและให้ความรู้ (ดูไอซี-
ในตอนที่สี่นี้ เราจะค้นพบบทบาทของรูทีนย่อยและคำสั่ง SUB และในเวลาเดียวกัน เราก็จะสร้างภาพยนตร์รีเมคที่โด่งดังสุดๆ ขึ้นมาด้วยปองบรรพบุรุษของวิดีโอเกมยุคใหม่!
ขั้นตอนที่ 2/4; คำเตือนล่วงหน้า
Small Basic ในรุ่นเบต้ารุ่นแรกที่เรียกว่า“ตุลาคม 2551”เป็นเหยื่อของจุดบกพร่องที่ขัดขวางการทำงานที่เหมาะสมของโปรแกรมบน Windows ที่กำหนดค่าในภูมิภาคฝรั่งเศส
เพื่อให้แอปพลิเคชันทำงานได้อย่างถูกต้อง คุณต้องตั้งค่าภูมิภาคของ Windows ชั่วขณะ“ภาษาอังกฤษ (สหรัฐอเมริกา)”:
– ไปที่แผงควบคุม
– ไปที่สถานที่(ตัวเลือกภูมิภาคและภาษา)
– เปิดแท็บรูปแบบ
– ในเมนูป๊อปอัปรูปแบบปัจจุบัน, เลือกอังกฤษ (สหรัฐอเมริกา)
– คลิกที่นำมาใช้-
สังเกตเห็น:
จุดบกพร่องนี้จะได้รับการแก้ไขในครั้งต่อไป"เบต้า"เดอพื้นฐานขนาดเล็ก(“การเปิดตัวคริสต์มาสปี 2008”)คาดว่าปลายเดือนธันวาคม 2551
ขั้นตอนที่ 3/4: แนวคิดของรูทีนย่อย
เหนือสิ่งอื่นใดโปรแกรมคือการเรียงลำดับตามลำดับ อย่างไรก็ตาม บ่อยครั้งมากที่ลำดับโค้ดบางอย่างเกิดขึ้นซ้ำๆ กัน แทนที่จะทำซ้ำบรรทัดเหล่านี้อย่างไม่มีที่สิ้นสุด คุณควรเขียนบรรทัดเหล่านี้เพียงครั้งเดียวภายในรูทีนย่อยที่คุณเรียกใช้ในแต่ละครั้งที่คุณต้องการ ดังนั้น หากคุณต้องการแก้ไขบรรทัดเหล่านี้ คุณจะต้องแก้ไขรูทีนย่อยเท่านั้น แทนที่จะทำการแก้ไขซ้ำในแต่ละครั้งที่เกิดขึ้น ดังที่คุณจะต้องทำหากคุณได้ทำซ้ำคำแนะนำ
รูทีนย่อยจึงเป็นโค้ดชิ้นหนึ่งที่โดยทั่วไปทำหน้าที่เฉพาะเจาะจงและสามารถเรียกได้บ่อยเท่าที่จำเป็นจากทุกที่ในโปรแกรมหลัก
รูทีนย่อยมีข้อดีในการทำให้โค้ดอ่านง่ายขึ้น สิ่งนี้เรียกว่าการเขียนโปรแกรมแบบมีโครงสร้าง โปรแกรมใด ๆ ที่นี่ใช้แบบฟอร์มต่อไปนี้:
1ยุคคำสั่งโปรแกรมหลัก
2ไทยคำสั่งโปรแกรมหลัก
-
คำสั่งที่ n ของโปรแกรมหลักที่เรียกรูทีนย่อย n°x
-
คำสั่งสุดท้ายของโปรแกรมหลัก
-
โปรแกรมย่อยซูส1
1ยุคคำสั่งรูทีนย่อย 1
-
คำสั่งสุดท้ายของรูทีนย่อย 1
ENDSUB
-
โปรแกรมย่อยซูส2
1ยุคคำสั่งรูทีนย่อย 2
-
คำสั่งสุดท้ายของรูทีนย่อย 2
ENDSUB
เช่น โปรแกรมด้านล่างจะแสดงเวลาทุกครั้งที่ผู้ใช้กดปุ่มใดปุ่มหนึ่ง (ยกเว้นปุ่ม[ถาม]ใช้สำหรับออกจากโปรแกรม)
' เริ่มต้นโปรแกรมหลัก
เอนทรี = “”
ในขณะที่ (Text.ConvertToLowerCase(Entree)<> “q”)
เวลาแสดงผล()
เข้าสู่ = TextWindow.Read()
ในขณะที่
' สิ้นสุดโปรแกรมหลัก
' โปรแกรมย่อย:
เวลาแสดงผลย่อย
TextWindow.WriteLine(“”)
TextWindow.Write (“ขณะนี้:“)
TextWindow.WriteLine (นาฬิกาเวลา)
สิ้นสุดย่อย
ขั้นตอนที่ 4/4: เกม PONG
รูทีนย่อยยังใช้เพื่อจัดการเหตุการณ์ Windows และโต้ตอบกับเมาส์ เราจะอธิบายหลักการนี้ด้วยเกม Pong ซึ่งเราจะควบคุมแร็กเก็ตโดยใช้เมาส์และรูทีนย่อยการจัดการเมาส์“ออนเมาส์มูฟ”-
รายการนี้ใช้แนวคิดที่เรายังไม่ได้ศึกษาแต่เราจะเห็นในตอนที่ 5 ของเรา:รูปร่าง- ออบเจ็กต์กราฟิกเหล่านี้มีประโยชน์มากสำหรับเกมเนื่องจากคุณสามารถตั้งชื่อให้พวกมันแล้วใช้ชื่อเหล่านั้นเพื่อระบุว่าคุณต้องการย้ายออบเจ็กต์เหล่านี้ โปรแกรมด้านล่างใช้สองโปรแกรม“รูปร่าง”- หนึ่งสำหรับลูกบอล (ชื่อลูกบอล) และอีกอันสำหรับแร็กเก็ต (ชื่อพาย-
นี่คือโปรแกรมเกม PONG มันขึ้นอยู่กับคุณแล้วว่าจะปรับปรุงมัน…
' เริ่มต้นโปรแกรมหลัก
การเริ่มต้น()
MainLoop()
โปรแกรม.สิ้นสุด()
' สิ้นสุดโปรแกรมหลัก
' รูทีนย่อยนี้เตรียมข้อมูลเบื้องต้นให้กับหน้าจอและตัวแปร
การเริ่มต้นย่อย
GraphicsWindow.BackgroundColor = “สีน้ำเงินเข้ม”
GraphicsWindow.PenColor = “สีแดง”
gw = GraphicsWindow.Width
gh = GraphicsWindow.Height
เต่า.แสดง()
เต่าความเร็ว = 10
เต่า.PenUp()
เต่าเลี้ยว(180)
เต่าย้าย(gh/2 – 2)
เต่าเลี้ยวขวา()
เต่า.ย้าย(gw/2 – 2)
เต่า.เพนดาวน์()
เต่าเลี้ยวขวา()
เต่า.ย้าย(gh-4)
เต่าเลี้ยวขวา()
เต่า.ย้าย(gw-4)
เต่าเลี้ยวขวา()
เต่า.ย้าย(gh-4)
เต่าซ่อน()
GraphicsWindow.PenColor = “สีน้ำเงิน”
พาย = GraphicsWindow.AddRectangle (120, 12)
GraphicsWindow.MoveShape (พาย, 0, GraphicsWindow.Height – 12)
บอล = GraphicsWindow.AddEllipse (16, 16)
GraphicsWindow.MouseMove = OnMouseMove
x = 0
ย = 0
เดลต้าเอ็กซ์ = 1
เดลต้า Y = 1
คะแนน = 0
สิ้นสุดย่อย
' รูทีนย่อยนี้จัดการการเคลื่อนที่ของลูกบอลและคะแนน
ย่อยMainLoop
ในขณะที่ (y < gh)
x = x + เดลต้าX
y = y + เดลต้าY
ถ้า (x >= gw – 16 หรือ x deltaX = -deltaX
สิ้นสุดถ้า
ถ้า (y เดลต้า Y = -เดลต้า Y
สิ้นสุดถ้า
padX = GraphicsWindow.GetLeftOfShape (พาย)
ถ้า (y = gh – 28 และ x >= padX และ x deltaY = -deltaY
คะแนน = คะแนน +1
GraphicsWindow.BrushColor = “สีน้ำเงินเข้ม”
GraphicsWindow.FillRectangle(gw/2-60, 10, 100, 22)
GraphicsWindow.BrushColor = “สีเหลือง”
GraphicsWindow.DrawText(gw/2-60,20”คะแนน: “+คะแนน)
สิ้นสุดถ้า
GraphicsWindow.MoveShape (บอล, x, y)
โปรแกรมดีเลย์(5)
ในขณะที่
GraphicsWindow.ShowMessage (“คุณแพ้!”, “พายเรือ”)
สิ้นสุดย่อย
' รูทีนย่อยนี้จัดการการเคลื่อนไหวของแร็กเกต
ย่อย OnMouseMove
PaddleX = GraphicsWindow.MouseX
GraphicsWindow.MoveShape(ไม้พาย, ไม้พายX – 60, GraphicsWindow.Height – 12)
สิ้นสุดย่อย
🔴 เพื่อไม่พลาดข่าวสาร 01net ติดตามเราได้ที่Google ข่าวสารetวอทส์แอพพ์-
Opera One - เว็บเบราว์เซอร์ที่ขับเคลื่อนด้วย AI
โดย: โอเปร่า