жíÂÞ˹·½¿é

¡¡¡¡°î°îС¾ç³¡¸øµÄÁé¸Ð£¬Ö®Ç°Ò²¿´¹ý¸÷ÖÖ¸÷ÑùµÄ¶íÂÞ˹·½¿é£¬ÊǾ­µä£¬¾ÍÔÚÓÚËü×ÜÄÜholdס¸÷ÖÖ¸÷ÑùÀàÐÍ£¬¾ÍÏñ¾­µäµÄÊé×ÜÄÜÔËÓÃÔÚ¸÷ÖÖ¸÷ÑùµÄ³¡ºÏ£¬¶øÕâ¾­µäµÄÓÎÏ·×ÜÄܸıà½áºÏ³É¸÷ÖÖ¸÷ÑùÀàÐ͵ÄÐÂÓΣ¬ºÏÊÊÓÖ´´Ð¡£Õâ´ÎÖÆ×÷·ÖÁËÁ½²½£¬ÏÈÊÇ°ÑÔ­À´µÄ¶íÂÞ˹·½¿é¸Ä³É¼òÒ×ÐÍ£¬¾ÍÊÇ°ÑÔ­À´¸÷ÖÖ¸÷ÑùµÄ·½¿éÀàÐ͹éÒ»»¯³ÉÁ½¸ö¸ñ×ÓÆ´ÆðÀ´£¬¹æÔò»¹ÊÇÆÌÂúÒ»²ã¾ÍÏû³ý£¬È»ºóϳÁ£»ÔÙÊǸijÉÏûÏûÀÖÐÍ£¬¸øÿ´ÎµÄÁ½¸ö¸ñ×Ó²»Í¬ÑÕÉ«£¬ÏàͬÑÕÉ«µÄÊ®¸ö¸ñ×ÓÏû³ý£¬È»ºóϳÁ£¬ÆÌÂú²»ÔÙÏû³ý£¬µ«ÊÇcomboЧ¹ûµÄ¹¦ÄÜûÓмÓÉÏ£¬Óлú»á¿ÉÒÔ¼Ó¡£

¡¡¡¡¼òÒ×ÐͶíÂÞ˹·½¿é´úÂ룺

¡¡¡¡#include <iostream>

¡¡¡¡#include <cstdlib>

¡¡¡¡#include <ctime>

¡¡¡¡#include <ctype.h>

¡¡¡¡#include <vector>

¡¡¡¡#include <math.h>

¡¡¡¡#include <iomanip>

¡¡¡¡#include <graphics.h>

¡¡¡¡#include <conio.h>

¡¡¡¡#include <windows.h>

¡¡¡¡#include <fstream>

¡¡¡¡#include <string>

¡¡¡¡using namespace std;

¡¡¡¡struct Node

¡¡¡¡{

¡¡¡¡int posx,posy;

¡¡¡¡int num;

¡¡¡¡int lifenum;

¡¡¡¡int colornum;

¡¡¡¡};

¡¡¡¡Node box[211];

¡¡¡¡int exit1,exit2,exit3;

¡¡¡¡clock_t t1,t2,t3;

¡¡¡¡int flag,flag1;

¡¡¡¡int speed;

¡¡¡¡int seed1;

¡¡¡¡int point;

¡¡¡¡void W()

¡¡¡¡{

¡¡¡¡int i,j,k;

¡¡¡¡if(flag==flag1-1&&box[flag-10].lifenum==0){

¡¡¡¡if(box[flag-10].lifenum==0){box[flag-10].lifenum=1;box[flag-10].colornum=box[flag1].colornum;box[flag1].lifenum=0;flag1=flag-10;}

¡¡¡¡}

¡¡¡¡else if(flag==flag1+1&&box[flag+10].lifenum==0){

¡¡¡¡if(box[flag+10].lifenum==0){box[flag+10].lifenum=1;box[flag+10].colornum=box[flag1].colornum;box[flag1].lifenum=0;flag1=flag+10;}

¡¡¡¡}

¡¡¡¡else if(flag==flag1-10&&box[flag+1].lifenum==0&&flag%10<9){

¡¡¡¡if(box[flag+1].lifenum==0){box[flag+1].lifenum=1;box[flag+1].colornum=box[flag1].colornum;box[flag1].lifenum=0;flag1=flag+1;}

¡¡¡¡}

¡¡¡¡else if(flag==flag1+10&&flag%10>0){

¡¡¡¡if(box[flag-1].lifenum==0){box[flag-1].lifenum=1;box[flag-1].colornum=box[flag1].colornum;box[flag1].lifenum=0;flag1=flag-1;}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡void A()

¡¡¡¡{

¡¡¡¡int i,j,k;

¡¡¡¡if(flag%10>0&&flag1%10>0){

¡¡¡¡if(flag==flag1-1&&box[flag-1].lifenum==0){

¡¡¡¡box[flag-1].lifenum=1;box[flag-1].colornum=box[flag].colornum;box[flag].lifenum=0;flag--;

¡¡¡¡box[flag1-1].lifenum=1;box[flag1-1].colornum=box[flag1].colornum;box[flag1].lifenum=0;flag1--;

¡¡¡¡}

¡¡¡¡else if(flag1==flag-1&&box[flag1-1].lifenum==0){

¡¡¡¡box[flag1-1].lifenum=1;box[flag1-1].colornum=box[flag1].colornum;box[flag1].lifenum=0;flag1--;

¡¡¡¡box[flag-1].lifenum=1;box[flag-1].colornum=box[flag].colornum;box[flag].lifenum=0;flag--;

¡¡¡¡}

¡¡¡¡else if(box[flag-1].lifenum==0&&box[flag1-1].lifenum==0){

¡¡¡¡box[flag-1].lifenum=1;box[flag-1].colornum=box[flag].colornum;box[flag].lifenum=0;flag--;

¡¡¡¡box[flag1-1].lifenum=1;box[flag1-1].colornum=box[flag1].colornum;box[flag1].lifenum=0;flag1--;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡void D()

¡¡¡¡{

¡¡¡¡int i,j,k;

¡¡¡¡if(flag%10<9&&flag1%10<9){

¡¡¡¡if(flag==flag1+1&&box[flag+1].lifenum==0){

¡¡¡¡box[flag+1].lifenum=1;box[flag+1].colornum=box[flag].colornum;box[flag].lifenum=0;flag++;

¡¡¡¡box[flag1+1].lifenum=1;box[flag1+1].colornum=box[flag1].colornum;box[flag1].lifenum=0;flag1++;

¡¡¡¡}

¡¡¡¡else if(flag1==flag+1&&box[flag1+1].lifenum==0){

¡¡¡¡box[flag1+1].lifenum=1;box[flag1+1].colornum=box[flag1].colornum;box[flag1].lifenum=0;flag1++;

¡¡¡¡box[flag+1].lifenum=1;box[flag+1].colornum=box[flag].colornum;box[flag].lifenum=0;flag++;

¡¡¡¡}

¡¡¡¡else if(box[flag+1].lifenum==0&&box[flag1+1].lifenum==0){

¡¡¡¡box[flag+1].lifenum=1;box[flag+1].colornum=box[flag].colornum;box[flag].lifenum=0;flag++;

¡¡¡¡box[flag1+1].lifenum=1;box[flag1+1].colornum=box[flag1].colornum;box[flag1].lifenum=0;flag1++;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡void check()

¡¡¡¡{

¡¡¡¡int i,j,k,t;

¡¡¡¡for(i=19;i>=1;i--){

¡¡¡¡t=0;

¡¡¡¡for(j=0;j<=9;j++){

¡¡¡¡if(box[i*10+j].lifenum==0){

¡¡¡¡t=1;

¡¡¡¡break;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡if(t==0){

¡¡¡¡for(j=0;j<=9;j++){

¡¡¡¡box[i*10+j].lifenum=0;

¡¡¡¡}

¡¡¡¡for(i=189;i>=0;i--){

¡¡¡¡if(box[i+10].lifenum==0&&box[i].lifenum!=0){

¡¡¡¡box[i+10].lifenum=1;

¡¡¡¡box[i+10].colornum=box[i].colornum;

¡¡¡¡box[i].lifenum=0;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡i=20;

¡¡¡¡point=point+10;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡void draw()

¡¡¡¡{

¡¡¡¡int i,j,k;

¡¡¡¡FlushBatchDraw();

¡¡¡¡clearrectangle(0,0,400,400);

¡¡¡¡line(98,0,98,400);

¡¡¡¡line(302,0,302,400);

¡¡¡¡for(i=0;i<200;i++){

¡¡¡¡if(box[i].lifenum==1){

¡¡¡¡fillrectangle(box[i].posx,box[i].posy,box[i].posx+20,box[i].posy+20);

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡void create()

¡¡¡¡{

¡¡¡¡int i,j;

¡¡¡¡if(box[4].lifenum!=0||box[14].lifenum!=0){

¡¡¡¡exit1=1;exit2=1;exit3=1;

¡¡¡¡}

¡¡¡¡else{

¡¡¡¡box[4].colornum=1;

¡¡¡¡box[14].colornum=box[4].colornum;

¡¡¡¡box[4].lifenum=1;

¡¡¡¡box[14].lifenum=1;

¡¡¡¡}

¡¡¡¡flag=4;flag1=14;

¡¡¡¡}

¡¡¡¡void S()

¡¡¡¡{

¡¡¡¡int i,j,k;

¡¡¡¡if(flag==flag1+10&&box[flag+10].lifenum==0){

¡¡¡¡box[flag+10].lifenum=1;box[flag+10].colornum=box[flag].colornum;box[flag].lifenum=0;flag+=10;

¡¡¡¡box[flag1+10].lifenum=1;box[flag1+10].colornum=box[flag1].colornum;box[flag1].lifenum=0;flag1+=10;

¡¡¡¡}

¡¡¡¡else if(flag==flag1-10&&box[flag1+10].lifenum==0){

¡¡¡¡box[flag1+10].lifenum=1;box[flag1+10].colornum=box[flag1].colornum;box[flag1].lifenum=0;flag1+=10;

¡¡¡¡box[flag+10].lifenum=1;box[flag+10].colornum=box[flag].colornum;box[flag].lifenum=0;flag+=10;

¡¡¡¡}

¡¡¡¡else if(box[flag+10].lifenum==0&&box[flag1+10].lifenum==0){

¡¡¡¡box[flag1+10].lifenum=1;box[flag1+10].colornum=box[flag1].colornum;box[flag1].lifenum=0;flag1+=10;

¡¡¡¡box[flag+10].lifenum=1;box[flag+10].colornum=box[flag].colornum;box[flag].lifenum=0;flag+=10;

¡¡¡¡}

¡¡¡¡else{

¡¡¡¡check();

¡¡¡¡create();

¡¡¡¡}

¡¡¡¡draw();

¡¡¡¡}

¡¡¡¡void initialization()

¡¡¡¡{

¡¡¡¡int i,j,k;

¡¡¡¡exit1=0;exit2=0;exit3=0;

¡¡¡¡seed1=0;

¡¡¡¡speed=300;

¡¡¡¡point=0;

¡¡¡¡initgraph(400, 400,SHOWCONSOLE);

¡¡¡¡setlinecolor(GREEN);

¡¡¡¡line(98,0,98,400);

¡¡¡¡line(302,0,302,400);

¡¡¡¡for(i=0;i<200;i++){

¡¡¡¡box[i].num=i;

¡¡¡¡box[i].posx=100+20*(i%10);

¡¡¡¡box[i].posy=20*(i/10);

¡¡¡¡box[i].lifenum=0;

¡¡¡¡box[i].colornum=0;

¡¡¡¡}

¡¡¡¡for(i=200;i<210;i++){

¡¡¡¡box[i].lifenum=1;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡void move()

¡¡¡¡{

¡¡¡¡int i;

¡¡¡¡char j;

¡¡¡¡BeginBatchDraw();

¡¡¡¡create();

¡¡¡¡draw();

¡¡¡¡while(exit1==0){

¡¡¡¡Sleep(1000);

¡¡¡¡t1=clock();

¡¡¡¡t2=clock();

¡¡¡¡while(exit2==0){

¡¡¡¡if (_kbhit()){

¡¡¡¡j=_getch();

¡¡¡¡fflush(stdin);

¡¡¡¡switch(j){

¡¡¡¡case 'w':W();break;

¡¡¡¡case 'a':A();break;

¡¡¡¡case 'd':D();break;

¡¡¡¡case 's':S();break;

¡¡¡¡case 'o':speed=0xffffff;break;

¡¡¡¡case 'i':speed=300;break;

¡¡¡¡case 'p':exit2=1;exit1=1;break;

¡¡¡¡default:break;

¡¡¡¡}

¡¡¡¡fflush(stdin);

¡¡¡¡}

¡¡¡¡t2=clock();

¡¡¡¡while(t2-t1>=speed){

¡¡¡¡t1=clock();

¡¡¡¡S();

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡EndBatchDraw();

¡¡¡¡}

¡¡¡¡void carry()

¡¡¡¡{

¡¡¡¡int i,j,k;

¡¡¡¡initialization();

¡¡¡¡while(exit3==0){

¡¡¡¡move();

¡¡¡¡}

¡¡¡¡_getch();

¡¡¡¡closegraph();

¡¡¡¡cout<<"µÃ·Ö:"<<point<<endl;

¡¡¡¡}

¡¡¡¡int main()

¡¡¡¡{

¡¡¡¡carry();

¡¡¡¡return 0;

¡¡¡¡}

¡¡¡¡ÏûÏûÀÖ¶íÂÞ˹·½¿é´úÂ룺

¡¡¡¡#include <iostream>

¡¡¡¡#include <cstdlib>

¡¡¡¡#include <ctime>

¡¡¡¡#include <ctype.h>

¡¡¡¡#include <vector>

¡¡¡¡#include <math.h>

¡¡¡¡#include <iomanip>

¡¡¡¡#include <graphics.h>

¡¡¡¡#include <conio.h>

¡¡¡¡#include <windows.h>

¡¡¡¡#include <fstream>

¡¡¡¡#include <string>

¡¡¡¡using namespace std;

¡¡¡¡struct Node

¡¡¡¡{

¡¡¡¡int posx,posy;

¡¡¡¡int num;

¡¡¡¡int lifenum;

¡¡¡¡int colornum;

¡¡¡¡};

¡¡¡¡struct Node1

¡¡¡¡{

¡¡¡¡int num;

¡¡¡¡int lifenum;

¡¡¡¡int flagnum,flag1num;

¡¡¡¡};

¡¡¡¡struct Node2

¡¡¡¡{

¡¡¡¡int num;

¡¡¡¡int lifenum;

¡¡¡¡int boxnum;

¡¡¡¡};

¡¡¡¡Node box[211];

¡¡¡¡Node1 eat[100];

¡¡¡¡Node2 box1[200];

¡¡¡¡int exit1,exit2,exit3,exit4;

¡¡¡¡clock_t t1,t2,t3;

¡¡¡¡int flag,flag1;

¡¡¡¡int speed;

¡¡¡¡int seed1;

¡¡¡¡int point;

¡¡¡¡COLORREF img[8];

¡¡¡¡void W()

¡¡¡¡{

¡¡¡¡int i,j,k;

¡¡¡¡if(flag==flag1-1&&box[flag-10].lifenum==0){

¡¡¡¡if(box[flag-10].lifenum==0){box[flag-10].lifenum=1;box[flag-10].colornum=box[flag1].colornum;box[flag1].lifenum=0;box[flag1].colornum=0;flag1=flag-10;}

¡¡¡¡}

¡¡¡¡else if(flag==flag1+1&&box[flag+10].lifenum==0){

¡¡¡¡if(box[flag+10].lifenum==0){box[flag+10].lifenum=1;box[flag+10].colornum=box[flag1].colornum;box[flag1].lifenum=0;box[flag1].colornum=0;flag1=flag+10;}

¡¡¡¡}

¡¡¡¡else if(flag==flag1-10&&box[flag+1].lifenum==0&&flag%10<9){

¡¡¡¡if(box[flag+1].lifenum==0){box[flag+1].lifenum=1;box[flag+1].colornum=box[flag1].colornum;box[flag1].lifenum=0;box[flag1].colornum=0;flag1=flag+1;}

¡¡¡¡}

¡¡¡¡else if(flag==flag1+10&&flag%10>0){

¡¡¡¡if(box[flag-1].lifenum==0){box[flag-1].lifenum=1;box[flag-1].colornum=box[flag1].colornum;box[flag1].lifenum=0;box[flag1].colornum=0;flag1=flag-1;}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡void A()

¡¡¡¡{

¡¡¡¡int i,j,k;

¡¡¡¡if(flag%10>0&&flag1%10>0){

¡¡¡¡if(flag==flag1-1&&box[flag-1].lifenum==0){

¡¡¡¡box[flag-1].lifenum=1;box[flag-1].colornum=box[flag].colornum;box[flag].lifenum=0;box[flag].colornum=0;flag--;

¡¡¡¡box[flag1-1].lifenum=1;box[flag1-1].colornum=box[flag1].colornum;box[flag1].lifenum=0;box[flag1].colornum=0;flag1--;

¡¡¡¡}

¡¡¡¡else if(flag1==flag-1&&box[flag1-1].lifenum==0){

¡¡¡¡box[flag1-1].lifenum=1;box[flag1-1].colornum=box[flag1].colornum;box[flag1].lifenum=0;box[flag1].colornum=0;flag1--;

¡¡¡¡box[flag-1].lifenum=1;box[flag-1].colornum=box[flag].colornum;box[flag].lifenum=0;box[flag].colornum=0;flag--;

¡¡¡¡}

¡¡¡¡else if(box[flag-1].lifenum==0&&box[flag1-1].lifenum==0){

¡¡¡¡box[flag-1].lifenum=1;box[flag-1].colornum=box[flag].colornum;box[flag].lifenum=0;box[flag].colornum=0;flag--;

¡¡¡¡box[flag1-1].lifenum=1;box[flag1-1].colornum=box[flag1].colornum;box[flag1].lifenum=0;box[flag1].colornum=0;flag1--;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡void D()

¡¡¡¡{

¡¡¡¡int i,j,k;

¡¡¡¡if(flag%10<9&&flag1%10<9){

¡¡¡¡if(flag==flag1+1&&box[flag+1].lifenum==0){

¡¡¡¡box[flag+1].lifenum=1;box[flag+1].colornum=box[flag].colornum;box[flag].lifenum=0;box[flag].colornum=0;flag++;

¡¡¡¡box[flag1+1].lifenum=1;box[flag1+1].colornum=box[flag1].colornum;box[flag1].lifenum=0;box[flag1].colornum=0;flag1++;

¡¡¡¡}

¡¡¡¡else if(flag1==flag+1&&box[flag1+1].lifenum==0){

¡¡¡¡box[flag1+1].lifenum=1;box[flag1+1].colornum=box[flag1].colornum;box[flag1].lifenum=0;box[flag1].colornum=0;flag1++;

¡¡¡¡box[flag+1].lifenum=1;box[flag+1].colornum=box[flag].colornum;box[flag].lifenum=0;box[flag].colornum=0;flag++;

¡¡¡¡}

¡¡¡¡else if(box[flag+1].lifenum==0&&box[flag1+1].lifenum==0){

¡¡¡¡box[flag+1].lifenum=1;box[flag+1].colornum=box[flag].colornum;box[flag].lifenum=0;box[flag].colornum=0;flag++;

¡¡¡¡box[flag1+1].lifenum=1;box[flag1+1].colornum=box[flag1].colornum;box[flag1].lifenum=0;box[flag1].colornum=0;flag1++;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡void check(int x)

¡¡¡¡{

¡¡¡¡int i,j,k,t,flag2;

¡¡¡¡for(i=0;i<200;i++){

¡¡¡¡box1[i].num=i;

¡¡¡¡box1[i].lifenum=0;

¡¡¡¡box1[i].boxnum=101;

¡¡¡¡}

¡¡¡¡i=eat[x].flagnum;

¡¡¡¡box1[0].boxnum=eat[x].flagnum;

¡¡¡¡flag2=1;

¡¡¡¡for(i=0;i<flag2;i++){

¡¡¡¡j=box1[i].boxnum;

¡¡¡¡if(j%10!=0){

¡¡¡¡j=j-1;

¡¡¡¡for(j;j%10!=9&&j>=0;j--){

¡¡¡¡if(box[j].colornum==box[eat[x].flagnum].colornum){

¡¡¡¡exit3=0;

¡¡¡¡for(k=0;k<flag2;k++){

¡¡¡¡if(box1[k].boxnum==j){

¡¡¡¡exit3=1;break;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡if(exit3==0){box1[flag2].boxnum=j;flag2++;}

¡¡¡¡}

¡¡¡¡else{

¡¡¡¡break;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡j=box1[i].boxnum;

¡¡¡¡if(j%10!=9){

¡¡¡¡j=j+1;

¡¡¡¡for(j;j%10!=0&&j<=199;j++){

¡¡¡¡if(box[j].colornum==box[eat[x].flagnum].colornum){

¡¡¡¡exit3=0;

¡¡¡¡for(k=0;k<flag2;k++){

¡¡¡¡if(box1[k].boxnum==j){

¡¡¡¡exit3=1;break;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡if(exit3==0){box1[flag2].boxnum=j;flag2++;}

¡¡¡¡}

¡¡¡¡else{

¡¡¡¡break;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡j=box1[i].boxnum;

¡¡¡¡if(j/10!=0){

¡¡¡¡j=j-10;

¡¡¡¡for(j;j>=0;j-=10){

¡¡¡¡if(box[j].colornum==box[eat[x].flagnum].colornum){

¡¡¡¡exit3=0;

¡¡¡¡for(k=0;k<flag2;k++){

¡¡¡¡if(box1[k].boxnum==j){

¡¡¡¡exit3=1;break;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡if(exit3==0){box1[flag2].boxnum=j;flag2++;}

¡¡¡¡}

¡¡¡¡else{

¡¡¡¡break;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡j=box1[i].boxnum;

¡¡¡¡if(j/10!=9){

¡¡¡¡j=j+10;

¡¡¡¡for(j;j<=199;j+=10){

¡¡¡¡if(box[j].colornum==box[eat[x].flagnum].colornum){

¡¡¡¡exit3=0;

¡¡¡¡for(k=0;k<flag2;k++){

¡¡¡¡if(box1[k].boxnum==j){

¡¡¡¡exit3=1;break;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡if(exit3==0){box1[flag2].boxnum=j;flag2++;}

¡¡¡¡}

¡¡¡¡else{

¡¡¡¡break;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡if(flag2>=10){

¡¡¡¡point+=flag2;

¡¡¡¡for(i=0;i<flag2;i++){

¡¡¡¡box[box1[i].boxnum].lifenum=0;

¡¡¡¡box[box1[i].boxnum].colornum=0;

¡¡¡¡j=0;

¡¡¡¡while(box1[i].boxnum!=eat[j].flagnum&&box1[i].boxnum!=eat[j].flag1num){

¡¡¡¡j++;

¡¡¡¡}

¡¡¡¡eat[j].lifenum=0;

¡¡¡¡}

¡¡¡¡j=1;

¡¡¡¡while(j!=0){

¡¡¡¡j=0;

¡¡¡¡for(i=0;i<100;i++){

¡¡¡¡if(eat[i].lifenum==1){

¡¡¡¡if(eat[i].flagnum==eat[i].flag1num+10&&box[eat[i].flagnum+10].lifenum==0){

¡¡¡¡box[eat[i].flagnum+10].lifenum=1;box[eat[i].flagnum+10].colornum=box[eat[i].flagnum].colornum;box[eat[i].flagnum].lifenum=0;box[eat[i].flagnum].colornum=0;eat[i].flagnum+=10;

¡¡¡¡box[eat[i].flag1num+10].lifenum=1;box[eat[i].flag1num+10].colornum=box[eat[i].flag1num].colornum;box[eat[i].flag1num].lifenum=0;box[eat[i].flag1num].colornum=0;eat[i].flag1num+=10;

¡¡¡¡j++;

¡¡¡¡}

¡¡¡¡else if(eat[i].flagnum==eat[i].flag1num-10&&box[eat[i].flag1num+10].lifenum==0){

¡¡¡¡box[eat[i].flag1num+10].lifenum=1;box[eat[i].flag1num+10].colornum=box[eat[i].flag1num].colornum;box[eat[i].flag1num].lifenum=0;box[eat[i].flag1num].colornum=0;eat[i].flag1num+=10;

¡¡¡¡box[eat[i].flagnum+10].lifenum=1;box[eat[i].flagnum+10].colornum=box[eat[i].flagnum].colornum;box[eat[i].flagnum].lifenum=0;box[eat[i].flagnum].colornum=0;eat[i].flagnum+=10;

¡¡¡¡j++;

¡¡¡¡}

¡¡¡¡else if(box[eat[i].flagnum+10].lifenum==0&&box[eat[i].flag1num+10].lifenum==0){

¡¡¡¡box[eat[i].flag1num+10].lifenum=1;box[eat[i].flag1num+10].colornum=box[eat[i].flag1num].colornum;box[eat[i].flag1num].lifenum=0;box[eat[i].flag1num].colornum=0;eat[i].flag1num+=10;

¡¡¡¡box[eat[i].flagnum+10].lifenum=1;box[eat[i].flagnum+10].colornum=box[eat[i].flagnum].colornum;box[eat[i].flagnum].lifenum=0;box[eat[i].flagnum].colornum=0;eat[i].flagnum+=10;

¡¡¡¡j++;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡void draw()

¡¡¡¡{

¡¡¡¡int i,j,k;

¡¡¡¡FlushBatchDraw();

¡¡¡¡clearrectangle(0,0,400,400);

¡¡¡¡line(98,0,98,400);

¡¡¡¡line(302,0,302,400);

¡¡¡¡for(i=0;i<200;i++){

¡¡¡¡if(box[i].lifenum==1&&box[i].colornum!=0){

¡¡¡¡setfillcolor(img[box[i].colornum]);

¡¡¡¡fillrectangle(box[i].posx,box[i].posy,box[i].posx+20,box[i].posy+20);

¡¡¡¡}

¡¡¡¡else if(box[i].lifenum==1&&box[i].colornum==0){

¡¡¡¡box[i].lifenum=0;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡void create()

¡¡¡¡{

¡¡¡¡int i,j;

¡¡¡¡if(box[4].lifenum!=0||box[14].lifenum!=0){

¡¡¡¡exit1=1;exit2=1;exit4=1;

¡¡¡¡}

¡¡¡¡else{

¡¡¡¡seed1++;

¡¡¡¡srand(seed1);

¡¡¡¡box[4].colornum=rand()%5+1;

¡¡¡¡box[14].colornum=box[4].colornum;

¡¡¡¡box[4].lifenum=1;

¡¡¡¡box[14].lifenum=1;

¡¡¡¡}

¡¡¡¡flag=4;flag1=14;

¡¡¡¡}

¡¡¡¡void S()

¡¡¡¡{

¡¡¡¡int i,j,k,t;

¡¡¡¡if(flag==flag1+10&&box[flag+10].lifenum==0){

¡¡¡¡box[flag+10].lifenum=1;box[flag+10].colornum=box[flag].colornum;box[flag].lifenum=0;box[flag].colornum=0;flag+=10;

¡¡¡¡box[flag1+10].lifenum=1;box[flag1+10].colornum=box[flag1].colornum;box[flag1].lifenum=0;box[flag1].colornum=0;flag1+=10;

¡¡¡¡}

¡¡¡¡else if(flag==flag1-10&&box[flag1+10].lifenum==0){

¡¡¡¡box[flag1+10].lifenum=1;box[flag1+10].colornum=box[flag1].colornum;box[flag1].lifenum=0;box[flag1].colornum=0;flag1+=10;

¡¡¡¡box[flag+10].lifenum=1;box[flag+10].colornum=box[flag].colornum;box[flag].lifenum=0;box[flag].colornum=0;flag+=10;

¡¡¡¡}

¡¡¡¡else if(box[flag+10].lifenum==0&&box[flag1+10].lifenum==0){

¡¡¡¡box[flag1+10].lifenum=1;box[flag1+10].colornum=box[flag1].colornum;box[flag1].lifenum=0;box[flag1].colornum=0;flag1+=10;

¡¡¡¡box[flag+10].lifenum=1;box[flag+10].colornum=box[flag].colornum;box[flag].lifenum=0;box[flag].colornum=0;flag+=10;

¡¡¡¡}

¡¡¡¡else{

¡¡¡¡i=0;

¡¡¡¡while(eat[i].lifenum!=0){

¡¡¡¡i++;

¡¡¡¡}

¡¡¡¡eat[i].lifenum=1;

¡¡¡¡eat[i].flagnum=flag;

¡¡¡¡eat[i].flag1num=flag1;

¡¡¡¡check(i);

¡¡¡¡create();

¡¡¡¡}

¡¡¡¡draw();

¡¡¡¡}

¡¡¡¡void initialization()

¡¡¡¡{

¡¡¡¡int i,j,k;

¡¡¡¡exit1=0;exit2=0;exit3=0;exit4=0;

¡¡¡¡seed1=0;

¡¡¡¡speed=300;

¡¡¡¡point=0;

¡¡¡¡initgraph(400, 400,SHOWCONSOLE);

¡¡¡¡img[1]=LIGHTRED;

¡¡¡¡img[2]=YELLOW;

¡¡¡¡img[3]=LIGHTGREEN;

¡¡¡¡img[4]=LIGHTBLUE;

¡¡¡¡img[5]=LIGHTMAGENTA;

¡¡¡¡setlinecolor(GREEN);

¡¡¡¡line(98,0,98,400);

¡¡¡¡line(302,0,302,400);

¡¡¡¡for(i=0;i<200;i++){

¡¡¡¡box[i].num=i;

¡¡¡¡box[i].posx=100+20*(i%10);

¡¡¡¡box[i].posy=20*(i/10);

¡¡¡¡box[i].lifenum=0;

¡¡¡¡box[i].colornum=0;

¡¡¡¡}

¡¡¡¡for(i=200;i<210;i++){

¡¡¡¡box[i].lifenum=1;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡void move()

¡¡¡¡{

¡¡¡¡int i;

¡¡¡¡char j;

¡¡¡¡BeginBatchDraw();

¡¡¡¡create();

¡¡¡¡draw();

¡¡¡¡while(exit1==0){

¡¡¡¡Sleep(1000);

¡¡¡¡t1=clock();

¡¡¡¡t2=clock();

¡¡¡¡while(exit2==0){

¡¡¡¡if (_kbhit()){

¡¡¡¡j=_getch();

¡¡¡¡fflush(stdin);

¡¡¡¡switch(j){

¡¡¡¡case 'w':W();break;

¡¡¡¡case 'a':A();break;

¡¡¡¡case 'd':D();break;

¡¡¡¡case 's':S();break;

¡¡¡¡case 'o':speed=0xffffff;break;

¡¡¡¡case 'i':speed=300;break;

¡¡¡¡case 'p':exit2=1;exit1=1;break;

¡¡¡¡default:break;

¡¡¡¡}

¡¡¡¡fflush(stdin);

¡¡¡¡}

¡¡¡¡t2=clock();

¡¡¡¡while(t2-t1>=speed){

¡¡¡¡t1=clock();

¡¡¡¡S();

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡EndBatchDraw();

¡¡¡¡}

¡¡¡¡void carry()

¡¡¡¡{

¡¡¡¡int i,j,k;

¡¡¡¡initialization();

¡¡¡¡while(exit4==0){

¡¡¡¡move();

¡¡¡¡}

¡¡¡¡_getch();

¡¡¡¡closegraph();

¡¡¡¡cout<<"µÃ·Ö:"<<point<<endl;

¡¡¡¡}

¡¡¡¡int main()

¡¡¡¡{

¡¡¡¡carry();

¡¡¡¡return 0;

¡¡¡¡}

¡¡¡¡ÑÝʾÊÓƵ1£º

¡¡¡¡ÑÝʾÊÓƵ2£º