>> 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。