快哉风_ 2022-03-07 19:48 采纳率: 50%
浏览 41

C语言迷宫小游戏每次移动时重新打印屏幕闪烁怎么解决

如题,每次移动时重新调用一遍print函数导致屏幕闪烁,请问有什么好的解决方案吗?
代码如下


void CreateMaze(int **maze, int x, int y) {//构建迷宫
    maze[x][y] = ROUTE;
    //确保四个方向随机,而不再是固定的上下左右这种排列 
    int direction[4][2] = { { 1,0 },{ -1,0 },{ 0,-1 },{ 0,1 } };
    for (int i = 0; i < 4; i++) {
        int r = rand() % 4;
        int temp = direction[0][0];
        direction[0][0] = direction[r][0];
        direction[r][0] = temp;
        temp = direction[0][1];
        direction[0][1] = direction[r][1];
        direction[r][1] = temp;
    } 
    //向四个方向开挖
    for (int i = 0; i < 4; i++) {
        int dx = x;
        int dy = y;
        //控制挖的距离,由Rank来调整大小
        int range = 1 + (Rank == 0 ? 0 : rand() % Rank);
        while (range > 0) {
            //计算出将要访问到的坐标 
            dx += direction[i][0];
            dy += direction[i][1];
            //排除掉回头路
            if (maze[dx][dy] == ROUTE) {
                break;
            }
            //判断是否挖穿路径
            int count = 0;
            for (int j = dx - 1; j < dx + 2; j++) {
                for (int k = dy - 1; k < dy + 2; k++) {
                    //abs(j - dx) + abs(k - dy) == 1 确保只判断九宫格的四个特定位置
                    if (abs(j - dx) + abs(k - dy) == 1 && maze[j][k] == ROUTE) {
                        count++;
                    }
                }
            }
            //count大于1表明墙体会被挖穿,停止 
            if (count > 1)
                break;
            //确保不会挖穿时,前进
            range -= 1;
            maze[dx][dy] = ROUTE;
        }
        //没有挖穿危险,以此为节点递归
        if (range <= 0) {
            CreateMaze(maze, dx, dy);
        }
    }
}
  • 写回答

1条回答 默认 最新

  • _雪菜肉丝面_ 2022-03-08 10:25
    关注

    不想你浪费时间,没法解决。它本身就是靠的打印。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月7日

悬赏问题

  • ¥15 mySQL5.7.34安装遇到的问题
  • ¥15 结构功能耦合指标计算
  • ¥20 visual studio中c语言用ODBC链接SQL SERVER
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 悬赏Python-playwright部署在centos7上