ทุกวันนี้คอมพิวเตอร์อาจเป็นเครื่องมือที่ใช้งานง่ายและแพร่หลายจนแทบไม่มีใครไม่รู้จัก แต่จะเกิดอะไรขึ้น ถ้าวันหนึ่งมรดกตกทอดถึงมือคือเครื่องคอมพิวเตอร์รุ่นโบราณที่มีอายุอานามกว่าสามทศวรรษ พร้อมด้วยคำสั่งเสียจากเจ้าของเดิมให้ซ่อมแซมมันจนกลับมาทำงานถูกต้อง คุณจะสามารถแก้ปริศนาหาความลับและที่มาที่ไปของคอมพิวเตอร์ลึกลับเครื่องนี้ได้หรือไม่ พบคำตอบได้ในเกม TIS-100
TIS-100 นอกจากจะเป็นชื่อของเกมเกมนี้แล้ว มันยังเป็นชื่อคอมพิวเตอร์ลึกลับที่เราได้รับมาซ่อมแซมด้วย โดยชื่อเต็มๆ ของมันได้แก่ Tessellated Intellegent System ซึ่งอาจแปลออกมาสวยๆ ได้ว่า ระบบอัจฉริยะแบบปูระนาบต่อเนื่อง (tessellation คือการปูพื้นระนาบด้วยรูปทรงเดียวกันโดยไม่เว้นให้เกิดช่องว่าง) จากชื่อที่แนะว่ามีการใช้ของประเภทเดียวกันมาเรียงต่อกันจำนวนมาก คงเดาได้ไม่ยากว่าการประมวลผลของคอมพิวเตอร์เครื่องนี้ทำงานแบบขนานนั่นเอง โดยมีจำนวนหน่วยประมวลผลอยู่ที่ 12 หน่วย วางเรียงกันเป็นรูปสี่เหลี่ยมผืนผ้าด้วยอัตราส่วน 3 ต่อ 4 ดังจะเห็นได้จากรูปที่ 1
แต่ละหน่วยประมวลผลสามารถบรรจุคำสั่งภาษา Assembly เข้าไปได้ ซึ่งแม้ว่ารุ่นของภาษา Assembly สำหรับเครื่อง TIS-100 จะรองรับได้เพียงแค่คำสั่งพื้นฐานเท่านั้น (เช่น การคำนวณทางคณิตศาสตร์ที่ทำได้เพียงการบวกและลบ ไม่มีการคูณหรือหาร) แต่ด้วยการทำงานแบบขนานกันระหว่างหน่วยประมวลผลจำนวนมาก ก็ทำให้เชื่อได้ว่าหากออกแบบอัลกอริทึมดีพอ คอมพิวเตอร์เครื่องนี้ก็น่าจะมีความสามารถเพียงพอสำหรับประมวลผลข้อมูลยากๆ จำนวนมากได้อย่างรวดเร็ว
แน่นอนว่าการเขียนโปรแกรมไม่ใช่เรื่องง่าย แม้แต่โปรแกรมเมอร์ชั้นเซียนก็ยังต้องคอยเปิดคู่มืออยู่บ่อยๆ TIS-100 ก็มาพร้อมกับเอกสารอ้างอิงที่บอกคร่าวๆ ว่าคำสั่งไหนใช้งานอย่างไร เอกสารส่วนหนึ่งสามารถดูได้จากรูปที่ 2
แต่เดิมนั้นคาดว่าเครื่อง TIS-100 สามารถทำงานได้อย่างถูกต้องตามปรกติ จนกระทั่งเกิดความเสียหายขึ้นในหน่วยประมวลผลบางส่วน (สังเกตได้จากหน่วยประมวลผลสีแดงในรูปที่ 1) ทำให้เราต้องเข้าไปเขียนโปรแกรมซ่อมแซมมันให้กลับมาใช้งานได้ดังเดิม โดยแต่ละการซ่อมแซมจะมีคำอธิบายการทำงานที่คาดหวังกำกับไว้ พร้อมทั้งข้อมูลทดสอบเพื่อให้แน่ใจว่า อัลกอริทึมใหม่ที่เขียนเข้าไปนั้นจะสามารถทำงานได้อย่างถูกต้อง
ความท้าทายของข้อมูลทดสอบนั้น ไม่ได้มีเพียงแค่การประมวลผลทางตัวเลขอย่างเดียว แต่ยังขยายไปถึงการประมวลผลภาพอีกด้วย
แต่ความท้ายทายที่แท้จริงคงหนีไม่พ้นตารางคะแนนในรูปที่ 3 ซึ่งมันจะแสดงขึ้นหลังจากแก้โปรแกรมพร้อมทำแบบทดสอบสำเร็จ โดยมันจะบอกถึงคุณภาพและประสิทธิภาพของอัลกอริทึมที่เพิ่งเขียนไป เทียบเป็นฮิสโตแกรมกับข้อมูลจากผู้เล่นทั่วทุกมุมโลก หรือจะแข่งกับเพื่อนบน Steam แบบเฉือนชนะกันเพียง 1 รอบการประมวลผลก็ย่อมได้
สำหรับผู้เล่นที่หลงใหลในเสน่ห์ของภาษา Assembly และการประมวลผลแบบขนานจนไม่อยากจบเกมแม้จะเล่นเกมจนจบ TIS-100 ก็มีเครื่องมือสำหรับสร้างด่านขึ้นมาเล่นและแจกจ่ายได้ โดยใช้ภาษา Lua สำหรับเขียนสคริปต์ของด่านนั้นๆ ดังตัวอย่างในรูปที่ 4
เราน่าจะพูดได้ว่า ไม่มีเรื่องใดในโลกนี้ที่ไม่มี subreddit เป็นของตัวเอง สำหรับเกม TIS-100 ก็เช่นกัน โดยชุมชนดังกล่าวอยู่ที่ /r/tis-100 ซึ่งเป็นทั้งสถานที่พูดคุยแลกเปลี่ยนเทคนิคการเขียนโปรแกรม, อวดความสวยงามแปลกใหม่ของอัลกอริทึม, และหอเกียรติยศสำหรับจดบันทึกสถิติที่ดีที่สุดเอาไว้
แต่เพียงการอวดอัลกอริทึมด้วยภาพถ่ายหน้าจอ คงไม่ทำให้เพื่อนร่วมเกมตื่นตาตื่นใจได้มากเท่ากับการได้นำโค้ดโปรแกรมนั้นไปทดลองเล่นด้วยตัวเอง ในส่วนนี้ก็มี tis100pad.com ซึ่งเป็นเว็บที่แฟนๆ สร้างขึ้นมาสำหรับแลกเปลี่ยนโค้ดในเกมโดยเฉพาะเลยทีเดียว
TIS-100 น่าจะไม่ใช่เกมที่จะทุกคนจะชื่นชอบ แม้แต่ในหมู่โปรแกรมเมอร์เองก็อาจจะขยาดกับเกมนี้ (ทำงานเขียนโค้ดมาทั้งวัน กลับบ้านคงหมดอารมณ์เขียนโค้ดต่อแล้ว?) แต่ถ้าคุณชอบเกมแก้ปริศนา หรือกำลังศึกษาภาษา Assembly หรือสนใจการประมวลผลแบบคู่ขนาน ผมว่าเกมนี้ออกแบบมาได้ดีมากๆ เลยทีเดียวครับ
ข้อดี
ข้อด้อย
Comments
หาแก้ปริศนา ?
สร้างหขึ้น ?
โค้ดโดยในเกม ?
เรียบร้อยครับ
ต้องเป็นรูปที่ ๓ หรือเปล่าครับ
โอ๊ จริงด้วยครับ จะว่าไปถ้ามี tool ที่ทำ auto ref เหมือนใน LaTeX ก็น่าจะดี
นึกถึงสมัยเรียนวิชา Computer Organization นั่งเขียน Assembly ส่งอาจารย์กันมือหงิก (ฮา) ถ้า อ. คนไหนจะหยิบไปเป็นเครื่องมือการเรียนการสอนก็น่าจะเข้าท่าดีนะครับ
คะแนน 10/10
ลด 50% เหลือ 85 บาท
http://store.steampowered.com/app/370360/?l=thai
นึกถึงตอนเรียน Z-80
TIS = มอก ?
นึกถึง TIS-620 ขึ้นมาเลยทีเดียว
เทคโนโลยีไม่ผิด คนใช้มันในทางที่ผิดนั่นแหละที่ผิด!?!
มาเพิ่มข้อมูลให้นะครับจากคนที่ซื้อมาเล่นนานแล้ว
ผู้พัฒนาคือ 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+
จะได้ปาคีย์บอร์ดทิ้งก็คราวนี้
ขอบาย
ยังสยองกับตอนสอบ
อาจารย์แจกบอร์ด แล้วให้เขียน assembly ลงบอร์ด ตามโจทย์ที่กำหนดบนกระดาษ
"คอมพิวเตอร์รุ่นโบราณที่มีอายุอานามกว่าสามศตวรรษ"
ศตวรรษ เลยหรอครับ?
โอ่ย ทศวรรษ ครับ ผิดๆ
นึกถึงสมัยเตรียมสอบ CCNA นั่งเล่น Cisco Mind Share
ไม่สนุก แต่ประเทืองปัญญา
แต่ถามว่าให้เล่นอีกเอาไหม.. ไม่เอา ผมเล่นเกมส์เพราะอยากได้ความสนุก ปัญญาไว้ทีหลัง