コード例 #1
0
ファイル: week-calendar.c プロジェクト: 404mj/bjut_cEXAM
int main(void){
    int week,day,i=1,j,space,end;
    int year,month;

    printf("please input the year and month that you want to show:\n");
    scanf("%d%d",&year,&month);

    if(is_run(year))
        day=run_month[month-1];
    else
        day=ping_month[month-1];
    week=week_day(year,month);
    //控制输出格式
    printf("\n\n\t\t=========%d年%d月=========\t\t\n",year,month);
    printf("\tSUN\tMON\tTUE\tWED\tTHU\tFRI\tSAT\n");
    while(i<=day){
      space=week%7;
      end = 6-space+i;
      for(j=1;j<=7;++j){
        if (j<=space) {
          printf("\t   ");
          week=7;
        }
        else if(i<=end&&i<=day){
          printf("\t%d  ", i);
          ++i;
        }
      }
      putchar('\n');
    }
    return 0;
}
コード例 #2
0
ファイル: t26.cpp プロジェクト: AlexiaChen/ConnectFive
void mainloop()
{
	const int MAXOBJ = 30;
	AniObj obj[MAXOBJ]; //定义对象数组
	int n;
	for (n = 0; n < MAXOBJ; ++n)
	{
		initobj(&obj[n]); //初始化
	}

	for ( ; is_run(); delay_fps(60) )
	{
		for (n = 0; n < MAXOBJ; ++n)
		{
			updateobj(&obj[n]); //更新位置
		}

		cleardevice();
		for (n = 0; n < MAXOBJ; ++n)
		{
			drawobj(&obj[n]); //绘画
		}
	}

	for (n = 0; n < MAXOBJ; ++n)
	{
		releaseobj(&obj[n]); //释放
	}
}
コード例 #3
0
ファイル: ege5star.cpp プロジェクト: FrankHB/YEGE
int
main()
{
	initgraph(640, 480);

	fps f;

	for(double r = 0; is_run(); delay_fps(100000))
	{
		r += 0.02;
		if(r > PI * 2)
			r -= PI * 2;
		cleardevice();
		setcolor(EGERGB(0xFF, 0xFF, 0xFF));
		setfillcolor(EGERGB(0, 0, 0xFF));
		[](double x, double y, double r, double a){
			int pt[10];

			for(int n = 0; n < 5; ++n)
			{
				pt[n * 2] = -std::cos(PI * 4 / 5 * n + a) * r + x,
				pt[n * 2 + 1] = std::sin(PI * 4 / 5 * n + a) * r + y;
			}
			fillpoly(5, pt);
		}(300, 200, 100, r);
	}
}
コード例 #4
0
int main(void)
{
    {
        setinitmode(INIT_ANIMATION);
        initgraph(LEN, WID);
        setcaption("碰撞小球");
        randomize();
    }
    int i;

    BALL ball[MAXBALL];

    for ( ; is_run(); delay_fps(60))
    {
        dealMouse(ball);

        for(i = 0; i < MAXBALL; ++i)
            ball[i].update();

        cleardevice();

        for(i = 0; i < MAXBALL; ++i)
            ball[i].drawball();

    }

    closegraph();
    return 0;
}
コード例 #5
0
ファイル: egeTest.cpp プロジェクト: EleVenPerfect/OTHERS
void mainloop(Screen &screen)
{
	setcolor(EGERGB(255,255,255));
	int temp1,temp2,temp3,temp4;
	MyRectangle tempreg(0,0,0,0,&screen);
	cleardevice();
	int i,j;
	j =getInteger("How many rectangle?");
	MyRectangle *rectangle=new MyRectangle[j];
	for(i=0;i<j;i++)
	{
		rectangle[i] =tempreg;
	}
	for(i=0;i<j;i++)
	{
		temp1 =getInteger("Set x1");
	    temp2 =getInteger("Set y1");
	    temp3 =getInteger("Set x2");
	    temp4 =getInteger("Set y2");

	    (rectangle+i)->setCoordinations(temp1,temp2,temp3,temp4);
	} 
	
    
	for ( ; is_run(); delay_fps(60) )
    {
    	cleardevice();

    	for(i=0;i<j;i++)
    	{
    		(rectangle+i)->Draw();
    	}
    }
    delete[] rectangle;
}
コード例 #6
0
ファイル: http_client.cpp プロジェクト: ghilbut/ygg
TestHttpClient::TestHttpClient() 
  : stop_(false) {

  std::atomic_bool is_run(false);

  on_text_ = [](struct mg_connection*, const std::string & text) {};
  on_binary_ = [](struct mg_connection*, const std::vector<uint8_t> & bytes) {};
  on_closed_ = [](struct mg_connection*) {};

  mg_mgr_init(&mgr_, this);

  boost::mutex mutex;
  boost::condition_variable cond;

  boost::thread t([&]() {

      mutex.lock();
      is_run = true;
      cond.notify_one();
      mutex.unlock();

      while(!stop_) {
        mg_mgr_poll(&mgr_, 1000);
      }

      mg_mgr_free(&mgr_);
    });
  thread_.swap(t);

  while (!is_run) {
    const boost::chrono::seconds d(1);
    boost::mutex::scoped_lock lock(mutex);
    cond.wait_for(lock, d);
  }
}
コード例 #7
0
ファイル: t14.cpp プロジェクト: jushe/xege
int main()
{
    initgraph(640, 480);

    setfont(18, 0, "宋体");

    int k = 0;

    // 这个循环,is_run判断窗口是否还在,delay_fps是延时
    // 后面讲动画的时候会详细讲解,现不要在此纠结
    for ( ; is_run(); delay_fps(60))
    {
        char str[32];
        int x, y;

        //获取鼠标坐标,此函数不等待。若鼠标移出了窗口,那么坐标值不会更新
        //特殊情况是,你按着鼠标键不放,拖出窗口,这样坐标值会依然更新
        mousepos(&x, &y);

        //格式化输出为字符串,用于后面输出
        sprintf(str, "%4d %4d", x, y);

        outtextxy(0, 0, str);
    }

    closegraph();
    return 0;
}
コード例 #8
0
ファイル: t23.cpp プロジェクト: AlexiaChen/ConnectFive
void mainloop()
{
	//x,y记录当前位置,dx,dy记录速度向量,r记录圆半径
	int x = 0, y = 0, dx = 1, dy = 1, r = 100;

	for ( ; is_run(); delay_fps(60) )
	{
		// todo: 逻辑更新
		// 当前位置 + 速度
		x += dx;
		y += dy;
		if (x < r) dx = 1; //碰左
		if (y < r) dy = 1; //碰上
		if (x >= ege::getwidth()  - r) dx = -1; //碰右
		if (y >= ege::getheight() - r) dy = -1; //碰下

		// todo: 图形更新
		cleardevice();
		setcolor(GREEN);
		setfillcolor(BLUE);
		fillellipse(x, y, r, r);
		{// 画帧率文字
			char str[20];
			sprintf(str, "fps %.02f", getfps()); //调用getfps取得当前帧率
			setcolor(WHITE);
			outtextxy(0, 0, str);
		}
	}
}
コード例 #9
0
ファイル: egestar.cpp プロジェクト: EleVenPerfect/OTHERS
// 主函数
int main( int argc, char* argv[] ) {
    int i, ms_x = -1024, ms_y = -1024, exitflag = 0;
    int fps = 60;
    double dtime;

    int mode = preinit( argc, argv ); // 记录初始化模式
    if ( mode < 0 ) return 0;

    randomize(); // 初始化随机种子
    initgraph( -1, -1 ); // 打开图形窗口,以全屏模式

    showmouse( mode );
    sc_width = getwidth();
    sc_heigh = getheight();

    // 初始化所有星星
    for ( i = 0; i < g_max; i++ ) {
        InitStar( i );
        star[i].x = randomf();
    }
    // 绘制星空,按任意键或移动鼠标退出
    setfont( 12, 6, "宋体" );
    setrendermode( RENDER_MANUAL );
    dtime = fclock();
    while ( kbmsg() ) getkey();

    for ( ; !exitflag && is_run() && kbmsg() == 0; delay_fps( fps ) ) { //每秒画120帧,kbhit(1)是获取键盘任意键的消息,详见pdf
        // 如果有鼠标消息
        while ( mousemsg() ) {
            mouse_msg msg = getmouse();
            if ( ms_x <= -1024 ) {
                ms_x = msg.x;
                ms_y = msg.y;
            }
            // 处理鼠标,移动超出范围就退出
            if ( mode == 0 ) { // 仅全屏模式才处理鼠标
                int x = msg.x, y = msg.y;
                x -= ms_x;
                y -= ms_y;
                if ( x * x + y * y > 400 ) exitflag = 1;
            }
        }
        // 显示星星
        double dt = 1.0 / fps; //fclock() - dtime;
        dtime += dt;
        for ( int i = 0; i < g_max; i++ ) {
            MoveStar( i, dt );
        }
        // 显示FPS
        {
            char str[60];
            sprintf( str, "%8.2f FPS", getfps());
            outtextxy( 0, 0, str ); //显示fps
        }
    }
    closegraph(); // 关闭图形窗口
    return 0;
}
コード例 #10
0
void mainloop() {
	
	for (; is_run(); delay_fps(5)) {
		setfillcolor(EGERGB(random(255),random(255), random(255)));
		
		cleardevice();
		fillellipse(200, 200, 50, 30);
	}
}
コード例 #11
0
ファイル: week-calendar.c プロジェクト: 404mj/bjut_cEXAM
//计算某年内from月到to月的天数
count_day(int year,int from , int to){
  int i,d=0;
  for(i=from;i<to;++i){
    d+=ping_month[i-1];
  }
  if(is_run(year))
    d+=1;
  return d;
}
コード例 #12
0
ファイル: LifeGamev2.cpp プロジェクト: fzls/games
    void LifeGamev2::play() {
        for (; is_run(); delay_fps(SPEED)) {
            if (kbhit()) {
                changeSetting(getch());
            }

            //原始宇宙为universe,进化后为_universe
            evolve();
            cleardevice();
            render();
        }
    }
コード例 #13
0
void mainloop() {
  // is_run ¼ì²â³ÌÐòÊÇ·ñÊÕµ½¹Ø±ÕÏûÏ¢£¬ÊÕµ½µÄ»°»á·µ»Øfalse£¬¼´Ó¦¸ÃÍ˳ö³ÌÐò
  // delay_fps ¿ØÖÆÖ¡ÂÊ£¬60±íʾ¡°Æ½¾ùÑÓʱ¡±Îª1000/60ºÁÃë
  // ΪʲôʹÓÃ60£¿ÒòΪ60ÊÇÏÔʾÆ÷µÄĬÈÏË¢ÐÂÂÊ£¬99.9%µÄÏÔʾÆ÷¶¼ÊÇÕâ¸öÉèÖÃ
  for ( ; is_run(); delay_fps(5) )  {
    // todo: Âß¼­¸üÐÂ
    setfillcolor(EGERGB(random(255), random(255), random(255)));
    // todo: ͼÐθüÐÂ
    // ÇåÆÁ
    cleardevice();
    fillellipse(200, 200, 50, 30);
  }
}
コード例 #14
0
ファイル: week-calendar.c プロジェクト: 404mj/bjut_cEXAM
//返回指定年月的的1号是周几
//已知1970年1月1日为周四,6月1日为周一
int week_day(int year, int month){
  int week_map[] = {3,4,5,6,7,1,2};
  int days = 1;
  int i,w;
  for (i=1970; i<year; i++) {//求年的天数
    if(is_run(i))
      days+=366;
    else
      days+=365;
  }
    days+=count_day(year,1,month);
  return week_map[days%7];
}
コード例 #15
0
ファイル: t24.cpp プロジェクト: AlexiaChen/ConnectFive
void mainloop()
{
	// x,y记录当前位置,dx,dy记录速度的方向,r记录圆半径
	int x = 0, y = 0, dx = 1, dy = 1, r = 100;
	// alpha记录当前alpha值,da为alpha变化增量
	int alpha = 0, da = 1;

	// 需要借助img实现透明半透明
	PIMAGE img;

	// img 创建为 w=r*2, h=r*2大小
	img = newimage(r * 2, r * 2);

	setcolor(0x00FF00, img);
	setfillcolor(0xFF0000, img);
	
	// 画在img上
	fillellipse(r, r, r, r, img);

	setbkcolor(DARKGRAY);

	for ( ; is_run(); delay_fps(60) )
	{
		// todo: 逻辑更新
		// 当前位置 + 速度
		x += dx;
		y += dy;
		if (x < 0) dx = 1; //碰左
		if (y < 0) dy = 1; //碰上
		if (x >= ege::getwidth()  - r * 2) dx = -1; //碰右
		if (y >= ege::getheight() - r * 2) dy = -1; //碰下

		// 改变alpha值,参数范围为 0 ~ 0xFF(255)
		alpha += da;
		if (alpha <= 0) da = 1;
		if (alpha >= 0xFF) da = -1;

		// todo: 图形更新
		cleardevice();
		putimage_alphatransparent(NULL, img, x, y, BLACK, (unsigned char)alpha);
	}

	// 释放img
	delimage(img);
}
コード例 #16
0
int main()
{
	initgraph( 640, 480 );
	setrendermode(RENDER_MANUAL);
	PIMAGE img = newimage();
	getimage(img, "F://Pictures//12264878375.jpg");
	double r = 0;
	fps f;
	for ( ; is_run(); delay_fps(6000) )
	{
		r += 0.02;
		if (r > PI * 2) r -= PI * 2;

		cleardevice();
		putimage_rotatezoom(NULL, img, 320, 240, 0.5f, 0.5f, r, 0.5f, 0, -1, 1);
	}
	return 0;
}
コード例 #17
0
ファイル: main.cpp プロジェクト: Ba5sx1a0sen1/SpriteGenerator
int main()
{
    setinitmode(0);
    JigsawView view;
    view.init(DEFAULT_WINDOW_WIDTH, DEFAULT_WINDOW_HEIGHT);
    setrendermode(RENDER_MANUAL);
    setbkmode(TRANSPARENT);
    setcaption("SpriteGenerator V1.2 by wang yang");
    setfont(20, 10, "宋体");
    for(view.render(); is_run(); )
    {
        view.update();
        if(!view.getSmoothMode())
            delay_fps(60);
        else Sleep(1);
    }
    return 0;
}
コード例 #18
0
ファイル: egetriangle.cpp プロジェクト: Dorislu/xege
int main()
{
    static struct polys p[10] = {{0}};
    int n_points[10] = {3,3,3,6,7};
    int n_poly[10] = {1,1,1,1,1};
    int n_polys = 3, i;
    randomize();
    //图形初始化
    {
        setinitmode(INIT_ANIMATION);
        initgraph(width, height);
        width  = getmaxx();
        height = getmaxy();
        setrendermode(RENDER_MANUAL);
    }
    //多边形对象初始化
    for (i=0; i< n_polys; ++i)
    {
        initpolys(&p[i], n_poly[i], n_points[i]);
    }
    fps ui_fps;
    //主循环
    for ( ; is_run(); delay_fps(60))
    {
        if (kbhit() > 0) //有按键按下就退出
        {
            break;
        }
        for (i=0; i< n_polys; ++i)
        {
            movepoly(p[i].p);
        }
        cleardevice();
        for (i=0; i< n_polys; ++i)
        {
            draw_poly(p[i].p);
        }
        //imagefilter_blurring(NULL, 0xff, 0x100);
    }
    closegraph();
    return 0;
}