ZAMYLA จัน: Let 's ได้ สนุกสนานกับสิบห้า สิบห้าเป็นเกมแรกที่คุณได้รับ ในการดำเนินการและเป็นแบบโต้ตอบ ตอนนี้ไม่ต้องกังวล คุณไม่ต้องเขียน สิ่งที่ทั้งตัวเอง ดูรหัสการกระจายเพราะ จำนวนมากของโครงสร้างเกมที่มีอยู่แล้ว การตั้งค่าสำหรับคุณ มันรับและแยกวิเคราะห์บรรทัดคำสั่ง การโต้แย้งจากผู้ใช้และสร้าง กระดานบนพื้นฐานของข้อมูลที่ มันจะตรวจสอบถ้าเป็นเกมที่ได้รับรางวัลและออกจาก เมื่อผู้ได้รับรางวัลเกม และที่จะชนะเกมจะได้รับ การป้อนข้อมูลจากผู้ใช้และ เรียกฟังก์ชันการย้าย ดังนั้นเรากำลังจะได้รับการดำเนินการสี่ ฟังก์ชั่นสำหรับการเล่นเกมของสิบห้าที่ init วาด, ย้าย, และได้รับรางวัล ก่อนขอต่อสู้ init ใน init สำหรับเริ่มต้นเราเป็นตัวแทนของ คณะกรรมการในอาร์เรย์จำนวนเต็ม 2D และนี่คือตัวแปรทั่วโลกที่เรียกว่า คณะกรรมการที่มีขนาด MAX และแม็กซ์ ขนาดสูงสุดของคณะกรรมการ ตอนนี้มิติที่เกิดขึ้นจริงของคณะกรรมการ จะได้รับจากผู้ใช้เป็นตัวแทนในการ จำนวนเต็มงซึ่งสามารถ จะน้อยกว่า MAX แต่ใน C คุณไม่สามารถปรับขนาดอาร์เรย์ เพื่อให้คุณติดกับ ที่ขนาดสูงสุด งานของคุณใน init คือการเติม ค่าของคณะกรรมการ ด้วยค่าที่ถูกต้อง ตอนนี้เราได้เห็นอาร์เรย์ 1D แต่ วิธีการทำอาร์เรย์ 2 มิติการทำงานหรือไม่ มีดัชนีของแถวที่เป็นศูนย์ การจัดทำดัชนีเป็นเสมอและจากนั้นยังมี คอลัมน์ และคุณจะกรอกตารางของคุณใน ค่าลงเช่นเดียวกับนี้ ตาราง, 0, 0, 0 แถวคอลัมน์ 0, 8, ตาราง 0, 1 คือ 7 นี้เป็นตัวอย่างที่ วันน้อย d, 3 ขณะนี้คณะกรรมการในสิบห้ายังต้อง มีกระเบื้องที่ว่างเปล่าถ้าคุณเคย เล่นกับเกมทางกายภาพ แต่คณะกรรมการที่เป็นอาร์เรย์จำนวนเต็มดังนั้น ค่าทั้งหมดต้องเป็นจำนวนเต็ม ดังนั้นจึงขึ้นอยู่กับคุณที่จะตัดสินใจว่าจำนวนเต็ม ค่าจะเป็นตัวแทนของกระเบื้องที่ว่างเปล่า ในการเริ่มต้นของคณะกรรมการของคุณคุณสามารถใช้ โครงสร้างห่วงที่จะมี รัฐเริ่มต้นของคณะกรรมการในกรณีที่คณะ ฉันเจแสดงให้เห็นถึงองค์ประกอบที่ i แถวและคอลัมน์เจ พวกเขาเริ่มต้นในการสั่งซื้อจากน้อยไปมากและ จำไว้ว่าถ้าจำนวนของกระเบื้อง เป็นคี่แล้วคุณจะต้อง สลับตำแหน่งของ 2 และ 1 จึงมีเรามีของเรา บอร์ดเริ่มต้น ตอนนี้ที่เราได้เริ่มต้นของเรา คณะกรรมการก็ถึงเวลาที่จะวาดมัน วาดจะพิมพ์สถานะปัจจุบันของ คณะกรรมการ แต่คุณต้องให้แน่ใจว่า พิมพ์กระเบื้องในลำดับเดียวกัน ที่คุณได้เริ่มต้นพวกเขา และคุณยังต้องจัดรูปแบบ หมายเลขของคุณได้อย่างถูกต้อง เพราะเราอาจจะมีหลักเดียวและ เลขสองหลักแล้วคุณต้องการที่จะ พิมพ์ที่เว้นก่อน ตัวเลขหลักเดียวใด ๆ คุณใช้ว่าด้วยการใช้ ตัวยึด - แต่จำไว้ว่าพื้นที่ว่างของเรา เราไม่ต้องการที่จะพิมพ์จำนวนที่เกิดขึ้นจริง ที่เราได้รับเลือกให้เป็นตัวแทนของ พื้นที่ว่างเปล่าที่อยู่ในคณะกรรมการ แต่เรายัง ไม่ต้องการที่จะพิมพ์อะไรเลย ดังนั้นสิ่งที่คุณสามารถทำได้คือการกำหนดสัญลักษณ์ หรือตัวอักษรที่จะเป็นตัวแทน กระเบื้องที่ว่างเปล่า ในตัวอย่างที่แล้วที่ผมเคยได้รับการแต่งตั้ง ขีดและจากนั้นคุณเพียงแค่พิมพ์ ว่าเมื่อใดก็ตามที่คุณไปถึงที่ว่างเปล่า พื้นที่ในการทำงานวาดของคุณ ดังนั้นวาดจะได้ซ้อนกันกับลูป บางอย่างเช่นนี้ สำหรับแต่ละแถวแล้วค่าในแต่ละ แถวที่คุณกำลังจะพิมพ์ ค่าในพื้นที่นี้ เมื่อคุณพิมพ์ค่าทั้งหมด ในแถวแล้วคุณ สามารถพิมพ์บรรทัดใหม่ โปรดจำไว้ว่าเพื่อให้การวาดของคุณ ฟังก์ชั่นจะต้องสะท้อนกระจกหรือการสั่งซื้อ ในฟังก์ชั่นเริ่มต้นของคุณ ตอนนี้คุณเริ่มต้นที่คณะกรรมการและ ที่คุณได้วาดมันก็ถึงเวลาที่จะปล่อยให้ ผู้ใช้แก้ไขได้และให้ย้ายของพวกเขา ดังนั้นในการทำงาน Fifteen.c, โปรแกรมจะนำข้อมูลจากผู้ใช้และ แล้วเรียกฟังก์ชันการย้ายผ่าน ในจำนวนของกระเบื้องที่ ผู้ใช้ต้องการที่จะย้าย ตอนนี้ต้องระวัง ซึ่งเป็นจำนวนที่เกิดขึ้นจริงของกระเบื้อง และไม่อยู่ในตำแหน่งที่แท้จริงของมัน ดังนั้นคุณจะต้องค้นหากระเบื้อง ตำแหน่งที่จะทราบว่ามันเป็น ตอนนี้คุณควรจะช่วยให้ผู้ใช้ เพื่อให้ย้ายถ้ามันถูกต้องตามกฎหมาย ย้ายตามกฎหมายเป็นกระเบื้องใด ๆ ที่เป็น อยู่ติดกับกระเบื้องที่ว่างเปล่า ซึ่งหมายความว่าบนและด้านล่างเพื่อ ด้านซ้ายและด้านขวา ดังนั้นคุณจะต้องทราบว่า กระเบื้องที่ว่างเปล่าเช่นกัน ตอนนี้สำหรับทุกความเคลื่อนไหวที่คุณกำลังค้นหา ผู้ใช้กระเบื้อง แต่มันอาจจะเป็น ไม่ได้ดีที่สุดในการค้นหากระเบื้องที่ว่างเปล่า ทุกครั้งเพราะคุณกำลังทำมัน ทุกครั้งเดียว ผู้ใช้ต้องการที่จะย้าย ดังนั้นแทนที่จะจะดีที่สุดที่จะจำที่ กระเบื้องที่ว่างเปล่าคือการใช้บางส่วน ตัวแปรที่ดีชื่อ ดังนั้นเมื่อคุณอนุญาตให้ผู้ใช้เพื่อให้พวกเขา ย้ายพวกเขาเป็นอย่างดีในของพวกเขา วิธีที่จะชนะในเกมของสิบห้า ที่จะชนะเกมของสิบห้ากระเบื้อง ต้องอยู่ในลำดับที่เฉพาะเจาะจงและ ฟังก์ชั่นได้รับรางวัลจะตรวจสอบว่า เป็นเกมที่ได้รับรางวัล มันจะกลับจริงถ้าเป็นเกมที่ได้รับรางวัลและ กระเบื้องที่อยู่ในลำดับที่ถูกต้อง และ False อย่างอื่น เพื่อที่จะชนะเกมของสิบห้ากระเบื้อง จะต้องมีการลำดับที่เพิ่มขึ้นด้วย กระเบื้องที่ว่างเปล่าที่มุมล่างขวา ดังนั้นวิธีที่คุณตรวจสอบว่าผู้ใช้ ได้ย้ายเข้ามาในคณะกรรมการที่เหมาะสม การปฐมนิเทศ ดีคุณจะย้ำกว่าที่คณะกรรมการและ ตรวจสอบค่าเพื่อให้แน่ใจว่า พวกเขาอยู่ในสถานที่ที่เหมาะสม การทำเช่นนี้คุณสามารถใช้ซ้อนกัน กับลูปเช่นเดียวกับคุณได้ ในการวาดและใน init มีสองวิธีในการตรวจสอบเป็น และตรวจสอบไม่ว่าจะเป็นคณะกรรมการที่เป็น ที่ถูกต้องและชนะ การสร้าง แต่ ถ้าคุณไปจากซ้ายไปขวาเริ่มต้น จากแถวบนสุดลงแล้วทุก จำนวนต้องมากกว่า ก่อนหน้าหนึ่ง โปรดใช้ความระมัดระวังเกี่ยวกับสิ่งที่สำคัญกับคุณได้ เลือกสำหรับกระเบื้องที่ว่างเปล่าของคุณแม้ว่า หรือคุณอาจจะใช้ตัวแปรเคาน์เตอร์ไป ให้แน่ใจว่าแต่ละค่าอยู่ในสถานที่ถ้า คุณมากับการจัดเรียงของบางอย่าง สูตรนี้จะเป็นตัวแทนของ เพื่อให้มีความสนุกสนานในการทดลอง กับคณิตศาสตร์ เมื่อคุณได้มาด้วยวิธีการกลับมา จริงเมื่อผู้ได้รับรางวัลเกม แต่ถ้าค่าใด ๆ ที่ไม่ถูกต้องกลับ เท็จผู้ใช้มีการดำเนินการย้าย เพราะพวกเขายังไม่ได้รับเกม เมื่อคุณดำเนินการตรวจสอบเรื่องนี้และพร้อม เริ่มต้นด้วยการวาดและการย้าย คุณเสร็จสิ้นเกมสิบห้า ขอแสดงความยินดีและมีความสนุกสนานในการเล่น ชื่อของฉันคือ Zamyla และนี่คือ CS50