https://

zhuanlan。zhihu。com/p/24

652156

哈哈這個老師比我寫的好哦,推薦你們看看

讓我們先來看一個例子:

按WASD可以移動螢幕上的小人:

C語言並不是只能做數學題

C語言並不是只能做數學題

C語言並不是只能做數學題

C語言並不是只能做數學題

原始碼如下:

#include

#include

using namespace std;

void Reset()

{

system(“cls”);

}

void Paint(char* buffer)

{

Reset();

std::cout<

}

void Clear(char* buffer)

{

for(int i = 0;i < 10;i++)

{

for(int j = 0; j<80; j++)

{

buffer[i*80+j] = ‘ ’;

}

}

buffer[80*10] = 0;

}

void paintboy(char* buffer, int x, int y)

{

buffer[y*80+x] = ‘o’;

buffer[(y+1)*80+x] = ‘+’;

buffer[(y+1)*80+x-1] = ‘-’;

buffer[(y+1)*80+x+1] = ‘-’;

buffer[(y+2)*80+x] = ‘^’;

}

int main()

{

char buffer[80*10+1];

Clear(buffer);

int x = 5, y= 7;

while(true)

{

Clear(buffer);

paintboy(buffer,x,y);

Paint(buffer);

char in = getch();

switch(in)

{

case ‘w’: y——; break;

case ‘a’: x——; break;

case ‘s’: y++; break;

case ‘d’: x++; break;

}

}

return 0;

}

啊,當然,沒有處理溢位,跑螢幕外就會崩潰,不過能看懂這個程式的人,自然知道怎麼修復這個bug吧

所以說,其實還是因為學校開的c語言只教數學題

而且我覺得並不能怪學生想象力不豐富,老實說這個例子也不是我想出來的,不過碰巧,我當年在小霸王上學FBASIC的時候,第一個例子就是這個(只是被我改寫成了c語言的模式)

另外,真大神級的純控制檯遊戲,有個東西叫做nethack,有興趣的程式設計師朋友可以試試看