c語言保存遊戲代碼,c語言代碼怎麼保存

本文目錄一覽:

C語言編寫的遊戲怎樣保存結果?

按ctrl+f 後在彈出的菜單中選save 然後輸入你要保存的文件的名稱!

用C語言編寫的小遊戲代碼是什麼?

“掃雷”小遊戲C代碼

#includestdio.h

#includemath.h

#includetime.h

#includestdlib.h

main( )

{char a[102][102],b[102][102],c[102][102],w;

int i,j;  /*循環變量*/

int x,y,z[999];  /*雷的位置*/

int t,s;  /*標記*/

int m,n,lei;  /*計數*/

int u,v;  /*輸入*/

int hang,lie,ge,mo;  /*自定義變量*/

srand((int)time(NULL));  /*啟動隨機數發生器*/

leb1:  /*選擇模式*/

printf(“\n   請選擇模式:\n   1.標準  2.自定義\n”);

scanf(“%d”,mo);

if(mo==2)  /*若選擇自定義模式,要輸入三個參數*/

{do

{t=0; printf(“請輸入\n行數 列數 雷的個數\n”);

scanf(“%d%d%d”,hang,lie,ge);

if(hang2){printf(“行數太少\n”); t=1;}

if(hang100){printf(“行數太多\n”);t=1;}

if(lie2){printf(“列數太少\n”);t=1;}

if(lie100){printf(“列數太多\n”);t=1;}

if(ge1){printf(“至少要有一個雷\n”);t=1;}

if(ge=(hang*lie)){printf(“雷太多了\n”);t=1;}

}while(t==1);

}

else{hang=10,lie=10,ge=10;}  /*否則就是選擇了標準模式(默認參數)*/

for(i=1;i=ge;i=i+1)  /*確定雷的位置*/

{do

{t=0; z[i]=rand( )%(hang*lie);

for(j=1;ji;j=j+1){if(z[i]==z[j]) t=1;}

}while(t==1);

}

for(i=0;i=hang+1;i=i+1)  /*初始化a,b,c*/

{for(j=0;j=lie+1;j=j+1) {a[i][j]=’1′; b[i][j]=’1′; c[i][j]=’0′;} }

for(i=1;i=hang;i=i+1)

{for(j=1;j=lie;j=j+1) {a[i][j]=’+’;} }

for(i=1;i=ge;i=i+1)  /*把雷放入c*/

{x=z[i]/lie+1; y=z[i]%lie+1; c[x][y]=’#’;}

for(i=1;i=hang;i=i+1)  /*計算b中數字*/

{for(j=1;j=lie;j=j+1)

{m=48;

if(c[i-1][j-1]==’#’)m=m+1; if(c[i][j-1]==’#’)m=m+1;

if(c[i-1][j]==’#’)m=m+1;  if(c[i+1][j+1]==’#’)m=m+1;

if(c[i][j+1]==’#’)m=m+1;  if(c[i+1][j]==’#’)m=m+1;

if(c[i+1][j-1]==’#’)m=m+1; if(c[i-1][j+1]==’#’)m=m+1;

b[i][j]=m;

}

}

for(i=1;i=ge;i=i+1)  /*把雷放入b中*/

{x=z[i]/lie+1; y=z[i]%lie+1; b[x][y]=’#’;}

lei=ge;  /*以下是遊戲設計*/

do

{leb2:  /*輸出*/

system(“cls”);printf(“\n\n\n\n”);

printf(”    “);

for(i=1;i=lie;i=i+1)

{w=(i-1)/10+48; printf(“%c”,w);

w=(i-1)%10+48; printf(“%c  “,w);

}

printf(“\n   |”);

for(i=1;i=lie;i=i+1){printf(“—|”);}

printf(“\n”);

for(i=1;i=hang;i=i+1)

{w=(i-1)/10+48; printf(“%c”,w);

w=(i-1)%10+48; printf(“%c |”,w);

for(j=1;j=lie;j=j+1)

{if(a[i][j]==’0′)printf(”   |”);

else printf(” %c |”,a[i][j]);

}

if(i==2)printf(” 剩餘雷個數”);

if(i==3)printf(” %d”,lei);

printf(“\n   |”);

for(j=1;j=lie;j=j+1){printf(“—|”);}

printf(“\n”);

}

scanf(“%d%c%d”,u,w,v);  /*輸入*/

u=u+1,v=v+1;

if(w!=’#’a[u][v]==’@’)

goto leb2;

if(w==’#’)

{if(a[u][v]==’+’){a[u][v]=’@’; lei=lei-1;}

else if(a[u][v]==’@’){a[u][v]=’?’; lei=lei+1;}

else if(a[u][v]==’?’){a[u][v]=’+’;}

goto leb2;

}

a[u][v]=b[u][v];

leb3:  /*打開0區*/

t=0;

if(a[u][v]==’0′)

{for(i=1;i=hang;i=i+1)

{for(j=1;j=lie;j=j+1)

{s=0;

if(a[i-1][j-1]==’0′)s=1; if(a[i-1][j+1]==’0′)s=1;

if(a[i-1][j]==’0′)s=1;  if(a[i+1][j-1]==’0′)s=1;

if(a[i+1][j+1]==’0′)s=1; if(a[i+1][j]==’0′)s=1;

if(a[i][j-1]==’0′)s=1;  if(a[i][j+1]==’0′)s=1;

if(s==1)a[i][j]=b[i][j];

}

}

for(i=1;i=hang;i=i+1)

{for(j=lie;j=1;j=j-1)

{s=0;

if(a[i-1][j-1]==’0′)s=1; if(a[i-1][j+1]==’0′)s=1;

if(a[i-1][j]==’0′)s=1;  if(a[i+1][j-1]==’0′)s=1;

if(a[i+1][j+1]==’0′)s=1; if(a[i+1][j]==’0′)s=1;

if(a[i][j-1]==’0′)s=1;   if(a[i][j+1]==’0′)s=1;

if(s==1)a[i][j]=b[i][j];

}

}

for(i=hang;i=1;i=i-1)

{for(j=1;j=lie;j=j+1)

{s=0;

if(a[i-1][j-1]==’0′)s=1; if(a[i-1][j+1]==’0′)s=1;

if(a[i-1][j]==’0′)s=1;  if(a[i+1][j-1]==’0′)s=1;

if(a[i+1][j+1]==’0′)s=1; if(a[i+1][j]==’0′)s=1;

if(a[i][j-1]==’0′)s=1;  if(a[i][j+1]==’0′)s=1;

if(s==1)a[i][j]=b[i][j];

}

}

for(i=hang;i=1;i=i-1)

{for(j=lie;j=1;j=j-1)

{s=0;

if(a[i-1][j-1]==’0′)s=1; if(a[i-1][j+1]==’0′)s=1;

if(a[i-1][j]==’0′)s=1;  if(a[i+1][j-1]==’0′)s=1;

if(a[i+1][j+1]==’0′)s=1;if(a[i+1][j]==’0′)s=1;

if(a[i][j-1]==’0′)s=1;  if(a[i][j+1]==’0′)s=1;

if(s==1)a[i][j]=b[i][j];

}

}

for(i=1;i=hang;i=i+1)  /*檢測0區*/

{for(j=1;j=lie;j=j+1)

{if(a[i][j]==’0′)

{if(a[i-1][j-1]==’+’||a[i-1][j-1]==’@’||a[i-1][j-1]==’?’)t=1;

if(a[i-1][j+1]==’+’||a[i-1][j+1]==’@’||a[i-1][j+1]==’?’)t=1;

if(a[i+1][j-1]==’+’||a[i+1][j-1]==’@’||a[i+1][j-1]==’?’)t=1;

if(a[i+1][j+1]==’+’||a[i+1][j+1]==’@’||a[i+1][j+1]==’?’)t=1;

if(a[i+1][j]==’+’||a[i+1][j]==’@’||a[i+1][j]==’?’)t=1;

if(a[i][j+1]==’+’||a[i][j+1]==’@’||a[i][j+1]==’?’)t=1;

if(a[i][j-1]==’+’||a[i][j-1]==’@’||a[i][j-1]==’?’)t=1;

if(a[i-1][j]==’+’||a[i-1][j]==’@’||a[i-1][j]==’?’)t=1;

}

}

}

if(t==1)goto leb3;

}

n=0;  /*檢查結束*/

for(i=1;i=hang;i=i+1)

{for(j=1;j=lie;j=j+1)

{if(a[i][j]!=’+’a[i][j]!=’@’a[i][j]!=’?’)n=n+1;}

}

}

while(a[u][v]!=’#’n!=(hang*lie-ge));

for(i=1;i=ge;i=i+1)  /*遊戲結束*/

{x=z[i]/lie+1; y=z[i]%lie+1; a[x][y]=’#’; }

printf(”    “);

for(i=1;i=lie;i=i+1)

{w=(i-1)/10+48; printf(“%c”,w);

w=(i-1)%10+48; printf(“%c  “,w);

}

printf(“\n   |”);

for(i=1;i=lie;i=i+1){printf(“—|”);}

printf(“\n”);

for(i=1;i=hang;i=i+1)

{w=(i-1)/10+48; printf(“%c”,w);

w=(i-1)%10+48; printf(“%c |”,w);

for(j=1;j=lie;j=j+1)

{if(a[i][j]==’0′)printf(” |”);

else  printf(” %c |”,a[i][j]);

}

if(i==2)printf(” 剩餘雷個數”);

if(i==3)printf(” %d”,lei); printf(“\n   |”);

for(j=1;j=lie;j=j+1) {printf(“—|”);}

printf(“\n”);

}

if(n==(hang*lie-ge)) printf(“你成功了!\n”);

else printf(”    遊戲結束!\n”);

printf(”    重玩請輸入1\n”);

t=0;

scanf(“%d”,t);

if(t==1)goto leb1;

}

/*註:在DEV c++上運行通過。行號和列號都從0開始,比如要確定第0行第9列不是「雷」,就在0和9中間加入一個字母,可以輸入【0a9】三個字符再按回車鍵。3行7列不是雷,則輸入【3a7】回車;第8行第5列是雷,就輸入【8#5】回車,9行0列是雷則輸入【9#0】並回車*/

C語言中編輯俄羅斯方塊保存遊戲進度的源代碼?

假設有地圖 map[V][C],這個數組的值可以是顏色值,或者是編號,把這個數組全部寫入文件;

另外在此之前,文件需要一個文件頭,裏面包含標識字、保存日期、得分、當前方塊的編號和位置、下一塊方塊的編號,等等信息。

進度恢復時,需要根據當前得分定位速度、恢復方塊的位置、恢復地圖,刷新畫板。

將C語言程序源代碼保存

保存源代碼的話,可以保存成txt,即新建一個空白的文本文檔,再把代碼複製進去。還可以直接點VC++的保存或另存為按鈕,進到你建好的目錄下,再將文件名命名,名字是xxx.cpp,保存即可。

希望可以幫到你!

求教c語言在vs2010上寫貪吃蛇怎麼實現遊戲的保存

思路上,就是你得把程序的當前運行狀態保存成一個文件,下次讀入這個文件,解析數據,重置遊戲狀態,就可以繼續了。

積分榜也一樣,我稍微具體說一下:每一局結束後,把積分榜文件讀出來,把當前分數(可能還有玩家名等信息)寫入積分榜文件,然後保存。這個文件的格式完全是自己定義的,只要你自己能弄明白讀寫規則,怎麼存都行。

c語言小遊戲代碼

最基礎的貪吃蛇的代碼

#includestdio.h

#includewindows.h//基本型態定義。支援型態定義函數。使用者界面函數 圖形裝置界面函數。

#includeconio.h //用戶通過按鍵盤產生的對應操作 (控制台)

#includestdlib.h

#includetime.h //日期和時間頭文件

#define LEN 30

#define WID 25

int Snake[LEN][WID] = {0}; //數組的元素代表蛇的各個部位

char Sna_Hea_Dir = ‘a’;//記錄蛇頭的移動方向

int Sna_Hea_X, Sna_Hea_Y;//記錄蛇頭的位置

int Snake_Len = 3;//記錄蛇的長度

clock_t Now_Time;//記錄當前時間,以便自動移動

int Wait_Time ;//記錄自動移動的時間間隔

int Eat_Apple = 1;//吃到蘋果表示為1

int Level ;

int All_Score = -1;

int Apple_Num = -1;

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //獲取標準輸出的句柄 windows.h

//句柄 :標誌應用程序中的不同對象和同類對象中的不同的實例 方便操控,

void gotoxy(int x, int y)//設置光標位置

{

COORD pos = {x,y}; //定義一個字符在控制台屏幕上的坐標POS

SetConsoleCursorPosition(hConsole, pos); //定位光標位置的函數windows.h

}

void Hide_Cursor()//隱藏光標 固定函數

{

CONSOLE_CURSOR_INFO cursor_info = {1, 0};

SetConsoleCursorInfo(hConsole, cursor_info);

}

void SetColor(int color)//設置顏色

{

SetConsoleTextAttribute(hConsole, color);

//是API設置字體顏色和背景色的函數 格式:SetConsoleTextAttribute(句柄,顏色);

}

void Print_Snake()//打印蛇頭和蛇的脖子和蛇尾

{

int iy, ix, color;

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

if(Snake[ix][iy] == 1)//蛇頭

{

SetColor(0xf); //oxf代表分配的內存地址 setcolor:34行自定義設置顏色的函數

gotoxy(ix*2, iy);

printf(“※”);

}

if(Snake[ix][iy] == 2)//蛇的脖子

{

color = rand()%15 + 1; //rand()函數是產生隨機數的一個隨機函數。C語言里還有 srand()函數等。

//頭文件:stdlib.h

if(color == 14)

color -= rand() % 13 + 1; //變色

SetColor(color);

gotoxy(ix*2, iy);

printf(“■”);

}

if(Snake[ix][iy] == Snake_Len)

{

gotoxy(ix*2, iy);

SetColor(0xe);

printf(“≈”);

}

}

}

void Clear_Snake()//擦除貪吃蛇

{

int iy, ix;

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

gotoxy(ix*2, iy);

if(Snake[ix][iy] == Snake_Len)

printf(” “);

}

}

void Rand_Apple()//隨機產生蘋果

{

int ix, iy;

do

{

ix = rand() % LEN;

iy = rand() % WID;

}while(Snake[ix][iy]);

Snake[ix][iy] = -1;

gotoxy(ix*2, iy);

printf(“⊙”);

Eat_Apple = 0;

}

void Game_Over()//蛇死掉了

{

gotoxy(30, 10);

printf(“Game Over”);

Sleep(3000);

system(“pause nul”);

exit(0);

}

void Move_Snake()//讓蛇動起來

{

int ix, iy;

for(ix = 0; ix LEN; ++ix)//先標記蛇頭

for(iy = 0; iy WID; ++iy)

if(Snake[ix][iy] == 1)

{

switch(Sna_Hea_Dir)//根據新的蛇頭方向標誌蛇頭

{

case ‘w’:

if(iy == 0)

Game_Over();

else

Sna_Hea_Y = iy – 1;

Sna_Hea_X = ix;

break;

case ‘s’:

if(iy == (WID -1))

Game_Over();

else

Sna_Hea_Y = iy + 1;

Sna_Hea_X = ix;

break;

case ‘a’:

if(ix == 0)

Game_Over();

else

Sna_Hea_X = ix – 1;

Sna_Hea_Y = iy;

break;

case ‘d’:

if(ix == (LEN – 1))

Game_Over();

else

Sna_Hea_X = ix + 1;

Sna_Hea_Y = iy;

break;

default:

break;

}

}

if(Snake[Sna_Hea_X][Sna_Hea_Y]!=1Snake[Sna_Hea_X][Sna_Hea_Y]!=0Snake[Sna_Hea_X][Sna_Hea_Y]!=-1)

Game_Over();

if(Snake[Sna_Hea_X][Sna_Hea_Y] 0)//吃到蘋果

{

++Snake_Len;

Eat_Apple = 1;

}

for(ix = 0; ix LEN; ++ix)//處理蛇尾

for(iy = 0; iy WID; ++iy)

{

if(Snake[ix][iy] 0)

{

if(Snake[ix][iy] != Snake_Len)

Snake[ix][iy] += 1;

else

Snake[ix][iy] = 0;

}

}

Snake[Sna_Hea_X][Sna_Hea_Y] = 1;//處理蛇頭

}

void Get_Input()//控制蛇的移動方向

{

if(kbhit())

{

switch(getch())

{

case 87:

Sna_Hea_Dir = ‘w’;

break;

case 83:

Sna_Hea_Dir = ‘s’;

break;

case 65:

Sna_Hea_Dir = ‘a’;

break;

case 68:

Sna_Hea_Dir = ‘d’;

break;

default:

break;

}

}

if(clock() – Now_Time = Wait_Time)//蛇到時間自動行走

{

Clear_Snake();

Move_Snake();

Print_Snake();

Now_Time = clock();

}

}

void Init()//初始化

{

system(“title 貪吃毛毛蛇”);

system(“mode con: cols=80 lines=25”);

Hide_Cursor();

gotoxy(61, 4);

printf(“You Score:”);

gotoxy(61, 6);

printf(“You Level:”);

gotoxy(61, 8);

printf(“The Lenght:”);

gotoxy(61, 10);

printf(“The Speed:”);

gotoxy(61, 12);

printf(“Apple Num:”);

int i;

for(i = 0; i Snake_Len; ++i)//生成蛇

Snake[10+i][15] = i+1;

int iy, ix;//打印蛇

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

if(Snake[ix][iy])

{

SetColor(Snake[ix][iy]);

gotoxy(ix*2, iy);

printf(“■”);

}

}

}

void Pri_News()//打印信息

{

SetColor(0xe);

gotoxy(73,4);

All_Score += Level;

printf(“%3d”, All_Score);

gotoxy(73, 6);

printf(“%3d”, Level);

gotoxy(73, 8);

printf(“%3d”,Snake_Len);

gotoxy(73, 10);

printf(“0.%3ds”, Wait_Time/10);

gotoxy(73, 12);

printf(“%d”, Apple_Num);

}

void Lev_Sys()//等級系統

{

if(((Apple_Num-1) / 10) == Level)

{

++Level;

if(Wait_Time 50)

Wait_Time -= 50;

else

if(Wait_Time 10)

Wait_Time -= 10;

else

Wait_Time -= 1;

}

}

int main(void)

{

Init();

srand((unsigned)time(NULL));//設置隨機數的種子

Now_Time = clock();

int speed1=1000,speed2,a;

printf(“\n”);

printf(“請輸入你想要的速度\n”);

scanf(“%d”,speed2);

Level=1;

Wait_Time=speed1-speed2;

printf(“請輸入你想要的蘋果數\n”);

scanf(“%d”,a);

while(a–)

Rand_Apple();

while(1)

{

if(Eat_Apple)

{

++Apple_Num;

Rand_Apple();

Lev_Sys();

Pri_News();

}

Get_Input();

Sleep(10);

}

return 0;

}

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

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

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變量和數…

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

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

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

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

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在着手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

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

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

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29

發表回復

登錄後才能評論