⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 field.c

📁 linux下的人机对话编程
💻 C
📖 第 1 页 / 共 2 页
字号:
#include<gnome.h>/*#include"field.h"*/#include"switch.h"#include"sg.h"#define Fd_Num 24#define NUL1 0#define Line_Dist  60.0; static int FdNode_StatTab[Fd_Num][9]={   0x2000,0,20,260,30,NUL1,0x800b,NUL1,NUL1,          // XDJG   0x2001,0,50,260,90,0x800b,0x8003,NUL1,NUL1,        // 1BG   0x2002,0,15,320,25,NUL1,0x8019,NUL1,NUL1,          // XJG    0x2003,0,30,380,30,0x801b,0x8000,NUL1,NUL1,        // D1G   0x2004,0,130,380,80,0x8001,0x8006,NUL1,NUL1,       // 1-15WG   0x2005,7,60,380,30,0x8000,0x4000,0x4000,NUL1,      // 1DG   0x2006,5,140,320,80,0x4001,0x8002,0x4001,NUL1,     // 3DG   0x2007,10,140,320,20,0x4005,0x4002,0x4005,0x4002,      // 5-11DG   0x2008,9,140,260,20,0x4003,0x4004,0x4003,0x4004,   // 7-9DG   0x2009,8,210,320,110,0x8005,0x4006,0x4006,NUL1,     // 13DG   0x200a,6,280,380,50,0x4007,0x8008,0x4007,NUL1,     // 15DG   0x200b,3,210,260,110,0x8007,0x4008,0x4008,NUL1,    // 17DG   0x200c,4,280,380,50,0x8008,0x4009,0x4009,NUL1,     // 19DG   0x200d,0,350,320,130,0x8009,0x8015,NUL1,NUL1,      // 1G   0x200e,0,350,380,130,0x800e,0x8013,NUL1,NUL1,      // 2G   0x200f,0,350,260,130,0x800c,0x801b,NUL1,NUL1,      // 3G   0x2010,0,350,440,130,0x800f,0x8017,NUL1,NUL1,      // 4G   0x2011,0,350,200,130,0x800d,0x8018,NUL1,NUL1,      // 5G   0x2012,0,680,380,80,0x8010,0x8014,NUL1,NUL1,       // 1AG   0x8013,0,680,320,95,0x8011,0x801c,NUL1,NUL1,       // D4G   0x2014,10,610,380,30,0x400a,0x400d,0x400a,0x400d,  // 2-8DG   0x2015,9,610,320,30,0x400c,0x400b,0x400c,0x400b,   // 4-6DG   0x2016,1,610,380,130,0x400e,0x400a,0x400e,NUL1,    // 10DG   0x2017,11,610,320,110,0x400f,0x8012,0x400f,0x4010  // 12-14DG }; static int FdNode_DynTab[Fd_Num][4]={   0x2000,0xaa,0xaa,0xaa,   0x2001,0x55,0xaa,0xaa,   0x2002,0xaa,0xaa,0xaa,   0x2003,0xaa,0xaa,0xaa,   0x2004,0xaa,0xaa,0xaa,   0x2005,0x55,0xaa,0xaa,   0x2006,0x55,0xaa,0xaa,   0x2007,0xaa,0xaa,0xaa,   0x2008,0xaa,0xaa,0xaa,   0x2009,0x55,0xaa,0xaa,   0x200a,0xaa,0xaa,0xaa,   0x200b,0xaa,0xaa,0xaa,   0x200c,0xaa,0xaa,0xaa,   0x200d,0xaa,0xaa,0xaa,   0x200e,0xaa,0xaa,0xaa,   0x200f,0xaa,0xaa,0xaa,   0x2010,0xaa,0xaa,0xaa,   0x2011,0xaa,0xaa,0xaa,   0x2012,0xaa,0xaa,0xaa,   0x2013,0xaa,0xaa,0xaa,   0x2014,0xaa,0xaa,0xaa,   0x2015,0xaa,0xaa,0xaa,   0x2016,0x55,0xaa,0xaa,   0x2017,0x55,0xaa,0xaa };int Show_Field(GtkWidget*canvas){  int i,j,k,m,n,type,dir,lon,idleft,idright,idsw1,idsw2;  gchar*cor;  double fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f5x,f5y,f6x,f6y,f7x,f7y,f8x,f8y,f9x,f9y,f10x,    f10y,f11x,f11y;  unsigned char gdj00, gdj0,gdj1,gdj2;  for(i=0;i<Fd_Num;i++){    type= FdNode_StatTab[i][1];    fx=FdNode_StatTab[i][2];    fy=FdNode_StatTab[i][3];    lon=FdNode_StatTab[i][4];    gdj1=FdNode_DynTab[i][1];    gdj2=FdNode_DynTab[i][3];    if((gdj1==0xaa)&&(gdj2==0x55))  cor="blue";    else if((gdj1==0xaa)&&((gdj2==0xaa)||(gdj2==0xa5))) cor="white";    else cor="red";      if(type==0){      f1x=fx+lon;      f1y=fy;      draw_no_swfd(fx,fy,f1x,f1y,canvas,cor);       }      else if(type==1){	idleft=FdNode_StatTab[i][5];	idright=FdNode_StatTab[i][6];       idsw1=FdNode_StatTab[i][7];	k=idsw1-0x4000;	gdj0=SwNode_DynTab[k][1];	if(gdj0==0xaa) dir=0; 	else if(gdj0==0x55) dir=1;                                               	if((idleft>=0x8000)&&(idleft<=0x801d)){	  j=idleft-0x8000;	f1x=SgNode_StatTab[j][2];	f1y=SgNode_StatTab[j][3];	}	     else if((idleft>=0x4000)&&(idleft<=0x4010)){        j=idleft-0x4000;	f1x=SwNode_StatTab[j][2]*10.0;	f1y=SwNode_StatTab[j][3]*10.0;	}     else if((idleft>=0x2000)&&(idleft<=0x2017)){       j=idleft-0x2000;	f1x=FdNode_StatTab[j][2];	f1y=FdNode_StatTab[j][3];	}	f2x=fx-lon;	f2y=fy;	f4x=f2x;	f4y=f2y+Line_Dist;	f3x=f1x-(60.0/3);	f3y=f4y;	f8x=f1x-7;	f8y=f1y;	f9x=f1x-3;	f9y=f1y+9;	draw_onesw_fd(fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f8x,f8y,f9x,f9y,dir,cor,canvas);      }      else if(type==3){	idleft=FdNode_StatTab[i][5];	idright=FdNode_StatTab[i][6];       idsw1=FdNode_StatTab[i][7];	k=idsw1-0x4000;	gdj0=SwNode_DynTab[k][1];	if(gdj0==0xaa) dir=0; 	else if(gdj0==0x55) dir=1;                                               	if((idright>=0x8000)&&(idright<=0x801d)){	  j=idright-0x8000;	f1x=SgNode_StatTab[j][2];	f1y=SgNode_StatTab[j][3];	}	     else if((idright>=0x4000)&&(idright<=0x4010)){        j=idright-0x4000;	f1x=SwNode_StatTab[j][2]*10.0;	f1y=SwNode_StatTab[j][3]*10.0;		}     else if((idright>=0x2000)&&(idright<=0x2017)){       j=idright-0x2000;	f1x=FdNode_StatTab[j][2];	f1y=FdNode_StatTab[j][3];	}	f2x=f1x+lon;	f2y=fy;	f4x=f2x;	f4y=f2y-Line_Dist;	f3x=f1x+(60.0/3);	f3y=f4y;	f8x=f1x+7;        f8y=f1y;        f9x=f1x+3;        f9y=f1y-9;	draw_onesw_fd(fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f8x,f8y,f9x,f9y,dir,cor,canvas);      }      else if(type==4){/*  */	idleft=FdNode_StatTab[i][5];	idright=FdNode_StatTab[i][6];       idsw1=FdNode_StatTab[i][7];	k=idsw1-0x4000;	gdj0=SwNode_DynTab[k][1];	if(gdj0==0xaa) dir=0; 	else if(gdj0==0x55) dir=1;                                               	if((idright>=0x8000)&&(idright<=0x801d)){	  j=idright-0x8000;	f1x=SgNode_StatTab[j][2];	f1y=SgNode_StatTab[j][3];	}	     else if((idright>=0x4000)&&(idright<=0x4010)){        j=idright-0x4000;	f1x=SwNode_StatTab[j][2]*10.0;	f1y=SwNode_StatTab[j][3]*10.0;	}     else if((idright>=0x2000)&&(idright<=0x2017)){       j=idright-0x2000;	f1x=FdNode_StatTab[j][2];	f1y=FdNode_StatTab[j][3];	}	f2x=f1x+lon;	f2y=fy;	f4x=f2x;	f4y=f2y+Line_Dist;	f3x=f1x+(60.0/3);	f3y=f4y;        f8x=f1x+7;        f8y=f1y;        f9x=f1x+3;        f9y=f1y+9;	draw_onesw_fd(fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f8x,f8y,f9x,f9y,dir,cor,canvas);      }      else if(type==5){/*,,,,*/	idleft=FdNode_StatTab[i][5];	idright=FdNode_StatTab[i][6];       idsw1=FdNode_StatTab[i][7];	k=idsw1-0x4000;	gdj0=SwNode_DynTab[k][1];	if(gdj0==0xaa) dir=0; 	else if(gdj0==0x55) dir=1;                                               	if((idleft>=0x8000)&&(idleft<=0x801d)){	  j=idleft-0x8000;	f1x=SgNode_StatTab[j][2];	f1y=SgNode_StatTab[j][3];	}	     else if((idleft>=0x4000)&&(idleft<=0x4010)){        j=idleft-0x4000;	f1x=SwNode_StatTab[j][2]*10.0;	f1y=SwNode_StatTab[j][3]*10.0;	}     else if((idleft>=0x2000)&&(idleft<=0x2017)){       j=idleft-0x2000;	f1x=FdNode_StatTab[j][2];	f1y=FdNode_StatTab[j][3];	}	f2x=f1x-lon;	f2y=fy;	f4x=f1x-30.0/3;	f4y=f2y+30.0;	f3x=f4x;	f3y=f4y;        f8x=f1x-7;        f8y=f1y;        f9x=f1x-3;        f9y=f1y+9; 	draw_onesw_fd(fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f8x,f8y,f9x,f9y,dir,cor,canvas);      }      else if(type==6){	idleft=FdNode_StatTab[i][5];	idright=FdNode_StatTab[i][6];       idsw1=FdNode_StatTab[i][7];	k=idsw1-0x4000;	gdj0=SwNode_DynTab[k][1];	if(gdj0==0xaa) dir=0; 	else if(gdj0==0x55) dir=1;                                               	if((idleft>=0x8000)&&(idleft<=0x801d)){	  j=idleft-0x8000;	f1x=SgNode_StatTab[j][2];	f1y=SgNode_StatTab[j][3];	}	     else if((idleft>=0x4000)&&(idleft<=0x4010)){        j=idleft-0x4000;	f1x=SwNode_StatTab[j][2]*10.0;	f1y=SwNode_StatTab[j][3]*10.0;	}     else if((idleft>=0x2000)&&(idleft<=0x2017)){       j=idleft-0x2000;	f1x=FdNode_StatTab[j][2];	f1y=FdNode_StatTab[j][3];	}	f2x=f1x-lon;	f2y=fy;	f4x=f1x-30.0/3;	f4y=f1y-30.0;	f3x=f4x;	f3y=f4y;        f8x=f1x-7;        f8y=f1y;        f9x=f1x-3;        f9y=f1y-9;	draw_onesw_fd(fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f8x,f8y,f9x,f9y,dir,cor,canvas);      }      else if(type==7){        idleft=FdNode_StatTab[i][5];	idright=FdNode_StatTab[i][6];       idsw1=FdNode_StatTab[i][7];	k=idsw1-0x4000;	gdj0=SwNode_DynTab[k][1];	if(gdj0==0xaa) dir=0; 	else if(gdj0==0x55) dir=1;                                               	if((idright>=0x8000)&&(idright<=0x801d)){	  j=idright-0x8000;	f1x=SgNode_StatTab[j][2];	f1y=SgNode_StatTab[j][3];	}	     else if((idright>=0x4000)&&(idright<=0x4010)){        j=idright-0x4000;	f1x=SwNode_StatTab[j][2]*10.0;	f1y=SwNode_StatTab[j][3]*10.0;	}     else if((idright>=0x2000)&&(idright<=0x2017)){       j=idright-0x2000;	f1x=FdNode_StatTab[j][2];	f1y=FdNode_StatTab[j][3];	}	f2x=f1x+lon;	f2y=fy;	f4x=f1x+10.0;	f4y=f2y-30.0;	f3x=f4x;	f3y=f4y;        f8x=f1x+7;        f8y=f1y;        f9x=f1x+3;        f9y=f1y-9;	draw_onesw_fd(fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f8x,f8y,f9x,f9y,dir,cor,canvas);      }        else if(type==8){/*    */       idleft=FdNode_StatTab[i][5];	idright=FdNode_StatTab[i][6];       idsw1=FdNode_StatTab[i][7];	k=idsw1-0x4000;	gdj0=SwNode_DynTab[k][1];	if(gdj0==0xaa) dir=0; 	else if(gdj0==0x55) dir=1;                                               	if((idright>=0x8000)&&(idright<=0x801d)){	  j=idright-0x8000;	f1x=SgNode_StatTab[j][2];	f1y=SgNode_StatTab[j][3];	}	     else if((idright>=0x4000)&&(idright<=0x4010)){        j=idright-0x4000;	f1x=SwNode_StatTab[j][2]*10.0;	f1y=SwNode_StatTab[j][3]*10.0;	}     else if((idright>=0x2000)&&(idright<=0x2017)){       j=idright-0x2000;	f1x=FdNode_StatTab[j][2];	f1y=FdNode_StatTab[j][3];	}	f2x=f1x+lon;	f2y=fy;	f4x=f1x+10.0;	f4y=f2y+30.0;	f3x=f4x;	f3y=f4y;        f8x=f1x+7;        f8y=f1y;        f9x=f1x+3;        f9y=f1y+9;        	draw_onesw_fd(fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f8x,f8y,f9x,f9y,dir,cor,canvas);      }      else if(type==9){        idleft=FdNode_StatTab[i][5];	idright=FdNode_StatTab[i][6];        idsw1=FdNode_StatTab[i][7];        idsw2=FdNode_StatTab[i][8];	k=idsw1-0x4000;	gdj0=SwNode_DynTab[k][1];	m=idsw2-0x4000;	gdj00=SwNode_DynTab[m][1];	if((gdj00==0xaa)&&(gdj0==0xaa)) dir=0; 	else if(gdj00==0x55) dir=1;  	else if(gdj0==0x55) dir=2;	else dir=3;                                             	if((idright>=0x8000)&&(idright<=0x801d)){	  j=idright-0x8000;	f1x=SgNode_StatTab[j][2];	f1y=SgNode_StatTab[j][3];	}	     else if((idright>=0x4000)&&(idright<=0x4010)){        j=idright-0x4000;	f1x=SwNode_StatTab[j][2]*10.0;	f1y=SwNode_StatTab[j][3]*10.0;	n=idleft-0x4000;        f3x=SwNode_StatTab[n][2]*10.0;        f3y=SwNode_StatTab[n][3]*10.0;	}	     else if((idright>=0x2000)&&(idright<=0x2017)){       j=idright-0x2000;	f1x=FdNode_StatTab[j][2];	f1y=FdNode_StatTab[j][3];	}	f2x=f3x+lon;	f2y=fy;	f4x=f1x+10.0;      	f4y=f2y+30.0;        f8x=f1x+7;        f8y=f1y;        f9x=f1x+3;        f9y=f3y+9;        f10x=f3x-7;        f10y=f3y;        f11x=f3x-3;        f11y=f3y+9;       draw_twosw_fd(fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f8x,f8y,f9x,f9y,f10x,f10y,f11x,f11y,dir,cor,canvas);      }      else if(type==10){        idleft=FdNode_StatTab[i][5];	idright=FdNode_StatTab[i][6];        idsw1=FdNode_StatTab[i][7];        idsw2=FdNode_StatTab[i][8];	k=idsw1-0x4000;	gdj0=SwNode_DynTab[k][1];	m=idsw2-0x4000;	gdj00=SwNode_DynTab[m][1];	if((gdj00==0xaa)&&(gdj0==0xaa)) dir=0; 	else if(gdj00==0x55) dir=1;  	else if(gdj0==0x55) dir=2;	else dir=3;                                             	if((idright>=0x8000)&&(idright<=0x801d)){	  j=idright-0x8000;	f1x=SgNode_StatTab[j][2];	f1y=SgNode_StatTab[j][3];	}	     else if((idright>=0x4000)&&(idright<=0x4010)){        j=idright-0x4000;	f1x=SwNode_StatTab[j][2]*10.0;	f1y=SwNode_StatTab[j][3]*10.0;	n=idleft-0x4000;        f3x=SwNode_StatTab[n][2]*10.0;        f3y=SwNode_StatTab[n][3]*10.0;	}	     else if((idright>=0x2000)&&(idright<=0x2017)){       j=idright-0x2000;	f1x=FdNode_StatTab[j][2];	f1y=FdNode_StatTab[j][3];	}	f2x=f3x+lon;	f2y=fy;	f4x=f1x+10.0;	f4y=f2y-30.0;        f8x=f1x+7;        f8y=f1y;        f9x=f1x+3;        f9y=f3y-9;        f10x=f3x-7;        f10y=f3y;        f11x=f3x-3;        f11y=f3y-9;                draw_twosw_fd(fx,fy,f1x,f1y,f2x,f2y,f3x,f3y,f4x,f4y,f8x,f8y,f9x,f9y,f10x,f10y,f11x,f11y,dir,cor,canvas);      }                     else if(type==11){        idleft=FdNode_StatTab[i][5];	idright=FdNode_StatTab[i][6];        idsw1=FdNode_StatTab[i][7];        idsw2=FdNode_StatTab[i][8];	k=idsw1-0x4000;	gdj0=SwNode_DynTab[k][1];	f1x=SwNode_StatTab[k][2]*10.0;	f1y=SwNode_StatTab[k][3]*10.0;	m=idsw2-0x4000;	gdj00=SwNode_DynTab[m][1];        f4x=SwNode_StatTab[m][2]*10.0;	f4y=SwNode_StatTab[m][3]*10.0;	if(gdj0==0xaa) dir=0; 	else if((gdj0==0x55)&&(gdj00==0xaa)) dir=1;  	else if((gdj0==0x55)&&(gdj00==0x55)) dir=2;	else dir=3;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -