你好,
我正在尝试获得一些关于C的经验,我在bigginer级别。
如果你愿意,我需要帮助..
1)id喜欢制作一个基于控制台的游戏,所以我有一个char 2d阵列,我想首先让我的游戏有一些边界..意思是:第一行n'最后一行,第一行'第一行,我想放一些星号,这样我就可以制作一个简单的边框。
这是我尝试过的:
//include etc
//main..
//int i,j
char myarray[22][76]={{' '}};
for(i=0;i>22;i++){
for(j=0;j<76;j++){
if(i==0 || i==22)
myarray[i][j]='*';
else if(j==0 && i>0 || j==75 && i>0)
myarray[i][j]='*';
else
myarray[i][j]='';
}
printf("%d",myarray[i][j]);
printf("\n");
}
- 我认为我必须在条件中擦除i> 0,因为如果直到i> 0,程序将不会进入其他,导致if条件。 - 这可能是完全错误的,但这就是我的想法。
2) 因为我将有一个玩家和宝藏和陷阱,我希望每次我的玩家移动整个屏幕重绘。但我不想从一开始就重新绘制我希望它重绘,以便它可以显示游戏的当前状态。恩。如果玩家找到了一个宝藏,那么必须在没有宝藏并且玩家处于当前位置的情况下绘制屏幕。
我是否需要相同功能的(边框,陷阱,宝藏,玩家)?以及如何在每次移动中实现重绘屏幕?
我运行Windows 10并且codeblocks + netbeans在10处不起作用,我不知道为什么我无法修复它,我尝试了在线编译器,但他们有代码行和执行的限制。
答案 0 :(得分:1)
//include etc
//main..
//int i,j
char myarray[22][76] = { { ' ' } };
for (i = 0; i<22; i++){
for (j = 0; j<76; j++){
if (i == 0 || i == 21)
myarray[i][j] = '*';
else if (j == 0 || j == 75)
myarray[i][j] = '*';
printf("%c", myarray[i][j]);
}
printf("\n");
}