жíÂÞ˹·½¿é
¡¡¡¡°î°îС¾ç³¡¸øµÄÁé¸Ð£¬Ö®Ç°Ò²¿´¹ý¸÷ÖÖ¸÷ÑùµÄ¶íÂÞ˹·½¿é£¬ÊǾµä£¬¾ÍÔÚÓÚËü×ÜÄÜ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£º