ZAMYLA陳:讓我們 樂趣與十五。 十五是你得到的第一場比賽 落實和它的互動性。 現在,不用擔心。 你沒有寫 整個事情你自己。 看看分配代碼,因為一 很多遊戲結構已經 為你設置。 它接受並解析命令行 從用戶和參數創建 董事會根據該輸入。 它會檢查,如果比賽贏和出口 一旦用戶的贏得了比賽。 而贏得比賽,它得到 來自用戶的輸入和 調用的移動功能。 因此,我們將要實現4 十五的遊戲功能, 初始化,繪製,移動和贏了。 首先,讓我們來解決初始化。 在初始化,初始化為我們代表 董事會在2D整數數組。 這是一個叫做全局變量 板尺寸MAX和MAX, 電路板的最大尺寸。 現在,板的實際尺寸 是由用戶,在表示給定 整數d,它可以 小於最大。 但是,在C中,你不能調整大小的數組, 所以你堅持 該最大尺寸。 您在初始化的工作就是填充 董事會的值 用正確的值。 現在,我們已經看到了一維數組,但 怎麼二維數組的工作? 還有的行的索引,零 還收錄一如既​​往,再 列。 你就會填滿你的網格中 降值,就像這樣。 格,0,0,行0,列 0,為8個,柵0,1是7。 這是一個例子,其中 D,小D,是3。 現在,董事會在十五還必須 包含一個空塊,如果你曾經 玩物理遊戲。 但是,董事會是一個整數數組,所以 所有的值必須是整數。 因此,它是由你來決定一個整數 值來表示一個空塊。 要初始化你的板子,你可以使用 環結構,以包含 董事會的起始狀態,其中板 我j表示在該元素 第i行第j列。 他們開始以降序排列,並 記住,如果塊的數量 是奇數,那麼你將不得不 交換的第2的和的位置。 所以,我們有我們的 初始化板。 現在,我們已經初始化我們 板,它的時間來繪製它。 抽獎將打印的當前狀態 板,但你需要確保 在同一順序打印瓷磚 你已經初始化它們。 而且你還需要格式化 您的號碼正確。 因為我們可能有一個數字, 兩位數,那麼你要 前打印一個空格 任何單一的數字。 您可以使用通過使用 佔位符 - 。 但是,請記住我們的空白。 我們不想打印的實際數量 我們已經選擇代表 在電路板的空白,但我們也 不想打印什麼都沒有。 所以,你可以做的就是定義一個符號 或字符來表示 空塊。 在前面的例子中,我選擇了 下劃線,然後你只需打印 每當你到達空白 空間在你的繪製函數。 因此得出將有嵌套​​的for循環。 事情是這樣的。 對於每一行,然後對每個值 行,你要打印的 在這個空間的價值。 一旦印中的所有值 行中,那麼你 可以打印一個新行。 請記住,你的繪製順序 函數必須呼應或鏡像訂單 在你的初始化函數。 現在你初始化板和 你已經畫了,是時候讓 用戶編輯它,使他們的舉動。 所以在Fifteen.c功能, 方案需要來自用戶的輸入和 然後調用移動功能,通過 在瓦數的 用戶希望移動。 現在,要小心。 這是在瓷磚的實際數目 而不是它的實際位置。 所以,你需要搜索的瓷磚的 位置,知道它在哪裡。 現在,你應該只允許用戶 做出的舉動,如果它是合法的。 一個合法的舉動是任何瓷磚是 相鄰的空塊。 這意味著,上面和下面,以 左側和右側。 所以,你需要知道在哪裡 空白的瓷磚也是如此。 現在,你的一舉一動都正在尋找 用戶瓦,但它可能 不是最好的搜索空白瓷磚 因為每次你做的時間 每一次的 用戶希望移動。 所以,相反,它是最好記得在哪裡 空白的磚是用一些 以及命名變量。 所以一旦你允許用戶使他們的 移動,他們很對他們的 的方式來贏得十五的遊戲。 為了贏得十五,瓷磚的遊戲 必須以特定的順序,並 韓元功能檢查 比賽贏。 它返回True,如果比賽贏和 瓷磚是正確的順序, 否則為false。 因此,要贏得十五,瓷磚遊戲 要增大的順序,與 空塊的右下角。 那麼,你如何檢查是否用戶 感動了板到正確的 方向是什麼? 那麼,你會遍歷板和 檢查數值,以確保 他們是在正確的地方。 要做到這一點,你可以使用嵌套的 只是像你一樣的循環 在抽獎和初始化。 有一對夫婦的方法來檢查 和驗證板是否 正確和獲獎 形成,雖然。 如果你從左邊到右邊,開始 從頂行向下,然後每 數目必須大於 前一個。 注意什麼值你已經 雖然選擇了你的空塊。 或者你可以使用一個計數器變量 確保每個值是否到位,如果 你想出某種 公式來表示這一點。 因此,有樂趣試驗 與數學。 一旦你已經想出了一個辦法,返回 真一旦用戶已經贏得了比賽。 但是,如果任何值不正確,返回 假的,用戶必須繼續移動 因為他們還沒有贏得這場比賽。 一旦你實現這個檢查,並沿 與初始化,繪製和移動, 你已經完成十五的遊戲。 恭喜你,玩得開心玩。 我的名字是Zamyla,這是CS50。