c - 用C编写的一个简单的控制台魔方(无需求解,只需设计)

标签 c

所以,作为一个初学者,这个程序让我很头疼。当然,我并不是要求任何完整的代码,我想了解逻辑和我的选择。

在大学里,我们已经涵盖(或将要涵盖)的 C 编程主题不超过动态数组。我们可以使用结构体、函数、数组、指针,但不能使用类,因为这是 C,而不是 C++。

我擅长解决问题,但不擅长解谜题。我尝试过制作一个带有 6 个整数(代表边)的立方体 struct,然后制作一个 立方体 数组。

我可以做的另一件事是制作一个 [6][3][3] 数组,但我认为这会让它太复杂?总结一下我要问的内容,

要求

  • 控制台应用程序
  • 没有花哨的图形或任何东西
  • 没有解决方案
  • 只是一个工作立方体
  • 可以初始化用户输入

级别:业余

这是正确的方法吗?您认为我应该如何旋转线路?再说一次,不需要代码,如果你能解释一下主要逻辑以及我应该如何分解代码甚至伪代码,那就太好了。

你认为我应该使用立方体 rubik[3][3][3] 制作一个完整的立方体吗?或者处理像 cube face[3][3] 这样的脸?

我将添加您需要的任何额外信息来帮助解决我的问题。

编辑 - 附加信息: 这是我的立方体数组(这里的编辑器稍微搞乱了缩进):

int cube[6][3][3] = {{{1,1,1},{1,1,1},{1,1,1}}, 
            {{2,2,2},{2,2,2},{2,2,2}}, 
            {{3,3,3},{3,3,3},{3,3,3}},
            {{4,4,4},{4,4,4},{4,4,4}},
            {{5,5,5},{5,5,5},{5,5,5}},
            {{6,6,6},{6,6,6},{6,6,6}}  };

最佳答案

您所描述的任何一个选项都可以完成任务。如何用逻辑来分解它实际上取决于什么对你来说最有意义。可能有帮助的是写下一个魔方具有哪些特征的列表,然后重新排列,直到你有办法表示该对象的每个部分。你的数组想法是一个很好的开始。

... [6][3][3] array but I think that'd make it too complex?

我认为这很有意义,并且实际上是解决您问题的相当简单的解决方案。我的建议是顺其自然并尝试一下。

关于c - 用C编写的一个简单的控制台魔方(无需求解,只需设计),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19913109/

相关文章:

c - 当编译时宽度未知时,如何编写接受二维数组的函数?

c - 重新分配() : invalid next size

c - 奇怪的 fork() 行为(调用了之前的 printf)

php - 无法使用fopen或php_serial.class.php写入/dev/ttyUSB0

c - 如何在编译时打印结构成员的偏移量?

c - 修改 C 函数中的数组

通过 fork 创建 2 - 4 个子级

c - 右排列文本中的单词

c++ - 等级 2 导致所有机架集体中止

c - 如何在 ARM/Linux 上使用 jemalloc