亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

簡單圖形模擬吃豆游戲

2019-11-17 05:47:02
字體:
來源:轉載
供稿:網友
這個程序主要是想了下怎么樣讓游戲中的敵人自己行走,但是又不會固定在兩點往返徘徊,我用的方法是隨機方向,而且走的一步不可以和前一部的方向相反,希望高手們多多指點.也希望高手們可以指教下編寫簡單游戲的一些技術./*上海工程技術大學 02211031 朱昀, email: milo_zy@sohu.com*/#include "graphics.h"
#include "stdlib.h"
#include "dos.h"
#include "bios.h"
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
#define ENTER 0x1c0d
/*2墻壁,1可以移動地方,3自己,4敵人*/
int a[15][20]={2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
               2,1,1,0,0,0,1,0,1,0,0,0,1,1,1,1,1,1,0,2,
               2,1,2,2,2,1,1,2,1,1,0,0,0,1,1,4,1,1,0,2,
               2,1,1,0,2,1,1,2,0,1,1,2,2,2,2,2,0,0,0,2,
               2,4,1,0,2,1,1,2,1,1,1,0,1,1,1,1,0,1,1,2,
               2,1,2,1,2,1,1,2,1,3,2,2,1,1,1,1,2,2,1,2,
               2,1,2,1,2,1,1,1,1,1,1,1,1,0,0,0,1,1,1,2,
               2,1,2,1,0,1,1,1,1,2,1,0,1,2,2,2,1,1,1,2,
               2,1,0,1,0,1,2,1,1,2,1,0,1,2,1,1,4,1,1,2,
               2,1,0,2,0,1,2,1,1,2,1,0,1,2,1,1,1,1,1,2,
               2,1,0,2,1,1,2,1,1,2,1,0,2,2,1,0,0,0,1,2,
               2,1,1,2,1,1,2,1,1,2,1,0,2,1,1,2,2,1,1,2,
               2,1,2,2,1,2,2,1,1,1,1,0,1,4,1,2,0,0,1,2,
               2,1,0,0,0,0,0,4,0,1,1,0,1,1,1,1,0,0,1,2,
        2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};/*數組就是地圖*/
strUCt play /*游戲中人物的結構體*/
{
 int x;
 int y;
};
struct play you,them[5];
int sum=0;/*統計吃的豆子個數,吃滿50顆就算勝利*/
int xx[5][2];/*判定敵人方向用的結構體*/
int false=0;
void TimeDelay(unsigned long microsec) /*延時函數 傳入微秒數*/
{
 union REGS r;
 r.h.ah=0x86;
 r.x.cx=microsec>>16;
 r.x.dx=microsec;
 int86(0x15,&r,&r);
}
drawblackdou(int x,int y)/*吃豆子的函數*/
 begain()/*開始函數*/
{int i,j;
 sleep(1);
 for(i=0;i<15;i++)
  for(j=0;j<20;j++)
   if(a[i][j]==2)/*代表墻壁*/
    {
     setfillstyle(SOLID_FILL,BLUE);
     bar(100+j*20-10,100+i*20+10,100+j*20+10,100+i*20-10);
    }
   else if(a[i][j]==3)/*代表自己*/
    {
     setcolor(RED);
     circle(100+j*20,100+i*20,9);
    }
   else if(a[i][j]==4)/*代表敵人*/
    {
     setcolor(GREEN);
     circle(100+j*20,100+i*20,9);
    }
   else if(a[i][j]==0)/*代表豆子*/
   {
    setcolor(YELLOW);
    circle(100+j*20,100+i*20,3);
   }
 you.x=5;you.y=9;/*敵人也自己的開始坐標*/
 them[0].x=2;them[0].y=15;
 them[1].x=4;them[1].y=1;
 them[2].x=8;them[2].y=16;
 them[3].x=12;them[3].y=13;
 them[4].x=13;them[4].y=7;
}
void movethem(struct play *them)/*敵人移動的過程*/
{int i,loop;
 randomize();
 for(i=0;i<5;i++)
 {
 if(you.x==them[i].x&&(them[i].y+1)==you.y)
   them[i].y++;
 else if(you.x==them[i].x&&(them[i].y-1)==you.y)
   them[i].y--;
 else if(you.y==them[i].y&&(them[i].x+1)==you.x)
  them[i].x++;
 else if(you.y==them[i].y&&(them[i].x-1)==you.x)/*只要控制者在身邊就立即靠上去*/
  them[i].x--;
 else
 {
 loop:
   xx[i][0]=rand()%4+1;/*這里的方向采取隨機賦值,原則是新的方向不可以和原來的方向相反*/
   if(xx[i][0]==1&&xx[i][1]==2xx[i][0]==2&&xx[i][1]==1)
    goto loop;
   if(xx[i][0]==3&&xx[i][1]==4xx[i][0]==4&&xx[i][1]==3)
    goto loop;
   xx[i][1]=xx[i][0];
  if(xx[i][0]==1)/*四個方向*/
   {them[i].x--;
    if(a[them[i].x][them[i].y]==2)/*假如碰墻壁的話就回到原來的地方等待隨機的方向*/
    {them[i].x++;goto loop;}
   }
  else if(xx[i][0]==2)
   {them[i].x++;
    if(a[them[i].x][them[i].y]==2)
    {them[i].x--;goto loop;}
   }
  else if(xx[i][0]==3)
   {them[i].y++;
    if(a[them[i].x][them[i].y]==2)
    {them[i].y--;goto loop;}
   }
  else if(xx[i][0]==4)
   {them[i].y--;
    if(a[them[i].x][them[i].y]==2)
    {them[i].y++;goto loop;}
   }
  }
 }
}
fun(struct play *them)/*移動中的判定*/
{
 int i;
 setcolor(0);/*把敵人的老位置刪除*/
   for(i=0;i<5;i++)
    circle(them[i].y*20+100,them[i].x*20+100,9);
  movethem(them);/*根據控制者的位置來決定敵人的移動方向*/
}
win()/*勝利的話*/
{
 cleardevice();
 settextstyle(0,0,4);
 while(!kbhit())
 {
  setcolor(rand()%13+1);
   outtextxy(200,200,"YOU WIN!");
  delay(1000);
 }
}
false1()/*失敗畫面*/
{
 cleardevice();
 settextstyle(0,0,4);
 while(!kbhit())
 {
  setcolor(rand()%13+1);
   outtextxy(180,200,"GAME OVER!");
  delay(1000);
 }
}
loseyes()/*判定是否失敗*/
{int i;
 for(i=0;i<5;i++)
   if(them[i].x==you.x&&them[i].y==you.y)
   false=1;/*假如失敗的話*/
}
 main()
{int gd=DETECT,gm;
 int key,i;
 initgraph(&gd,&gm,"c:/tc");
  cleardevice();
 begain();/*開始畫面*/
 while(1)
 {
  while(!kbhit())
   {
  setcolor(GREEN);/*重畫敵人*/
  for(i=0;i<5;i++)
   circle(them[i].y*20+100,them[i].x*20+100,9);
  TimeDelay(280000);
   fun(them);/*處理敵人*/
  for(i=0;i<5;i++)
   if(them[i].x==you.x&&them[i].y==you.y)
   false=1;/*假如失敗的話*/
  loseyes();/*判定是否失敗*/
  if(false)
    break;
   }
  if(false)
    break;
  key=bioskey(0);
  setcolor(0);/*把自己原來位置的人給刪除掉*/
  circle(100+you.y*20,100+you.x*20,9);
   if(key==ESC)
    break;
   else if(key==UP)/*這里開始的判定主要是是否吃到豆子和碰到墻壁*/
    {you.x--;
     if(a[you.x][you.y]==2) you.x++;
     else if(a[you.x][you.y]==0)
     drawblackdou(you.x,you.y);}
   else if(key==DOWN)
    {you.x++;if(a[you.x][you.y]==2) you.x--;
     else if(a[you.x][you.y]==0)
     drawblackdou(you.x,you.y);}
   else if(key==RIGHT)
    {you.y++;if(a[you.x][you.y]==2) you.y--;
     else if(a[you.x][you.y]==0)     drawblackdou(you.x,you.y);}
   else if(key==LEFT)
    {you.y--;if(a[you.x][you.y]==2) you.y++;
     else if(a[you.x][you.y]==0)
     drawblackdou(you.x,you.y);}
     if(sum==50)
      break;
  setcolor(RED);/*執行了一次鍵盤后再畫出自己的位置*/
  circle(100+you.y*20,100+you.x*20,9);
  loseyes();/*自己走上去碰到敵人的可能*/
   if(false)
    break;
 }
 if(sum==50)/*吃滿豆子了*/
 
 if(false)
 
 closegraph();
}



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美自拍视频在线观看| 亚洲天堂av女优| 欧美激情一区二区三级高清视频| 亚洲精品一区在线观看香蕉| 亚洲免费精彩视频| 91免费精品国偷自产在线| 日韩欧美在线国产| 91免费看片网站| 91国内精品久久| 久久精品视频中文字幕| 亚洲男人天堂2023| 91精品久久久久久久久| 国产狼人综合免费视频| 久久男人av资源网站| 国外日韩电影在线观看| 久久成人精品电影| 国内精品久久久久久| 精品毛片网大全| 国产欧美精品va在线观看| 亚洲国产精品高清久久久| www.欧美精品一二三区| 中国china体内裑精亚洲片| 亚洲欧美日韩区| 亚洲精品免费网站| 亚洲国产91色在线| 欧美日韩国产限制| 亚洲最大成人网色| 国产亚洲激情视频在线| 92福利视频午夜1000合集在线观看| 亚洲欧美综合精品久久成人| 欧美日韩激情视频8区| 精品日韩视频在线观看| 26uuu亚洲伊人春色| 欧美亚洲成人网| 欧美一区二区三区免费观看| 欧美日韩在线观看视频小说| 韩国v欧美v日本v亚洲| 日本欧美爱爱爱| 成人a视频在线观看| 亚洲成人精品视频| 国产精品羞羞答答| 色偷偷偷综合中文字幕;dd| 亚洲国产私拍精品国模在线观看| 国产日韩欧美自拍| 亚洲天堂影视av| 午夜剧场成人观在线视频免费观看| 狠狠操狠狠色综合网| 国产精品欧美一区二区| 亚洲欧美国产精品| 国产mv免费观看入口亚洲| 在线日韩中文字幕| 亚洲 日韩 国产第一| 欧美孕妇性xx| 欧美性xxxxxxxxx| 国产精品久久久久久中文字| 欧美日韩福利在线观看| 91美女片黄在线观| 成人国产精品色哟哟| 色哟哟入口国产精品| 69av成年福利视频| 北条麻妃99精品青青久久| 性欧美暴力猛交69hd| 国产在线a不卡| 国产精品福利在线观看| 亚洲亚裔videos黑人hd| 97视频在线观看成人| 成人午夜小视频| 欧美激情国产高清| 久久精品成人欧美大片| 亚洲欧美日本另类| 亚洲欧美国产精品久久久久久久| 国产精品一区二区三区在线播放| 97不卡在线视频| 51午夜精品视频| 欧美激情精品久久久久久大尺度| 91精品国产乱码久久久久久蜜臀| 欧美日韩不卡合集视频| 日韩亚洲综合在线| 国产精品直播网红| 久久激情视频久久| 精品国产依人香蕉在线精品| 日韩av成人在线| 精品国产欧美一区二区五十路| 欧美在线国产精品| 成人在线观看视频网站| 亚洲视频在线播放| 欧美性极品少妇精品网站| 久久频这里精品99香蕉| 欧美一级大片视频| 欧美国产日本高清在线| 国产日韩欧美中文| 久久99热精品这里久久精品| 久久国产精彩视频| 欧美日韩999| 欧美大片在线影院| 久久久久久久久国产精品| 国产精品网红福利| 成人国产在线视频| 少妇久久久久久| 精品毛片网大全| 最近2019年好看中文字幕视频| 永久免费毛片在线播放不卡| 国产美女被下药99| 亚洲人成在线观| 色综合视频网站| 精品一区二区三区四区| 国产精品中文字幕在线| 亚洲第一视频在线观看| 欧美在线视频免费观看| 欧美老肥婆性猛交视频| 欧美午夜精品久久久久久人妖| 国产精品久久久久7777婷婷| 97人洗澡人人免费公开视频碰碰碰| 欧美精品videossex性护士| 国产精品视频白浆免费视频| 久久国产精品久久久久| 午夜精品久久久久久99热| 欧美理论电影在线观看| 日韩av电影在线播放| 欧美另类高清videos| 欧美成人午夜激情在线| 57pao国产精品一区| 国产脚交av在线一区二区| 茄子视频成人在线| 国产mv免费观看入口亚洲| 久久久久久久成人| 日日骚av一区| 国产精品久久国产精品99gif| 国产精品激情av在线播放| 九九精品在线视频| 亚洲人成在线观看| 欧美激情在线一区| 亚洲免费高清视频| 久久人人97超碰精品888| 国产欧美亚洲视频| 日韩激情视频在线播放| 亚洲电影免费观看高清完整版在线观看| 4438全国成人免费| 91精品国产91久久久久久最新| 欧美在线观看www| 日韩精品丝袜在线| 91久久久久久国产精品| 91精品国产综合久久香蕉的用户体验| 亚洲视频在线观看视频| 欧美视频专区一二在线观看| 欧美性视频在线| 精品久久久久久久久久久| 日本久久精品视频| 91av福利视频| 日韩亚洲一区二区| 自拍偷拍亚洲一区| 国产一区二区三区在线观看网站| 日韩在线视频免费观看| 91欧美精品午夜性色福利在线| 亚洲精品一区av在线播放| 国产精品免费小视频| 2019中文在线观看| 乱亲女秽乱长久久久| 国产黑人绿帽在线第一区| 欧美理论电影网| 日本中文字幕久久看| www.久久久久久.com| 国产精品日韩精品| 欧美精品videossex88|