我想在C语言的基本游戏理念中提供一些帮助。[初学者]

时间:2015-12-09 10:40:08

标签: c console

你好,

我正在尝试获得一些关于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处不起作用,我不知道为什么我无法修复它,我尝试了在线编译器,但他们有代码行和执行的限制。

1 个答案:

答案 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");
}