一個小編程
① 如何用C++編寫一個小游戲
一個用C++編程的小游戲,可以實現的功能如下:
1、隨機生成數字;
2、數字消除合並;
3、判定游戲結束;
一、游戲主體:
因為用C++寫的,所以用了類,棋盤用了一個二維數組,m是棋盤規格,取了4。
class game
{
public:
int i, j;
game() {
count1 = 0;
for (i = 0; i < m; i++)
for (j = 0; j < m; j++)
chessboard[i][j] = 0;
srand((unsigned)time(NULL));
x = rand() % m;
y = rand() % m;
if (count1 == 1 || count1 == 0)
chessboard[x][y] = 2;
else
chessboard[x][y] = 4;
showchessboard();
}//構造初始棋盤
void add(int count1);//新增數字
void showchessboard();//顯示棋盤
void up();
void down();
void left();
void right();
bool gameover();//游戲失敗
private:
int chessboard[m][m];
int x, y, count1, count2, temp1, temp2, k;//c1-連消,c2-空位標記,t1-判連消,t2,k-臨時變數
bool flag;//判消
};
二、隨機生成數字
void game::add(int count1)
{
for (i = 0; i < m; i++)
for (j = 0; j < m; j++)
{
if (chessboard[i][j] == 0)
goto loop;
}
showchessboard();
return;
loop:srand((unsigned)time(NULL));
do {
x = rand() % m;
y = rand() % m;
} while (chessboard[x][y] != 0);
if (count1 < 2)
chessboard[x][y] = 2;
else
chessboard[x][y] = 4;
showchessboard();
}
三、數字消除合並
void game::up()
{
temp1 = count1;
flag = false;
for (j = 0; j < m; j++)
for (i = 0; i < m;)
{
for (; i < 4 && chessboard[i][j] == 0; i++); // 找非零值
if (i == 4)
break;
else
{
for (k = i + 1; k < 4 && chessboard[k][j] == 0; k++);//找下一個非零值
if (k == 4)
break;
else if (chessboard[i][j] == chessboard[k][j])//匹配
{
chessboard[i][j] *= 2;
chessboard[k][j] = 0;
i = k + 1;
flag = true;
}
else if (chessboard[i][j] != chessboard[k][j] && k < 4)//不匹配
{
i = k;
}
}
}
for (j = 0; j < m; j++)//排列棋盤
for (i = 0, count2 = 0; i < m; i++)
{
if (chessboard[i][j] != 0)
{
temp2 = chessboard[i][j];
chessboard[i][j] = 0;
chessboard[count2][j] = temp2;
count2++;
}
}
}
四、判斷游戲結束
bool game::gameover()
{
if (flag)
count1++;//判連消
if (temp1 == count1)
count1 = 0;//未消除,連消歸零
add(count1);
for (i = m - 1, j = 0; j < m; j++)//最後一行
{
if (j == m - 1)//右下角
{
if (chessboard[i][j] == 0)
return false;
else if (chessboard[i][j] == 2048)
{
cout << "You Win~ ";
return true;
}
}
else
{
if (chessboard[i][j] == 0 || chessboard[i][j] == chessboard[i][j + 1])
return false;
else if (chessboard[i][j] == 2048)
{
cout << "You Win~ ";
return true;
}
}
}
for (i = 0, j = m - 1; i < m; i++)//最後一列
{
if (i == m - 1)//右下角
{
if (chessboard[i][j] == 0)
return false;
else if (chessboard[i][j] == 2048)
{
cout << "You Win~ ";
return true;
}
}
else
{
if (chessboard[i][j] == 0 || chessboard[i][j] == chessboard[i + 1][j])
return false;
else if (chessboard[i][j] == 2048)
{
cout << "You Win~ ";
return true;
}
}
}
for (i = 0; i < m - 1; i++)
for (j = 0; j < m - 1; j++)
{
if (chessboard[i][j] == 2048)
{
cout << "You Win! ";
return true;
}
else if (chessboard[i][j] == chessboard[i][j + 1] || chessboard[i][j] == chessboard[i + 1][j] || chessboard[i][j] == 0)
return false;
}
cout << "Game over. ";
return true;
}
(1)一個小編程擴展閱讀:
C++語言的程序因為要體現高性能,所以都是編譯型的。但其開發環境,為了方便測試,將調試環境做成解釋型的。
生成程序是指將源碼(C++語句)轉換成一個可以運行的應用程序的過程。如果程序的編寫是正確的,那麼通常只需按一個功能鍵,即可搞定這個過程。但是該過程實際上分成兩個步驟。
第一步是對程序進行編譯,這需要用到編譯器(compiler)。編譯器將C++語句轉換成機器碼(也稱為目標碼);
第二步就是對程序進行鏈接,這需要用到鏈接器(linker)。鏈接器將編譯獲得機器碼與C++庫中的代碼進行合並。C++庫包含了執行某些常見任務的函數(「函數」是子程序的另一種稱呼)。
參考資料來源:
網路-C++
② scratch編程小游戲製作教程
使用Scratch編程語言製作小游戲非常簡單。首先,打開Scratch編輯器,選擇一個角色和背景,並添加代碼來控制角色的移動和跳躍。接著,添加障礙物和收集品,並使用條件語句來控制它們的出現和消失。最後,測試游戲並進行調整和優化。通過本教程的學習,你將掌握Scratch編程語言的基礎知識,並能夠製作自己的小游戲。
③ 做一個小程序開發大概要多少
開發一個小程序,這就要看預算和需求了:
第一種就是自己開發自己做。如果自己不懂編程,可以招聘程序員來做,程序員的工資1萬到萬/月不等,一個功稍強的商城至少需要5個人員,時間就看功能的復雜程度了,半年甚至一年多完工都有可能。
第二種就是找技術公司外包。假如自己什麼也不懂,自己也沒有技術團隊,但預算還可以的情況下可以考慮這種方式,市面上定製開發一般起步5萬以上,功能稍微多一點的,十幾萬的預算很正常,功能簡單一點的工期一般要一個月到三個月不等,稍微功能多一點的商城小程序開發周期半年到一年也是很正常的。
第三種就是找一個具有開發微信小程序商城資質的開發公司,購買模板即可。這一個方式是在自己沒有開發能力、並且預算不高的情況下,最方便也比較省錢的方式,價格一般幾千元。因為我們不需要耗費那麼多精力去自己開發,也不需要花費太多的錢去養一個開發人員或是開發部門,我們只需要支付開發一個小程序的市場價格即可。
④ 一個c語言小問題,編寫程序
按照題目要求編寫的C語言程序如下(見圖)