命令列之俄羅斯方塊
大一學了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...