C語言 請實現乙個控制台的2048小遊戲

2021-10-08 05:36:13 字數 2411 閱讀 6210

#include

#include

#include

#include

//列印函式,列印出遊戲介面

//如果是0的話就為空,否則列印出數值

void print(int a[4][4], int count)

for (int i = 0; i < 4; i++) 

printf(" --- "); //列印的是第一行的橫線

printf("\n");

for (int i = 0; i < 4; i++)

for (int j = 0; j < 4; j++) 

if (j == 0) 

printf("|"); //列印的是第一列的豎線

if (a[i][j] == 0)

printf("    |"); //如果每乙個a[i][j]裡面是0則列印出豎線

else 

printf("%3d |", a[i][j]); //如果每乙個a[i][j]裡面b不是0則列印出豎線

printf("\n");

for (int h = 0; h < 4; h++) 

printf(" --- ");//列印出剩下行的橫線

printf("\n");

printf("請使用wsad進行遊戲\n");

printf("當前得分為:%d\n", count);

//為一開始生成隨機的兩個座標

void start(int a[4][4])

srand((unsigned)time(null));//用時間作為隨機數的種子

int x, y;

x = rand() % 4;

y = rand() % 4;

a[x][y] = 2;   //一開始隨機的數為2

x = rand() % 4;

y = rand() % 4;

while (a[x][y] == 2) 

x = rand() % 4;

y = rand() % 4;

a[x][y] = 2;

return;

//每一回合過後都隨機生成乙個新的2

void fresh(int a[4][4]) 

srand((unsigned)time(null));

int x, y;

x = rand() % 4;

y = rand() % 4;

while (a[x][y] != 0) 

x = rand() % 4;

y = rand() % 4;

a[x][y] = 2;

return;

//判斷是否遊戲結束

//遊戲結束的標誌就是無論從那個方向都沒有可以合成的格仔了

//演算法就是先從行判斷,然後從列判斷

//如果遊戲結束了就返回0,否則返回1

int is_die(int a[4][4])

for (int i = 0; i < 4; i++) 

for (int j = 0; j < 3; j++)

if (a[i][j] == a[i][j + 1]) 

//如果有相等的就是可以合成,遊戲還沒有結束

return 1;

if (a[j][i] == a[j + 1][i])

return 1;

//走到這一步就說明遊戲結束了

return 0;

int can(int a[4][4])

return 1;

//主函式,通過輸入來進行移動

//進行操作的時候分四種情況

//演算法為:先檢查有沒有可以合併的格仔,如果有就合併,然後再緊湊

void run(int a[4][4]) 

char b;

scanf_s("%c", &b, 1);

char c = getchar();

switch (b) ;

int count = 0;//記錄遊戲分數

start(a);

print(a, count);

run(a);

count++;

system("cls");

fresh(a);

print(a, count);

sleep(50);

while (1) {

if (is_die(a) == 1)

//遊戲還可以繼續進行

run(a);

fresh(a);

system("cls");

count++;

print(a, count);

sleep(5);

else 

system("cls");

printf("遊戲結束,最終得分為:%d\n", count);

return 0;

C 實現乙個簡單的控制台計算器

vs官網給新使用者提供了乙個c 控制台建立計算器的例子,用這個例子熟悉了一下vs,順帶做了一些個人改進 vs官網計算器例子的鏈結 官網的計算器有基本的 功能,頭檔案建立的類中宣告乙個計算函式 calculator.h pragma once class calculator 我在計算器的主體上新增了...

c語言控制台 之 彈幕實現

彈幕從從控制台的右端到控制台的左端,位置範圍右端要能顯示字串,左端要 0 結構體儲存每個訊息的內容 移動速度 顏色 和初始位置 初始位置不能變,用於下次還原 include include includestruct node struct node dm 出現位置 void gotoxy int ...

C語言控制台實現字元飛機大戰

先看看效果吧 大一的時候做的,當時沒有好的 習慣,所以 有點亂,直接複製就能用了,功能可以自行拓展。include include include int main 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 for printf n 列印地圖結束 printf...