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