c語言遊戲系統,c語言程序遊戲

本文目錄一覽:

用C語言數據結構做個遊戲或系統

#include stdio.h

#include graphics.h

#include stdlib.h

#include dos.h

/*

* 本遊戲中的食物由一個小方格表示

* 本遊戲中的蛇由多個小方格組成(最少兩個)

* 在遊戲的進行過程中,蛇每吃一格食物,則長度將增加一節(即一個小方格)

*/

/*

* 該宏定義蛇的最大節數

*/

#define SNAKE_MAX_LEN 300

/*

* 定義遊戲畫面在屏幕中的位置

*/

#define F_LEFT 50

#define F_TOP 40

#define F_RIGHT 609

#define F_BOTTOM 459

/*

* 牆壁的厚度

*/

#define QB_WIDTH 10

/*

* 表示食物、蛇的小方格的大小

*/

#define XFG_WIDTH 10

/*

* 蛇的活動區域內橫向、縱向可擺放小方格的個數

*/

#define NUM_H ( (F_RIGHT-F_LEFT+1-2*QB_WIDTH)/XFG_WIDTH )

#define NUM_V ( (F_BOTTOM-F_TOP+1-2*QB_WIDTH)/XFG_WIDTH )

/*

* 注: 在設計上面宏的時候,必須滿足:

* (1) 在屏幕分別率允許的範圍內

* (2) (F_RIGHT-F_LEFT+1-2*QB_WIDTH)/XFG_WIDTH 必須能整除

* (3) (F_BOTTOM-F_TOP+1-2*QB_WIDTH)/XFG_WIDTH 必須能整除

*/

/*

* 將在蛇的活動區內以小方格為單位的坐標轉換成屏幕的像素坐標

*/

#define X_to_x(x) ( (x) * XFG_WIDTH + (F_LEFT+QB_WIDTH) )

#define Y_to_y(y) ( (y) * XFG_WIDTH + (F_TOP+QB_WIDTH) )

/*

* 分別定義 蛇、食物、牆壁的顏色

*/

#define SNAKE_COLOR RED

#define FOOD_COLOR GREEN

#define QB_COLOR LIGHTCYAN

/*

* 定義按鍵掃描碼

*/

#define K_LEFT 0x4b00

#define K_RIGHT 0x4d00

#define K_DOWN 0x5000

#define K_UP 0x4800

#define K_ESC 0x011b

/*

* 定義蛇移動的方向

*/

#define MOVE_RIGHT 1

#define MOVE_LEFT 2

#define MOVE_UP 3

#define MOVE_DOWN 4

int score=0; /* 得分 */

int gamespeed=50000; /* 遊戲速度 */

/*

* 食物的屬性

*/

struct {

int x; /* 表示食物小方格左上角的橫坐標 */

int y; /* 表示食物小方格左上角的縱坐標 */

int yes; /* 是否要出現食物 */

/* 1 表示需要出現新食物, 0 表示已經存在食物 */

}food;

/*

* 蛇的屬性

*/

struct {

/*

* 每個小方格左上角的橫坐標(x)、縱坐標(y)

*/

int x[SNAKE_MAX_LEN];

int y[SNAKE_MAX_LEN];

int node; /* 蛇的節數 */

int direction; /* 蛇移動方向 */

}snake;

/*圖形驅動*/

void MyInitGraph(void)

{

int GraphDriver; /* 圖形設備驅動程序 */

int GraphMode; /* 圖形設備模式 */

GraphDriver = DETECT; /* 請求自動檢測 */

initgraph( GraphDriver, GraphMode, “” );

cleardevice();

}

/*圖形結束*/

void MyCloseGraph(void)

{

closegraph();

}

/* 輸出字符串*/

void PrintString(const char *str)

{

setfillstyle(SOLID_FILL,YELLOW);

bar(F_LEFT,F_TOP-20,F_RIGHT,F_TOP-20+15);

setcolor(BROWN);

settextstyle(DEFAULT_FONT,0,1);

outtextxy(F_LEFT+5,F_TOP-20+5,str);

}

/*

* 遊戲畫面,左上角坐標為(F_LEFT,F_TOP),右下角坐標為(F_RIGHT,F_BOTTOM)的圍牆

*/

void DrawForm(void)

{

int i;

char str[100];

setcolor(QB_COLOR);

setlinestyle(SOLID_LINE,0,NORM_WIDTH); /* 設置線型 */

for(i=F_LEFT;i=F_RIGHT-QB_WIDTH+1;i+=QB_WIDTH){

/*

* 在屏幕的上邊和下邊分別畫 56 個緊挨着的小矩形

* 小矩形的高寬都分別為10 個像素

*/

rectangle(i, F_TOP, i+QB_WIDTH-1, F_TOP+QB_WIDTH-1);

rectangle(i,F_BOTTOM-QB_WIDTH+1, i+QB_WIDTH-1, F_BOTTOM);

}

for(i=F_TOP;i=F_BOTTOM-QB_WIDTH+1;i+=QB_WIDTH){

/*

* 在屏幕的左邊和右邊分別畫 42 個緊挨着的小矩形

* 小矩形的高寬都分別為10 個像素

*/

rectangle( F_LEFT,i, F_LEFT+QB_WIDTH-1, i+QB_WIDTH-1);

rectangle(F_RIGHT-QB_WIDTH+1,i, F_RIGHT, i+QB_WIDTH-1);

}

PrintString(“Please Press A Key to play the game!”);

while( kbhit() ){

/*

* NULL

*/

}

bioskey(0);

}

/*

* 根據按鍵內容,改變蛇的運動方向

*/

void change_direction_by_key(int key)

{

if( key==K_UP){

if( snake.direction!=MOVE_DOWN ){

snake.direction = MOVE_UP;

}

}else if( key==K_RIGHT ){

if( snake.direction!=MOVE_LEFT ){

snake.direction = MOVE_RIGHT;

}

}else if( key==K_LEFT ){

if( snake.direction!=MOVE_RIGHT ){

snake.direction = MOVE_LEFT;

}

}else if( key==K_DOWN ){

if( snake.direction!=MOVE_UP ){

snake.direction = MOVE_DOWN;

}

}

}

/*輸出成績*/

void PrintScore(/*int score*/)

{

char str[20];

sprintf(str,”score:%d”,score);

PrintString(str);

}

/*遊戲結束*/

void GameOver(void)

{

cleardevice();

PrintScore();

setcolor(RED);

settextstyle(0,0,4);

outtextxy(200,200,”GAME OVER”);

getch();

}

/*

* 生成一個新的食物

* 在圍牆內隨機生成新食物的坐標

*/

void Make_A_Food()

{

food.x = X_to_x( rand() % NUM_H );

food.y = Y_to_y( rand() % NUM_V );

}

/*

* 在畫面上顯示食物

*/

void DispFood(void)

{

setcolor(FOOD_COLOR);

rectangle(food.x,food.y,food.x+XFG_WIDTH-1,food.y+XFG_WIDTH-1);

}

/*

* 蛇的每個小方格往前移動一格

*/

void move_snake(void)

{

int i;

/*

* 在畫面上抹去蛇的最後一節

*/

setcolor(BLACK);

rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1]+XFG_WIDTH-1,snake.y[snake.node-1]+XFG_WIDTH-1);

/*

* 根據蛇的移動方向計算蛇的每個小方格的坐標

*/

for(i=snake.node-1;i0;i–){

snake.x[i]=snake.x[i-1];

snake.y[i]=snake.y[i-1];

}

switch( snake.direction ){

case MOVE_RIGHT: snake.x[0] += XFG_WIDTH; break;

case MOVE_LEFT: snake.x[0] -= XFG_WIDTH; break;

case MOVE_UP: snake.y[0] -= XFG_WIDTH; break;

case MOVE_DOWN: snake.y[0] += XFG_WIDTH; break;

}

/*

* 在畫面上按移動後的坐標畫出蛇的第一節

*/

setcolor(SNAKE_COLOR);

rectangle(snake.x[0],snake.y[0],snake.x[0]+XFG_WIDTH-1,snake.y[0]+XFG_WIDTH-1);

/*

for(i=0;isnake.node;i++)

rectangle(snake.x[i],snake.y[i],snake.x[i]+XFG_WIDTH-1,snake.y[i]+XFG_WIDTH-1);

*/

}

/*

* 將蛇的身體長一節

* 且新的一節先放在原最後一節的位置,下次循環就正常了

*/

可以用C語言編寫遊戲嗎

可以用C語言編寫遊戲的。

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

儘管C語言提供了許多低級處理的功能,但仍然保持着良好跨平台的特性,以一個標準規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。

C語言編程:編寫一個猜數的遊戲,系統自動產生一個

static void Main(string[] args){string i = null;do{Console.Write(“請輸入一個整數(範圍為1~100)\n如果要退出,請輸入0!否則輸入1!”);i = Console.ReadLine();if (i.Trim().Equals(“0”)){return;}} while (!i.Trim().Equals(“1”));start:Random ra = new Random();int rndInt = ra.Next(1, 100);int input = 0;do{Console.Write(“輸入你猜的數值:”);i = Console.ReadLine();if (!int.TryParse(i, out input)){continue;}if (input rndInt){Console.Write(“猜大了\n\n”);}else if (input rndInt){Console.Write(“猜小了\n\n”);}} while (input != rndInt);Console.Write(“恭喜你,猜對了!\n\n”);do{Console.Write(“若繼續猜測輸入Y,若退出則輸入N!\n請輸入:”);i = Console.ReadLine();if (i.Trim().Equals(“n”, StringComparison.OrdinalIgnoreCase)){return;}if (i.Trim().Equals(“y”, StringComparison.OrdinalIgnoreCase)){goto start;}} while (!i.Trim().Equals(“1”));}

有C語言基礎想開發遊戲,還需要學哪些

你可以先去【繪學霸】網站找「遊戲特效/unity3D」板塊的【免費】視頻教程-【點擊進入】完整入門到精通視頻教程列表: ;tagid=305,306zdhhr-11y17r-694997618062854084

想要系統的學習可以考慮報一個網絡直播課,推薦CGWANG的網絡課。老師講得細,上完還可以回看,還有同類型錄播課可以免費學(贈送終身VIP)。

自制能力相對較弱的話,建議還是去好點的培訓機構,實力和規模在國內排名前幾的大機構,推薦行業龍頭:王氏教育。

王氏教育全國直營校區面授課程試聽【複製後面鏈接在瀏覽器也可打開】:

在「遊戲特效/unity3D」領域的培訓機構里,【王氏教育】是國內的老大,且沒有加盟分校,都是總部直營的連鎖校區。跟很多其它同類型大機構不一樣的是:王氏教育每個校區都是實體面授,老師是手把手教,而且有專門的班主任從早盯到晚,爆肝式的學習模式,提升會很快,特別適合基礎差的學生。

大家可以先把【繪學霸】APP下載到自己手機,方便碎片時間學習——繪學霸APP下載:

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/257828.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:47
下一篇 2024-12-15 12:47

相關推薦

  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • 為什麼不用Python開發遊戲

    Python是一種高級編程語言,擁有簡單易學、代碼簡潔等優點。同時,Python也是一種多用途的語言,可以用於Web開發、數據分析以及機器學習等領域。然而,對於遊戲開發領域,Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • 如何在樹莓派上安裝Windows 7系統?

    隨着樹莓派的普及,許多用戶想在樹莓派上安裝Windows 7操作系統。 一、準備工作 在開始之前,需要準備以下材料: 1.樹莓派4B一台; 2.一張8GB以上的SD卡; 3.下載並…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論