Categories
Education Game

คิดสร้างสรรค์ กับ วิทยสัปยุทธ์

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

น่าเสียดายที่น้อยคนจะได้ดูการแข่งขันแบบสดๆ ในโรงถ่าย โดยเฉพาะช่วงการทำทดลองจริง 15 นาที ของแต่ละทีม รายการดีๆ อย่างนี้จาก สสวท ยังมีคนติดตามทางทีวีน้อยกว่าที่คาดหวังไว้ อาจเป็นเพราะช่วงเวลาออกอากาศตรงกับละครทำให้สู้ไม่ได้ แต่อยากบอกคนที่สนใจ สามารถติดตาม Facebook ของรายการได้ และถ้าต้องการดูรายการย้อนหลัง ดูได้ที่เว็บไซต์ WorkPoint หรือลองหาทาง YouTube ก็ได้

ผมขอสนับสนุนรายการดีๆ ที่เปิดโอกาสให้เด็กฝึกคิดฝึกทำ บูรณาการสิ่งที่เรียนมาสู่การแก้ไขปัญหา และอธิบายหลักการทางวิทยาศาสตร์ที่ได้ใช้อีกด้วย อย่าลืมติดตามนะคร๊าบบบ

Categories
Game Scratch

สคริปต์ Delicious Fish ตอน 4

ทดลองเล่นเกม Delicious Fish ในเว็บไซต์ Scratch หรือดาวน์โหลดมาเล่นที่เครื่องคุณเอง ได้ ที่นี้

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

สคริปต์ปลาตัวใหญ่ เริ่มต้นคล้ายกับปลาอื่นๆ เมื่อรับรหัส “setup” ก็จะเปลี่ยนชุดเป็น “open-mouth” รอกินปลาทอง ต่อด้วยการเตรียมตัวเข้าสู่การเล่นด้วยการซ่อนตัวก่อน เมื่อเข้าสู่ระดับแรก (level = 1) จะเช็กระยะห่างระหว่างตัวเองกับเมาส์ (distance to mouse-pointer) ถ้า > 10 จะพุ่งตรงไปหาเมาส์ (point towards mouse-pointer) อย่างรวดเร็ว (move 5 steps) ในขณะที่อยู่ระดับสอง (level = 2) การควบคุมปลาตัวใหญ่ต้องระมัดระวัง เพราะถ้ากินปลาสีเขียวจะถูกหักคะแนน ดังนั้นการควบคุมระยะประชิด (distance to mouse-pointer <=10) ปลาตัวใหญ่จะเคลื่อนที่ช้าลง (move 2 steps)

เมื่อกินปลาชนิดใดได้ ปลาตัวใหญ่ก็จะได้รหัสจากปลาชนิดนั้น นั้นคือ “got-me” จากปลาทอง “got 1” จากปลาทองตัวที่ 1 ในระดับสอง  และ “oh-no” จากปลาสีเขียว เมื่อปลาแต่ละชนิดถูกกิน จะมีผลต่อคะแนนรวม (score) นั้นคือ กินปลาทองได้ 1 คะแนน กินปลาทองตัวที่ 1 ในระดับสองได้ 2 คะแนน และกินปลาสีเขียว ถูกหัก 3 คะแนน จากนั้นจะมีการเพิ่มจำนวนปลาที่กินได้ในแต่ละตัวแปร นั้นคือ “goldfish” สำหรับปลาทอง “goldfish1”  สำหรับปลาทองตัวที่ 1 ในระดับสอง  “greenfish”  สำหรับปลาสีเขียว จากนั้นส่งรหัส “chomp” ให้ตัวเองเพื่อแสดงแอนิเมชั่นการกิน ด้วยการปิดปาก (closed-mouth) แล้วเปิดปาก (open-mouth) 2 รอบ พร้อมส่งเสียง “chomp” ประกอบ

ปิดท้ายเมื่อได้รหัส “game-over” ปลาตัวใหญ่จะไปโผล่ที่ตำแหน่ง x:-130 y:-35 และแสดงแอนิเมชั่นด้วยการว่ายไปมา 1 รอบ ก่อนจะหายตัวไป

Categories
Game Scratch

สคริปต์ Delicious Fish ตอน 3

ทดลองเล่นเกม Delicious Fish ในเว็บไซต์ Scratch หรือดาวน์โหลดมาเล่นที่เครื่องคุณเอง ได้ ที่นี้

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

สคริปต์ปลาทอง 1 คล้ายกับปลาทองตัวอื่นๆ เมื่อรับรหัส “setup” ก็จะเตรียมตัวเข้าสู่การเล่นด้วยการซ่อนตัวก่อน ในระดับแรก ปลาทอง 1 จะมีหน้าตาเหมือนปลาทองตัวอื่นๆ โดยใช้บล็อกเปลี่ยนชุดแต่งกาย (switch to costume “costume L1”) แต่ในระดับสอง สคริปต์จะต่างออกไปเล็กน้อย คือใช้ชุดแต่งกาย “costume L2” ซึ่งตั้งใจให้ต่างจากปลาทองตัวอื่นๆ ช่วยให้ผู้เล่นรู้ว่าปลาทองตัวไหน เป็นตัวที่ 1 นอกจากนั้น เมื่อมันถูกกิน มันจะส่งรหัส “got 1” แทนที่จะส่ง “got-me” ให้ปลาตัวใหญ่ทราบ และยังพูด “Oh yes!” ยินดีที่ถูกกิน และเมื่อได้รหัส “game-over” มันจะไปยังตำแหน่ง x: 23, y: 75 และหันไปทิศ 110 องศา แล้วแสดงค่าในตัวแปร goldfish1 ซึ่งเป็นจำนวนปลาทอง 1 ที่ถูกกินในระดับสองเท่านั้น

สคริปต์ปลาสีเขียว คล้ายปลาทองอื่นๆ เมื่อรับรหัส “setup” ก็จะเตรียมตัวเข้าสู่การเล่นด้วยการซ่อนตัวก่อน แต่จะโผล่มาเฉพาะในระดับสองเท่านั้น (level=2) มันจะถูกกินถ้าสีเขียวตัวมันเอง สัมผัสสีน้ำเงินของปากปลาตัวใหญ่ จากนั้นจะส่งรหัส “oh-no” ให้ปลาตัวใหญ่ พร้อมคิดว่า “No!” ไม่น่าเลย

การที่ปลาสีเขียวจะคอยตามปลาทอง 1 ได้ มันต้องเช็กระยะห่างจากปลาทอง 1 นั้นคือถ้าห่างกันมากกว่า 20 (distance to goldfish1 > 20) มันจะพุ่งตรงไปหาปลาทอง 1 (point towards goldfish1) อย่างเร็ว (move 3 steps) แต่ถ้ามันอยู่ใกล้ปลาทอง 1 ( < 20 ) มันจะเคลื่อนที่ช้าๆ อยู่ใกล้ๆ (move 1 steps) และยังอ้อยอิ่ง (wait 1.2 secs) เพื่อให้โอกาสปลาตัวใหญ่ มากินเพื่อนมัน

เมื่อได้รหัส “game-over” มันจะไปยังตำแหน่ง x: 91, y: 76 และหันไปทิศ 90 องศา แล้วแสดงค่าในตัวแปร greenfish ซึ่งเป็นจำนวนปลาสีเขียวที่ถูกกิน

Categories
Game Scratch

สคริปต์ Delicious Fish ตอน 2

ทดลองเล่นเกม Delicious Fish ในเว็บไซต์ Scratch หรือดาวน์โหลดมาเล่นที่เครื่องคุณเอง ได้ ที่นี้

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

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

มาดูสคริปต์ของปลาทองตัวที่ 2-4 ซึ่งคล้ายกันมากยกเว้นตอนจบเกม เริ่มจากรับรหัส “setup” เป็นการเตรียมตัวก่อนการเล่นเกมในแต่ละระดับ ซึ่งทำเพียงแค่ซ่อนตัว (hide) และเมื่อได้รหัส “level1” เริ่มต้นเกมระดับแรก ปลาทองก็จะโผล่ออกมา จากนั้นจะทำงานไปเรื่อยๆ ในบล็อก forever เมื่อยังอยู่ในระดับนี้ โดยเช็กตัวแปร “level=1” หรือไม่ ถ้าใช่มันก็จะเคลื่อนไปข้างหน้า 2 หน่วย ส่ายหน้าไปทางซ้ายหรือขวาจากค่าสุ่มระหว่าง -20 ถึง 20 องศา แล้วเช็กตัวเอง ถ้าชนขอบเวทีก็เด้งกลับ ต่อด้วยการเช็กว่าตัวเองถูกกินหรือเปล่า โดยเช็กที่สีส้มของตัวเอง สัมผัสกับสีน้ำเงินของปากปลาตัวใหญ่หรือไม่ ถ้าถูกกินก็จะส่งรหัส “got-me” ให้ปลาตัวใหญ่ จากนั้นซ่อนตัว รอ 1 วินาที (เร็วกว่าของเดิม) แล้วโผล่มาใหม่ ณ ตำแหน่งที่ได้จากการสุ่ม ตำแหน่งไหนก็ได้ของเวที (ของเดิมถูกจำกัดบริเวณแคบๆ)

เมื่อได้รหัส “level2” ก็เริ่มระดับสอง ซึ่งพฤติกรรมเหมือนระดับแรก ยกเว้นว่าต้องเช็กว่ายังอยู่ในระดับสองหรือไม่ (level = 2 ?)

และเมื่อเวลาหมด จะได้รับรหัส “game-over” เพื่อให้ปลาแต่ละชนิดแสดงจำนวนที่ถูกกิน ที่หน้าจอก่อนจะจบเกม ปลาทองตัวที่ 2 (สคริปต์รูปบน) เป็นตัวแทนของปลาทอง 1-4 (ตัวที่ 1 เฉพาะระดับแรก) จะไปตำแหน่ง x:-44, y: 75 แล้วหันไปทิศ 108 องศา และแสดงจำนวนปลาทองที่ถูกกินในตัวแปร goldfish

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

ส่วนปลาทอง 3 และ 4 (รูปซ้าย) เมื่อได้รับรหัส “game-over” ก็แค่หายตัวไป เท่านั้นเอง

Categories
Game Scratch

สคริปต์ Delicious Fish ตอน 1

ทดลองเล่นเกม Delicious Fish ในเว็บไซต์ Scratch หรือดาวน์โหลดมาเล่นที่เครื่องคุณเอง ได้ ที่นี้

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

รูปตัวอย่างจากเกม Delicious Fish ด้านล่างนี้ เป็นลำดับของการเล่นเกม (เรียงจากซ้ายไปขวา บนลงล่าง) เริ่มจากบอกวิธีการเล่นสั้นๆ (ถ้าต้องการดูรายละเอียด ไปที่ Project notes) จากนั้นเข้าสู่ระดับแรก (level 1) ถัดไปเป็นฉากขณะเล่นในระดับแรก จากนั้นเข้าสู่ระดับสอง (level 2) ถัดไปเป็นฉากขณะเล่นในระดับสอง สุดท้ายเป็นฉากจบเกม (Game over) ซึ่งบอกคะแนนรวม และก็จำนวนปลาชนิดต่างๆ ที่กินได้ รวมทั้งสองระดับ

สคริปต์ของตัวควบคุมเกม (game control) เริ่มเมื่อคลิกธงเขียวก็ส่งระหัส “setup” ให้ปลาทุกตัวเตรียมพร้อมก่อนเข้าสู่การเล่น จากนั้นตั้งค่าเริ่มต้นให้ตัวแปร คะแนน (score), เวลา (time), ระดับ (level), ปลาทอง (goldfish), ปลาทองตัวที่ 1 ในระดับสอง (goldfish1), และปลาสีเขียว (greenfish) ตอนออกแบบสร้างเกม ให้คลิกเลือกตัวแปร score ตัวเดียวให้แสดงบนหน้าเวทีตลอดเกม จากนั้นแสดงวิธีการเล่นให้ดู 2 วินาที ต่อด้วยการบอกผู้เล่นว่าจะเข้าสู่การเล่นระดับแรก (level 1) 2 วินาที ก่อนที่จะหายไป ส่งรหัส “level1” ให้ตัวละครทุกตัวเข้าสู่การเล่นระดับแรก

ตัวควบคุมเองก็รับรหัส “level1” เพื่อควบคุมการเล่นในระดับนี้ (ภายในบล็อก forever) ซึ่งทำงานหลักๆ อยู่ 2 อย่าง คือควบคุมเวลา และการส่งต่อไปยังระดับต่อไป โดยใช้บล็อกถ้า (if) เช็คว่าเวลาหมดหรือยัง (time > 0 ?) ถ้ายังก็ลดตัวแปรเวลาลง 1 ทุก 1 วินาที (ใช้บล็อก wait นับเวลา) ถ้าเวลาหมดหมายความว่า ให้เริ่มระดับต่อไป โดยตั้งเวลาใหม่สำหรับระดับสอง และเปลี่ยนตัวแปรระดับเป็น 2 จากนั้นส่งรหัส “setup” ให้ปลาทุกตัวเตรียมพร้อมการเล่นในระดับสอง ต่อด้วยการบอกผู้เล่นว่า จะเข้าสู่การเล่นระดับสอง (level 2 ) โดยให้เวลาผู้เล่นเตรียมตัว 4 วินาที ก่อนจะส่งรหัส “level2” ให้ตัวละครทุกตัว สุดท้ายหยุดการทำงานทั้งหมดในสคริปต์นี้ (ออกจากบล็อก forever) โดยใช้บล็อก “stop script”

และเช่นเดียวกัน ตัวควบคุมเองก็รับรหัส “level2” เพื่อควบคุมการเล่นในระดับ 2 ซึ่งจะจับเวลาเหมือนระดับแรก แต่เมื่อเวลาหมด ให้เปลี่ยนระดับเป็น 0 (ไม่มีระดับต่อไปอีกแล้ว) จากนั้นบอกผู้เล่นว่าจบเกม และให้เวลา 1.5 วินาที กับตัวละครทุกตัวเตรียมพร้อมจบเกม เมื่อได้รหัส “game-over” ซึ่งส่งโดยบล็อก “broadcast game-over and wait” ที่ต้องให้รอ (wait ) ก่อนที่จะจบสคริปต์ทั้งหมดในโปรเจกนี้ ด้วยบล็อก “stop all” เพราะว่าต้องการให้ตัวละครอื่นๆ เล่นฉากจบของตัวเอง ก่อนที่ม่านฉากจะปิดลง