【发布时间】:2017-01-14 19:27:32
【问题描述】:
我想澄清一下,是的,这是一个与作业相关的问题,不,我不希望你为我做作业。我喜欢编码,我只是在寻求建议。
话虽如此,我正在用 C 语言创建生命游戏。下面是一些代码来表明我一直在努力:
void create_area(void){
int table[24][80];
int i,j;
int xvalue=10,yvalue=10;
table[10][10] = 2;
/*for(j=0; j<24; j++){
for(i=0; i<80; i++){
table[j][i] = 1;
}
}*/
for(j=0; j<24; j++){
for(i=0; i<80; i++){
printf(" ",table[j][i]);
}
printf("\n");
}
/*if(xvalue=10){
if(yvalue=10){
printf("O", table[xvalue][yvalue]);
}
}*/
/*for(j=0; j<24; j++){
for(i=0; i<80; i++){
if(xvalue=0){
if(yvalue=0){
printf("O",table[xvalue][yvalue]);
}
}
}
}*/
}
这里没有显示我的主要方法,但它负责查找参数的数量和参数字符串,并将它们放入我制作的两个数组(一个 x_array 和 y_array)的坐标中。上面显示的方法基本上是在终端中创建网格。 create_area 的参数现在是无效的(因为我只想测试值以查看它是否有效,这就是为什么我有两个 int 变量:xvalue 和 yvalue)。但想法是 create_area 将采用 x 值和 y 值并初始化单元格开始的字符“O”。很多代码都被注释掉了,因为我想弄清楚。
我的问题:如何在我的二维数组中插入一个字符,以便在终端中查看该字符时在网格上的某个位置显示该字符?
到目前为止,我创建了我的二维数组,并使用了两个 for 循环来遍历它并打印空格。但我试图弄清楚如何在表 [10] [10] 上打印一个字符。我尝试了一些东西,但角色不会显示在特定位置,只会显示在屏幕的左下方。我想我错过了一些简单的东西。
任何帮助将不胜感激。
【问题讨论】:
-
对不起,你想在
printf的循环中做什么?你确定它会输出一些可见的字符吗? -
我不清楚您是否没有得到您期望的打印结果,或者您是否正在寻找一种在屏幕上特定位置打印某些内容的方法
-
@Christophe 后者,我正在寻找一种在终端上打印特定位置的方法。我制作了一个 80x24 的数组,并使用了两个 for 循环,使每个 table[j][i] 成为一个空格,所以基本上我的终端中有一个“不可见”的地图,就像一个矩形,我想把一个字符放在某个该地图中的位置。
-
许多专业软件门都有严格的代码格式准则。通常在比较运算符周围、逗号之后、for 循环中的分号之后以及 C 中的
=周围都有空格。当所有内容都挤在一起时,它会更难阅读,也更俗气。空白提供了分离,使事物更容易同化。如果您想以一种真正有帮助的方式减少空格,那么您的格式化风格就很好,就像您支撑事物的方式一样。新行上的大括号(有些人认为这是一个极端)需要滚动太多来阅读代码。 -
"
printf(" ", table[j][i]);" 这是一个严重的代码问题,如果您启用编译器警告 (gcc:-Wall -Werror -Wextra -pedantic-errors) 您会发现并修复许多关键问题,您编写的代码会更安全、更安全符合标准。
标签: c