• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

C语言实现游戏三2048游戏

武飞扬头像
愿百事可乐
帮助1

目录

前言

一、游戏思路

二、游戏框架

1.菜单界面

2.游戏主体

1.初始化界面:

2.随机生成初始数字

3.实现移动

4.增加新数字

5.判定胜负

6.游戏函数

三、游戏运行

更新:修复了bug

四、所有代码

总结

学新通


前言

游戏规则:游戏开始,在4x4的棋盘上随机两个方块出现数字2,通过方向键控制所有方块向同一个方向移动,两个相同数字方块撞在一起之后合并成为他们的和。每次移动,棋盘上还会在一个随机位置增加一个数字2或者数字4,当最终得到一个“2048”的方块就算胜利了。

简单吧?简单……个鬼啊,我以前玩了几个小时都失败了最后放弃了。


一、游戏思路

1、程序开始时出现菜单,让玩家选择开始游戏或者退出游戏。

2、玩家选择开始游戏后,出现棋盘,通过方向键选择移动的方向。

3、移动后会将所有方块向该方向移动直至补全空格,同样数字的方块合并成它们的和,还会生成一个随机位置的2或4。

4、当出现“2048”时,游戏胜利;当棋盘满且无法消除时,游戏失败。


二、游戏框架




1.菜单界面

菜单

  1.  
    void menu()
  2.  
    {
  3.  
    printf("**************************\n");
  4.  
    printf("*****按 1 开 始 游 戏*****\n");
  5.  
    printf("*****按 0 退 出 游 戏*****\n");
  6.  
    printf("**************************\n");
  7.  
    }

菜单的选择

  1.  
    int main()
  2.  
    {
  3.  
    int input = 0;
  4.  
    do
  5.  
    {
  6.  
    menu();
  7.  
    printf("请选择:");
  8.  
    scanf("%d", &input);
  9.  
    switch (input)
  10.  
    {
  11.  
    case 1:
  12.  
    game2048();
  13.  
     
  14.  
    break;
  15.  
    case 0:
  16.  
    printf("退出游戏,客官常来玩呀~)\n");
  17.  
    break;
  18.  
    default:
  19.  
    printf("给你一次重新选择的机会\n");
  20.  
    break;
  21.  
    }
  22.  
    } while (input);
  23.  
    return 0;
  24.  
    }
学新通

实际效果

学新通

菜单我觉得还是挺顺眼的,就是有点,毕竟是初学者就不要要求太高了

2.游戏主体

1.初始化界面

生成一个4行4列的数组(此处的行数和列数已在头文件中用#define宏定义)。

并且打印出来。

  1.  
    void DisplayBoard(int board[ROW][COL],int row, int col)
  2.  
    {
  3.  
    int i = 0;
  4.  
    int j = 0;
  5.  
    for (int j = 0; j < COL; j )
  6.  
    printf(" -----");
  7.  
    printf(" \n");
  8.  
    for (int i = 0; i < ROW; i )
  9.  
    {
  10.  
    for (int j= 0; j < COL; j )
  11.  
    {
  12.  
    printf("|");
  13.  
    if (board[i][j]!=0)
  14.  
    printf("]", board[i][j]);
  15.  
     
  16.  
    else
  17.  
    printf(" ");
  18.  
     
  19.  
    }
  20.  
    printf("|\n");
  21.  
    for (int j = 0; j < COL; j )
  22.  
    {
  23.  
    printf(" -----");
  24.  
    }
  25.  
    printf(" \n");
  26.  
    }
  27.  
    }
学新通

效果如下:

学新通 

方吗?方就对了,方就是个好界面! 

2.随机生成初始数字

游戏的界面我们现在已经有了,接下来要做的就是加入两个随机位置的”2"

  1.  
    void get_num(int board[ROW][COL])
  2.  
    {
  3.  
    int x, y;
  4.  
    x = rand() % ROW;
  5.  
    y = rand() % COL;
  6.  
    board[x][y] = 2;//一开始随机的数为2
  7.  
    x = rand() % ROW;
  8.  
    y = rand() % COL;
  9.  
    while (board[x][y] == 2)
  10.  
    {
  11.  
    x = rand() % ROW;
  12.  
    y = rand() % COL;
  13.  
    }
  14.  
    board[x][y] = 2;
  15.  
    system("cls"); //清屏,美观界面
  16.  
    return;
  17.  
    }
学新通

(这里照例还是使用了时间戳获取随机数的方法)

学新通  学新通

可以看到每一次出现的两个位置都是随机的。

3.实现移动

这里我们以向上为例,我们要实现移动,以及判定两个方块数字相同就合并成为它们的和,并且当合并后存在空格继续向上移动

简单来说,就是 移动 → 合并 → 再次移动补空。其他三个方向也是一样的道理,只需要改变其中的数值便可实现。

  1.  
    void up(int board[ROW][COL])
  2.  
    {
  3.  
    int i = 0;
  4.  
    int j = 0;
  5.  
    int x = 0;
  6.  
    int y = 0;
  7.  
    for (i = 0; i < ROW; i )
  8.  
    {
  9.  
    //移动
  10.  
    j = 0;
  11.  
    y = 0;
  12.  
    while (j < COL-1 && y < COL-1 )
  13.  
    {
  14.  
    if (board[j][i] == 0)
  15.  
    {
  16.  
    for (x = j; x < ROW-1; x )
  17.  
    board[x][i] = board[x 1][i];
  18.  
    board[ROW-1][i] = 0;
  19.  
    y ;
  20.  
    }
  21.  
    else
  22.  
    j ;
  23.  
    }
  24.  
    //合并
  25.  
    for (j = 0; j < COL-1; j )
  26.  
    if (board[j][i] == board[j 1][i] && board[j][i] != 0)
  27.  
    {
  28.  
    board[j][i] = board[j][i] * 2; //和
  29.  
    board[j 1][i] = 0;
  30.  
    }
  31.  
    //再次移动补空
  32.  
    j = 0;
  33.  
    y = 0;
  34.  
    while (j < COL - 1 && y < COL - 1)
  35.  
    {
  36.  
    if (board[j][i] == 0)
  37.  
    {
  38.  
    for (x = j; x < ROW - 1; x )
  39.  
    board[x][i] = board[x 1][i];
  40.  
    board[ROW - 1][i] = 0;
  41.  
    y ;
  42.  
    }
  43.  
    else
  44.  
    j ;
  45.  
    }
  46.  
    }
  47.  
    }
学新通

4.增加新数字

每次移动会在随机位置出现一个新的数字,可能是2,可能是4

 通过查询网上资料得知,随机到2的概率约为 9/10,随机到4的概率约为 1/10

  1.  
    void put_num(int board[ROW][COL])
  2.  
    {
  3.  
    int x = 0;
  4.  
    int y = 0;
  5.  
    int z = 0;
  6.  
    x = rand() % ROW;
  7.  
    y = rand() % COL;
  8.  
    while (board[x][y] !=0)
  9.  
    {
  10.  
    x = rand() % ROW;
  11.  
    y = rand() % COL;
  12.  
    }
  13.  
    z = rand() % 10;
  14.  
    if (z<9)
  15.  
    board[x][y] = 2;
  16.  
    else
  17.  
    board[x][y] = 4;
  18.  
    return;
  19.  
    }
学新通

5.判定胜负

当出现2048胜利,当格子了且无法消除失败

  1.  
    int is_fail(int board[ROW][COL])
  2.  
    {
  3.  
    int i = 0;
  4.  
    int j = 0;
  5.  
    for (i = 0; i < ROW; i )
  6.  
    {
  7.  
    for (j = 0; j < COL; j )
  8.  
    {
  9.  
    if (board[i][j] == 0)
  10.  
    return 0;
  11.  
    if (i > 0)
  12.  
    {
  13.  
    if (board[i - 1][j] == board[i][j])
  14.  
    return 0;
  15.  
    }
  16.  
    if (j > 0)
  17.  
    {
  18.  
    if (board[i][j - 1] == board[i][j])
  19.  
    return 0;
  20.  
    }
  21.  
    }
  22.  
    }
  23.  
    return 1;
  24.  
    }
  25.  
     
  26.  
    int is_win(int board[ROW][COL])
  27.  
    {
  28.  
    int i = 0;
  29.  
    int j = 0;
  30.  
    int num = 0;
  31.  
    for (i = 0; i < ROW; i )
  32.  
    for (j = 0; j < COL; j )
  33.  
    {
  34.  
    if (board[i][j] > num)
  35.  
    num = board[i][j];
  36.  
    }
  37.  
    if (num >= 2048)
  38.  
    return 1;
  39.  
    else
  40.  
    return 0;
  41.  
    }
学新通

6.游戏函数

将上述代码结合起来

  1.  
    void game2048()
  2.  
    {
  3.  
    int board[ROW][COL] = { {0} };
  4.  
    int control = 0;
  5.  
    DisplayBoard(board);
  6.  
    init_num(board);
  7.  
    system("cls"); //清屏,美观界面
  8.  
    DisplayBoard(board);
  9.  
    while ((control = _getch()) != 0x1b)
  10.  
    {
  11.  
    switch (control)
  12.  
    {
  13.  
    case 0xe0:
  14.  
    switch (control = getch())
  15.  
    {
  16.  
    case 72:
  17.  
    up(board);
  18.  
    break;
  19.  
    case 80:
  20.  
    down(board);
  21.  
    break;
  22.  
    case 75:
  23.  
    left(board);
  24.  
    break;
  25.  
    case 77:
  26.  
    right(board);
  27.  
    break;
  28.  
    default:
  29.  
    break;
  30.  
    }
  31.  
     
  32.  
    system("cls");
  33.  
    DisplayBoard(board);
  34.  
    if (is_win(board) == 1)
  35.  
    {
  36.  
    printf("恭喜你赢了!");
  37.  
    }
  38.  
    if (is_fail(board) == 1)
  39.  
    {
  40.  
    printf("哈哈哈哈哈哈哈好菜\n");
  41.  
    }
  42.  
    }
  43.  
    }
  44.  
    }
学新通

三、游戏运行

已知目前游戏存在bug,当格子满了的时候假定一个方向可以消除,另一个方向不可以消除,按了那个不可以消除的方向的话,就会无法操作了,鉴于本人目前初学者并未能够想到很好的解决方法。若有大佬有好的方法也可指点一下。

我太菜了玩了好久都玩不到2048,最高只有512,1024还是舍友打出来的。

学新通

更新:修复了bug

先判断数组是否相同再选择是否添加新的随机位置的数字。

在此感谢各位帮助我测试的朋友,无论成功与否,当然特别感谢提供了这张图片的朋友。

学新通

四、所有代码

game2048.h

  1.  
    #pragma once
  2.  
     
  3.  
    #include <stdio.h>
  4.  
    #include <time.h>
  5.  
    #include <stdlib.h>
  6.  
    #include <windows.h>
  7.  
    #include<conio.h>
  8.  
     
  9.  
    #define ROW 4
  10.  
    #define COL 4
  11.  
    const int copy[ROW][COL];
  12.  
     
  13.  
    //初始化并打印游戏界面
  14.  
    void DisplayBoard(int board[ROW][COL]);
  15.  
    //开局随机生成两个2
  16.  
    void init_num(int board[ROW][COL]);
  17.  
    //在移动后随机放置数字2或4
  18.  
    void put_num(int board[ROW][COL]);
  19.  
    //移动
  20.  
    void up(int board[ROW][COL]);
  21.  
    void down(int board[ROW][COL]);
  22.  
    void left(int board[ROW][COL]);
  23.  
    void right(int board[ROW][COL]);
  24.  
    //判定胜负
  25.  
    int is_win(int board[ROW][COL]);
  26.  
    int is_fail(int board[ROW][COL]);
学新通

game2048.c

  1.  
    #define _CRT_SECURE_NO_WARNINGS 1
  2.  
    #include "game2048.h"
  3.  
     
  4.  
    void DisplayBoard(int board[ROW][COL])
  5.  
    {
  6.  
    int i = 0;
  7.  
    int j = 0;
  8.  
    printf("tip:*方向键控制方块移动*ESC键返回菜单*\n");
  9.  
    for (int j = 0; j < COL; j )
  10.  
    printf(" -----");
  11.  
    printf(" \n");
  12.  
    for (int i = 0; i < ROW; i )
  13.  
    {
  14.  
    for (int j= 0; j < COL; j )
  15.  
    {
  16.  
    printf("|");
  17.  
    if (board[i][j]!=0)
  18.  
    printf("]", board[i][j]);
  19.  
     
  20.  
    else
  21.  
    printf(" ");
  22.  
    }
  23.  
    printf("|\n");
  24.  
    for (int j = 0; j < COL; j )
  25.  
    {
  26.  
    printf(" -----");
  27.  
    }
  28.  
    printf(" \n");
  29.  
    }
  30.  
    }
  31.  
     
  32.  
    void init_num(int board[ROW][COL])
  33.  
    {
  34.  
    int x, y;
  35.  
    x = rand() % ROW;
  36.  
    y = rand() % COL;
  37.  
    board[x][y] = 2;//随机在一个位置生成2
  38.  
    x = rand() % ROW;
  39.  
    y = rand() % COL;
  40.  
    while (board[x][y] == 2)
  41.  
    {
  42.  
    x = rand() % ROW;
  43.  
    y = rand() % COL;
  44.  
    }
  45.  
    board[x][y] = 2;
  46.  
    return;
  47.  
    }
  48.  
     
  49.  
    void put_num(int board[ROW][COL])
  50.  
    {
  51.  
    int x = 0;
  52.  
    int y = 0;
  53.  
    int z = 0;
  54.  
    x = rand() % ROW;
  55.  
    y = rand() % COL;
  56.  
    while (board[x][y] !=0)
  57.  
    {
  58.  
    x = rand() % ROW;
  59.  
    y = rand() % COL;
  60.  
    }
  61.  
    z = rand() % 10;
  62.  
    if (z<9)
  63.  
    board[x][y] = 2;
  64.  
    else
  65.  
    board[x][y] = 4;
  66.  
    return;
  67.  
    }
  68.  
     
  69.  
    void up(int board[ROW][COL])
  70.  
    {
  71.  
    int i = 0;
  72.  
    int j = 0;
  73.  
    int x = 0;
  74.  
    int y = 0;
  75.  
    for (i = 0; i < ROW; i )
  76.  
    {
  77.  
    //移动
  78.  
    j = 0;
  79.  
    y = 0;
  80.  
    while (j < COL-1 && y < COL-1 )
  81.  
    {
  82.  
    if (board[j][i] == 0)
  83.  
    {
  84.  
    for (x = j; x < ROW-1; x )
  85.  
    board[x][i] = board[x 1][i];
  86.  
    board[ROW-1][i] = 0;
  87.  
    y ;
  88.  
    }
  89.  
    else
  90.  
    j ;
  91.  
    }
  92.  
    //合并
  93.  
    for (j = 0; j < COL-1; j )
  94.  
    if (board[j][i] == board[j 1][i] && board[j][i] != 0)
  95.  
    {
  96.  
    board[j][i] = board[j][i] * 2;
  97.  
    board[j 1][i] = 0;
  98.  
    }
  99.  
    //再次移动补空
  100.  
    j = 0;
  101.  
    y = 0;
  102.  
    while (j < COL - 1 && y < COL - 1)
  103.  
    {
  104.  
    if (board[j][i] == 0)
  105.  
    {
  106.  
    for (x = j; x < ROW - 1; x )
  107.  
    board[x][i] = board[x 1][i];
  108.  
    board[ROW - 1][i] = 0;
  109.  
    y ;
  110.  
    }
  111.  
    else
  112.  
    j ;
  113.  
    }
  114.  
    }
  115.  
    if (contrast(board) == 0)
  116.  
    put_num(board);
  117.  
    else
  118.  
    return;
  119.  
    }
  120.  
     
  121.  
    void down(int board[ROW][COL])
  122.  
    {
  123.  
    int i = 0;
  124.  
    int j = 0;
  125.  
    int x = 0;
  126.  
    int y = 0;
  127.  
    for (i = 0; i < ROW; i )
  128.  
    {
  129.  
    j = COL-1;
  130.  
    y = 0;
  131.  
    while (j > 0 && y < COL-1)
  132.  
    {
  133.  
    if (board[j][i] == 0)
  134.  
    {
  135.  
    for (x = j; x > 0; x--)
  136.  
    board[x][i] = board[x - 1][i];
  137.  
    board[0][i] = 0;
  138.  
    y ;
  139.  
    }
  140.  
    else
  141.  
    j--;
  142.  
    }
  143.  
    for (j = COL-1; j > 0; j--)
  144.  
    if (board[j][i] == board[j - 1][i] && board[j][i] != 0)
  145.  
    {
  146.  
    board[j][i] = board[j][i] * 2;
  147.  
    board[j - 1][i] = 0;
  148.  
    }
  149.  
    j = COL - 1;
  150.  
    y = 0;
  151.  
    while (j > 0 && y < COL - 1)
  152.  
    {
  153.  
    if (board[j][i] == 0)
  154.  
    {
  155.  
    for (x = j; x > 0; x--)
  156.  
    board[x][i] = board[x - 1][i];
  157.  
    board[0][i] = 0;
  158.  
    y ;
  159.  
    }
  160.  
    else
  161.  
    j--;
  162.  
    }
  163.  
    }
  164.  
    if (contrast(board) == 0)
  165.  
    put_num(board);
  166.  
    else
  167.  
    return;
  168.  
    }
  169.  
     
  170.  
    void left(int board[ROW][COL])
  171.  
    {
  172.  
    int i = 0;
  173.  
    int j = 0;
  174.  
    int x = 0;
  175.  
    int y = 0;
  176.  
    for (i = 0; i < ROW; i )
  177.  
    {
  178.  
    j = 0;
  179.  
    y = 0;
  180.  
    while (j < 3 && y < 3 )
  181.  
    {
  182.  
    if (board[i][j] == 0)
  183.  
    {
  184.  
    for (x = j; x < ROW-1; x )
  185.  
    board[i][x] = board[i][x 1];
  186.  
    board[i][COL-1] = 0;
  187.  
    y ;
  188.  
    }
  189.  
    else
  190.  
    j ;
  191.  
    }
  192.  
    for (j = 0; j < 3; j )
  193.  
    if (board[i][j] == board[i][j 1] && board[i][j] != 0)
  194.  
    {
  195.  
    board[i][j] = board[i][j] * 2;
  196.  
    board[i][j 1] = 0;
  197.  
    }
  198.  
    j = 0;
  199.  
    y = 0;
  200.  
    while (j < 3 && y < 3)
  201.  
    {
  202.  
    if (board[i][j] == 0)
  203.  
    {
  204.  
    for (x = j; x < ROW - 1; x )
  205.  
    board[i][x] = board[i][x 1];
  206.  
    board[i][COL - 1] = 0;
  207.  
    y ;
  208.  
    }
  209.  
    else
  210.  
    j ;
  211.  
    }
  212.  
    }
  213.  
    if (contrast(board) == 0)
  214.  
    put_num(board);
  215.  
    else
  216.  
    return;
  217.  
    }
  218.  
     
  219.  
    void right(int board[ROW][COL])
  220.  
    {
  221.  
    int i = 0;
  222.  
    int j = 0;
  223.  
    int x = 0;
  224.  
    int y = 0;
  225.  
    for (i = 0; i < 4; i )
  226.  
    {
  227.  
    j = COL-1;
  228.  
    y = 0;
  229.  
    while (j>0 && y < COL-1)
  230.  
    {
  231.  
    if (board[i][j] == 0)
  232.  
    {
  233.  
    for (x = j; x > 0; x--)
  234.  
    board[i][x] = board[i][x - 1];
  235.  
    board[i][0] = 0;
  236.  
    y ;
  237.  
    }
  238.  
    else j--;
  239.  
    }
  240.  
    for (j = 3; j > 0; j--)
  241.  
    if (board[i][j] == board[i][j - 1] && board[i][j] != 0)
  242.  
    {
  243.  
    board[i][j] = board[i][j] * 2;
  244.  
    board[i][j - 1] = 0;
  245.  
    }
  246.  
    j = COL - 1;
  247.  
    y = 0;
  248.  
    while (j > 0 && y < COL - 1)
  249.  
    {
  250.  
    if (board[i][j] == 0)
  251.  
    {
  252.  
    for (x = j; x > 0; x--)
  253.  
    board[i][x] = board[i][x - 1];
  254.  
    board[i][0] = 0;
  255.  
    y ;
  256.  
    }
  257.  
    else j--;
  258.  
    }
  259.  
    }
  260.  
    if (contrast(board) == 0)
  261.  
    put_num(board);
  262.  
    else
  263.  
    return;
  264.  
    }
  265.  
     
  266.  
    int is_fail(int board[ROW][COL])
  267.  
    {
  268.  
    int i = 0;
  269.  
    int j = 0;
  270.  
    for (i = 0; i < ROW; i )
  271.  
    {
  272.  
    for (j = 0; j < COL; j )
  273.  
    {
  274.  
    if (board[i][j] == 0)
  275.  
    return 0;
  276.  
    if (i > 0)
  277.  
    {
  278.  
    if (board[i - 1][j] == board[i][j])
  279.  
    return 0;
  280.  
    }
  281.  
    if (j > 0)
  282.  
    {
  283.  
    if (board[i][j - 1] == board[i][j])
  284.  
    return 0;
  285.  
    }
  286.  
    }
  287.  
    }
  288.  
    return 1;
  289.  
    }
  290.  
     
  291.  
    int is_win(int board[ROW][COL])
  292.  
    {
  293.  
    int i = 0;
  294.  
    int j = 0;
  295.  
    int num = 0;
  296.  
    for (i = 0; i < ROW; i )
  297.  
    for (j = 0; j < COL; j )
  298.  
    {
  299.  
    if (board[i][j] > num)
  300.  
    num = board[i][j];
  301.  
    }
  302.  
    if (num >= 2048)
  303.  
    return 1;
  304.  
    else
  305.  
    return 0;
  306.  
    }
  307.  
     
  308.  
    void copyboard(int board[ROW][COL],int copy[ROW][COL])
  309.  
    {
  310.  
    int i = 0;
  311.  
    int j = 0;
  312.  
    for (i = 0; i < ROW; i )
  313.  
    for (j = 0; j < COL; j )
  314.  
    copy[i][j] = board[i][j];
  315.  
    }
  316.  
     
  317.  
    int contrast(int board[ROW][COL])
  318.  
    {
  319.  
    int i = 0;
  320.  
    int j = 0;
  321.  
    for (i = 0; i < 4; i )
  322.  
    for (j = 0; j < 4; j )
  323.  
    if (copy[i][j] != board[i][j])
  324.  
    return 0;
  325.  
    return 1;
  326.  
    }
  327.  
     
学新通

test.c

  1.  
    #define _CRT_SECURE_NO_WARNINGS 1
  2.  
    #include "game2048.h"
  3.  
     
  4.  
    void menu()
  5.  
    {
  6.  
    printf("**************************\n");
  7.  
    printf("*****按 1 开 始 游 戏*****\n");
  8.  
    printf("*****按 0 退 出 游 戏*****\n");
  9.  
    printf("**************************\n");
  10.  
    }
  11.  
     
  12.  
    void game2048()
  13.  
    {
  14.  
    int board[ROW][COL] = { {0} };
  15.  
    int control = 0;
  16.  
    DisplayBoard(board);
  17.  
    init_num(board);
  18.  
    system("cls"); //清屏,美观界面
  19.  
    DisplayBoard(board);
  20.  
    while ((control = _getch()) != 0x1b)
  21.  
    {
  22.  
    switch (control)
  23.  
    {
  24.  
    case 0xe0:
  25.  
    switch (control = getch())
  26.  
    {
  27.  
    case 72:
  28.  
    copyboard(board, copy);
  29.  
    up(board);
  30.  
    break;
  31.  
    case 80:
  32.  
    copyboard(board, copy);
  33.  
    down(board);
  34.  
    break;
  35.  
    case 75:
  36.  
    copyboard(board, copy);
  37.  
    left(board);
  38.  
    break;
  39.  
    case 77:
  40.  
    copyboard(board, copy);
  41.  
    right(board);
  42.  
    break;
  43.  
    default:
  44.  
    break;
  45.  
    }
  46.  
     
  47.  
    system("cls");
  48.  
    DisplayBoard(board);
  49.  
    if (is_win(board) == 1)
  50.  
    {
  51.  
    printf("恭喜你赢了!\n");
  52.  
    }
  53.  
    if (is_fail(board) == 1)
  54.  
    {
  55.  
    printf("哈哈哈哈哈哈哈好菜\n");
  56.  
    }
  57.  
    }
  58.  
    }
  59.  
    }
  60.  
     
  61.  
    int main()
  62.  
    {
  63.  
    int input = 0;
  64.  
    srand((unsigned int)time(NULL));
  65.  
    do
  66.  
    { menu();
  67.  
    printf("请选择:");
  68.  
    scanf("%d", &input);
  69.  
    switch (input)
  70.  
    {
  71.  
    case 1:
  72.  
    game2048();
  73.  
     
  74.  
    break;
  75.  
    case 0:
  76.  
    printf("退出游戏,客官常来玩呀~)\n");
  77.  
    break;
  78.  
    default:
  79.  
    printf("给你一次重新选择的机会\n");
  80.  
    break;
  81.  
    }
  82.  
    } while (input);
  83.  
    return 0;
  84.  
    }
学新通



总结

感谢各位帮我测试的朋友们!

很久以前看过一部小说,主人公的第一个C语言程序就是实现一个2048的小游戏。

我不是生活中的主人公,但是我还是想要努力到能够让自己不再留下遗憾,努力到配得上自己喜欢的人。

三天时间,2048,愿不忘初心。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfjhcig
系列文章
更多 icon
同类精品
更多 icon
继续加载