标题:我想做一下类似贪吃蛇的,但是本体在移动的时候苹果的位置老是改变,怎么才 ...
只看楼主
菜鸡一只
Rank: 1
等 级:新手上路
帖 子:23
专家分:4
注 册:2014-12-31
结帖率:85.71%
已结贴  问题点数:20 回复次数:4 
我想做一下类似贪吃蛇的,但是本体在移动的时候苹果的位置老是改变,怎么才能固定苹果的位置呢
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
#include<time.h>
int x=20,y=20;
char key;
int map[20][20];
int i,j,m,n=5;
void gotoxy(int x,int y);
void draw(int x,int y);
int ix,iy;
void setmap()
{
    for(i=0;i<20;i++)
    for(j=0;j<20;j++)
    {
        map[i][j]=0;
    }
    srand((unsigned)time(NULL));
    for(m=0;m<5;m++)
    {
        ix=rand()%20+1;
        iy=rand()%20+1;
        map[ix][iy]=1;
    }
    for(ix=0;ix<20;ix++)
    {
        for(iy=0;iy<20;iy++)
        {
            if(map[ix][iy]==1)
        {
        gotoxy(ix+1,iy+1);
        printf("$");
        }
        }
    }

}
void draw(int x,int y)
{
    system("cls");
    setmap();
    gotoxy(x,y);
    printf("&");
}
void gotoxy(int x,int y)
{
    HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos={x,y};
    SetConsoleCursorPosition(hOut,pos);
}
int main()
{
    draw(x,y);
    setmap();
    while(1)
    {
        if(kbhit())
{       key=getch();
        switch(key)
        {
            printf("%d\n",key);
            case 'w':{draw(x,--y>=0?y:0);break;}
            case 's':{draw(x,++y<=20?y:20);break;}
            case 'd':{draw(++x<=20?x:20,y);break;}
            case 'a':{draw(--x>=0?x:0,y);break;}
        }
}
}
}
搜索更多相关主题的帖子: include 贪吃蛇 苹果 
2015-01-08 09:32
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
移动的时候苹果的位置老是改变
------ 你自己的代码 void draw(int x,int y) 中有 setmap() 呀,你不想改变你写它干什么?
void draw(int x,int y)
{
    //system("cls");
    //setmap();
    gotoxy(x,y);
    printf("&");
}

int main()
{
    setmap(); // 这里要增加
    draw(x,y);
2015-01-08 09:47
菜鸡一只
Rank: 1
等 级:新手上路
帖 子:23
专家分:4
注 册:2014-12-31
得分:0 
回复 2楼 rjsp
但是如果我不加system("cls")上去的话移动本体&的时候就会留下轨迹,就是原先&所在的地方这个&符号不会消失。
2015-01-09 08:37
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
以下是引用菜鸡一只在2015-1-9 08:37:31的发言:

但是如果我不加system("cls")上去的话移动本体&的时候就会留下轨迹,就是原先&所在的地方这个&符号不会消失。

你就不会在原来&的地方写个空格吗?(这些问题,回答不是,不回答也不是。)
2015-01-09 08:49
菜鸡一只
Rank: 1
等 级:新手上路
帖 子:23
专家分:4
注 册:2014-12-31
得分:0 
回复 4楼 rjsp
哦,可以了,谢谢大神!
2015-01-09 11:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-440843-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.265574 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved