1樓:匿名使用者
要有介面的話,又是c/c++確實要學mfc的,mfc全部弄明白挺麻煩的,建議買本入門的書《深入淺出mfc》不錯,網上也有不少電子版下,這個被認為是遊戲入門的標準教科書,大部分所謂的遊戲學院也都在用這個做課本。
然後軟體製作流程上需要注意的就是一開始很容易犯乙個錯誤,就是把所有的功能和介面都寫到一起了,到了後期要調整一下介面你會發現非常痛苦,不過這個路是一定要自己走過一遍才能體會的,之後你就會發現模組化程式設計最終解決的問題,介面歸介面,功能歸功能,兩個模組之間是弱耦合的。
軟體製作的流程沒有必要特別的遵守,經驗還是最重要的,建議你先設計好你要做什麼樣的東西,總共有哪些介面,介面之間是如何聯絡起來的,要顯示哪些內容,都列成乙個表,然後根據這些功能來設計你的程式的結構。
比如說,你要做乙個rpg,那麼要有乙個主角,主角有hp,mp,有攻擊力和防禦力,你就要設計乙個類裡面包含這些引數,同時在介面上也要設計有地方顯示這些數值。然後就可以開始考慮如何來同步這些資料,比如說你角色的血已經減少了100,但是要如何通知介面來更新最新的血量之類的。
最後還是那句話,一定要多練習,當你能保證每天300行左右的有效**,並堅持了2個月左右的時候,你一定會有很多心得。
2樓:匿名使用者
能,但是c語言的是最接近系統的高階語言,像這類小遊戲,建議你學c++,再用開發平台來做,比如qt,mfc等等,用物件導向的語言來寫遊戲,軟體,便於擴充套件,維護。
3樓:匿名使用者
建議學習net版的c++,這樣做頁面比較簡單
如何用c++編寫乙個小遊戲
4樓:念周夕陽飄羽
乙個用c++程式設計的小遊戲,可以實現的功能如下:
1、隨機生成數字;
2、數字消除合併;
3、判定遊戲結束;
一、遊戲主體:
因為用c++寫的,所以用了類,棋盤用了乙個二維陣列,m是棋盤規格,取了4。
class game
public:
int i, j;
game() //構造初始棋盤
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 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~\n";
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~\n";
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~\n";
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~\n";
return true;
for (i = 0; i < m - 1; i++)
for (j = 0; j < m - 1; j++)
if (chessboard[i][j] == 2048)
cout << "you win!\n";
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.\n";
return true;
5樓:熊貓話球
分享乙個大家小時候常玩的小遊戲。希望能夠喜歡。
6樓:夏蟲勿語冰
使用語言:c++使用工具:vs2019
7樓:
什麼小遊戲?如果用qt的話,像五子棋什麼的小遊戲就很簡單了
8樓:陳馬珩
猜數字遊戲
**如下:
#include
using namespace std;
int main(int argc, char** ar**)}system("cls");
cout << "猜數字遊戲" << endl;
while(1)
}intacount = 0;
intbcount = 0;
for(int idangqian = 0; idangqian < 4; idangqian++)
if(intdangqiannumbers[idangqian] == intmiminumbers[imimi] && idangqian != imimi)}}
inttrytimes ++;
cout <<"[" << inttrytimes << "] : "<< intacount << "a" << intbcount << "b" << endl;
if(intacount == 4)
}return 0;}
9樓:藍豆
殺手遊戲
#include
#include
#include
#include
int main()
,k[10]=;
aa:while(n!=1)
if(i==6) i=1;
if(a[i]==0)
sleep(1000);
printf("輪到%d號\n",i);
if(i==b)
else
dop=rand()%5+1;
while(p!=i);
while(a[p]==0||p==i) p=rand()%5+1;
sleep(1000);
printf("%d號選擇了%d號\n",i,p);
sleep(1000);
printf("%d號擲出了%d\n",i,c=rand()%6+1);
if(i>=c)
else
if(i==5&&a[p]==0)
if(p==2&&h==0)
if(p==3&&o==0)}}
if(a[1]==0)
}else a[1]=0;
}if(a[2]==0&&h==0)
else
h=1;
}if(a[3]==0&&o==0)
if(i==4&&a[p]==0)
}if(a[b]==0&&e==0)
i++;
}for(j=1;j<=5;j++) if(a[j]!=0) d=j;
if(x!=1)
else
printf("遊戲結束");
return 0;
}要的原始碼拿走,把贊留下。
如何用C語言編寫圖形遊戲,怎樣用C語言編寫乙個小遊戲?
那樣太麻煩 還是學 flash把 怎樣用c語言編寫乙個小遊戲?請問如何用c語言做乙個圖形介面呢?比如乙個迷宮遊戲的介面 不過你得知道怎麼建工程,不然就得在命令列編譯 鏈結 還是用qt或者mfc,c語言桑不起!用windows gdi 繪圖 要先看下有關方面資料 要不用陣列也行 如何使用c語言編寫簡單...
如何用易拉罐手工製作椅子,怎樣用易拉罐製作椅子
要用剪刀,注意安全。1,準備材料。鋁製的易拉罐乙個,拿剪刀小心把上面的蓋剪掉。2,剪罐筒。沿鋁製的罐筒垂直剪到罐底,剪二十條左右,當然剪得越細,成品的效果越精緻,把罐筒倒扣後使整體像流蘇一樣,不要把鋁條剪下來。3,整形。倒扣罐筒,使其底部朝上,這樣這個底就是椅子的面了。把鋁條的頭沿同一方向折兩下,折...
如何用PS做印章,怎樣用ps製作個印章
1.利用橢圓工具在背景上拉出乙個圓形 按住shfit 2.然後點選右下角的路徑,再點選下面一排的 從選區生成工作路徑 3.這時選擇好你要用的顏色,一般改成紅色。4.選好顏色後,就在剛才那一排選項中,點選用畫筆描邊路徑。當然,如果想色彩感覺深一些,可以連續點選幾次 5.在用剛才的方法在圓內拉出乙個小一...