c 也能寫俄羅斯方塊

2021-06-27 01:19:39 字數 4124 閱讀 6271

//最近詩興大發,寫了個俄羅斯方塊c++版,拿出來分享,廢話不說上原始碼

//歡迎同我一起交流

#include

#include

#include

#include

#include

#include

int isover();//判斷是否結束

class game;

class tetris;

int map[24][12]=//地圖

,//0

,//1

,//2

,//3

,//4

,//5

,//6 

,//7

,//8

,//9

,//10

,//11

,//12

,//13

,//14

,//15

,//16

,//17

,//18

,//19

,//20

,//21

,//22

,//23

};int block[19][8]=,//0

,//1

,//2

,//3

,//4

,//5

,//6

,//7

,//8

,//9

,//10

,//11

,//12

,//13

,//14

,//15

,//16

,//17

,//18

};game::game()

game::~game()

void game::modifyspeed(int speed)

void game::modifyrandom(int random)

void game::modifyscore(int score)

void game::modifynext()

void game::setnext(int next)

int game::getrandom()

int game::getspeed()

int game::getscore()

int game::getnext()

void game::inforefresh(int method)

else if(1==method)

}for(i=0;i<8;i=i+2)

}else if(2==method)

coord.x=0;

coord.y=0;

setconsolecursorposition(hout,coord);

}tetris::tetris()

tetris::~tetris()

void tetris::setmethod(int me)

void tetris::created(int next)

}int tetris::getlocationx()

int tetris::getlocationy()

void tetris::refresh()}}

coord.x=0;

coord.y=0;

setconsolecursorposition(hout,coord);

}void tetris::display(int score,int speed,int next)

if(i==5)

if(i==6)

}printf("■");}}

flag=0;

}if(i==7)

}printf("■");}}

flag=0;

}if(i==8)

}printf("■");}}

flag=0;

}if(i==9)

}printf("■");}}

flag=0;

}if(i==10)

if(i==11)

if(i==13)

if(i==15)

if(i==17)

printf("\n");}}

int * tetris::freefall(int score,int speed,int next)

j=j+2;

}if(x_move==1)

else if(map[i+1][j]==4)

}else if(map[i][j]==5)}}

locationx++;

}else

a[1]=remove(score,speed,next);//檢查是否可以消除,a接收分數

a[0]=1;//是否可以產生方塊

}return a;

}int tetris::remove(int &score,int speed,int next)

}if(count==10)

else if(count==0)

}score=score+100;

display(score,speed,next);

i++;}}

return score;

}void tetris::right()

for(i=0;i<4;i++)

j=j+2;

}if(flag==1&&y_move==1)//1

if(map[i][j]==5)//1

}//2

}//3

locationy++;//方塊的縱座標加一}}

void tetris::left()

for(i=0;i<4;i++)

j=j+2;

}if(flag==1&&y_move==1)//1

if(map[i][j]==5)//1

}//2

}//3

locationy--;}}

void tetris::up()

else if(block>=1&&block<=4)

else if(block>=5&&block<=6)

else if(block>=7&&block<=10)

else if(block>=11&&block<=12)

else if(block>=13&&block<=14)

else if(block>=15&&block<=18)

}int tetris::down()

void tetris::transform(int x,int y)

j=j+2;

}if(flag==0)

else

j=j+2;

}block=x;//更改方塊的型別

for(i=0,j=0;i<4;i++)

else

j=j+2;}}

}else

j=j+2;

}if(flag==0)

else

j=j+2;

}block++;

for(i=0,j=0;i<4;i++)

else

j=j+2;}}

}}int main()

returnvalue=tetris->freefall(game.getscore(),game.getspeed(),game.getnext());

tetris->refresh();//重新整理

x=returnvalue[0];//x為是否可以產生方塊

y=returnvalue[1];//y為分數

game.modifyrandom(x);

game.modifyscore(y);

game.inforefresh(0);//資訊重新整理

sleep(game.getspeed());

if(game.getscore()<1000)

else if(game.getscore()<3000)

else if(game.getscore()<10000)

else if(game.getscore()<50000)

tetris->setmethod(0);

}switch(getch())

}return 0;

}int isover()

}return 0;

}

俄羅斯方塊高階 AI俄羅斯方塊

前文回顧 致青春 python實現俄羅斯方塊 人工智慧大火的今天,如果還是自己玩俄羅斯方塊未免顯得太low,為什麼不對遊戲公升級,讓機器自己去玩俄羅斯方塊呢?有了這個想法之後利用週六週日兩天的時間去蒐集了大量的資料,在電腦宕機好多次之後終於將ai俄羅斯方塊實現了。所謂讓機器自己去玩俄羅斯方塊,就是讓...

C 俄羅斯方塊

因為要得找工作了,不得不寫些文章讓hr更多的了解到我,同時能幫到別的同學也是好的。因為接觸unity時間不是特別久,所以這裡先帖出早期開發的c 遊戲,然後再帖unity遊戲。另外提醒,我的所有作品都是自己開發的,絕無抄襲 程式 和程式設計思想絕沒超抄過別人的 最多也就是高仿別人的遊戲 貪吃蛇算嗎?俄...

俄羅斯方塊 C

include include include include includeusing namespace std define a1 0 a代表長條型,b為方塊,c為l型,d為閃電型 實在無法描述那個形狀 define a2 1 define b 2 define c11 3 define c1...