簡單小游戲編程
1. 教你如何使用c語言編寫簡單小游戲
編寫程序,實現如下表所示的5-魔方陣。
17
24
1
8
15
23
5
7
14
16
4
6
13
20
22
10
12
19
21
3
11
18
25
2
9
5-魔方陣
問題分析
所謂「n-魔方陣」,指的是使用1〜n2共n2個自然數排列成一個n×n的方陣,其中n為奇數;該方陣的每行、每列及對角線元素之和都相等,並為一個只與n有關的常數,該常數為n×(n2+1)/2。
例如5-魔方陣,其第一行、第一列及主對角線上各元素之和如下:
第一行元素之和:17+24+1+8+15=65
第一列元素之和:17+23+4+10+11=65
主對角線上元素之和:17+5+13+21+9=65
而
n×(n2+1)/2=5×(52+1)/2=65
可以驗證,5-魔方陣中其餘各行、各列及副對角線上的元素之和也都為65。
假定陣列的行列下標都從0開始,則魔方陣的生成方法為:在第0行中間置1,對從2開始的其餘n2-1個數依次按下列規則存放:
(1)
假定當前數的下標為(i,j),則下一個數的放置位置為當前位置的右上方,即下標為(i-1,j+1)的位置。
(2)
如果當前數在第0行,即i-1小於0,則將下一個數放在最後一行的下一列上,即下標為(n-1,j+1)的位置。
(3)
如果當前數在最後一列上,即j+1大於n-1,則將下一個數放在上一行的第一列上,即下標為(i-1,0)的位置。
(4)
如果當前數是n的倍數,則將下一個數直接放在當前位置的正下方,即下標為(i+1,j)的位置。
演算法設計
在設計演算法時釆用了下面一些方法:
定義array()函數,array()函數的根據輸入的n值,生成並顯示一個魔方陣,當發現n不是奇數時,就加1使之成為奇數。
使用動態內存分配與釋放函數malloc()與free(),在程序執行過程中動態分配與釋放內存,這樣做的好處是使代碼具有通用性,同時提高內存的使用率。
在分配內存時還要注意,由於一個整型數要佔用兩個內存,因此,如果魔方陣中要存放的數有max個,則分配內存時要分配2*max個單元,從而有malloc(max+max)。在malloc()函數中使用max+max而不是2*max是考慮了程序運行的性能。
顯然應該使用二維數組來表示魔方陣,但雖然數組是二維形式的,而由於內存是一維線性的,因此在存取數組元素時,要將雙下標轉換為單個索引編號。在程序中直接定義了指針變數來指向數組空間,即使用malloc()函數分配的內存。
2. 怎麼製作小游戲
製作游戲有製作的游戲的劇情和腳本、繪制游戲人物的圖形和背景、游戲建模、學會游戲製作軟體的操作、創建一個游戲的項目工程等五方面的內容。
1、通過參考不同的游戲,寫出想要製作的游戲的劇情和腳本。游戲的種類有多種,根據自己喜歡的游戲種類,通過參考不同的游戲,寫出要製作游戲的劇情。
2、根據游戲的劇情和腳本,使用手繪軟體繪制游戲人物的圖形和背景。
3、通過建模的軟體把平面圖形創建為立體模型效果。有多種建模軟體,可以通過建模的軟體把平面圖形創建為立體模型效果。比如使用常用的建模軟體3dmax。
4、學會游戲製作軟體的操作,這樣製作游戲的效率高些。游戲製作的軟體有多種,比如用Unity3D開發游戲,熟悉游戲製作軟體的操作,這樣製作更快捷。
5、創建一個游戲的項目工程,在製作游戲時方便查找。根據游戲的設計,創建一個游戲的項目工程。這樣把游戲中所使用的資源文件和模型都放在一個目錄便於修改。
/iknow-pic.cdn.bcebos.com/29381f30e924b8998db9a54561061d950b7bf6c2"target="_blank"title="點擊查看大圖"class="illustration_alink">/iknow-pic.cdn.bcebos.com/29381f30e924b8998db9a54561061d950b7bf6c2?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="//www.ultimate-communications.com/img_29381f30e924b8998db9a54561061d950b7bf6c2"/>
注意事項:
1、游戲製作,是一個很花費時間的過程,不是寫寫代碼就結束了。可玩性,難度調整,美工,等等。即使是小游戲,也會花大量的時間。
2、大型游戲不推薦一個人單獨製作,但是不是說只有大公司大企業才能做出大型游戲。游戲規模越大,內容整理起來越復雜,團隊非常重要。
3. 如何用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;
}

(3)簡單小游戲編程擴展閱讀:
C++語言的程序因為要體現高性能,所以都是編譯型的。但其開發環境,為了方便測試,將調試環境做成解釋型的。
生成程序是指將源碼(C++語句)轉換成一個可以運行的應用程序的過程。如果程序的編寫是正確的,那麼通常只需按一個功能鍵,即可搞定這個過程。但是該過程實際上分成兩個步驟。
第一步是對程序進行編譯,這需要用到編譯器(compiler)。編譯器將C++語句轉換成機器碼(也稱為目標碼);
第二步就是對程序進行鏈接,這需要用到鏈接器(linker)。鏈接器將編譯獲得機器碼與C++庫中的代碼進行合並。C++庫包含了執行某些常見任務的函數(「函數」是子程序的另一種稱呼)。
參考資料來源:
網路-C++
4. 如何製作一個簡單的小游戲
比如我們做一個貪吃蛇,首先要用專業語言給小蛇設置游動的一個范圍,再加上一些控制的原則之類的,用一些C語言或者Java語言,這種編程語言就可以實現,之後,再進行調試,運行一下,運行成功就是一個小游戲,很簡單。
5. 如何製作一款簡單游戲
1、製作游戲前需要給自己的游戲定位
在自己動手製作游戲前,需要先做下計劃,給自己的游戲定位。是大型游戲還是小游戲,游戲的種類是那種,有動作、冒險、休閑等。這個設計好後,才能開始下一步的游戲劇情的設計。
2、設計自己的游戲劇情
每個游戲都有自己的劇情和人物背景,根據自己想法,設計自己的游戲劇情。比如可以從小說中查找一些情節進行改寫,形成游戲的主線,游戲的分支線可以在後期補充。
3、選擇製作游戲的開發工具
不同種類的游戲,可以用不同的開發游戲的工具,大的游戲可以用編程開發工具,小的游戲,用腳本的開發工具也能製作出來,需要選擇一個自己熟悉的開發工具,這樣製作時,難度就會降低。
4、設計游戲人物的原畫和場景畫
游戲中人物的原畫和場景設計很重要,開發工具設計的代碼是在後台,展示在檯面的就是人物的形象和不同風格的游戲場景。可根據自已設計的游戲主線,畫出主場景和主要人物的原畫,後期補充分場景和次要人物的原畫。
5、把設計好的原畫和場景畫進行掃描和加工處理
原畫和場景設計花費的時間比較長,美好的人物形象在華麗的場景中出現,讓人看了印象深刻。接著把設計好的原畫和場景畫進行掃描和加工處理。這樣在游戲開發時就可以直接作為素材添加了。
6、選擇好的游戲背景和場景音樂
在玩家玩游戲時,好的游戲背景和場景音樂,讓人聽了輕松又愉快,會體驗到游戲的樂趣,製作自己的游戲時,可以選擇自己喜歡的音樂來作為游戲的背景和場景音樂。
7、製作自己的游戲的開發和測試
游戲的開發就是花費時間長的階段,如果學過編程的人,經過幾個月的游戲開發工具學習就可以進行游戲開發了。如果想簡單一點就可以製作一個Flash的小游戲開發。經過一段時間開發完成後,需要自己對游戲的主線和支線進行游戲的測試,避免游戲出錯。
8、 把自己製作的游戲給朋友來玩,體驗游戲設計和製作的樂趣
游戲測試完成後,可以把自己製作的游戲給朋友來玩,體驗游戲設計和製作的樂趣。大家可以根據這個游戲製作的流程和方法來製作自己的游戲吧。
6. 怎麼編程一個最簡單游戲代碼
利用隨機數猜大小,如下:

1、代碼的第一行,是一個include語句。沒有它我們的程序會編譯不過。有了它就是告訴編譯器在對代碼進行編譯之前,必須要包含程序需要的文件。這里的stdio.h就是我們需要的頭文件。
2、代碼第二行是一個main函數,這個main函數的返回值是一個int整型數據。剛開始學習編程的時候我們可以認為程序運行的時候是從main函數開始的。後續會專門給大家做一個介紹向大家說明在main函數之前還做了哪些事情。
3、每個函數都用一對「{}」進行包含,表示著函數體的開始和結束,當然後面說到控制語句的時候它還表示一段控制語句的開始和結束。
4、main函數中調用了一個printf函數。它是用來向控制台輸出我們想要的內容。printf的函數定位格式為:int printf(constchar*format,...)。format中定義了輸出內容和格式。
5、return函數執行完後。在退出函數體之前,會將函數進行返回。return後的內容根據函數返回值定義而定。在本段程序中返回的是整型數據0。
7. 如何自己編程做游戲
自己編程做游戲方法如下:
1、基礎語言階段:常用的編程語言有,C,C++,JAVA,其中最廣泛被使用的就是C++,C++語言是一切游戲程序的基礎,換而言之,一個優秀的游戲程序員,必須非常熟練掌握並應用C++。
2、數據結構:在掌握C++之後,需要進行數據結構的學習,形象的講,就是那麼一大堆數據,如何去有序的排列其結構。通過對數據結構的學習,便能夠開始閱讀他人編寫的代碼,嘗試開發簡單的程序,可以實現一些編程者自己的構想,是每個程序員必須掌握的技巧。
3、「庫」的學習及應用:最常用的有MFC(微軟公司類庫),GUI(圖形界面庫),當然「庫」的知識及功能非常龐大,通常來說,熟練掌握一部分經常涉及的知識即可。4、游戲程序對於硬體的操縱。比如,內存,CPU,顯卡,這將會涉及到一些數學知識,比如立體幾何,線性代數等,但是也不用驚慌,並不是非常困難。通過對硬體的熟練操縱,才能將游戲的畫面,流暢度等等充分給予表達。
5、對於相關知識的學習。包括物理,腳本,美術等等。不需要深入了解,但相關知識的豐富對於將來做游戲程序會有直接幫助。
6、對於游戲引擎的熟悉及使用。游戲引擎一般包括渲染器,內存管理器,組織管理幾部分。對游戲的畫面做出渲染,高效使用內存以及如何控制動畫播放等功能。熟悉引擎的使用,也將對於游戲程序員有直觀的幫助。
8. 輸入代碼即可玩的小游戲
ant 螞蟻2. bagels 百吉餅另外貪吃蛇,吃豆子都是可以的,直接代碼就可以玩。

python包括隨您的安裝一起分發的大量標准庫。標准庫有一個稱為Turtle的模塊,這是一種向普通人介紹python編程的流行方法。今天介紹的所有游戲都是使用Python及其Turtle模塊實現的。
每個游戲都完全獨立於其他游戲,不試一試 您永遠都不知道最喜歡哪種游戲。
安裝完之後我們可以使用"python -m freegames list"來查看所有的游戲
貪吃蛇
貪吃蛇 -經典街機游戲。使用箭頭鍵導航並吃綠色食品。每次食用食物,蛇就會長出一段。避免自己進食或出界!
吃豆子
吃豆子 –經典街機游戲。使用箭頭鍵導航並吃掉所有白色食物。提防漫遊迷宮的紅色幽靈。
Flappy
Flappy-bird啟發游戲。單擊屏幕拍打翅膀。當您飛越屏幕時,請當心黑烏鴉。
加農炮
大炮-射擊運動。單擊屏幕發射您的炮彈。炮彈在其路徑中彈出藍色氣球。彈出所有氣球,然後才能越過屏幕。
9. 僅用c語言能編出哪些小游戲
可以編寫狼追兔子游戲,擲骰子游戲,24點游戲,井字棋游戲,農夫過河游戲,掃雷小游戲,人機猜數游戲,三色球游戲, 推箱子游戲,坦克大戰游戲,貪吃蛇游戲等。
10. 如何在家自己編程游戲
想要自己編程做游戲的話:
1.首先要學習看數據的結構,不用學的很深入。在實踐中慢慢深化。
2.然後學下sdl,這個只要看著網上的教程就可以編一些簡單的程序,
3.之後堅持多練習編程,可以從小的游戲慢慢編寫。
