注册 登录
编程论坛 C语言论坛

帮帮看贪吃蛇遇到的问题

沓炅 发布于 2017-08-20 21:51, 1553 次点击

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define snake_length 3//定义蛇身的长度为3

 char   map[20][20];//定义地图的大小

 void initial_snake()//初始蛇的位置
 {
     srand((unsigned int)time(NULL));
     int i = rand() % 19,j = rand() % 19;
     
     printf("■", map[i][j]);
 }

void initial_map()//设计初始地图
{
    for (int i = 0; i < 20; i++)
    {
        for (int j = 0; j < 20; j++)
        {
            if (i == 0 || i == 19)
                printf("■", map[i][j]);
            else if (j == 0||j==19)
                printf("■", map[i][j]);
            else printf("  ", map[i][j]);
        }
        printf("\n");
    }
}


int main()
{
    initial_map();//初始地图
    initial_snake();
    getchar();
    return 0;
}
只有本站会员才能查看附件,请 登录

为什么最后“■”不是那地图里呢?
3 回复
#2
do8do8do82017-08-21 08:39
int i = rand() % 19,j = rand() % 19;
这一句改成这样试试:
i=(int)(20.0*rand()/(RAND_MAX+1.0));
j=(int)(20.0*rand()/(RAND_MAX+1.0));
#3
沓炅2017-08-21 14:59
只有本站会员才能查看附件,请 登录

依然不行
#4
do8do8do82017-08-21 21:31
最后一个是蛇,因为蛇的位置是最后一个输出,所以会在后面,若想要定位在地图里,得用定位函数gotoxy(i,j)
1