//// main.c// test_a7//// Created by dezhu on 2021/12/27.// Copyright © 2021年 dezhu. All rights reserved.//#include<stdio.h>#include <graphics.h>#include <conio.h>#include <windows.h>#include <stdlib.h>#include<time.h>int hight = 800;int width = 800;int cube_x,cube_y;int kind;int v=0;int a;int bottom_y;int bottom_x[4];int view[800][800] = {0};void updatewithpeople();void updatewithoutpeople();void star();void show();void gameover();void search();int main(){ star(); while(1){ updatewithpeople(); updatewithoutpeople(); show(); } return 0;}void updatewithpeople(){ if(GetAsyncKeyState(0x41)&0x8000){ Sleep(10); if(GetAsyncKeyState(0x41)&0x8000){ if(cube_x>=0){ cube_x-=40; switch(kind){ case 0:view[cube_x+80][cube_y]=0;view[cube_x+80][cube_y+40]=0;break; case 1:view[cube_x+80][cube_y]=0;view[cube_x+80][cube_y+40]=0;break; case 2:view[cube_x+80][cube_y]=0;view[cube_x+120][cube_y+40]=0;break; case 3:view[cube_x+80][cube_y]=0;view[cube_x+40][cube_y+40]=0;break; case 4:view[cube_x+160][cube_y]=0;break; case 5:view[cube_x+40][cube_y]=0;view[cube_x+120][cube_y+40]=0;break; case 6:view[cube_x+40][cube_y]=0;view[cube_x+40][cube_y+40]=0;break; case 7:view[cube_x+40][cube_y]=0;view[cube_x+80][cube_y+40]=0;break; } } } while(GetAsyncKeyState(0x41)&0x8000); } if(GetAsyncKeyState(0x44)&0x8000){ Sleep(10); if(GetAsyncKeyState(0x44)&0x8000) { if(cube_x<=800) { cube_x+=40; switch(kind) { case 0:view[cube_x-40][cube_y]=0;view[cube_x-40][cube_y+40]=0;break; case 1:view[cube_x-40][cube_y]=0;view[cube_x-40][cube_y+40]=0;break; case 2:view[cube_x-40][cube_y]=0;view[cube_x][cube_y+40]=0;break; case 3:view[cube_x-40][cube_y]=0;view[cube_x-80][cube_y+40]=0;break; case 4:view[cube_x-40][cube_y]=0;break; case 5:view[cube_x-40][cube_y]=0;view[cube_x-40][cube_y+40]=0;break; case 6:view[cube_x-40][cube_y]=0;view[cube_x-120][cube_y+40]=0;break; case 7:view[cube_x-40][cube_y]=0;view[cube_x-80][cube_y+40]=0;break; } } } while(GetAsyncKeyState(0x44)&0x8000); } if(GetAsyncKeyState(VK_SPACE)&0x8000){ Sleep(10); if(GetAsyncKeyState(VK_SPACE)&0x8000){ switch(kind){ case 0:break; case 1:break; case 2:break; case 3:break; case 4:break; case 5:break; case 6:break; case 7:break; } } while(GetAsyncKeyState(VK_SPACE)&0x8000); }}void updatewithoutpeople(){ int j,k; int x,y; srand(time(NULL)); if(v==0){ cube_x=400; cube_y=0; kind=rand()%7; // v=1;// } if(kind==4) bottom_y=cube_y; else bottom_y=cube_y+40; switch(kind){ case 0: view[cube_x][cube_y]=0; view[cube_x+40][cube_y]=0; view[cube_x][cube_y+40]=0; view[cube_x+40][cube_y+40]=0;break; case 1: view[cube_x][cube_y]=0; view[cube_x+40][cube_y]=0; view[cube_x][cube_y+40]=0; view[cube_x+40][cube_y+40]=0;break; case 2: view[cube_x][cube_y]=0; view[cube_x+40][cube_y]=0; view[cube_x+40][cube_y+40]=0; view[cube_x+80][cube_y+40]=0;break; case 3: view[cube_x][cube_y]=0; view[cube_x+40][cube_y]=0; view[cube_x][cube_y+40]=0; view[cube_x-40][cube_y+40]=0;break; case 4: view[cube_x][cube_y]=0; view[cube_x+40][cube_y]=0; view[cube_x+80][cube_y]=0; view[cube_x+120][cube_y]=0;break; case 5: view[cube_x][cube_y]=0; view[cube_x][cube_y+40]=0; view[cube_x+40][cube_y+40]=0; view[cube_x+80][cube_y+40]=0;break; case 6: view[cube_x][cube_y]=0; view[cube_x][cube_y+40]=0; view[cube_x-40][cube_y+40]=0; view[cube_x-80][cube_y+40]=0;break; case 7: view[cube_x][cube_y]=0; view[cube_x][cube_y+40]=0; view[cube_x-40][cube_y+40]=0; view[cube_x+40][cube_y+40]=0;break; } switch(kind){ case 0: if(view[cube_x][bottom_y+40]!=1&&bottom_y<760){ a++; if(a>400) { cube_y+=40; a=0; } } else v=0;search();break; case 1: if(view[cube_x][bottom_y+40]!=1&&bottom_y<760){ a++; if(a>400) { cube_y+=40; a=0; } } else v=0;search();break; case 2: if(view[cube_x+40][bottom_y+40]!=1&&view[cube_x+80][bottom_y+40]!=1&& bottom_y<760){ a++; if(a>400) { cube_y+=40; a=0; } } else v=0;search();break; case 3: if(view[cube_x][bottom_y+40]!=1&&view[cube_x-40][bottom_y+40]!=1&&bottom_y<760){ a++; if(a>400) { cube_y+=40; a=0; } } else v=0;search();break; case 4: if(view[cube_x][bottom_y+40]!=1&&view[cube_x+40][bottom_y+40]!=1&&view[cube_x+80][bottom_y+40]!=1&&view[cube_x+120][bottom_y+40]!=1&&bottom_y<760) { a++; if(a>200) { cube_y+=40; a=0; } } else v=0;search();break; case 5: if(view[cube_x][bottom_y+40]!=1&&view[cube_x+40][bottom_y+40]!=1&&view[cube_x+80][bottom_y+40]!=1&&bottom_y<760) { a++; if(a>400) { cube_y+=40; a=0; } } else v=0;search();break; case 6: if(view[cube_x][bottom_y+40]!=1&&view[cube_x-40][bottom_y+40]!=1&&view[cube_x-80][bottom_y+40]!=1&&bottom_y<760) { a++; if(a>400) { cube_y+=40; a=0; } } else v=0;search();break; case 7: if(view[cube_x][bottom_y+40]!=1&&view[cube_x+40][bottom_y+40]!=1&&view[cube_x-40][bottom_y+40]!=1&&bottom_y<760) { a++; if(a>400) { cube_y+=40; a=0; } } else v=0;search();break; } switch(kind){ case 0: view[cube_x][cube_y]=1; view[cube_x+40][cube_y]=1; view[cube_x][cube_y+40]=1; view[cube_x+40][cube_y+40]=1;break; case 1: view[cube_x][cube_y]=1; view[cube_x+40][cube_y]=1; view[cube_x][cube_y+40]=1; view[cube_x+40][cube_y+40]=1;break; case 2: view[cube_x][cube_y]=1; view[cube_x+40][cube_y]=1; view[cube_x+40][cube_y+40]=1; view[cube_x+80][cube_y+40]=1;break; case 3: view[cube_x][cube_y]=1; view[cube_x+40][cube_y]=1; view[cube_x][cube_y+40]=1; view[cube_x-40][cube_y+40]=1;break; case 4: view[cube_x][cube_y]=1; view[cube_x+40][cube_y]=1; view[cube_x+80][cube_y]=1; view[cube_x+120][cube_y]=1;break; case 5: view[cube_x][cube_y]=1; view[cube_x][cube_y+40]=1; view[cube_x+40][cube_y+40]=1; view[cube_x+80][cube_y+40]=1;break; case 6: view[cube_x][cube_y]=1; view[cube_x][cube_y+40]=1; view[cube_x-40][cube_y+40]=1; view[cube_x-80][cube_y+40]=1;break; case 7: view[cube_x][cube_y]=1; view[cube_x][cube_y+40]=1; view[cube_x-40][cube_y+40]=1; view[cube_x+40][cube_y+40]=1;break; }}void star(){ cube_x=400;// cube_y=0; view[cube_x][cube_y]=1; initgraph(hight, width);//}void show(){ srand(time(NULL)); BeginBatchDraw(); int x,y; cleardevice(); for(x=0;x<800;x+=40){ line(x,0,x,800); } for(y=0;y<800;y+=40){ line(0,y,800,y); } setlinecolor(RGB(255,255,255)); if(v==0){ setfillcolor(RGB(rand()%255,rand()%255,rand()%255));// } for(x=0;x<800;x+=40) for(y=0;y<800;y+=40){ if(view[x][y]==1||view[x][y]==2) fillrectangle(x,y,x+40,y+40); } FlushBatchDraw();}void gameover(){}void search(){ int x,y,j; int number=0; for(y=0;y<800;y+=40){ for(x=0;x<800;x+=40){ if(view[x][y]==1) { number++; } } if(number==20){ j=0; while(j<=760){ view[j][y]=0; j+=40; } j=y-40; for(;j>=0;j-=40) for(x=0;x<800;x+=40){ if(view[x][j]==1){ view[x][j]=0; view[x][j+40]=1; } } } number=0; }}