Mikichan   07-30-2019, 08:14 PM
#1
ติดตามเราได้ที่ Facebook ชื่อเพจ Planila Game Developer


บทนี้จะเป็นเนื้อหาเกี่ยวกับการเขียนโปรแกรม ผู้อ่านที่ไม่เคยเขียนโปรแกรมมาก่อนไม่ต้องกังวลไป โปรแกรม Ren'Py ใช้รูปแบบเดียวกับภาษา Python ซึ่งเข้าใจง่ายกว่าภาษาคอมพิวเตอร์หลายตัว (เช่น C, Java) จุดประสงค์ของบทนี้คือเพื่อให้ผู้อ่านใช้งานตัวแปรเบื้องต้นได้ ไม่ได้สอนภาษา Python เต็มตัว ผู้เขียนละเนื้อหาเชิงเทคนิคที่ซับซ้อนไว้ เพื่อให้นักสร้างเกมที่ไม่เคยเขียนโปรแกรมสามารถเข้าใจได้ง่าย ๆ สำหรับผู้อ่านที่ต้องการเขียนโปรแกรมเต็มตัวให้ศึกษาภาษา Python จากตำราสอนเขียนโปรแกรม

คำสั่งของโปรแกรม Ren'Py ไม่มีตัวแปรใด ๆ เลย นั่นหมายความว่าเราไม่สามารถเก็บข้อมูลลงหน่วยความจำได้ แต่เกมแนว Visual Novel หลายเกมจำเป็นต้องเก็บข้อมูล เช่น เก็บค่าความรักของนางเอก, หรือเก็บตัวเลือกที่ผู้เล่นเคยเลือก เพื่อนำไปสู่ฉากจบที่แตกต่างกัน กรณีที่ต้องใช้ตัวแปรหรือเก็บข้อมูลแบบนี้ ถึงคราวที่ต้องใช้ภาษา Python แล้วล่ะ!

เนื้อหาในบทนี้จะเป็นเนื้อหาทฤษฎี เราจะนำเนื้อหาในบทนี้ไปต่อยอด และลงมือปฏิบัติจริงกันในบทต่อไป


[Image: 01.png]



ประเภทของตัวแปร

ตัวแปร (Variable) คือสิ่งที่เก็บข้อมูล เมื่อเกมหรือโปรแกรมทำงานบางครั้งมีข้อมูลที่ต้องใช้งานต่อในอนาคต เราต้องเก็บข้อมูลนั้นไว้ สิ่งที่เก็บข้อมูลก็คือตัวแปร เมื่อถึงเวลาที่ต้องการก็เรียกใช้ข้อมูลจากตัวแปรนั้น

(เชิงเทคนิค : ในทางทฤษฎีตัวแปรเป็นเพียงสิ่งที่สมมติขึ้น เพื่อใช้อ้างอิงตำแหน่งที่เก็บข้อมูลในหน่วยความจำ ตัวแปรไม่ได้เก็บข้อมูลจริง ๆ แต่ตามตำรามักสอนว่าตัวแปรเก็บข้อมูล เพื่อให้คนที่เพิ่งเรียนเขียนโปรแกรมเข้าใจง่าย)

ตัวแปรที่ควรทราบในภาษา Python มี 2 ประเภทได้แก่
  • ตัวแปรตัวเลข (Number) เก็บข้อมูลที่เป็นจำนวนเต็ม (Integer) หรือทศนิยม (Floating-Point) เช่น 0, -5, 91, -12.67
  • ตัวแปรข้อความ (String) เก็บข้อมูลที่เป็นตัวอักษรหรือข้อความ เช่น "A", "Planila Game Developer", 'Visual Novel'
ภาษา Python แตกต่างจากหลายภาษา (เช่น C, Java) ตรงที่ตัวแปรจะถูกประกาศทันทีที่ใช้งาน ไม่ต้องประกาศตัวแปรล่วงหน้า และไม่ต้องระบุประเภทของตัวแปร วิธีใช้ตัวแปรเพียงแค่ใส่ชื่อของตัวแปร (Identifier) และกำหนดค่าให้ตัวแปร ถ้าตัวแปรนั้นไม่เคยมีมาก่อนจะถือว่าเป็นการประกาศตัวแปรโดยอัตโนมัติ และโปรแกรมจะเลือกประเภทของตัวแปรให้โดยอัตโนมัติ ตัวอย่างเช่น

Code:
$ a = -3   # ประกาศตัวแปร a (ประเภท integer) และเก็บค่า -3
$ relation = 12.65   # ประกาศตัวแปร relation (ประเภท floating-point) และเก็บค่า 12.65
$ name = "Planila"   # ประกาศตัวแปร name (ประเภท string) และเก็บค่า "Planila"

$ b = 3 * 5   # ประกาศตัวแปร b (ประเภท integer) และเก็บค่า 15
$ a = 9 + 2   # เก็บค่า 11 | บรรทัดนี้ไม่ใช่การประกาศตัวแปร เพราะตัวแปร a เคยถูกประกาศแล้ว

ตัวแปรตัวเลขแบ่งย่อยเป็นตัวแปรจำนวนเต็ม (Integer) และตัวแปรทศนิยม (Floating-Point) ความแตกต่างคือการเก็บค่าทศนิยม เช่น x = 1 เป็นตัวแปรจำนวนเต็ม, แต่ y = 1.0 เป็นตัวแปรทศนิยม (สังเกตจากการใส่จุดทศนิยม ไม่สนใจว่าเลขหลังทศนิยมคือเลขอะไร)

ข้อความหรือตัวอักษรที่ใส่ในตัวแปรข้อความต้องอยู่ในเครื่องหมาย ' ' หรือ " " เช่น name = 'Planila' หรือ name = "Planila" ก็มีค่าเหมือนกัน ภาษา Python ไม่มีตัวแปรตัวอักษร (Character) โดยเฉพาะเหมือนภาษา C ดังนั้นตัวแปรที่เก็บตัวอักษรเพียงตัวเดียวจะถูกจัดอยู่ในตัวแปรข้อความ


Boolean คือส่วนหนึ่งของ Integer

ภาษา Python ไม่มีตัวแปรตรรกศาสตร์ (Boolean) โดยเฉพาะเหมือนภาษา C หรือ Java แต่สามารถเก็บค่าทางตรรกศาสตร์ลงในตัวแปรจำนวนเต็มได้ (Boolean เป็นส่วนหนึ่งของ Integer) ผลลัพธ์ทางตรรกศาสตร์ในภาษา Python ได้แก่ 0 (และ 0.0) คือเท็จ (False) และนอกจากนั้นคือจริง (True) แต่โดยทั่วไปมักกำหนดให้จริงเท่ากับ 1 การกำหนดค่าตรรกศาสตร์ต้องใส่เป็นตัวเลขเท่านั้น เช่น love = 1 ไม่สามารถใส่เป็น True หรือ False ได้

นอกจากนี้ภาษา Python ยังมีตัวแปรประเภทอื่น เช่น Lists, Tuple, Set ตัวแปรเหล่านี้สามารถใช้ในโปรแกรม Ren'Py ได้ แต่ผู้เขียนจะไม่สอนในบทความนี้ เนื่องจากเป็นเนื้อหาที่ลึกและไม่จำเป็นสำหรับนักสร้างเกมมือใหม่



ตัวดำเนินการ (Operator)

นอกจากตัวแปรสามารถเก็บข้อมูลตามหัวข้อที่แล้ว เรายังสามารถคำนวณหรือเปรียบเทียบค่าแล้วเก็บลงในตัวแปรได้ การคำนวณหรือเปรียบเทียบต้องใช้ตัวดำเนินการ ตัวดำเนินการที่ควรทราบในภาษา Python ได้แก่


......

นี่เพิ่งแค่ 35% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!


เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความฉบับเต็มลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)

บทความต้นฉบับ https://planila.blogspot.com/2019/07/ren...ter04.html

[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]
This post was last modified: 08-14-2019, 07:13 PM by Mikichan.

ติดตามเราได้ที่ Facebook ชื่อเพจ Planila Game Developer
อ่านบทความสอนสร้างเกมได้ที่ https://planila.blogspot.com

[Image: banner-ads.png]
  
Users browsing this thread: 3 Guest(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.