Excel : ช่วยเล่น Sudoko (1)

เกม Sudoko คือ เกมที่ให้เราหาตัวเลข 1-9 ใส่ลงในช่องตาราง 9x9
ซึ่งตาราง 9x9 นี้ยังแบ่งออกเป็นตารางย่อย 3x3 อีก 9 ตาราง

โดยมีกติกาว่า
1.ในแนวนอนเดียวกัน 9 ช่องต้องมีตัวเลขไม่ซ้ำกัน
2.ในแนวตั้งเดียวกัน 9 ช่องต้องมีตัวเลขไม่ซ้ำกัน
3.ในตารางย่อย 3x3 ต้องมีตัวเลขไม่ซ้ำกัน

จากภาพได้ทำตารางหลักสำหรับเกม Sudoko ใน Excel ไว้ที่ B2-J10 ซึ่งเมื่อเริ่มต้นเกมจะให้ตัวเลขมาบางส่วน จากนั้นให้เราใส่ตัวเลขตามช่องว่างที่เหลือตามกติกา และเพื่อให้ Excel ช่วยเราหาตัวเลขที่ควรจะใส่ได้ตามกติกา ได้สร้างตาราง 9x9 ขึ้นอีก 2 ตาราง

ตารางทางขวามือ (สำหรับหาตัวเลขที่สามารถใส่ได้ในแนวนอน) ที่ L2-T10 จากนั้นใส่เลข 1-9ที่ช่อง L1-T1 ที่ช่อง L2 ให้ใส่สูตร =IF(COUNTIF($B2:$J2,L$1)=0,L$1,"") เพื่อให้นับจำนวนในช่อง B2-J2 ว่ามีค่าเท่ากับ L1 หรือไม่ ถ้าเท่ากับ 0 ให้แสดงค่า L1 ถ้าจำนวนนับมากกว่า 0 ไม่ต้องแสดงค่า และคัดลอกสูตรไปที่ L2-T10
เมื่อตารางหลักของเกม ในแนวนอน มีตัวเลขใดอยู่แล้ว ในแถวแนวนอนนั้นของตารางช่วยนี้จะไม่แสดงตัวเลขนั้น แต่ถ้าในตารางหลักยังไม่มีตัวเลข นั้น ตารางนี้จะแสดงตัวเลขนั้น คือ ในแถวแนวนอนนั้นในตารางหลักยังขาดตัวเลขนั้น

และตารางด้านล่าง (สำหรับหาตัวเลขที่สามารถใส่ได้ในแนวตั้ง) ที่ B12-J20 จากนั้นใส่เลข 1-9ที่ช่อง A12-A20 ที่ช่อง B12 ให้ใส่สูตร =IF(COUNTIF(B$2:B$10,$A12)=0,$A12,"") เพื่อให้นับจำนวนในช่อง B2-B10 ว่ามีค่าเท่ากับ A12 หรือไม่ ถ้าเท่ากับ 0 ให้แสดงค่า A12 ถ้าจำนวนนับมากกว่า 0 ไม่ต้องแสดงค่า และคัดลอกสูตรไปที่ B12-J20
เมื่อตารางหลักของเกม ในแนวตั้ง มีตัวเลขใดอยู่แล้ว ในแถวแนวตั้งนั้นของตารางช่วยนี้จะไม่แสดงตัวเลขนั้น แต่ถ้าในตารางหลักยังไม่มีตัวเลขนั้น ตารางนี้จะแสดงตัวเลขนั้น คือ ในแถวแนวตั้งนั้นในตารางหลักยังขาดตัวเลขนั้น

คราวนี้เรามาทดลองใส่ตัวเลขที่เป็นโจทย์ในตารางหลัก (ตำแหน่งที่พื้นหลังเป็นสีเหลือง คือ ตำแหน่งของโจทย์)


ตารางช่วยในแนวนอนที่ได้ (ขวามือ)

ตารางช่วยในแนวตั้งที่ได้ (ด้านล่าง)

จากตัวอย่างที่ให้มา เรามาลองดูที่ช่อง E3 ของตารางหลักจะเห็นว่ายังไม่มีตัวเลขอยู่

ในตารางช่วยแนวนอน ในแถวแนวนอนเดียวกัน (L3-T3) มีตัวเลข 3,4,5,7,8 ซึ่งแสดงว่า E3 มีโอกาสที่จะเติมตัวเลข 3,4,5,7,8 ได้

และในตารางช่วยแนวตั้ง ในแถวแนวตั้งเดียวกัน (E12-E20) มีตัวเลข 1,2,6,7,9 ซึ่งแสดงว่า E3 มีโอกาสที่จะเติมตัวเลข 1,2,6,7,9 ได้

เมื่อดูทั้งสองตารางช่วยร่วมกัน E3 มีโอกาสที่จะเติมตัวเลขได้เพียง 7 ตัวเดียว เพราะ 7 มีอยู่ทั้งในตารางช่วยแนวนอน และแนวตั้ง

posted under |

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

บทความใหม่กว่า บทความที่เก่ากว่า หน้าแรก

Followers


Recent Comments