亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 圖形模式下的搬運工.txt

?? c語言的常用函數以及一些小游戲代碼,如文曲星小游戲、五子棋游戲等
?? TXT
字號:
圖形模式下的搬運工
程序在tc3.0下編譯通過. 回車鍵

選關,我只做了兩關, r鍵重新開始

p鍵悔步,只能悔五步啊.不過你可以

改#define STEPMAX的值

#define  MAX  2   /*游戲中總關數*/
#define  STARTX   180
#define  STARTY    80
#define  BKCOLOR  BLACK
#define  MANCOLOR RED
#define  OBJECTCOLOR  YELLOW
#define TIMEINT   2
#define STARNUM  300
#define STEPMAX  5
#include<string.h>
#include<bios.h>
#include<stdio.h>
#include<dos.h>
#include<graphics.h>
#include<conio.h>
#include<time.h>
#include<stdlib.h>
#include<stdio.h>
#define Key_R 0x1372
#define Key_Up  0x4800
#define Key_Enter 0x1c0d
#define Key_Down  0x5000
#define Key_P     0x1970
#define Key_Esc   0x11b
#define Key_Right  0x4d00
#define Key_Left  0x4b00

typedef struct star
{
int x;
int y;
int c;
}Star;
Star s[STARNUM];

typedef struct record
{
char name[20];
int second;
struct time t;
struct date d;
}Record;
Record r[MAX];

typedef struct c
{
int x;
int y;
}Add;

typedef struct a
{
int x;
int y;
}Player;
Player p;

char name[20]; /*進入游戲時記錄玩家的姓名*/
time_t t1,t2;  /*游戲結束時的時間*/
int Ide;          /*開始進入游戲時,選擇菜單時返的功能號(1,2,3)*/
int MissionNum;   /*玩家正在玩的關數*/
int BoxNum;    /*目的地的個數*/
int Key;          /*玩家按鍵*/
int map[10][10];  /*地圖.(空=0),(人=1),(箱子=2),(墻=3),(目的地=4),(人+目的地=5),(箱子+目的地=6)*/
int StepNum;
int DirectionKey;            /*用來表示方向鍵最后一次按鍵*/
int BoxMove[STEPMAX];
int Step[STEPMAX];

/*函數定義*/
void InputName();
void Init();
void MainMenu();
void JudgeRecord();
void WriteRecord();
void JudgeIde();
void DrawMenu(int );
void Game();
void InitMission(int );
void NextMission();
void InitPic(int ,int ,int );
int  Move(Add );
void DrawWall(int ,int );
void DrawBack(int ,int );
void DrawBox(int ,int );
void DrawObject(int ,int );
void DrawMan(int ,int );
void DrawStar();
int JudgeWin();
void InitMission1();
void InitMission2();
int  TimeCome();
void ChangeStar();
void InputName();
void ViewRecords();
void DeleteRecords();
void RegisterStep();
void ReverselyMove();
void MoveBack(Add );

void main()
{
InputName();
Init();       /*驅動顯卡*/
srand(time(&t1));
MainMenu();   /*畫開始菜單(1.start game 2.view records 3.delete records 4.exit game)*/
}

void InputName()
{
char c;
clrscr();
  do
    {
    printf("\n\nPlease input your name:");
    scanf("%s",name);
    printf("Are you sure the name right(Y/N):");
      do
 {
 c=getch();
 }while(c!='Y'&&c!='y'&&c!='N'&&c!='n');
    }while(c!='Y'&&c!='y');
}
void Init()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\tc");
}


void MainMenu()
{
setbkcolor(BKCOLOR);
cleardevice();
/*DrawStar();   /*畫開始菜單的背景畫面*/
DrawStar();
Ide=0,Key=0;
DrawMenu(Ide);
do
  {
  if(bioskey(1))   /*有鍵按下則處理按鍵*/
       {
       Key=bioskey(0);
       switch(Key)
     {
     case Key_Down:  {Ide++;Ide=Ide%4;DrawMenu(Ide);break;}
     case Key_Up:    {Ide--;Ide=(Ide+4)%4;DrawMenu(Ide);break;}
     }
       }
  else {if(TimeCome()) ChangeStar();}            /*改變背景*/
  }while(Key!=Key_Enter);
JudgeIde();         /*根據Ide運行不同的程序*/
}

void JudgeIde()
{
switch(Ide)
   {
   case 0:Game();break;
   case 1:{ViewRecords();bioskey(0);MainMenu();break;}
   case 2:{DeleteRecords();ViewRecords();bioskey(0);MainMenu();break;}
   case 3:exit(0);
   }
}

void Game()
{
int i,j,flag;
Add ad;
MissionNum=0;
NextMission();
do
   {
   flag=0;
   Key=bioskey(0);
   switch(Key)
  {
   case Key_Enter:{NextMission();time(&t1);break;}
   case Key_Up:{ad.x=-1;ad.y=0;flag=1;DirectionKey=Key;break;}
   case Key_Down:{ad.x=1;ad.y=0;flag=1;DirectionKey=Key;break;}
   case Key_Left:{ad.x=0;ad.y=-1;flag=1;DirectionKey=Key;break;}
   case Key_Right:{ad.x=0;ad.y=1;flag=1;DirectionKey=Key;break;}
   case Key_R:{MissionNum--;NextMission();break;}
   case Key_Esc:{MainMenu();break;}
          case Key_P:{ReverselyMove();break;}
  }
   if(flag==1)
       {if(Move(ad)) {RegisterStep(); if(JudgeWin()) {JudgeRecord();NextMission();}}}
   }while(1);
}

void InitMission(int n)
{
int i,j;
for(i=0;i<10;i++)
  for(j=0;j<10;j++)
    map[i][j]=0;
switch(n)
   {
    case 1:InitMission1();break;  /*第一關*/
    case 2:InitMission2();break;  /*第二關*/
   }
}

void InitPic(int n,int i,int j)
{
switch(n)
   {
   case 0:DrawBack(i,j);break;
   case 1:DrawMan(i,j);break;
   case 2:DrawBox(i,j);break;
   case 3:DrawWall(i,j);break;
   case 4:DrawObject(i,j);break;
   case 5:DrawMan(i,j);break;
   case 6:DrawBox(i,j);break;
   }
}

void NextMission()
{
int i,j;
if(MissionNum+1>MAX)  MissionNum=1;
else MissionNum++;
InitMission(MissionNum);
setbkcolor(BKCOLOR);
cleardevice();
for(i=0;i<10;i++)
  for(j=0;j<10;j++)
    InitPic(map[i][j],i,j);
switch(MissionNum)
  {
  case 1:outtextxy(200,230,"Mission 1");break;
  case 2:outtextxy(200,230,"Mission 2");break;
  }
time(&t1);
for(i=0;i<STEPMAX;i++)
  {Step[i]=BoxMove[i]=0;}
StepNum=0;
}


int Move(Add a)
{
int flag;
int i=StepNum%STEPMAX;
switch(map[p.x+a.x][p.y+a.y])  /*看下一位置為什么*/
    {
    case 0:{map[p.x][p.y]-=1;InitPic(map[p.x][p.y],p.x,p.y);
    p.x=p.x+a.x;p.y=p.y+a.y;
    map[p.x][p.y]+=1;InitPic(map[p.x][p.y],p.x,p.y);flag=1;break;}
    case 2:{if(map[p.x+2*a.x][p.y+2*a.y]==0||map[p.x+2*a.x][p.y+2*a.y]==4)
       {map[p.x][p.y]-=1;map[p.x+a.x][p.y+a.y]=1;map[p.x+2*a.x][p.y+2*a.y]+=2;
       InitPic(map[p.x][p.y],p.x,p.y);
       InitPic(map[p.x+a.x][p.y+a.y],p.x+a.x,p.y+a.y);
       InitPic(map[p.x+2*a.x][p.y+2*a.y],p.x+2*a.x,p.y+2*a.y);
       p.x=p.x+a.x;p.y=p.y+a.y;flag=1;BoxMove[i]=1;}
     else flag=0;
     break;}
    case 3:flag=0;break;
    case 4:{map[p.x][p.y]-=1;InitPic(map[p.x][p.y],p.x,p.y);
    p.x=p.x+a.x;p.y=p.y+a.y;
    map[p.x][p.y]+=1;InitPic(map[p.x][p.y],p.x,p.y);flag=1;break;}
    case 6:{if(map[p.x+2*a.x][p.y+2*a.y]==0||map[p.x+2*a.x][p.y+2*a.y]==4)
       {map[p.x][p.y]-=1;map[p.x+a.x][p.y+a.y]=5;map[p.x+2*a.x][p.y+2*a.y]+=2;
       InitPic(map[p.x][p.y],p.x,p.y);
       InitPic(map[p.x+a.x][p.y+a.y],p.x+a.x,p.y+a.y);
       InitPic(map[p.x+2*a.x][p.y+2*a.y],p.x+2*a.x,p.y+2*a.y);
       p.x=p.x+a.x;p.y=p.y+a.y;flag=1;BoxMove[i]=1;}
     else flag=0;
     break;}
    }
return flag;
}

void DrawWall(int i,int j)
{
DrawBack(i,j);
setfillstyle(9,1);
bar(STARTX+20*j-9,STARTY+20*i-9,STARTX+20*j+9,STARTY+20*i+9);
}

void DrawMan(int i,int j)
{
DrawBack(i,j);
setcolor(MANCOLOR);
circle(STARTX+20*j,STARTY+20*i,9);
arc(STARTX+20*j-3,STARTY+20*i-2,20,160,3);
arc(STARTX+20*j+4,STARTY+20*i-2,20,160,3);
arc(STARTX+20*j,STARTY+20*i-2,220,320,7);
}

void DrawBack(int i,int j)
{
setfillstyle(1,BKCOLOR);
bar(STARTX+20*j-9,STARTY+20*i-9,STARTX+20*j+9,STARTY+20*i+9);
}

void DrawObject(int i,int j)
{
DrawBack(i,j);
setcolor(OBJECTCOLOR);
line(STARTX+20*j-9,STARTY+20*i,STARTX+20*j+9,STARTY+20*i);
line(STARTX+20*j-9,STARTY+20*i-9,STARTX+20*j+9,STARTY+20*i+9);
line(STARTX+20*j-9,STARTY+20*i+9,STARTX+20*j+9,STARTY+20*i-9);
}

void DrawBox(int i,int j)
{
DrawBack(i,j);
setfillstyle(9,3);
bar(STARTX+20*j-9,STARTY+20*i-9,STARTX+20*j+9,STARTY+20*i+9);
}

void DrawMenu(int j)
{
int n;
char *s[4]={"1.Start Game","2.View Records","3.Delete Records","4.Exit Game"};
settextstyle(0,0,1);
setcolor(GREEN);
for(n=0;n<4;n++)
outtextxy(250,170+n*20,s[n]);
setcolor(RED);
outtextxy(250,170+j*20,s[j]);
}

void DrawStar()
{
int w,h,i,dotx,doty,color,maxcolor;
w=getmaxx();
h=getmaxy();
maxcolor=getmaxcolor();
for(i=0;i<STARNUM;i++)
  {
  s[i].x=1+random(w-1);
  s[i].y=1+random(h-1);
  s[i].c=random(maxcolor);
  putpixel(s[i].x,s[i].y,s[i].c);
  }
}
void ChangeStar()
{
int i,maxcolor;
maxcolor=getmaxcolor();
for(i=0;i<STARNUM;i++)
  {
   s[i].c=random(maxcolor);
   putpixel(s[i].x,s[i].y,s[i].c);
  }
}

int TimeCome()
 {

  static long tm, old;
  tm=biostime(0,tm);
  if(tm-old<TIMEINT) return 0;
  else
  {
   old=tm; return 1;
  }
 }

int JudgeWin()
{
int n=0,i,j;
for(i=0;i<10;i++)
  for(j=0;j<10;j++)
    if(map[i][j]==6) n++;
if(n==BoxNum)  return 1;
else return 0;
}


void InitMission1()  /*第九關*/
{
int i,j;
for(i=0;i<10;i++)
  for(j=0;j<10;j++)
     map[i][j]=0;
for(i=0;i<=5;i++)
  map[0][i]=3;
for(i=5;i<=7;i++)
  {map[2][i]=map[i-1][1]=3;}
for(i=1;i<=4;i++)
  {map[6][i]=map[5][i+3]=map[i][0]=3;}
map[3][7]=map[4][7]=map[1][5]=3;
for(i=2;i<=4;i++)
   map[2][i]=2;
map[3][4]=map[4][5]=2;
for(i=2;i<=3;i++)
   {map[3][i]=map[4][i]=4;}
map[4][4]=4;
p.x=3;p.y=5;
map[3][5]=1;
BoxNum=5;
}

void InitMission2()
{
int i,j;
for(i=0;i<10;i++)
  for(j=0;j<10;j++)
     map[i][j]=0;
for(i=1;i<=5;i++)
   {map[0][i]=map[6][i]=3;}
for(i=2;i<=4;i++)
   {map[1][i+3]=map[i][7]=map[i+2][5]=map[i][0]=3;}
map[1][1]=map[2][1]=map[5][0]=map[5][5]=map[4][6]=map[6][0]=3;
map[2][4]=map[3][3]=map[4][2]=map[4][3]=2;
map[2][3]=map[3][2]=map[3][4]=map[4][4]=4;
p.x=1;p.y=3;
map[1][3]=1;
BoxNum=4;
}


void ViewRecords()
{
FILE *fp;
int i;
setbkcolor(BKCOLOR);
cleardevice();
if((fp=fopen("record","r"))==NULL)
  {
  printf("\nerror on open file!");
  getch();
  exit(1);
  }
gotoxy(1,1);
printf("\n\t\t\tRecord Information\n");
printf("Record-holder  Achievement(s)\t   Time(h:m:s)\t\tDate(y/m/d)");
for(i=0;i<MAX;i++)
  {fseek(fp,i*sizeof(Record),0);
  fread(&r[i],sizeof(Record),1,fp);
  printf("\n%-10s\t%d\t\t   %02d:%02d:%02d\t\t%02d/%02d/%02d",r[i].name,r[i].second,r[i].t.ti_hour,r[i].t.ti_min,r[i].t.ti_sec,r[i].d.da_year,r[i].d.da_mon,r[i].d.da_day);}
fclose(fp);
gotoxy(10,25);
printf("Press any key to return mainmenu...");
}

void DeleteRecords()
{
int i;
FILE *fp;
fp=fopen("record","w");
for(i=0;i<MAX;i++)
 {
 strcpy(r[i].name,"nameless");
 r[i].second=0;
 gettime(&r[i].t);
 getdate(&r[i].d);
 }
for(i=0;i<MAX;i++)
 fwrite(&r[i],sizeof(Record),1,fp);
fclose(fp);
}

void JudgeRecord()
{
int i=MissionNum-1;
time(&t2);
if(r[i].second==0||difftime(t2,t1)<r[i].second)
   {
    gotoxy(10,3);printf("\t\tYou have broken the record");
    r[i].second=difftime(t2,t1);
    strcpy(r[i].name,name);
    gettime(&r[i].t);
    getdate(&r[i].d);
    WriteRecord();
    }
else
  {gotoxy(10,3);printf("\t\tYou have pass this mission");}
gotoxy(10,4);
printf("\t\tpress any key continue...");
getch();
getch();
}

void WriteRecord()
{
FILE *fp;
int i=MissionNum-1;
fp=fopen("record","rt+");
fseek(fp,i*sizeof(Record),0);
fwrite(&r[MissionNum-1],sizeof(Record),1,fp);
fclose(fp);
}

void RegisterStep()
{
int i;
StepNum++;
i=(StepNum-1)%STEPMAX;
Step[i]=DirectionKey;
}


void ReverselyMove()
{
int i;
Add ad;
i=(StepNum-1)%STEPMAX;
if(Step[i]==0)  return;
else 
   {
   switch(Step[i])
  {
   case Key_Up:{ad.x=1;ad.y=0;MoveBack(ad);break;}
   case Key_Down:{ad.x=-1;ad.y=0;MoveBack(ad);break;}
   case Key_Left:{ad.x=0;ad.y=1;MoveBack(ad);break;}
   case Key_Right:{ad.x=0;ad.y=-1;MoveBack(ad);break;}
         }
   StepNum--;Step[i]=0;BoxMove[i]=0;
   }
}


void MoveBack(Add a)   /*一定可以移動*/
{
int i=(StepNum-1)%STEPMAX;
if(BoxMove[i]==0) 
   {
    map[p.x][p.y]-=1;InitPic(map[p.x][p.y],p.x,p.y);
    p.x=p.x+a.x;p.y=p.y+a.y;
    map[p.x][p.y]+=1;InitPic(map[p.x][p.y],p.x,p.y);
   }
else if(BoxMove[i]==1)
   {
   map[p.x-a.x][p.y-a.y]-=2;InitPic(map[p.x-a.x][p.y-a.y],p.x-a.x,p.y-a.y);
   map[p.x][p.y]+=1;InitPic(map[p.x][p.y],p.x,p.y);
   p.x=p.x+a.x;p.y=p.y+a.y;
   map[p.x][p.y]+=1;InitPic(map[p.x][p.y],p.x,p.y); 
   }
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区在线看| 日本在线不卡视频一二三区| 欧美日韩一区小说| 成人av资源在线观看| 黄页视频在线91| 麻豆国产欧美日韩综合精品二区| 偷拍自拍另类欧美| 午夜精品久久久久久久| av不卡免费电影| 波多野结衣在线aⅴ中文字幕不卡| 欧美四级电影网| 91精品国产高清一区二区三区蜜臀| 色94色欧美sute亚洲线路一久 | 91视视频在线直接观看在线看网页在线看 | 国产综合久久久久影院| 99精品偷自拍| 床上的激情91.| 91免费观看在线| 久久久夜色精品亚洲| 久久久久免费观看| 日韩va亚洲va欧美va久久| 色欧美乱欧美15图片| 欧美日韩国产高清一区二区三区| 91精品国产入口| 亚洲国产精品久久久久婷婷884 | 国产精品亚洲成人| 99国产精品久久久久久久久久| 久久综合色8888| 亚洲欧洲精品一区二区精品久久久| 亚洲人成精品久久久久| 亚洲成a人v欧美综合天堂| 国产一区二区三区高清播放| 99久久久久久| 最新欧美精品一区二区三区| 97精品久久久久中文字幕 | 2023国产精品| 国产一区二区免费看| 国产欧美一区视频| 亚洲国产中文字幕在线视频综合| 色婷婷综合久久久久中文一区二区 | 久久久久久久久久久久久女国产乱 | 在线视频观看一区| 欧美xxxx老人做受| 国产精品初高中害羞小美女文| 亚洲精品国产无套在线观| 日本美女视频一区二区| 欧美一级午夜免费电影| 美腿丝袜亚洲一区| 国产午夜亚洲精品午夜鲁丝片| 亚洲综合丁香婷婷六月香| 激情av综合网| 亚洲欧洲精品一区二区三区不卡| 在线视频欧美精品| 毛片av一区二区三区| 国产欧美一区二区三区鸳鸯浴 | 麻豆免费精品视频| 国产欧美日韩亚州综合| 日本久久精品电影| 久久福利视频一区二区| 欧美日韩国产综合草草| 国产在线精品免费| 一区二区三区中文在线| www.成人网.com| 夜夜亚洲天天久久| 欧美一区二区三区日韩| 国产91精品在线观看| 精品99999| 免费的国产精品| 制服丝袜av成人在线看| 亚洲伊人伊色伊影伊综合网| 日韩一级片在线播放| 日韩专区欧美专区| 欧美一区二区三区在| 国产成人在线网站| 久久久精品免费网站| 欧美优质美女网站| 国产成人在线电影| 亚洲永久免费视频| 日本一区二区在线不卡| 欧美日韩黄色影视| 99久久久久免费精品国产| 精品无码三级在线观看视频| 亚州成人在线电影| 国产精品国产三级国产三级人妇 | 国产精品热久久久久夜色精品三区 | 在线观看日韩电影| 韩国一区二区三区| 亚洲成人免费视频| 亚洲欧美中日韩| 久久亚洲综合色| 欧美一区二区免费视频| 色欧美片视频在线观看| 成人夜色视频网站在线观看| 久久超碰97中文字幕| 午夜欧美2019年伦理 | 久久久久久久综合日本| 欧美另类久久久品| 久久精品国产精品亚洲综合| 亚洲一区二区三区四区不卡| 亚洲麻豆国产自偷在线| 日本一二三不卡| 欧美日韩激情一区二区三区| 色婷婷一区二区| 成人亚洲一区二区一| 国产传媒一区在线| 国产成人精品亚洲午夜麻豆| 麻豆精品精品国产自在97香蕉| 日韩高清不卡一区二区| 日韩在线一区二区| 天天免费综合色| 日韩一区欧美二区| 亚洲va欧美va国产va天堂影院| 亚洲成人先锋电影| 午夜成人在线视频| 日韩av成人高清| 美脚の诱脚舐め脚责91 | 亚洲123区在线观看| 亚洲福利视频三区| 无码av免费一区二区三区试看| 五月天精品一区二区三区| 男人的天堂久久精品| 狠狠色丁香婷婷综合| 国产激情一区二区三区| jlzzjlzz亚洲日本少妇| 91丨porny丨首页| 欧美中文字幕一区二区三区| 欧美二区在线观看| 精品日韩在线观看| 国产女人aaa级久久久级 | 热久久国产精品| 久久99国产精品久久99果冻传媒| 国模套图日韩精品一区二区| 国产精品亚洲午夜一区二区三区 | 国产成人免费网站| 99久久久精品免费观看国产蜜| 色婷婷综合久久久中文字幕| 884aa四虎影成人精品一区| 欧美精品一区二区三区蜜桃| 国产精品日韩精品欧美在线| 亚洲国产精品精华液网站| 蜜桃91丨九色丨蝌蚪91桃色| 国产91精品一区二区| 在线视频欧美精品| 精品国产伦一区二区三区观看方式 | 在线91免费看| 欧美精品一区二区高清在线观看| 久久影院电视剧免费观看| 欧美国产一区视频在线观看| 亚洲国产精品久久人人爱| 极品瑜伽女神91| 一本久久精品一区二区| 欧美一二三区精品| 国产精品动漫网站| 老司机一区二区| 91在线免费播放| 日韩亚洲欧美在线| 一区二区三区欧美日| 精品一区二区三区视频在线观看| 色88888久久久久久影院野外| 日韩久久精品一区| 日韩一级二级三级精品视频| 国产精品―色哟哟| 美女视频第一区二区三区免费观看网站| 成人激情动漫在线观看| 日韩视频免费直播| 一区二区三区在线观看欧美| 国产老肥熟一区二区三区| 欧美精品v国产精品v日韩精品| 国产区在线观看成人精品| 日韩成人一级片| 在线一区二区视频| 欧美国产国产综合| 国产自产2019最新不卡| 欧美精品在线一区二区三区| 日韩伦理电影网| 亚洲超丰满肉感bbw| 成人爱爱电影网址| 久久日韩粉嫩一区二区三区| 亚洲国产综合91精品麻豆| 成人免费视频一区| 国产调教视频一区| 美女诱惑一区二区| 91精品国产品国语在线不卡 | 国产日产欧美一区二区三区| 人人狠狠综合久久亚洲| 欧美色窝79yyyycom| 亚洲视频一区二区在线观看| 国产白丝精品91爽爽久久| 精品国产成人在线影院| 美女视频网站黄色亚洲| 91精品欧美综合在线观看最新| 亚洲综合成人在线视频| 在线观看av一区二区| 一区二区三区精品久久久| 91视频你懂的| 1000部国产精品成人观看| av亚洲精华国产精华| 国产精品久久久久婷婷| 91碰在线视频| 亚洲乱码国产乱码精品精98午夜|