Tags:
Node Thumbnail

ทุกวันนี้คอมพิวเตอร์อาจเป็นเครื่องมือที่ใช้งานง่ายและแพร่หลายจนแทบไม่มีใครไม่รู้จัก แต่จะเกิดอะไรขึ้น ถ้าวันหนึ่งมรดกตกทอดถึงมือคือเครื่องคอมพิวเตอร์รุ่นโบราณที่มีอายุอานามกว่าสามทศวรรษ พร้อมด้วยคำสั่งเสียจากเจ้าของเดิมให้ซ่อมแซมมันจนกลับมาทำงานถูกต้อง คุณจะสามารถแก้ปริศนาหาความลับและที่มาที่ไปของคอมพิวเตอร์ลึกลับเครื่องนี้ได้หรือไม่ พบคำตอบได้ในเกม TIS-100

รู้จักกับ TIS-100

รูปที่ 1: สถาปัตยกรรมภายในของเครื่อง TIS-100

TIS-100 นอกจากจะเป็นชื่อของเกมเกมนี้แล้ว มันยังเป็นชื่อคอมพิวเตอร์ลึกลับที่เราได้รับมาซ่อมแซมด้วย โดยชื่อเต็มๆ ของมันได้แก่ Tessellated Intellegent System ซึ่งอาจแปลออกมาสวยๆ ได้ว่า ระบบอัจฉริยะแบบปูระนาบต่อเนื่อง (tessellation คือการปูพื้นระนาบด้วยรูปทรงเดียวกันโดยไม่เว้นให้เกิดช่องว่าง) จากชื่อที่แนะว่ามีการใช้ของประเภทเดียวกันมาเรียงต่อกันจำนวนมาก คงเดาได้ไม่ยากว่าการประมวลผลของคอมพิวเตอร์เครื่องนี้ทำงานแบบขนานนั่นเอง โดยมีจำนวนหน่วยประมวลผลอยู่ที่ 12 หน่วย วางเรียงกันเป็นรูปสี่เหลี่ยมผืนผ้าด้วยอัตราส่วน 3 ต่อ 4 ดังจะเห็นได้จากรูปที่ 1

แต่ละหน่วยประมวลผลสามารถบรรจุคำสั่งภาษา Assembly เข้าไปได้ ซึ่งแม้ว่ารุ่นของภาษา Assembly สำหรับเครื่อง TIS-100 จะรองรับได้เพียงแค่คำสั่งพื้นฐานเท่านั้น (เช่น การคำนวณทางคณิตศาสตร์ที่ทำได้เพียงการบวกและลบ ไม่มีการคูณหรือหาร) แต่ด้วยการทำงานแบบขนานกันระหว่างหน่วยประมวลผลจำนวนมาก ก็ทำให้เชื่อได้ว่าหากออกแบบอัลกอริทึมดีพอ คอมพิวเตอร์เครื่องนี้ก็น่าจะมีความสามารถเพียงพอสำหรับประมวลผลข้อมูลยากๆ จำนวนมากได้อย่างรวดเร็ว

รูปที่ 2: เอกสารอ้างอิงบางหน้า

แน่นอนว่าการเขียนโปรแกรมไม่ใช่เรื่องง่าย แม้แต่โปรแกรมเมอร์ชั้นเซียนก็ยังต้องคอยเปิดคู่มืออยู่บ่อยๆ TIS-100 ก็มาพร้อมกับเอกสารอ้างอิงที่บอกคร่าวๆ ว่าคำสั่งไหนใช้งานอย่างไร เอกสารส่วนหนึ่งสามารถดูได้จากรูปที่ 2

แต่เดิมนั้นคาดว่าเครื่อง TIS-100 สามารถทำงานได้อย่างถูกต้องตามปรกติ จนกระทั่งเกิดความเสียหายขึ้นในหน่วยประมวลผลบางส่วน (สังเกตได้จากหน่วยประมวลผลสีแดงในรูปที่ 1) ทำให้เราต้องเข้าไปเขียนโปรแกรมซ่อมแซมมันให้กลับมาใช้งานได้ดังเดิม โดยแต่ละการซ่อมแซมจะมีคำอธิบายการทำงานที่คาดหวังกำกับไว้ พร้อมทั้งข้อมูลทดสอบเพื่อให้แน่ใจว่า อัลกอริทึมใหม่ที่เขียนเข้าไปนั้นจะสามารถทำงานได้อย่างถูกต้อง

ความท้าทายของข้อมูลทดสอบนั้น ไม่ได้มีเพียงแค่การประมวลผลทางตัวเลขอย่างเดียว แต่ยังขยายไปถึงการประมวลผลภาพอีกด้วย

รูป 3: ตารางคะแนนผู้นำสำหรับแบบทดสอบหนึ่งๆ

แต่ความท้ายทายที่แท้จริงคงหนีไม่พ้นตารางคะแนนในรูปที่ 3 ซึ่งมันจะแสดงขึ้นหลังจากแก้โปรแกรมพร้อมทำแบบทดสอบสำเร็จ โดยมันจะบอกถึงคุณภาพและประสิทธิภาพของอัลกอริทึมที่เพิ่งเขียนไป เทียบเป็นฮิสโตแกรมกับข้อมูลจากผู้เล่นทั่วทุกมุมโลก หรือจะแข่งกับเพื่อนบน Steam แบบเฉือนชนะกันเพียง 1 รอบการประมวลผลก็ย่อมได้

เล่นต่อหลังเกมจบ

สำหรับผู้เล่นที่หลงใหลในเสน่ห์ของภาษา Assembly และการประมวลผลแบบขนานจนไม่อยากจบเกมแม้จะเล่นเกมจนจบ TIS-100 ก็มีเครื่องมือสำหรับสร้างด่านขึ้นมาเล่นและแจกจ่ายได้ โดยใช้ภาษา Lua สำหรับเขียนสคริปต์ของด่านนั้นๆ ดังตัวอย่างในรูปที่ 4

รูปที่ 4: เพิ่มด่านได้เพียงแค่เขียนสคริปต์ภาษา Lua

ชุมชนนักเล่นเกม

เราน่าจะพูดได้ว่า ไม่มีเรื่องใดในโลกนี้ที่ไม่มี subreddit เป็นของตัวเอง สำหรับเกม TIS-100 ก็เช่นกัน โดยชุมชนดังกล่าวอยู่ที่ /r/tis-100 ซึ่งเป็นทั้งสถานที่พูดคุยแลกเปลี่ยนเทคนิคการเขียนโปรแกรม, อวดความสวยงามแปลกใหม่ของอัลกอริทึม, และหอเกียรติยศสำหรับจดบันทึกสถิติที่ดีที่สุดเอาไว้

แต่เพียงการอวดอัลกอริทึมด้วยภาพถ่ายหน้าจอ คงไม่ทำให้เพื่อนร่วมเกมตื่นตาตื่นใจได้มากเท่ากับการได้นำโค้ดโปรแกรมนั้นไปทดลองเล่นด้วยตัวเอง ในส่วนนี้ก็มี tis100pad.com ซึ่งเป็นเว็บที่แฟนๆ สร้างขึ้นมาสำหรับแลกเปลี่ยนโค้ดในเกมโดยเฉพาะเลยทีเดียว

สรุป

TIS-100 น่าจะไม่ใช่เกมที่จะทุกคนจะชื่นชอบ แม้แต่ในหมู่โปรแกรมเมอร์เองก็อาจจะขยาดกับเกมนี้ (ทำงานเขียนโค้ดมาทั้งวัน กลับบ้านคงหมดอารมณ์เขียนโค้ดต่อแล้ว?) แต่ถ้าคุณชอบเกมแก้ปริศนา หรือกำลังศึกษาภาษา Assembly หรือสนใจการประมวลผลแบบคู่ขนาน ผมว่าเกมนี้ออกแบบมาได้ดีมากๆ เลยทีเดียวครับ

ข้อดี

  • ได้เขียนภาษา Assembly ทำงานแบบขนาน
  • ท้าทายให้ปรับปรุงอัลกอริทึมอยู่เสมอ

ข้อด้อย

  • ยากมาก เล่นแล้วเหนื่อย
Get latest news from Blognone

Comments

By: panurat2000
ContributorSymbianUbuntuIn Love
on 31 December 2015 - 11:33 #871937
panurat2000's picture

คุณจะสามารถหาแก้ปริศนาหาความลับและที่มาที่ไป

หาแก้ปริศนา ?

ซึ่งเป็นเว็บที่แฟนๆ สร้างหขึ้นมา

สร้างหขึ้น ?

สำหรับแลกเปลี่ยนโค้ดโดยในเกมเฉพาะเลยทีเดียว

โค้ดโดยในเกม ?

By: neizod
ContributorTraineeIn Love
on 31 December 2015 - 13:14 #871947 Reply to:871937
neizod's picture

เรียบร้อยครับ

By: gobman
iPhoneAndroidSymbianUbuntu
on 31 December 2015 - 16:48 #871964 Reply to:871937

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

ต้องเป็นรูปที่ ๓ หรือเปล่าครับ

By: neizod
ContributorTraineeIn Love
on 31 December 2015 - 17:26 #871972 Reply to:871964
neizod's picture

โอ๊ จริงด้วยครับ จะว่าไปถ้ามี tool ที่ทำ auto ref เหมือนใน LaTeX ก็น่าจะดี

By: Mikamura
AndroidUbuntuWindows
on 31 December 2015 - 13:09 #871946

นึกถึงสมัยเรียนวิชา Computer Organization นั่งเขียน Assembly ส่งอาจารย์กันมือหงิก (ฮา) ถ้า อ. คนไหนจะหยิบไปเป็นเครื่องมือการเรียนการสอนก็น่าจะเข้าท่าดีนะครับ

By: A4
iPhoneAndroidRed HatSUSE
on 31 December 2015 - 14:13 #871949
A4's picture

คะแนน 10/10
ลด 50% เหลือ 85 บาท
http://store.steampowered.com/app/370360/?l=thai


ไม่มีพระเจ้าอื่นใดนอกจากอัลลอฮฺ

By: sakuraba
Windows PhoneWindows
on 31 December 2015 - 16:35 #871963
sakuraba's picture

นึกถึงตอนเรียน Z-80


ลายเซ็น

By: mr_tawan
ContributoriPhoneAndroidWindows
on 31 December 2015 - 17:51 #871974
mr_tawan's picture

TIS = มอก ?


  • 9tawan.net บล็อกส่วนตัวฮับ
By: -Rookies-
ContributorAndroidWindowsIn Love
on 1 January 2016 - 13:16 #872052 Reply to:871974

นึกถึง TIS-620 ขึ้นมาเลยทีเดียว


เทคโนโลยีไม่ผิด คนใช้มันในทางที่ผิดนั่นแหละที่ผิด!?!

By: windslove
iPhone
on 1 January 2016 - 02:26 #872019

มาเพิ่มข้อมูลให้นะครับจากคนที่ซื้อมาเล่นนานแล้ว
ผู้พัฒนาคือ Zachtronics มีชื่อเสียงมากเกม puzzle ที่หา best method เกมดังๆเช่น Infinifactory กับ Spacechem (ลองดู gameplay ก็ได้ครับ)ตอนนี้มีอีกเกม Gunpoint แต่ไม่เหมือนกับที่ว่ามา

สามเกมที่ว่ามา (ไม่รวม Gunpoint) เขียนคำสั่งให้ได้ product ตามที่โจทย์ต้องการ เกม TIS โชว์ความเป็น Text-based ซึ่งโดนใจชาว Programmer ต่างจากเกมอื่นๆที่ออกแนว GUI

จุดเด่นของเกมนี้หลักๆ นอกจากเป็น text-based คือ
1. learning curve ค่อนข้างชัน มีไฟล์ pdf มาอันเดียวให้ลองอ่าน ลองมือดู นี่แหละครับ มันสนุกตรงนี้
2. Process ที่แต่ละช่องทำได้เป็นคำสั่งง่ายๆ เช่น บวกลบ >0,=0 ไม่มี x>y
แต่โจทย์ต้องการเช่น มี input4 อันค่า 0,1 ให้เขียน 0,1,2,3,4 ตามจำนวน 1 ของ input4 อันนั้นๆ
3. โจทย์ยิ่ง complex ก็ยิ่งมีวิธีแก้ปัญหาเยอะ จำนวนคำสั่ง จำนวนครั้งก็ต่างกัน สำหรับค่ายนี้ไม่ผิดหวัง ซับซ้อนสุดๆ55+

By: TheOne
iPhoneWindows Phone
on 1 January 2016 - 06:52 #872030
TheOne's picture

จะได้ปาคีย์บอร์ดทิ้งก็คราวนี้

By: crucifier
iPhoneAndroidUbuntu
on 1 January 2016 - 09:15 #872040

ขอบาย


มนุษย์อุปโลกน์พระเจ้า

By: tearfire on 3 January 2016 - 01:28 #872207
tearfire's picture

ยังสยองกับตอนสอบ

อาจารย์แจกบอร์ด แล้วให้เขียน assembly ลงบอร์ด ตามโจทย์ที่กำหนดบนกระดาษ

By: TW
AndroidWindows
on 3 January 2016 - 08:39 #872233

"คอมพิวเตอร์รุ่นโบราณที่มีอายุอานามกว่าสามศตวรรษ"

ศตวรรษ เลยหรอครับ?

By: neizod
ContributorTraineeIn Love
on 3 January 2016 - 23:26 #872329 Reply to:872233
neizod's picture

โอ่ย ทศวรรษ ครับ ผิดๆ

By: Perl
ContributoriPhoneUbuntu
on 5 January 2016 - 00:31 #872633
Perl's picture

นึกถึงสมัยเตรียมสอบ CCNA นั่งเล่น Cisco Mind Share
ไม่สนุก แต่ประเทืองปัญญา

แต่ถามว่าให้เล่นอีกเอาไหม.. ไม่เอา ผมเล่นเกมส์เพราะอยากได้ความสนุก ปัญญาไว้ทีหลัง