Như tiêu đề, mình đang cần tìm 1 số thuật toán để khởi tạo ma trận cho game pikachu để tham khảo và sử dụng. Anh em nào đã làm rồi hoặc có biết thì chia sẻ giúp mình nha.
============================
1 thuật toán mình tìm được trên unitiviet.com
Mã:
void MainMenu::randomOnet()
{
int count = 0;
int id = 0;
int max = 144; //ma tran. 9x16
for(int i=0; i< max/2; i++) //cho 36 onet vao` 72 thu' tu. dau` tien (moi~ onet xuat hien. 2 lan)
{
g_arrTmp[i] = id;
count++;
if(count >= 2)
{
count=0;
id++;
}
}
for(int i=0; i< 30; i++) // swap vai` lan` (ap dung. 72 gia tri. dau tien)
{
m_i = rand()% (max/2);
m_j = rand()% (max/2);
id = g_arrTmp[m_i];
g_arrTmp[m_i] = g_arrTmp[m_j];
g_arrTmp[m_j] = id;
}
for(int i=72; i< max; i++) //copy 72 thang` dau tien cho 72 thang` sau cung`
{
g_arrTmp[i] = g_arrTmp[i - max/2];
}
for(int i=0; i< 40; i++) // swap vai` lan` (ap dung. tat ca)
{
m_i = rand()%max;
m_j = rand()%max;
id = g_arrTmp[m_i];
g_arrTmp[m_i] = g_arrTmp[m_j];
g_arrTmp[m_j] = id;
}
//gan' vao` ma tran.
id = 0;
for(int i=1; i<= 9; i++)
{
for(int j=1; j<= 16; j++)
{
g_arrOnet[i][j] = g_arrTmp[id];
id++;
}
}
}
Chủ đề tương tự:
Đánh dấu