命令列之俄羅斯方塊

2021-06-23 01:37:35 字數 3677 閱讀 5526

命令列之俄羅斯方塊

大一學了c++,在網上看到了很多俄羅斯方塊的**,大部分做的是圖形介面高階版的,沒學過mfc,用c++在命令列寫了乙個山寨版的俄羅斯方塊,斷斷續續差不多整了乙個月,功能包括上下左右移動,旋轉,沉底,暫停,計分,減速,退出,還算比較全面吧。下面貼上截圖和原始碼,vc上不能直接編譯通過,因為這個編譯器要求類必須放在單獨檔案中,vs,cb上可以直接編譯執行

cout << "按回車鍵進入遊戲\n"<< endl;;

while(1)

}cout << "■" ;

sleep(200);

}if(getch() == 27)

else

}void console::end_game()

void console::initialize_window()

for(int i = 0;i < 2 * width - 1; i += 2)

for(int i = 0;i < height;i++)

for(int i = 0;i < height;i ++)

}void block::make_block()

case 2: //橫直線

case 3: //豎直線

case 4: //t

case 5: //t順時針轉90度

case 6: //t順時針轉180度

case 7: //t順時針轉270度

case 8: //z

case 9: //z順時針轉90度

case 10: //z順時針轉180度

case 11: //z順時針轉270度

case 12: //倒z

case 13: //倒z順時針轉90度

case 14: //倒z順時針轉180度

case 15: //倒z順時針轉270度

case 16: //7

case 17: //7順時針轉90度

case 18: //7順時針轉180度

case 19: //7順時針轉270度

case 20: //倒7

case 21: //倒7順指標轉90度

case 22: //倒7順時針轉180度

case 23: //倒7順時針轉270度

}}bool block::if_move()

else

}return 0;

}void block::get_flag()

b.next_flag = rand()%23+1;

}void block::output_block(handle hout)

b.make_block();

for(int i = b.x-2;i <= b.x+4; i += 2) //列印方塊,4*4}}

setconsoletextattribute(handle,foreground_intensity | foreground_red | foreground_green);

c.gotoxy(hout,coord_x+2*width+3,coord_y);

cout << "等級 : " << b.level;

c.gotoxy(hout,coord_x+2*width+3,coord_y+2);

cout << "分數 : " << b.score;

c.gotoxy(hout,coord_x+2*width+3,coord_y+4);

cout << "速度 : " << b.block_speed << "ms";

}void block::clear_block(handle hout)

b.make_block();

for(int i = b.x-2; i <= b.x+4; i +=2)}}

}void block::if_full(handle hout)

for(block_count = j-1;block_count > coord_y; block_count--)}}

j++;

delete_block_num++;}}

}}b.score += 100 * delete_block_num;

if(delete_block_num > 0 && (b.score%1000 == 0 || b.score / 1000 > b.level - 1 ))

}void console::start_game()

if(ch == 100)

if(ch == 115)

if(ch == 119) //加一取餘實現旋轉

if(b.flag >= 4 && b.flag <= 7)

if(b.flag >= 8 && b.flag <= 11)

if(b.flag >= 12 && b.flag <= 15)

if(b.flag >= 16 && b.flag <= 19)

if(b.flag >= 20 && b.flag <= 23)

}if(ch == 27)

if(ch == ' ')}}

}if(b.if_move() == 0)

else

}b.y++;

if(b.if_move() == 0)

}for(int i = b.y-2;i < b.y+2; i++)

}b.flag = b.next_flag;

b.x = coord_x + 2 * width + 6;

b.y = coord_y + 10;

b.clear_block(hout);

}}int main()

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

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

俄羅斯方塊

俄羅斯方塊 tetris,俄文 是一款風靡全球的電視遊戲機 和掌上遊戲機遊戲,它由俄羅斯人阿列克謝 帕基特諾夫 發明,故得此名。俄羅斯方塊的基本規則是移動 旋轉和擺放遊戲自動輸出的各種方塊,使之排列成完整的一行或多行並且消除得分。由於上手簡單 老少皆宜,從而家喻戶曉,風靡世界。俄羅斯方塊的開發者是阿...

俄羅斯方塊

include include include include includeusing namespace std include include define mem a,b memset a,b,sizeof a const int sudu 40 const int dir 4 2 cons...