暑期軟體公司社會實踐報告
2019年7月2日至7月26日,我來到了長沙熱情科技軟體公司進行了二十多天的社會實踐。這些日子,是我人生中的一次難忘經歷,這二十多天裡,我接解了社會,懂得了工作間的樂趣和人際交往的複雜。這期間我用C語言獨立開發了一款推箱子游戲,並得到了同事的好評,下面做個彙報:
C語言程式設計推箱子游戲
#include"stdio.h"
#include"bios.h"
#define LEFT 75
#define RIGHT 77
#define UPPER 72
#define DOWN 80
#define ESC 27
struct Boxss /*定義箱子結構體,其中包含座標屬性*/
{
int x,y;
};
union keyboard /*定義讀取鍵盤碼的共用體型別*/
{
unsigned int iKeyInfo;
char chKeyBit[2];
};
int fnGetKey(void) /*定義讀取鍵盤碼的函式*/
{
union keyboard uniKey1; /*定義讀取鍵盤碼的共用體變數*/
while(bioskey(1)==0); /*檢測使用者是否按鍵*/
Info=bioskey(0); /*讀取按鍵資訊*/
return(yBit[0]==0?yBit[1]:yBit[0]); /*返回ASCII碼或擴充碼*/
}
void main()
{
int iKey,x=11,y=6,tx=11,ty=6; /*x,y為人物移動後坐標,tx,ty為人物移動前座標*/
struct Boxss Box[4]; /*定義箱子數量*/
int chMap[10][10]={ /*用二維陣列定義地圖*/
{0,0,0,0,0,0,0,0,0,0}, /*0表示牆1表示路2表示目標*/
{0,1,0,0,0,0,1,1,1,0},
{0,1,0,2,0,0,1,0,1,0},
{0,1,0,1,0,0,1,0,1,0},
{0,1,1,1,0,0,1,0,1,0},
{0,1,0,0,0,0,1,0,1,0},
{0,1,1,1,1,1,1,0,1,0},
{0,1,0,1,0,0,0,0,2,0},
{0,2,0,1,1,1,1,2,0,0},
{0,0,0,0,0,0,0,0,0,0},
};
int i,j;
Box[0].x=13; /*定義箱子的座標屬性*/
Box[1].x=11;
Box[2].x=14;
Box[3].x=18;
Box[0].y=8;
Box[1].y=7;
Box[2].y=13;
Box[3].y=7;
while(1) /*反覆進行求移動的座標運算*/
{
for(i=0;i<10;i++) /*輸出新地圖(重新整理地圖)*/
{
gotoxy(10,5+i);
for(j=0;j<10;j++)
{
if(chMap[i][j]==0)
printf("#");
if(chMap[i][j]==1)
printf(" ");
if(chMap[i][j]==2)
printf("X");
}
}
j=0; /*判斷是否所有箱子都在目標座標上*/
for(i=0;i<4;i++)
if(chMap[Box[i].y-5][Box[i].x-10]==2)
j++;
if(j==4) /*如果所有箱子都就位輸出"YOU WIN!"退出*/
{
clrscr();
printf("You Win!");
break;
}
for(i=0;i<4;i++) /*在起始(或移動後)的座標輸出箱子*/
{
gotoxy(Box[i].x,Box[i].y);
printf("0");
}
gotoxy(x,y); /*在起始(或移動後)的座標輸出人*/
printf("*b");
tx=x; /*記錄本次移動前的座標*/
ty=y;
iKey=fnGetKey();
if(iKey==LEFT&&chMap[y-5][x-1-10]!=0) /*按讀取的按鍵資訊改變座標如果改變的座標和牆(0)重合則不改變*/
x--;
if(iKey==RIGHT&&chMap[y-5][x+1-10]!=0)
x++;
if(iKey==UPPER&&chMap[y-1-5][x-10]!=0)
y--;
if(iKey==DOWN&&chMap[y+1-5][x-10]!=0)
y++; /*輸入ESC退出並輸出"YOU LOST"*/
if(iKey==ESC)
{
clrscr();
printf("You Lost");
break;
}
for(i=0;i<4;i++) /*如果移動後的人的座標與箱子座標重合,則改變箱子座標向前一格*/
if(Box[i].x==x&&Box[i].y==y)
{
Box[i].x+=(x-tx);
Box[i].y+=(y-ty);
if(chMap[Box[i].y-5][Box[i].x-10]==0) /*如果移動後的箱子座標會出現在牆上,則使箱子座標和人座標都返回移動前的值*/
{
Box[i].x-=(x-tx);
Box[i].y-=(y-ty);
x=tx;
y=ty;
}
break;
}
clrscr();
}
getch();
}
-
健康遊戲課教案模板7篇
提前準備好詳細的教案可以讓我們更好地反思和總結教學經驗,不斷提升自己的教學能力,優秀的教案應當考慮到學生的學習差異,提供個性化的學習任務,下面是本站小編為您分享的健康遊戲課教案模板7篇,感謝您的參閱。健康遊戲課教案篇1活動目標:1.鍛鍊幼兒的上肢力量和身體...
-
國小語文二年級下冊教案優秀6篇
一份引人入勝的教案可以讓學生在學習中體驗到成功和成長,教案能夠通過巧妙的教學活動和內容設計激發學生的學習興趣和好奇心,下面是本站小編為您分享的國小語文二年級下冊教案優秀6篇,感謝您的參閱。國小語文二年級下冊教案篇1一、授課時間:二、教學目標:1、會認15...
-
《保護牙齒》健康教案8篇
教案的編寫要注重培養學生的資訊科技和媒體素養,教案應該根據學生的學習水平和興趣愛好,設計具有吸引力的教學活動,激發學生的學習興趣,以下是本站小編精心為您推薦的《保護牙齒》健康教案8篇,供大家參考。《保護牙齒》健康教案篇1活動目標:1.初步瞭解齲的齒危害和形...
-
紙的藝術領域教案7篇
編寫教案能夠幫助我們對教學內容進行深入思考和準備,提前解決可能遇到的問題和困難,通過教案的編寫,教師可以更好地選擇教學方法和教學資源,下面是本站小編為您分享的紙的藝術領域教案7篇,感謝您的參閱。紙的藝術領域教案篇1活動目標:1、理解兒歌內容,交流討論學說兒...