学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

哪错了?

哪错了?

#include "Conio.h"
#include "graphics.h"
#include "dos.h"
#include "stdlib.h"
#define closegr closegraph

void initgr(void) /* BGI初始化 */
{
  int gd = DETECT, gm = 0;
  registerbgidriver(EGAVGA_driver);
  initgraph(&gd, &gm, "");
}

int main(void)
{
  int i,j;
  initgr(); /* BGI初始化 */

  for(i=1;i<=10;i++)
  {
     setbkcolor(0);
     j=random(10);
     setcolor(j);
     circle(199,299,10*i);
     delay(1000);
     clrscr();
  }

  getch();
  closegr();
  return 0;
}

TOP

你也不说说你的错误表现是什么?!!!
是编译不过呢?还是运行结果不是你想要的呢?
按我的理解,你可能有以下几点不妥~
1、random用前要用 randomize()初始化,当然,这也许是你有意为之~
2、 clrscr();我想这里应该用cleardevice();比较合适
3、这个delay()不知基于什么原理,在我机器上要用两个delay(0xFFFF)才能看到些许效果。

[ 本帖最后由 sxn0508 于 2008-5-5 16:47 编辑 ]

TOP

复制内容到剪贴板
代码:
/* WIN-TC BGI 图形编程模板 */

#include "Conio.h"
#include "stdlib.h"
#include "graphics.h"
#define closegr closegraph

void initgr(void) /* BGI初始化 */
{
    int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */
    registerbgidriver(EGAVGA_driver); /*
                      注册BGI驱动后可以不需要.BGI文件的支持运行 */
    initgraph(&gd, &gm, "");
}

int main(void)
{
    int i = 0, j;
    /* BGI初始化*/
    initgr();
    /*init random*/
    randomize();
    /*set back color*/
    setbkcolor(BLACK);
    /*main while*/
    while (!kbhit())
    {
        /*paint*/
        j = random(15);
        setcolor(j + 1);
        circle(320, 240, 10 *i);
        /*delay*/
        delay(0x5000);
        /*clear*/
        setcolor(BLACK);
        circle(320, 240, 10 *i);
        /*limit*/
        if (i++ > 15)
        {
            i = 0;
        }
    }
    closegr(); /* 恢复TEXT屏幕模式 */
    return 0;
}

TOP

回复 3# 的帖子

en 你分析的很对。
你的挺漂亮的。
每次是不是都画两个 圆?
qq:304742297

TOP

引用:
以下是引用 jxt598598 在 2008-5-5 21:17 的发言:

en 你分析的很对。
你的挺漂亮的。
每次是不是都画两个 圆?
每次先画一个彩色的圆,延时后再画一个一样的黑色的圆,相当于把彩色的擦掉了。

TOP

发新话题