当前位置:首页阅读

上升三消

上升三消

三消

上升三消

上升三消,我不知道从哪刷出来的广告,结合了消除,上升,下降,挺综合的。我有两个版本,一开始是阶梯上升,就是隔一段时间上升一层,会导致错选,但这也是一种玩法,只不过这种模式不太适合这种游戏,第二个是改进后的渐变上升,广告显示的是第一种......表示第一种玩不下去。

素材用的是之前的:

上升三消_WWW.XUNWANGBA.COM

1.jpg

上升三消_WWW.XUNWANGBA.COM

2.jpg

上升三消_WWW.XUNWANGBA.COM

3.jpg

上升三消_WWW.XUNWANGBA.COM

4.jpg

上升三消_WWW.XUNWANGBA.COM

5.jpg

上升三消_WWW.XUNWANGBA.COM

6.jpg

上升三消_WWW.XUNWANGBA.COM

7.jpg

阶梯性代码:

#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 typenum;

int lifenum;

};

Node box[100];

MOUSEMSG m;

IMAGE img[8];

int exit1,exit2,exit3;

int seed1,seed2;

int one,two,three;

int speed;

int point;

clock_t t1,t2;

void create()

{

int i,j,k;

for(i=0;i=9;i++){

for(j=0;j=7;j++){

if(box[i*8+j].lifenum==1){

box[i*8+j-8].lifenum=1;

box[i*8+j-8].typenum=box[i*8+j].typenum;

}

}

}

for(k=72;k=79;k++){

seed1++;

srand(seed1);

seed2=rand()%6+1;

seed1+=seed2;

srand(seed1);

box[k].typenum=rand()%7+1;

box[k].lifenum=1;

}

setfillcolor(WHITE);

solidrectangle(50,0,450,500);

for(k=0;k=79;k++){

if(box[k].lifenum==1) putimage(box[k].posx,box[k].posy, img[box[k].typenum]);

}

setfillcolor(WHITE);

if(one=0)one-=8;fillcircle(box[one].posx+3,box[one].posy+3,3);

if(two=0)two-=8;fillcircle(box[two].posx+3,box[two].posy+3,3);

if(three=0)three-=8;fillcircle(box[three].posx+5,box[three].posy+5,3);

for(i=0;i=7;i++){

if(box[i].lifenum==1) exit1=1;exit2=1;

break;

}

}

void change(int a)

{

setfillcolor(WHITE);

solidrectangle(box[a].posx,box[a].posy,box[a].posx+50,box[a].posy+50);

while(a7){

a-=8;

box[a+8].typenum=box[a].typenum;

if(box[a].lifenum==0){

solidrectangle(box[a+8].posx,box[a+8].posy,box[a+8].posx+50,box[a+8].posy+50);

box[a+8].lifenum=0;

break;

}

else {

putimage(box[a+8].posx,box[a+8].posy,img[box[a+8].typenum]);

}

}

}

void move()

{

int i,j,k;

exit2=0;

BeginBatchDraw();

t1=clock();

t2=clock();

while(exit2==0){

FlushBatchDraw();

t2=clock();

while(t2-t1speed){

t1=clock();

create();

}

if(MouseHit()){

m = GetMouseMsg();

if(m.uMsg==WM_LBUTTONDOWN){

i=(m.x-50)/50+m.y/50*8;

if(m.x50||m.x450){i=-2;}

if(box[i].lifenum==1i!=-2){

if(i==one){putimage(box[one].posx,box[one].posy, img[box[one].typenum]);one=-1;}

else if(i==two){putimage(box[two].posx,box[two].posy, img[box[two].typenum]);two=-1;}

else if(one==-1){one=i;fillcircle(box[one].posx+3,box[one].posy+3,3);}

else if(two==-1){two=i;fillcircle(box[two].posx+3,box[two].posy+3,3);}

else {three=i;fillcircle(box[three].posx+5,box[three].posy+5,3);}

}

}

}

while(one!=-1two!=-1three!=-1){

if(box[one].typenum==box[two].typenumbox[one].typenum==box[three].typenum){

i=onetwo?one:two;

i=ithree?i:three;

j=onetwo?one:two;

j=jthree?j:three;

if(oneionej)k=one;

else if(twoitwoj)k=two;

else k=three;//couti k jendl;

change(i);change(k);change(j);

point++;

}

putimage(box[one].posx,box[one].posy, img[box[one].typenum]);

putimage(box[two].posx,box[two].posy, img[box[two].typenum]);

putimage(box[three].posx,box[three].posy, img[box[three].typenum]);

one=-1;two=-1;three=-1;

}

}

EndBatchDraw();

}

void initialization()

{

int i,j,k;

point=0;

exit1=0;seed1=0;exit2=0;speed=2000;one=-1;two=-1;three=-1;

initgraph(500,500,SHOWCONSOLE);

cleardevice();

setfillcolor(WHITE);

solidrectangle(50,0,450,500);

loadimage(img[1],_T(../sc/1.jpg),50,50);

loadimage(img[2],_T(../sc/2.jpg),50,50);

loadimage(img[3],_T(../sc/3.jpg),50,50);

loadimage(img[4],_T(../sc/4.jpg),50,50);

loadimage(img[5],_T(../sc/5.jpg),50,50);

loadimage(img[6],_T(../sc/6.jpg),50,50);

loadimage(img[7],_T(../sc/7.jpg),50,50);

k=0;;

for(i=0;i=9;i++){

for(j=0;j=7;j++){

box[i*8+j].num=k;

box[i*8+j].posx=j*50+50;

box[i*8+j].posy=i*50;

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

box[i*8+j].typenum=0;

k++;

}

}

}

void carry()

{

int i,j,k;

initialization();

while(exit1==0){

move();

}

coutpointendl;

_getch();

closegraph();

}

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 typenum;

int lifenum;

};

Node box[101];

MOUSEMSG m;

IMAGE img[8];

int exit1,exit2,exit3;

int seed1,seed2;

int one,two,three;

int speed1,speed2;

int point;

clock_t t1,t2,t3,t4,t5,t6;

void create()

{

int i,j,k;

for(i=0;i=7;i++){

for(k=0;k=99;k++){

if(box[k].lifenum==0)break;

}

//coutk ;

seed1++;

srand(seed1);

seed2=rand()%6+1;

seed1+=seed2;

srand(seed1);

box[k].typenum=rand()%7+1;

box[k].lifenum=1;

box[k].posx=50+50*i;

box[k].posy=500;

}

//coutendl;

t5=clock();t6=clock();

}

void change(int x)

{

int i,j,k;

exit3=0;

setfillcolor(WHITE);

while(exit3==0){

j=0;

for(i=0;i=99;i++){

if(box[i].posx=box[x].posx+1box[i].posx=box[x].posx-1box[i].posy=box[x].posy-45box[i].posy=box[x].posy-55){

j=1;

break;

}

}

if(j==0){

exit3=1;solidrectangle(box[x].posx,box[x].posy,box[x].posx+50,box[x].posy+50);box[x].lifenum=0;

}

else{

box[x].typenum=box[i].typenum;

putimage(box[x].posx,box[x].posy, img[box[x].typenum]);

box[x].lifenum=1;

x=i;

}

}

}

void move()

{

int i,j,k,t;

exit2=0;

BeginBatchDraw();

t1=clock();t3=clock();

t2=clock();t4=clock();

create();t=0;

while(exit2==0){

FlushBatchDraw();

t2=clock();

while(t2-t1speed1){

t1=clock();

create();

}

t4=clock();

while(t4-t3speed2){

t++;

if(t==50){t6=clock();speed1=t6-t5;}

t3=clock();

setfillcolor(WHITE);

solidrectangle(50,0,450,500);

for(i=0;i=99;i++){

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

box[i].posy-=1;

putimage(box[i].posx,box[i].posy, img[box[i].typenum]);

if(one=0)fillcircle(box[one].posx+3,box[one].posy+3,3);

if(two=0)fillcircle(box[two].posx+3,box[two].posy+3,3);

if(three=0)fillcircle(box[three].posx+5,box[three].posy+5,3);

}

}

for(i=0;i=99;i++){

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

exit1=1;exit2=1;break;

}

}

}

if(MouseHit()){

m = GetMouseMsg();

if(m.uMsg==WM_LBUTTONDOWN){

j=0;

for(i=0;i=99;i++){

if(box[i].posx=m.xbox[i].posx+50=m.xbox[i].posy=m.ybox[i].posy+50=m.y){

j=1;

break;

}

}

if(j==0)i=-2;

if(box[i].lifenum==1i!=-2){

if(i==one){putimage(box[one].posx,box[one].posy, img[box[one].typenum]);one=-1;}

else if(i==two){putimage(box[two].posx,box[two].posy, img[box[two].typenum]);two=-1;}

else if(one==-1){one=i;fillcircle(box[one].posx+3,box[one].posy+3,3);}

else if(two==-1){two=i;fillcircle(box[two].posx+3,box[two].posy+3,3);}

else {three=i;fillcircle(box[three].posx+5,box[three].posy+5,3);}

}

}

}

while(one!=-1two!=-1three!=-1){

if(box[one].typenum==box[two].typenumbox[one].typenum==box[three].typenum){

box[one].lifenum=0;box[two].lifenum=0;box[three].lifenum=0;

change(one);change(two);change(three);

point++;

}

putimage(box[one].posx,box[one].posy, img[box[one].typenum]);

putimage(box[two].posx,box[two].posy, img[box[two].typenum]);

putimage(box[three].posx,box[three].posy, img[box[three].typenum]);

one=-1;two=-1;three=-1;

}

}

EndBatchDraw();

}

void initialization()

{

int i,j,k;

point=0;

exit1=0;seed1=0;exit2=0;speed1=10000;speed2=40;one=-1;two=-1;three=-1;

initgraph(500,500,SHOWCONSOLE);

cleardevice();

setfillcolor(WHITE);

solidrectangle(50,0,450,500);

loadimage(img[1],_T(../sc/1.jpg),50,50);

loadimage(img[2],_T(../sc/2.jpg),50,50);

loadimage(img[3],_T(../sc/3.jpg),50,50);

loadimage(img[4],_T(../sc/4.jpg),50,50);

loadimage(img[5],_T(../sc/5.jpg),50,50);

loadimage(img[6],_T(../sc/6.jpg),50,50);

loadimage(img[7],_T(../sc/7.jpg),50,50);

k=0;;

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

box[i].num=k;

box[i].lifenum=0;

box[i].typenum=0;

box[i].posy=500;

k++;

}

}

void carry()

{

int i,j,k;

initialization();

while(exit1==0){

move();

}

coutpointendl;

_getch();

closegraph();

}

int main()

{

carry();

return 0;

}

演示视频,用的是渐变性的,上升到顶层即为失败:

上升三消_WWW.XUNWANGBA.COM

上升三消)宝,都看到这里了你确定不收藏一下??