網站首頁 實用文 書信 面試 實習 實習報告 職場 職責 勵志 名言 熱點
當前位置:人人簡歷網 > 熱點 > 教師文案

暑期軟件公司社會實踐報告

欄目: 教師文案 / 發佈於: / 人氣:1.33W

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();
}

暑期軟件公司社會實踐報告