Browsed by
Tag: programming

2 Dimensional Array JSON Construct 3

2 Dimensional Array JSON Construct 3

This is JSON structure that can import in to Construct 3 to assign to an array object. I’m not a programmer, i know some thing about but doesn’t know how to implement it into Construct 3 so i spend 3 hour search for a solution. I post it here so you, who is not a programmer, like me can import table of data into 2-D array using JSON file format.

{
	"c2array":true,"size":[5,2,1],
	"data":[ 
		[[11], [1]], 
		[[22], [2]], 
		[[33], [3]], 
		[[44], [4]], 
		[["Grapes"], ["fruit"]] 
	]
}

If you want to know how to inject JSON data into Array in Construct 3. Google “load array json construct 3”

Lua 005 Types – Boolean ประเภทข้อมูล ประพจน์

Lua 005 Types – Boolean ประเภทข้อมูล ประพจน์

            Types Boolean เป็นข้อมูลที่แสดงผลได้เพียงสองแบบคือ True (จริง) และ False (เท็จ) ผมตั้งชื่อบทความว่าประพจน์ ความจริงอาจจะไม่ใช่สิ่งที่แทนกันได้โดยตรงแต่ความหมายของมันผมคิดว่าได้อยู่ ในสมัยตอนที่เรียนม.4 ก็จะมีบทเรียนเกี่ยวกับประพจน์ พวก p q อะไรแบบนั้น แนวคิดก็เป็นเหมือนกันแต่อาจจะมีวิธีใช้ที่ต่างกันหน่อย

            ในโลกแห่งความจริงของเรานั้นข้อมูลจำพวกจริงและเท็จเป็นสิ่งที่พบได้ในชีวิตประจำวัน เพียงแต่เราอาจจะไม่ได้สังเกตถึงการของอยู่ของมัน ตัวอย่างเช่น “พระอาทิตย์ขึ้นทางทิศตะวันออก” ประโยคนี้มีความหมายเป็นจริง (True) โดยตรงกันข้าม ถ้าหากเราบอกว่าพระอาทิตย์ขึ้นทางทิศตะวันตก ก็หมายความว่าประโยคนี้เป็นเท็จ (False)

            แนวคิดเกี่ยวกับ Boolean นี้เป็นสิ่งที่ผมชอบที่สุดในการเขียนโปรแกรมครับ เราสามารถกำหนดค่า true หรือ false ลงในตัวแปรได้โดยตรง

> x=true
> print(x)
true

            เรายังสามารถใช้ Boolean นี้ในการตรวจสอบค่าความจริงในตรรกะต่าง ๆ ตัวอย่างเช่น

> print(1==0) -- ตรวจสอบว่า 1 เท่ากับ 0 เป็นจริงหรือไม่ เครื่องหมายเท่ากับสองตัวต่อกัน == หมายถึงเปรียบเทียบค่า
false -- ผลลัพธ์เป็นเท็จเพราะ 1 และ 0 ไม่เท่ากัน

            ตรงนี้อาจจะทำให้หลายคนสับสนนะครับ ต้องจำให้ดี เครื่องหมายเท่ากับอันเดียว = หมายความว่าเป็นการกำหนดค่าในตัวแปร แต่เครื่องหมายเท่ากับสองอัน == เป็นการเปรียบเทียบค่าครับ ตรงนี้ผิดกันบ่อย ๆ

Lua 004 Types – String ประเภทข้อมูล ตัวหนังสือ

Lua 004 Types – String ประเภทข้อมูล ตัวหนังสือ

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

Read More Read More

Lua 003 Types – Number ประเภทข้อมูล จำนวน

Lua 003 Types – Number ประเภทข้อมูล จำนวน

            Types เป็นคำศัพท์ที่มีความหมายพิเศษในการเขียนโปรแกรม ตามความเข้าใจของผมก็พอที่จะสรุปได้ว่า ประเภทของข้อมูลที่เราจะนำมาใช้ในการเขียนโปรแกรม ใช้ในการสื่อความหมายให้เราและคอมพิวเตอร์เข้าใจได้ตรงกัน ตัวอย่างเช่นถ้าหากเราต้องการเขียนโปรแกรมคำนวณเปลี่ยนวินาทีเป็นนาที จำนวน เป็นสิ่งจำเป็นในการคิดหาคำตอบนี้ แนวคิดที่เป็นไปในทางปรัชญานี้อธิบายได้ลำบาก แต่เมื่อเรานำมาใช้งานแล้วก็จะเข้าใจได้ไม่ยาก ส่วนใหญ่จะมีสอนในวิชาคณิตศาสตร์ระดับม.ต้นอยู่แล้ว

            Types ใน Lua จะมีด้วยกัน แปดชนิดที่เป็นพื้นฐานคือ number, string, boolean, table, function, nil, userdata, thread

Read More Read More

Lua 002 แนวคิดพื้นฐาน ชุดคำสั่ง

Lua 002 แนวคิดพื้นฐาน ชุดคำสั่ง

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

Read More Read More

Lua 001 รันโปรแกรม

Lua 001 รันโปรแกรม

            ที่จริงก็รู้สึกแปลก ๆ อยู่เหมือนกันที่ต้องตั้งชื่อเอ็นทรีว่า Lua 001 รันโปรแกรม ปัญหาก็คือว่าถ้าไม่จัดการเรื่องการรันโปรแกรมก่อนแล้วต่อให้เขียนโค้ดไปก็ทดสอบไม่ได้ว่าถูกต้องหรือไม่

            ตอนที่พยายามรันโปรแกรม Lua ผ่าน Zero Brane Studio ครั้งแรกก็เจอปัญหาคือตัว IDE มันหา Interpreter ไม่เจอ ก็คือเขียนโค้ดได้แต่รันโปรแกรมไม่ได้ สาเหตุก็คือค่า Interpreter ที่ตั้งไว้มันเป็นค่า Default ที่มากับไฟล์ user.lua ซึ่งเป็นไฟล์ตั้งค่าสำหรับการทำงาน และค่าปริยายของมันไม่ตรงกับค่าของการใช้งานเรา แถมตัว Zero Brane Studio ก็ดันเลือกเอา Interpreter ซึ่งกำหนดไว้ใช้กับ Lua เวอร์ชันที่ User เลือกเอง ดังนั้นผมจึงต้องเปลี่ยนให้มันเลือกไปใช้ Lua 5.3 ที่มากับ Zero Brane Studio แทน

Read More Read More

หัด Lua ครั้งที่สาม

หัด Lua ครั้งที่สาม

เริ่มต้นอีกครั้งกับการหัดเขียนโปรแกรมด้วย Lua เริ่มมาหลายครั้งแล้วแต่ก็ไปไม่ถึงไหนเสียที วันนี้ก็เลยตั้งใจจะหัดใหม่อีกครั้ง ด้วยความตั้งใจว่าจะหัดจนกว่าจะเขียนเกมให้ได้หนึ่งเกม และจะต้องอยู่ในระดับที่สามารถเอาไปขายได้ ขั้นตอนการเรียนนั้นก็จะเริ่มจาก Lua พื้นฐานก่อน จากนั้นจึงขยับไป Love game engine แล้วขยับไป Defold ซึ่งน่าจะเหมาะสำหรับการ Publish game มากกว่า

Read More Read More

C# ตอนที่ 2 ทำความเข้าใจกับรูปแบบของโปรแกรม

C# ตอนที่ 2 ทำความเข้าใจกับรูปแบบของโปรแกรม

หลังจากเขียนโปรแกรม Hello World ง่าย ๆ ไปแล้วผมก็เริ่มต้นการเรียนบทต่อไป ในบทเรียนได้กล่าวว่าการเขียนโปรแกรมนั้น นอกจากรูปแบบไวยกรณ์ที่เราต้องจดจำและใช้งานให้ถูกต้องแล้ว ส่วนสำคัญที่เราต้องเรียนรู้อย่างหลีกเลี่ยงไม่ได้ก็คือ Library ซึ่งในการเขียนโปรแกรมนี้จะหมายถึงชุดของ Code ที่เขียนเตรียมเอาไว้ให้เราได้นำมาใช้งานแล้ว

ตามความเข้าใจของผมเอง ภาษาโปรแกรม C# นั้นมีความสามารถในการทำงานขั้นพื้นฐาน แต่การที่จะนำความสามารถพื้นฐานมาประยุกต์ใช้งานเพื่อให้บรรลุเป้าหมายที่ต้องการเป็นเรื่องเสียเวลาเป็นอย่างมาก เปรียบเทียบให้เป็นภาพก็เหมือนกับว่าตัว C# มีความสามารถในการบวกลบคูณหาร ถ้าเราต้องการผลรวมของตัวเลข 1+2+3+4+5 เราก็สามารถเขียนด้วยตัวเองได้ แต่การแก้โจทย์นี้เป็นเรื่องที่เสียเวลาถ้าต้องทำซ้ำ ๆ กันหลายครั้ง ดังนั้นจึงมีคนทำ “สูตร” สำหรับการแก้โจทย์ 1+2+3+4+5 นี่เอาไว้ให้เราได้ใช้งาน แทนที่จะเขียนโปรแกรมเป็นโค้ดด้วยตัวเองให้บวกเลขตามลำดับ เราก็เรียกใช้ “สูตร” นี่โดยกำหนดค่าต่ำสุดและสูงสุดเพียงเท่านั้นเป็นต้น

สำหรับ C# นี้ Microsoft มี .Netframework ให้เราได้ใช้งานครับ ก็ทำงานได้หลายอย่าง ไม่ว่าจะเป็นการคำนวณทางคณิตศาสตร์ การรับส่งข้อมูลผ่านระบบเครือข่าย การจัดการกับข้อความ การแสดงภาพขึ้นบนหน้าจอ จัดการเรื่องเสียง เรื่องภาพ ทุกสิ่งทุกอย่างที่ถ้าเราตัดสินใจทำด้วยตัวเองแล้วจะเสียเวลามากมาย

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

 

Love2d กับการแสดงผลภาษาไทย

Love2d กับการแสดงผลภาษาไทย

หลังจากที่ปรับแต่งขนาดของหน้าต่างเกมเรียบร้อยแล้วผมก็ทดลองเปลี่ยนการแสดงผล hello ด้วยการพิมพ์ภาษาไทยเข้าไป แต่ผลออกมาไม่น่าพิศมัยเลย

function love.draw()
    love.graphics.print("รักเร่ เร่ร้างรัก", 400, 300)
end

ตัวหนังสือแสดงผลเป็นสี่เหลี่ยมเมื่อเปลี่ยนจาก
ตัวหนังสือแสดงผลเป็นสี่เหลี่ยมเมื่อเปลี่ยนจาก “Hello World” เป็น “รักเร่ เร่ร้างรัก”

Read More Read More

เริ่มต้นเรียนรู้ Love2d

เริ่มต้นเรียนรู้ Love2d

ที่จริงผมอยากทำเกมเป็นของตัวเองมานานแล้ว นานมาก ๆ ๆ ได้ทดลองจับมาหลายอย่าง ตั้งแต่แรกสุดคือหัดเขียนโปรแกรมด้วยภาษา c แต่ด้วยความสามารถและกำลังใจที่มีไม่ถึงทำให้ผมต้องละทิ้งการเขียนโปรแกรมเหล่านั้นไป หลังจากนั้นผมก็ได้มีโอกาสจับเกมเอ็นจินอย่างเช่น rpg maker หลาย ๆ เวอร์ชัน แต่ด้วยความขี้เกียจทำให้ผมไปไม่ถึงไหนอีกเช่นเดิม

ในตอนนี้ผมได้กลับมาจับการทำเกมอีกครั้งเนื่องจากต้องการหาอะไรทำนอกเหนือไปจากเวลาที่แต่งนิยาย และที่ผมเลือกขึ้นมาใช้ก็คือ love2d

love2d เป็นเกมเอ็นจินที่เขียนขึ้นด้วยภาษา Lua ภาษาที่เรียบง่ายแต่ทรงประสิทธิภาพ ที่จริงแล้วผมเลือกภาษานี้ก็เพราะอะไร ๆ มันดูแล้วไม่สับสนเท่าภาษาอื่นแค่นั้นแหละ

Read More Read More