張鑫源 150809109
我對於這次C語言程序的基本語句能完成功能的體會是能夠通過衆多簡單的C語言語句編寫出一個具有功能的程序,上學期學習的學習的是最基礎的命令,並有進行過如此複雜的編程,這次我們自己嘗試編寫的飛機遊戲,讓我受益匪淺,在這個程序中,我們運用了上學期的知識,先以INCLUDE爲開頭,然後構建基礎,然後追加各種設定,讓其成爲了一個較爲複雜的程序,最後成功使其成爲一款簡單的遊戲。
雖然在上個學期中,我們已經學習了《C 語言程序設計》這門課,但是我所學的知識最多也就是在做作業的時候纔會用到,平時沒有什麼練習的機會,這次的課程設計是我第一次通過自己構思,和同學討論並且不斷查閱資料來設計一項程序。這次設計,不僅鞏固了我以前所學的知識,還讓我對c語言有了更深一步的瞭解,掌握了更多的技巧和技能。 C語言是計算機程序設計的重要理論基礎,在我們以後的學習和工作中都有着十分重要的地位。要學好這種語言,僅僅學習課本上的知識是不夠的,還要經常自己動手,有較強的實踐能力。只有多動手,經常編寫程序,才能發現我們學習上的漏洞和自己的不足,並在實踐中解決這些問題,不斷提高自己轉化知識的能力。
#include.h>
#include.h>
#include.h>
#include.h>
#define N 35
void print(int [][N]);//輸出函數
void movebul(int [][N]);//子彈移動函數
void movepla(int [][N]);//敵機移動函數
void setting(void);//設置函數
void menu(void);//菜單函數
int scr[22][N]={0},pl=9,width=24,speed=3,density=30,score=0,death=0;//全局變量:界面、我機初始位、界面寬度、敵機速度、敵機密度、得分、死亡
main(void)
{
menu();
int i=0,j=0;
scr[21][pl]=1;
scr[0][5]=3;
while(1){if(kbhit())switch(getch())//控制左右移動和進入菜單
{case \'a\':case \'A\':if(pl>0)scr[21][pl]=0,scr[21][--pl]=1;break;
case \'d\':case \'D\':if(pl)scr[21][pl]=0,scr[21][++pl]=1;<>
break;
case \'w\':case \'W\':scr[20][pl]=2;break;case 27 :setting();
break;
}
if(++j%density==0)//控制生產敵機的速度
{j=0;srand(time(NULL));
scr[0][rand()%width]=3;
}
if(++i%speed==0)//控制敵機移動速度,相對於子彈移動速度
movepla(scr);
movebul(scr);
print(scr);
if(i==30000)i=0;//以免i 越界
}
}
void print(int a[][N]){system(\"cls\");
int i,j;
for(i=0;i<22;i++){a[i][width-1]=4;< p="\"\"">
for(j=0;j> \");;j++){if(a[i][j]==0)printf(\\\\\\\\\\\\\\\\\\\\\>
switch(getche())
{
case \'1\':width=34;break;
case \'2\':width=24;break;
default:printf(\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n 錯誤,請重新選擇...\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\");
sw=1;
}
}
while(sw);
do
{
sw=0;
printf(\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n 請選擇敵機密度:1.大2.中3.小>> \");
switch(getche())
{
case \'0\':density=10;
break;
case \'1\':density=20;
break;case \'2\':density=30;
break;case \'3\':density=40;break;
default:printf(\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n 錯誤,請重新選擇...\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\");
sw=1;
}
}
while(sw);
do
{
sw=0;
printf(\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n 敵機的飛行速度:1.快2.中3.慢>> \");
switch(getche())
{
case \'1\':speed=2;
break;
case \'2\':speed=3;
break;
case \'3\':speed=4;
break;
default:printf(\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n 錯誤,請重新選擇...\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\");
sw=1;
}
}
while(sw);
for(i=0;i<22;i++)< p="\"\"">
for(j=0;j<45;j++)< p="\"\"">
scr[i][j]=0;
scr[21][pl=9]=1;
printf(\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n 按任意鍵保存...\");
getch();
}
void menu(void)
{
printf(\"說明:按A D 控制我機左右飛行,W 發射子彈\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n 設置:請按Esc\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n 開始遊戲:任意鍵\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n\");
if(getch()==27)setting();
}