²é¿´: 1658  |  »Ø¸´: 7
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

viking1992

гæ (³õÈëÎÄ̳)

[ÇóÖú] ´ó¶þ±à³Ì·ÏÇóÖú¸ßÊÖ½â´ðÒ»ÏÂÕâ¸ö̰³ÔÉßµÄC++³ÌÐò

¿´µ½Ò»¸ö̰³ÔÉßµÄC++³ÌÐò  ÖмäÓм¸¸öµØ·½²»¶® ÇóÖ¸½Ì£¡

#include
#include
#include
#include
#include   //ʹÓõ±Ç°Ê±¼ä×öÖÖ×Ó;
enum dir{up,down,left,right};  //ö¾ÙÀàÐÍenum dir;
//Χǽ;
class Fence{
public:
        void InitFence();
        void OutputF();
public:
        char game[20][20];
}f; //¶¨Òå¶ÔÏó;
//»­¿ò¿ò;
void Fence::InitFence(){
        for(int i=0; i<20; i++)
                for(int j=0; j<20; j++){
                        if(i==0||i==19||j==0||j==19)
                                game[j]= '*';
                        else game[j]= ' ';
        }
}
//ÏÔʾ¿ò¿ò;
void Fence::OutputF(){
        for(int i=0; i<20; i++){
                for(int j=0; j<20; j++)
                        cout<[j]<<' ';
                        cout<                 }
}

//Éß½áµã;
class SnakeNode{
private:
        int x,y;
        SnakeNode *prior,*next;
public:
        void add_head(int x,int y);
        int get_x();
        int get_y();
        void delete_tail();
}*head=NULL, *tail =NULL;
//²åÈëÍ·½áµã;
void SnakeNode::add_head(int x,int y){
        SnakeNode *q=new SnakeNode;
        q->x =x; q->y =y;
        q->next =head;         
        q->prior =NULL;
        if(head) head->prior =q;
        head =q;
        if(!tail) tail =head;
        f.game[x][y]= '*';  //f¶ÔÏó¿ÉÒÔÔÚ¶¨ÒåFenceÀàʱ¶¨Òå; ÇÒFenceÀàÔÚSnakeNodeÀàǰ¶¨Òå;
}
int SnakeNode::get_x(){
        return x;
}
int SnakeNode::get_y(){
        return y;
}
//ɾ³ýβ½áµã;
void SnakeNode::delete_tail(){
        SnakeNode *p =tail;
        f.game[tail->get_x()][tail->get_y()]= ' ';//°Ñβ½áµãµÄ×ø±ê±íʾµÄ'*'ÖÃΪ¿Õ¸ñ;
        if(tail==head)
                tail= head= NULL;
        else{
                tail= tail->prior;
                tail->next= NULL;
        }
        delete p;
}

//moveÒÆ¶¯;
class move{
public:
        dir point;    //ö¾Ù±äÁ¿point: ¿ØÖÆ·½Ïò;
        int food_x;
        int food_y;
public:
        void moving();
        void change_point(char);  //¸Ä±ä·½Ïò;
        void get_food();
};

void move::moving(){
        int a,b;
        a= head->get_x();  //È¡µÃÍ·½áµãºá×ø±ê
        b= head->get_y();  //Í·½áµã×Ý×ø±ê
        switch(point){
        case up: --a; break;
        case down: ++a; break;
        case left: --b; break;
        case right: ++b; break;
        }
        if(a==19||b==19||a==0||b==0){                                //ÅжÏÊÇ·ñײǽ;                                               
                cout<<"game over!!!"<                 exit(0);
        }
        if(a==food_x && b==food_y){                                        //³Ôfood;
                head->add_head(a,b);
                get_food();
        }
        else{
                head->add_head(a,b); //²åÈëÍ·½áµã;
                head->delete_tail(); //ɾ³ýβ½áµã;
        }
}

void move::change_point(char keydown){
        switch(keydown){
        case 'w': point= up; break;
        case 's': point= down; break;
        case 'a': point= left; break;
        case 'd': point= right; break;
        }
}
void move::get_food(){
        srand((unsigned int) time(NULL)); //×öÖÖ×Ó(³ÌÐòÔËÐÐʱ¼ä);
        food_x= rand()%18+1;
        food_y= rand()%18+1;
        f.game[food_x][food_y]= '*';
}

//main();
int main(){
        cout<<"Using 'w,s,a,d'to control direction!!!\n\n\n";
        //»­¿ò¿òºÍСÉß;
        move m;
        f.InitFence();
        head->add_head(4,3);
        head->add_head(4,4);
        head->add_head(4,5);
        m.get_food();
        f.OutputF();
        while (true){
                char keydown= getch(); //getch()·µ»Ø¼üÅÌÉ϶ÁÈ¡µÄ×Ö·û;°üº¬Í·Îļþ
                m.change_point(keydown);
                while(!kbhit()){ //ÅжÏÓÐûÓа´¼üÂäÏÂ;
                         system("cls" );  //ÇåÆÁº¯Êý               
                                 m.moving();
                        f.OutputF();
                        Sleep(200);
                }
        }
        return 0;
}
ÎÊһϺì×Ö²¿·Ö³ÌÐòµÄÉèÖÃÄ¿µÄ ÒÔ¼°ÔõôÔËÐкÍʵÏֵġ­¡­£¨¼òÒªµÄ˵ ¾ÍÊÇʲôÒâ˼= =£©
ÌØ±ðÊǽáµãÄÇÒ»¿é¡­¡­¶¯Ì¬Êý×éºÍ¸÷ÖÖÖ¸ÕëʲôµÄ ¿´×žÍÍ·´ó¡­¡­¡­¡­¡­¡­
¶àлÁË

[ Last edited by ΢³¾¡¢ÃÎÏë on 2011-8-27 at 20:06 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÓÄÈËÖñÉ£ˆ@ šwÅP¼ÅŸoÐú ÎïÇé½ñÒÑÒŠ ?Ä´ËÓûŸoÑÔ
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

imyourkobe

Ìú¸Ëľ³æ (ÖøÃûдÊÖ)

¡ï
dubo(½ð±Ò+1): »¶Ó­ÌÖÂÛ 2011-09-01 19:47:31
ºÃºÃ¿´¿´Êý¾Ý½á¹¹µÄÁ´±í²Ù×÷£º²åÈëºÍɾ³ýÄÚÈݰ¡£¡
4Â¥2011-08-28 15:59:56
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 8 ¸ö»Ø´ð

viking1992

гæ (³õÈëÎÄ̳)

»°Ëµ¡­¡­ÄǸö¹îÒìµÄ³öÏÖÔÚ³ÌÐòÖмäµÄ±íÇéÕæµÄ²»¹ØÎÒµÄÊ¡­¡­
ÓÄÈËÖñÉ£ˆ@ šwÅP¼ÅŸoÐú ÎïÇé½ñÒÑÒŠ ?Ä´ËÓûŸoÑÔ
2Â¥2011-08-27 18:57:38
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

imyourkobe

Ìú¸Ëľ³æ (ÖøÃûдÊÖ)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï ¡ï
viking1992(½ð±Ò+5): ËäÈ»ÒÀ¾É²»ÊǺܶ®¡­¡­²»¹ýллÁË~¶¼Ä¾ÓÐÈËÀíÎÒTUT 2011-08-28 15:00:05
ÓàÔó³É(½ð±Ò+2): лл²ÎÓëÓ¦Öú£¡ 2011-09-01 15:38:46
Êý¾Ý½á¹¹Öеġ£
1£©Ë«ÏòÁ´±í²åÈë²Ù×÷£º²åÈëµ½±íÍ·µÄ´¦Àí
q->next =head; //°Ñq¶ÔÓ¦½áµã²åÈëµ½ headλÖÃ,¼´headΪqºó¼Ì¡£      
q->prior =NULL;//q¶ÔÓ¦½áµãÊDZíÍ·ÁË£¬¶ÔÓ¦µÄprior Ó¦¸ÃΪ¿Õ¡£
if(head)
head->prior =q;//Èç¹ûÒѾ­´æÔÚÍ·½áµã£¬Òª´¦ÀíÔ­Í·½áµã£¬°ÑÆäǰÇýÉèÖÃΪq½áµã
head =q;        //q×÷ΪÐÂÍ·½áµã
2£©É¾³ý²Ù×÷ÀàËÆµÄ¡£
3Â¥2011-08-28 12:15:06
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

viking1992

гæ (³õÈëÎÄ̳)

¡ï
dubo(½ð±Ò+1): »¶Ó­ÌÖÂÛ 2011-09-01 19:47:40
ÒýÓûØÌû:
4Â¥: Originally posted by imyourkobe at 2011-08-28 15:59:56:
ºÃºÃ¿´¿´Êý¾Ý½á¹¹µÄÁ´±í²Ù×÷£º²åÈëºÍɾ³ýÄÚÈݰ¡£¡

ÎÒ¡­¡­ß€Ä¾ÓÐŒW”µ“þ½Y˜‹¡­¡­¡­¡­ÏÂŒWÆÚµÄÕn³Ì
ÓÄÈËÖñÉ£ˆ@ šwÅP¼ÅŸoÐú ÎïÇé½ñÒÑÒŠ ?Ä´ËÓûŸoÑÔ
5Â¥2011-09-01 10:09:07
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 268Çóµ÷¼Á +9 ¼òµ¥µã0 2026-03-17 9/450 2026-03-21 15:37 by lature00
[¿¼ÑÐ] 22 350 ±¾¿Æ985Çóµ÷¼Á£¬ÇóÀϵÇÊÕÁô +3 ÀîéóÄÐ003 2026-03-20 3/150 2026-03-21 13:28 by ²«»÷518
[¿¼ÑÐ] 299Çóµ÷¼Á +3 ijijijijλ 2026-03-21 3/150 2026-03-21 13:11 by zhukairuo
[¿¼ÑÐ] 303Çóµ÷¼Á +5 î£08 2026-03-17 7/350 2026-03-21 03:11 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸»ªÄÏʦ´ó 070300£¨»¯Ñ§£©304·ÖÇóµ÷¼Á +3 0703ÎäÜ·»ÛÑ©304 2026-03-18 3/150 2026-03-21 00:48 by JourneyLucky
[¿¼ÑÐ] 304Çóµ÷¼Á +6 ÂüÊâ2266 2026-03-18 6/300 2026-03-21 00:32 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸ÄϾ©Àí¹¤´óѧ085701×ÊÔ´Óë»·¾³302·ÖÇóµ÷¼Á +4 ¿ûè÷ÎÀ¶Ó 2026-03-18 6/300 2026-03-20 23:02 by JourneyLucky
[¿¼ÑÐ] 353Çóµ÷¼Á +3 À­¹³²»Ðí±ä 2026-03-20 3/150 2026-03-20 19:56 by JourneyLucky
[¿¼ÑÐ] 319Çóµ÷¼Á +3 СÁ¦Æøçæçæ 2026-03-20 3/150 2026-03-20 19:47 by JourneyLucky
[¿¼ÑÐ] Çóµ÷¼Á +3 @taotao 2026-03-20 3/150 2026-03-20 19:35 by JourneyLucky
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤×¨Ë¶µ÷¼Á +7 heming3743 2026-03-16 7/350 2026-03-20 19:31 by zhukairuo
[¿¼ÑÐ] 086500 325 Çóµ÷¼Á +3 Áì´øÐ¡ÐÜ 2026-03-19 3/150 2026-03-20 18:38 by ¾¡Ë´Ò¢1
[¿¼ÑÐ] ÕÐÊÕµ÷¼Á˶ʿ +4 lidianxing 2026-03-19 12/600 2026-03-20 12:25 by lidianxing
[¿¼ÑÐ] Ò»Ö¾Ô¸¸£´ó288Óлú»¯Ñ§£¬Çóµ÷¼Á +3 Сľ³æ200408204 2026-03-18 3/150 2026-03-19 13:31 by houyaoxu
[¿¼ÑÐ] ÉúÎïѧ071000 329·ÖÇóµ÷¼Á +3 ÎÒ°®ÉúÎïÉúÎﰮΠ2026-03-17 3/150 2026-03-18 10:12 by macy2011
[¿¼ÑÐ] ¿¼ÑÐÇóµ÷¼Á +3 éÙËÌ. 2026-03-17 4/200 2026-03-17 21:43 by ÓÐÖ»ÀêÅ«
[ÂÛÎÄͶ¸å] ÓÐûÓдóÀз¢Ð¡ÂÛÎÄÄÜ´øÎÒ¸ö¶þ×÷ +3 ÔöÈñ©ÈË 2026-03-17 4/200 2026-03-17 09:26 by xs74101122
[¿¼ÑÐ] 318Çóµ÷¼Á +3 Yanyali 2026-03-15 3/150 2026-03-16 16:41 by houyaoxu
[¿¼ÑÐ] ÖпÆÔº²ÄÁÏ273Çóµ÷¼Á +4 yzydy 2026-03-15 4/200 2026-03-16 15:59 by Gaodh_82
[¿¼ÑÐ] 0856Çóµ÷¼Á +3 ÁõÃÎ΢ 2026-03-15 3/150 2026-03-16 10:00 by houyaoxu
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û