Ejemplo n.º 1
0
 void display2(Albero a,int k) {
   if(a != NULL) {
     display2(a->right, k+1);
     int i = 0;
     for(;i < k; i++){
       printf(" ");
       printf("%i",a->element);
       display2(a->left,k+1);
     }
   }
 }
Ejemplo n.º 2
0
void cTtyStatus::OsdTextItem(const char *Text, bool Scroll)
{
    // dsyslog("%s: '%s' scroll %d", __FUNCTION__, Text, Scroll);

    if (Text)
    {
        set_color(CYAN_BLACK);
        display2(Text);
        display2("\n\n");
        refresh();
    }
    else
    {
        set_pos(2, 0);
    }
}
Ejemplo n.º 3
0
static void	display_inv(void)
{
	t_npc	*npc;
	char	*str;

	npc = &g_env->npc[g_env->curr_npc];
	if (npc->lvl == 0)
		return ;
	str = ft_itoa(npc->id);
	display_words(-30, 30, "ID");
	display_words(-20, 30, str);
	free(str);
	str = ft_itoa(npc->lvl);
	display_words(-30, 29, "Lvl");
	display_words(-20, 29, str);
	free(str);
	display_words(-30, 28, "Team");
	display_words(-20, 28, npc->team);
	str = ft_itoa(npc->inv[_food]);
	display_words(-30, 26, "Food");
	display_words(-20, 26, str);
	free(str);
	str = ft_itoa(npc->inv[_linemate]);
	display_words(-30, 25, "Linemate");
	display_words(-20, 25, str);
	free(str);
	display2(npc);
}
Ejemplo n.º 4
0
int Avancer2(char table[][MAZE_MAX_SIZE], unsigned int X, unsigned int Y,
             unsigned int sens)
{
    int i;
    int tourner = 0;
    int avancer = 0;

    table[Y][X] = table[Y][X] | 16;
    // Interrogation des capteurs pour déterminer si il y a un mur devant/droite/gauche
    // GetPosition(X, Y, sens, table);
    display2(table, 20, sens);
    // est-on sur la case de fin
    if (table[Y][X] == 0x10)
    {
        tabsens[increment + 1] = sens;
        return (increment + 1); // On est en dehors de l'initialisation du tableau donc hors du labyrinthe
    }

    if (!trouve2)
    {          // On n'a pas encore trouvé l'arrivée
        char porte;
        unsigned char tmpX, tmpY;

        for (i = 0; i <= 3; i++)
        {
            if (!trouve2)
            {
                porte = (table[Y][X] & _porte2[i]);  // Test N, E, S, W
                if (porte == 0)
                { //0= pas de mur!
                    tmpX = (X + dx2[i]);      // Calcul de la prochaine position
                    tmpY = (Y + dy2[i]);
                    porte = (table[tmpY][tmpX]) & 0x10; // Pour tester si on est déjà passé par là
                    if (porte == 0)
                    {                // c'est bon on est pas encore passé par là
                        increment++;
                        tabsens[increment] = i; // Enregistrer la nouvelle position

                        tourner = tabsens[increment] - tabsens[increment - 1]; // calcul de la rotation à envoyer
                        avancer = 1;
                        //commande( tourner,avancer);
                        trouve2 = Avancer2(table, tmpX, tmpY, i);
                    }
                }
            }
        }
        // Si on ne veut pas que le robot retourne au depart tout en marche arriere depuis l'arrivee
        tourner = tabsens[increment] - tabsens[increment - 1];
        increment--;
        avancer = 1;
        //    table[Y][X] = table[Y][X]-16; // on efface la trace de notre passage
        commande(tourner, avancer);
    }

    return trouve2;
}
Ejemplo n.º 5
0
//change pose
void Robot::move(){
    
    if (dMode == 1) {
        display1();
    } else if (dMode == 2){
        display2();
    } else if (dMode == 3){
        display3();
    }
    
}
int main() {
union student var;
strcpy(var.name, "sample");
display(var);

union person var2;
strcpy(var2.color, "there");
display2(&var2);

getch();
return 0;
}
Ejemplo n.º 7
0
//主页
void MainPage(){
	setcliprgn(NULL);
	int choose = 0;

	choose = MainMenu();
	switch (choose){
	case 1: display1(); break;
	case 2: display2(); break;
	case 3:  settings();  break;
	case 4:  closemusic(); closegraph(); exit(1);
	default:;
	}
	_getch();
}
Ejemplo n.º 8
0
void main()
{
	init();
	init_24c02();
	ET0=1; //计时器0开启
	TR0=1; //计时器打开
	while(1)
	{
		keyscan();
		if(flag==1)
		{
			display2();
		}
	}
}
Ejemplo n.º 9
0
void InternalOpenGL2RenderCallbacks::render(sth_texture* texture)
{
	display2();
		

	GLuint* texId = (GLuint*) texture->m_userData;

    assert(glGetError()==GL_NO_ERROR);
            
    glActiveTexture(GL_TEXTURE0);
    assert(glGetError()==GL_NO_ERROR);

	glBindTexture(GL_TEXTURE_2D, *texId);
	bool useFiltering = false;
	if (useFiltering)
	{
		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
	} else
	{
		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
	}
    assert(glGetError()==GL_NO_ERROR);
     glBindBuffer(GL_ARRAY_BUFFER, s_vertexBuffer);
     glBindVertexArray(s_vertexArrayObject);
    glBufferData(GL_ARRAY_BUFFER, texture->nverts * sizeof(Vertex), &texture->newverts[0].position.p[0], GL_DYNAMIC_DRAW);

    assert(glGetError()==GL_NO_ERROR);
            
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, s_indexBuffer);
            
    //glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
    int indexCount = texture->nverts;
    assert(glGetError()==GL_NO_ERROR);
            
    glDrawElements(GL_TRIANGLES, indexCount, GL_UNSIGNED_INT, 0);
    assert(glGetError()==GL_NO_ERROR);
		
	 glBindVertexArray(0);

	glBindBuffer(GL_ARRAY_BUFFER, 0);
	 glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
//	 glDisableVertexAttribArray(m_textureAttribute);
	 glUseProgram(0);

}
Ejemplo n.º 10
0
void main()
{
	init_1602();
	init_24c02();
	init();
	readtemp();
	EA=1;
	ET0=1;
	TR0=0;
	while(1)
	{
		keyscan();
		if(second==0)
		{
			if(ahour==hour&&amin==minute)
			{
				display3();
				alarmflag=1;
				beep=0;
				while(alarmflag==1)
				{
					if(k1==0||k2==0||k3==0||k4==0)
					{
						alarmflag=0;
						write_com(0x01);
						beep=1;
						while(k1==0||k2==0||k3==0||k4==0);
					}
				}
			}
		}
		if(flag==0&&k3==0)
		{
			display4();
		}
		if(flag==0&&alarmflag==0)
		{
			display1();
		}
		if(flag==1&&alarmflag==0)
		{
			display2();
		}
	}
} 
int main()
{
	char ch;
	int i,choice,position;
	struct node *head=NULL;

	push(&head,1);
	push(&head,2);
	push(&head,3);
	push(&head,4);
	push(&head,5);
	printf("Printing the list\n");
	display2(head);
	printf("Printing using recursive\n");
	display(head);
	printf("\n");
	count(head);
}
Ejemplo n.º 12
0
void food(int matrix[][50],int f[]) // places the food
{
    display2();
    srand(time(NULL));
    f[0] = rand()%23 + 1;
    f[1] = rand()%48 + 1;
    while(matrix[f[0]][f[1]]!=0)
    {
        srand(time(NULL));
        f[0] = rand()%24;
        f[1] = rand()%49;
    }
    matrix[f[0]][f[1]]=6;
    fruit(15+10*f[1],15+10*f[0]);
    if(t>44) {
        t -= 1;
    }
    else if(t<44) {
        t += 1;
    }

}
Ejemplo n.º 13
0
int main() {
	int n = 1;
	setlocale(LC_CTYPE, "");
	initscr();//Initialize the screen
	start_color();
	cbreak();
	display1(stdscr);
	while(1) {
		n = display2(stdscr);
		switch(n) {
			case 1:
				n = p_vs_p_mode(stdscr);
				break;
			case 2:
				n = comp_vs_p_mode(stdscr, n);//Player white and computer black
				break;
			case 3:
				n = comp_vs_p_mode(stdscr, n);//Player black and computer white
				break;
			case 4: case 5:
				if(n == 4) {
					n = display_help_about(stdscr, "help");
				}
				else {
					n = display_help_about(stdscr, "about");      
				}
				break;
			case 6:
				break;
			default:
				printf("Please enter a valid number\n");
		}
		if(n == 6) {
			break;
		}
	}
	endwin();
	return 0;
}
Ejemplo n.º 14
0
int display2(WINDOW *win) {
	int x, y, n = -1;
	wclear(win);//Clear screen
	init_pair(1, COLOR_WHITE, COLOR_RED);
	wbkgd(win, COLOR_PAIR(1));
	attron(A_BOLD);
	mvwaddstr(win, LINES/4, COLS/2 - 4, "CHESS");
	attroff(A_BOLD);
	init_pair(2, COLOR_WHITE, COLOR_RED);
	attron(COLOR_PAIR(2));
	getyx(win, y, x);
	mvwprintw(win, y + 4, COLS/2 - 12, "1. Player vs Player");
	mvwprintw(win, y + 6, COLS/2 - 12, "2. Computer vs Player");
	mvwprintw(win, y + 8, COLS/2 - 12, "3. Player vs Computer");
	mvwprintw(win, y + 10, COLS/2 - 12, "4. HELP");
	mvwprintw(win, y + 12, COLS/2 - 12, "5. About");
	mvwprintw(win, y + 14, COLS/2 - 12, "6. Exit");
	curs_set(1);
	echo();
	while(n == -1) {
		mvwprintw(win, y + 17, COLS/2 - 12, "Enter your command : ");
		wrefresh(win);
		scanw("%d", &n);
		wrefresh(win);
		// wdelch(win);
		if(n > 0 && n < 7) {
			return n;
		}
		else {
			mvwprintw(win, y + 16, COLS/2 - 12, "Please enter a valid choice");
			display2(win);
		}
	}
	sleep(1);
	return n;
}
Ejemplo n.º 15
0
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
if(flag==0)
{

	glRasterPos3f(58,58,0);
for(i=0;s[i]!='\0';i++) 
glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s[i]);
glRasterPos3f(45,450,0);
for(i=0;s1[i]!='\0';i++) 
glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s1[i]);
glRasterPos3f(90,358,0);
for(i=0;s2[i]!='\0';i++) 
glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s2[i]);
glRasterPos3f(70,338,0);
for(i=0;s3[i]!='\0';i++) 
glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s3[i]);
glRasterPos3f(218,218,0);
for(i=0;s4[i]!='\0';i++) 
glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s4[i]);
glRasterPos3f(350,218,0);
for(i=0;s5[i]!='\0';i++) 
glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s5[i]);
glRasterPos3f(250,150,0);
for(i=0;s6[i]!='\0';i++) 
glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s6[i]);
glColor3f(1.0,1.0,0.0);
glRasterPos3f(250,130,0);
for(i=0;s7[i]!='\0';i++) 
glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s7[i]);
glRasterPos3f(250,100,0);
for(i=0;s8[i]!='\0';i++) 
glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s8[i]);
glRasterPos3f(58,28,0);
for(i=0;s9[i]!='\0';i++) 
glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s9[i]);




}
else
{

	road();
mountain();


	
//green
glBegin(GL_POLYGON);
glColor3f(0.0,1.0,0.0);
	glVertex2i(-10,300);
	glVertex2i(645,310);
   	glVertex2i(940,100);
	glVertex2i(-10,100);
glEnd();


trees();


//plane construction

glPushMatrix();
glTranslated(a,c,0.0);
glColor3f(1,1,1);
glBegin(GL_POLYGON);//rectangular body
glVertex2f(0.0,30.0);
glVertex2f(0.0,55.0);
glVertex2f(135.0,55.0);
glVertex2f(135.0,30.0);
glEnd();
glPopMatrix();

glPushMatrix();
glTranslated(a,c,0.0);
glColor3f(1.0,1.0,1.0);
glBegin(GL_POLYGON);//upper triangle construction plane
glVertex2f(135.0,55.0);
glVertex2f(150.0,50.0);
glVertex2f(155.0,45.0);
glVertex2f(160.0,40.0);
glVertex2f(135.0,40.0);
glEnd();
glPopMatrix();

glPushMatrix();
glTranslated(a,c,0.0);
glColor3f(0.0,0.0,0.0);
glBegin(GL_LINE_LOOP);//outline of upper triangle plane
glVertex2f(135.0,55.0);
glVertex2f(150.0,50.0);
glVertex2f(155.0,45.0);
glVertex2f(160.0,40.0);
glVertex2f(135.0,40.0);
glEnd();
glPopMatrix();


glPushMatrix();
glTranslated(a,c,0.0);
glColor3f(1.0,0.0,0.0);
glBegin(GL_POLYGON);//lower triangle
glVertex2f(135.0,40.0);
glVertex2f(160.0,40.0);
glVertex2f(160.0,37.0);
glVertex2f(145.0,30.0);
glVertex2f(135.0,30.0);
glEnd();
glPopMatrix();


glPushMatrix();
glTranslated(a,c,0.0);
glColor3f(1.0,0.0,0.0);
glBegin(GL_POLYGON);//back wing 
glVertex2f(0.0,55.0);
glVertex2f(0.0,80.0);
glVertex2f(10.0,80.0);
glVertex2f(40.0,55.0);
glEnd();
glPopMatrix();

glPushMatrix();
glTranslated(a,c,0.0);
glColor3f(1.0,0.0,0.0);
glBegin(GL_POLYGON);//left side wing
glVertex2f(65.0,55.0);
glVertex2f(50.0,70.0);
glVertex2f(75.0,70.0);
glVertex2f(90.0,55.0);
glEnd();
glPopMatrix();

glPushMatrix();
glTranslated(a,c,0.0);
glColor3f(1.0,0.0,0.0);
glBegin(GL_POLYGON);//rightside wing
glVertex2f(70.0,40.0);
glVertex2f(100.0,40.0);
glVertex2f(80.0,15.0);
glVertex2f(50.0,15.0);

glEnd();

glPopMatrix();



	if(c>390)    //timer to jump to next display
{
	display2();
	d+=5;//plane takeoff on x in 2nd display
}

if(a>500.0)//window position during take off
{
	a=0.0;
	b=0.0;
}

if(c>800)//timer to jump to 3rd display
{
	display3();
	e+=5;//plane takeoff on x in 3rd display
	
	if(e>250)//timer to call blast function
	{
		blast();
		e=250;
	}
}

}

glFlush();
glutSwapBuffers();
}
Ejemplo n.º 16
0
int test_maze_construc(void)
{
    char tableau[MAZE_MAX_SIZE][MAZE_MAX_SIZE] =
    {("0000000000"), ("0000000000"), ("0000000000"), ("0000000000"),
     ("0000955530"), ("0000A95560"), ("0000AA9150"), ("0000AEAAB0"),
     ("0000C56C60")};
    /*
     {("9555300000"),
     ("C395600000"),
     ("96C1300000"),
     ("C3FAC00000"),
     ("D454700000"),
     ("0000000000")};
     */
    /*
     {("0000955530"),
     ("00008393A0"),
     ("0000EC6AA0"),
     ("0000B93A80"),
     ("0000C6C6E0"),
     ("0000000000")};
     */
    /*
     {("0000000000"),
     ("0000000000"),
     ("0000000000"),
     ("0000000000"),
     ("0000B93F90"),
     ("0000AAC160"),
     ("0000AAD2B0"),
     ("0000AA9460"),
     ("0000C6C570"),
     ("0000000000")};

     {
     ("0000000000"),
     ("0000000000"),
     ("0000000000"),
     ("0000000000"),
     ("0000951530"),
     ("0000A943E0"),
     ("000082F810"),
     ("0000AC16A0"),
     ("0000ED4560"),
     ("0000000000")};

     {
     ("0000000000"),
     ("0000000000"),
     ("0000000000"),
     ("0000000000"),
     ("0000D53930"),
     ("0000916AA0"),
     ("0000E87AA0"),
     ("0000943AA0"),
     ("00006FC6E0"),
     ("0000000000")};
     */
    /*
     {("0000000000"),
     ("0000000000"),
     ("0000000000"),
     ("0000000000"),
     ("0000000000"),
     ("0000000000"),
     ("0000000000"),
     ("0000000000"),
     ("0000000000"),
     ("0000000000")};
     */

    ConvertBinaire(tableau);

    //  unsigned char mur[3];
    //  unsigned char i;
    unsigned char x = 4;
    unsigned char y = 4;
    unsigned int sens = NORD;

    init();
    hal_serial_write(handle, "Commencement du test\n", 23);
    display2(tableau, 20, sens);
    hal_serial_write(handle, "Rotation 180\n", 13);
    GetPosition2(x, y, sens, tableau);
    //commande( SUD, 0);
    display2(tableau, 20, SUD);
    int ret = 0;
    ret = Avancer2(tableau, x, y, SUD);
    hal_serial_write(handle, "Le test est termine\n", 20);
    Convertcharacter(tabsens, ret + 1);
    hal_serial_write(handle, "trajectoire a envoyer\n", 22);
    hal_serial_write(handle, tabsens, ret + 1);

    return ret + 1;
}
Ejemplo n.º 17
0
void keyscan()
{
	if(k1==0&&flag2!=0)
	{
		delay(5);
		if(k1==0&&flag2!=0)
		{
			flag=0;  flag2=0; write_com(0x0c); init(); if(num!=0&&TR0==0) ET0=0;
		}
		while(k1==0);
	} 
	if(k1==0)
	{
		delay(5);
		if(k1==0)
		{
			flag++;
			if(flag==1)
			{
				init2();
			}
			switch(flag)
			{
				case 6 : write_com(0x80+0x40+0x04); break;
				case 7 : write_com(0x80+0x40+0x07); break;
				case 8 : write_com(0x80+0x40+0x0a); break;
				case 2 : init(); write_com(0x80+0x01); write_com(0x0f); break;
				case 3 : write_com(0x80+0x06); break;
				case 4 : write_com(0x80+0x09); break;
				case 5 : write_com(0x80+0x0d); break;
				case 9 : init3(); break;
				case 10: write_com(0x80+0x09); break;
				case 11: flag=0; write_com(0x01); write_com(0x0c); break;
			}
		}
		while(k1==0);
	}
	if(k2==0)
	{
		delay(5);
		if(k2==0)
		{
			if(flag==1)
			{
				if(ET0==0)
				{
					min2=0;sec2=0;num=0;secp=0;
					for(i=0;i<max;i++)
					{
						mins[i]=0;secs[i]=0;secps[i]=0;
					}
					max=0;ET0=1;flag2++;
					while(k2==0);
				}
				if(TR0==1)
				{
					num++;
					mins[num]=min2;
					secs[num]=sec2;
					secps[num]=secp;
					TR0=0;
					ET0=0;
					max=num;
					flag2++;
					while(k2==0);
				}
			}
			switch(flag)
			{
				case 6 : if(hour<23) hour++; else hour=0; writehour; delay(5); displayhour; write_com(0x80+0x40+0x04); break;
				case 7 : if(minute<59) minute++; else minute=0;writeminute; delay(5); displayminute;  write_com(0x80+0x40+0x07); break;
				case 8 : if(second<59) second++; else second=0;writesecond; delay(5); displaysecond;  write_com(0x80+0x40+0x0a); break;
				case 2 : year++;  writeyear; delay(5); displayyear;write_com(0x80+0x01);  break;
				case 3 : if(month<12) month++; else month=1;writemonth;delay(5); displaymonth; write_com(0x80+0x06);  break;
				case 4 : if(day<31) day++; else day=1; writeday; delay(5); displayday; write_com(0x80+0x09); break;
				case 5 : if(week<8) week++; else week=2; writeweek;delay(5); displayweek; write_com(0x80+0x0d); break;
				case 9 : if(ahour<23) ahour++; else ahour=0; displaytwo(6,ahour); write_add(1,ahour); write_com(0x80+0x06); break;
				case 10: if(amin<59) amin++; else amin=0; displaytwo(9,amin); write_add(2,amin); write_com(0x80+0x09); break;
			}
		}
		while(k2==0);
	}
	if(k3==0&flag!=0)
	{
		delay(5);
		if(k3==0&flag!=0)
		{
			if(flag==1)
			{
				if(ET0==1&&TR0==1)
				{
					num++;
					flag2++;
					mins[num]=min2;
					secs[num]=sec2;
					secps[num]=secp;
					while(k3==0)
					{
						display2();
					}
				}
				if(ET0==1&&TR0==0)
					{
						TR0=1;
						flag2++;
					}
				if(ET0==0)
				{
					if(num>1)
					num--;
					min2=mins[num];
					sec2=secs[num];
					secp=secps[num];
					flag2++;
				}
			}
			switch(flag)
			{
				case 6 : if(hour>0) hour--; else hour=23; writehour;delay(5); displayhour; write_com(0x80+0x40+0x04); break;
				case 7 : if(minute>0) minute--; else minute=59; writeminute; delay(5); displayminute; write_com(0x80+0x40+0x07); break;
				case 8 : if(second>0) second--; else second=59; writesecond; delay(5); displaysecond; write_com(0x80+0x40+0x0a); break;
				case 2 : year--; writeyear; delay(5);  displayyear; write_com(0x80+0x01); break;
				case 3 : if(month>1) month--; else month=12; writemonth; delay(5); displaymonth;  write_com(0x80+0x06); break;
				case 4 : if(day>1) day--; else day=31;writeday; delay(5); displayday;  write_com(0x80+0x09); break;
				case 5 : if(week>1) week--; else week=7;writeweek; delay(5); displayweek;  write_com(0x80+0x0d); break;
				case 9 : if(ahour>0) ahour--; else ahour=23; displaytwo(6,ahour); write_add(1,ahour); write_com(0x80+0x06); break;
				case 10: if(amin>0) amin--; else amin=59; displaytwo(9,amin); write_add(2,amin); write_com(0x80+0x09); break;
			}
		}
		while(k3==0);		
	}
	if(k4==0)
	{
		delay(5);
		if(k4==0&&ET1==0&&flag!=0)
		{
			if(num<max)
			num++;
			min2=mins[num];
			sec2=secs[num];
			secp=secps[num];
			flag2++;
		}
		if(k4==0&&flag==0)
		{
			write_com(0x01);
			displaytemp(readtemp());		  
		}
	}
	while(k4==0);
}
Ejemplo n.º 18
0
 void display(Albero alb) {
   display2(alb,0);
 }
Ejemplo n.º 19
0
int main()
{
  //m = num_of_constraints
  //n = num_of_variables
  
  int i, j, k, l=0, m, n, count_surp=0, count_art=0, c=0, dummy=0, res=0;
  float **A, **S, *obj_fun, *type, sum=0;
  // char *c1, *c2, c;
  
  printf("enter the number of constraints: ");
  scanf("%d", &m);
  printf("enter the number of variables: ");
  scanf("%d", &n);
  
  printf("\n");
  
  //forming the constraint matrix
  A = (float **)malloc(m * sizeof(float *));
  for(i=0; i<m; i++)
    {
      printf("constraint #%d: ",i+1);
      A[i] = (float *)malloc((n+1) * sizeof(float));
      for(j=0; j<(n+1) ; j++)
		scanf("%f",&A[i][j]);
    }
  printf("\n");
  
  //forming the objective function array
  obj_fun  = (float *)malloc(n * sizeof(float));
  printf("enter the coefficients of the objective function: ");
  for(i=0; i<n; i++)
    scanf("%f", &obj_fun[i]);
  printf("\n");
  
  //forming the type array
  type = (float *)malloc(m * sizeof(float));
  printf("1 -> less than equal to\n2 -> greater than equal to\n3 -> equal to\n");
  for(i=0; i<m; i++)
    {
      printf("type for constraint #%d: ",i+1);
      scanf("%f", &type[i]);
      if(type[i]==2)
	count_surp++;
    }
  printf("\n");
  
  //forming the first simplex tableau
   S = (float **)calloc((m+1), sizeof(float *));
  for(i=0; i<m+1; i++)
    {
      k=0;
      l=0;
      S[i] = (float *)calloc((n+count_surp+1), sizeof(float));
      for(j=0; j<(n+count_surp+1) ; j++)
	{
	  sum=0;
	  if(i<m && j<n)
	    S[i][j] = A[i][j];
	  if(i<m && k==0 && j>=n && j<count_surp+n && type[i]==2)
	    {
	      k=1;
	      S[i][j+c] = -1;
	      c++;
	    }
	  if(i<m && j==n+count_surp)
	    S[i][j] = A[i][n];
	  if(i==m)
	    {
	      for(k=0; k<m; k++)
		sum += S[k][l];
	      if(j<n)
		S[i][j] = -(sum*M) - obj_fun[j];
	      if(j>=n && j<=count_surp+n)
		S[i][j] = -(sum*M);
	    }
	  l++;
	}
    }
  
  //forming title matrices
  /* c1 = (char **)malloc((m+1) * sizeof(char*));
  for(i=0; i<m+1; i++)
    {
      c1[i] = (char *)malloc(sizeof(char));
      for(j=0; j<2; j++)
	{
	  c = (char)(i+1);
	  c1[i][
	}
    }
  
  */  
  printf("Coefficient matrix:\n");
  display2(A, m, n+1);
  
  printf("type array:\n");
  display1(type, m);
  
  printf("objective function\n");
  display1(obj_fun, n);
  
  printf("Simplex matirx\n");
  display2(S, m+1, n+count_surp+1);
  
  while(res==0)
    {
      res = find_pivot(S, m+1, n+count_surp+1);
      display2(S, m+1,n+count_surp+1);
    }
  
  return 0;
}
Ejemplo n.º 20
0
void display()
{   glClearColor(0.6, 0.75, 0.85, 1); // sky color is light blue
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	/* Clear The Screen And The Depth Buffer */
	if(view==0)
	{   
		display1();
	}

  else if (view==1)
	{
	display2();
   }
   else if(view==2)
   {
   //  Erase the window and the depth buffer
   
   glClearColor(0.6, 0.75, 0.85, 1); // sky color is light blue
   glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    //  Enable Z-buffering in OpenGL
   glEnable(GL_DEPTH_TEST);
   glCullFace(GL_BACK);
  
   glLoadIdentity();
    
   // Set the look at position for perspective projection
      		gluLookAt(
			Ex,      Ey,      Ez,
			Ex + lx, Ey, Ez+lz,
			0.0,    1,    0.0);
   
    
  glShadeModel(GL_SMOOTH);
  glDisable(GL_DEPTH_TEST);
  glDepthMask(GL_FALSE);
  glPushMatrix();
  glTranslatef(	Ex + lx, 0, Ez+lz-4);
  Sky(1000); 
  glPopMatrix();
  glDepthMask(GL_TRUE);
  glEnable(GL_DEPTH_TEST);
  
    //  Light switch
   if (light)
   {
        //  Translate intensity to color vectors
        float Ambient[]   = {0.01*ambient ,0.01*ambient ,0.01*ambient ,1.0};
        float Diffuse[]   = {0.01*diffuse ,0.01*diffuse ,0.01*diffuse ,1.0};
        float Specular[]  = {0.01*specular,0.01*specular,0.01*specular,1.0};
        //  Light position
      float Position[]={0,1000,5000};
        //  Draw light position as ball (still no lighting here)
        glColor3f(1,1,1);
         ball(Position[0],Position[1],Position[2] , 0.2);
        //  OpenGL should normalize normal vectors
        glEnable(GL_NORMALIZE);
        //  Enable lighting
        glEnable(GL_LIGHTING);
        //  glColor sets ambient and diffuse color materials
        glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
        glEnable(GL_COLOR_MATERIAL);
        //  Enable light 0
        glEnable(GL_LIGHT0);
        //  Set ambient, diffuse, specular components and position of light 0
        glLightfv(GL_LIGHT0,GL_AMBIENT ,Ambient);
        glLightfv(GL_LIGHT0,GL_DIFFUSE ,Diffuse);
        glLightfv(GL_LIGHT0,GL_SPECULAR,Specular);
        glLightfv(GL_LIGHT0,GL_POSITION,Position);
        
   }
   else
     glDisable(GL_LIGHTING);
   
	if(opt==1)
	{
		 glPushMatrix();
         glTranslatef(	Ex + lx,0, Ez+lz-4);
         glRotatef(90, 1, 0, 0);
         glRotatef(180, 0, 1, 0);
         glColor3f(1,1,1);
		 glCallList(car1);
		 glPopMatrix();
		  int E=Ez+lz-4;
		 if(E<=40)
		 {
		 	Ex=0;
		 	Ez=1000;
		 	lx=0;
		 	lz=-1;
		 }
		
	}
	else if(opt==2)
	{
		 glPushMatrix();
         glTranslatef(	Ex + lx, 0, Ez+lz-4);
         glRotatef(90, 1, 0, 0);
         glRotatef(180, 0, 1, 0);
         glColor3f(1,1,1);
		 glCallList(car2);
		 glPopMatrix();
		   int E=Ez+lz-4;
		 if(E<=40)
		 {
		 	Ex=0;
		 	Ez=1000;
		 	lx=0;
		 	lz=-1;
		 }
	}
	cylinder();
    Road();
    
     
	for(i=0; i<=1000; i+=40)
	{
	glPushMatrix();
    glTranslated(-50,10,i);
    glScaled(50,50,50);
    Tree();
    glPopMatrix();
  }
    for(i=0; i<=1000; i+=40)
	{
	glPushMatrix();
    glTranslated(170,10,i);
    glScaled(50,50,50);
    Tree();
    glPopMatrix();
  }
    for(i=0; i<=1000; i+=60)
	{
	glPushMatrix();
    glTranslated(-70,-10,i);
    glScaled(2,10,10);
    Lamp();
    glPopMatrix();
  }
  for(i=0; i<=1000; i+=60)
	{
	glPushMatrix();
    glTranslated(70,-10,i);
    glRotated(90,0,1,0);
    glScaled(2,10,10);
    Lamp();
    glPopMatrix();
  }
  for(i=-60; i<=1000; i+=60)
	{
	glPushMatrix();
    glTranslated(-38,86.5,i+43);
    glScaled(5,5,5);
    lights();
    glPopMatrix();
  }
   for(i=-60; i<=1000; i+=60)
	{
	glPushMatrix();
    glTranslated(55,87,i+30);
    glScaled(5,5,5);
    lights();
    glPopMatrix();
  }
   for(i=0; i<=1000; i+=400)
	{
	glPushMatrix();
    glTranslated(-50,-10,i);
    glScaled(10,10,10);
    trafficsignal();
    glPopMatrix();
    }
     for(i=0; i<=1000; i+=400)
	{
	glPushMatrix();
    glTranslated(0,0,i+40);
    zebracrossing();
    glPopMatrix();
    }
     for(i=-60; i<=1000; i+=100)
	{
	glPushMatrix();
    glTranslated(200,-15,i+30);
    glScaled(10,15,10);
    buildings();
    glPopMatrix();
  }
   for(i=-60; i<=1000; i+=100)
	{
	glPushMatrix();
    glTranslated(-250,-15,i+30);
    glScaled(10,15,10);
    buildings();
    glPopMatrix();
  }
   for(i=-60; i<=1000; i+=100)
	{
	glPushMatrix();
    glTranslated(350,-15,i+30);
    glScaled(10,30,10);
    buildings();
    glPopMatrix();
  }
   for(i=-60; i<=1000; i+=100)
	{
	glPushMatrix();
    glTranslated(-400,-15,i+30);
    glScaled(10,30,10);
    buildings();
    glPopMatrix();
  }
     
   for(e=0; e<=1000; e+=155)
	{
	  if(e%2==0)
	{
		glPushMatrix();
		glTranslated(-16,-10,e);
		glScaled(6,6,6);
        roadpylon();
        glPopMatrix();
    }
    else
	{
		glPushMatrix();
		glTranslated(16,-10,e);
        glScaled(6,6,6);
        roadpylon();
        glPopMatrix();
    }
    } 
    for(i=0; i<=1000; i+=400)
	{
	glPushMatrix();
    glTranslated(65,0,i);
    glScaled(10,10,10);
    roadsign();
    glPopMatrix();
    }
  
  xpos = xpos + xvel;

if(xpos >= 30)
{
xvel = -xvel;
}
if( xpos <2)
{
xvel = -xvel;
}
  glPushMatrix();
  glTranslated(0,xpos,900);
  glRotated(-90,0,0,1);
  glRotated(-90,0,1,0);
  glScaled(2,2,2);
  glColor3f(1,1,1);
  glCallList(dragon);
  glPopMatrix();
   glWindowPos2i(5,5);
   glColor3f(1,1,1);
  Print("Speed=%f",1,jump);
 
}
   //  Render the scene and make it visible
   ErrCheck("display");
   glFlush();
   glutSwapBuffers();
}
Ejemplo n.º 21
0
bool
ServerWindow::ParseEvents (const char *data)
{
	BString firstWord = GetWord(data, 1).ToUpper();
	BString secondWord = GetWord(data, 2).ToUpper();

	if(firstWord == "PING")
	{
		BString tempString,
		        theServer (GetWord(data, 2));
		theServer.RemoveFirst(":");
		
		tempString << "PONG " << myNick << " " << theServer;
		SendData (tempString.String());
		tempString = "";
		tempString << "PONG " << theServer; // fix for some noncompliant servers
		SendData (tempString.String());
		return true;
	}

	if (secondWord == "JOIN")
	{
		BString nick (GetNick (data));
		BString channel (GetWord (data, 3));

		channel.RemoveFirst (":");
		ClientWindow *client (Client (channel.String()));

		if (nick == myNick)
		{
			if (!client)
			{
				client =  new ChannelWindow (
					channel.String(),
					sid,
					serverName.String(),
					sMsgr,
					myNick.String());

				clients.AddItem (client);
				client->Show();
			}
				
			BString tempString ("MODE ");
			tempString << channel;
			SendData (tempString.String());
		}
		else if (client)
		{
			// someone else
			BString ident (GetIdent (data));
			BString address (GetAddress (data));
			const char *expansions[3];
			BString tempString, addy;

			expansions[0] = nick.String();
			expansions[1] = ident.String();
			expansions[2] = address.String();

			tempString = ExpandKeyed (events[E_JOIN], "NIA", expansions);
			BMessage display (M_DISPLAY);
			PackDisplay (
				&display,
				tempString.String(),
				&joinColor,
				0,
				true);

			addy << ident << "@" << address;

			BMessage aMsg (M_IS_IGNORED), reply;
			bool ignored;

			aMsg.AddString ("server", serverName.String());
			aMsg.AddString ("nick", nick.String());
			aMsg.AddString ("address", addy.String());

			be_app_messenger.SendMessage (&aMsg, &reply);
			reply.FindBool ("ignored", &ignored);
			
			BMessage msg (M_USER_ADD);
			msg.AddString ("nick",  nick.String());
			msg.AddBool ("ignore", ignored);
			msg.AddMessage ("display", &display);
			client->PostMessage (&msg);
		}
		return true;
	}
	
	if (secondWord == "PART")
	{
		BString nick (GetNick (data));
		BString channel (GetWord (data, 3));
		ClientWindow *client;

		if ((client = Client (channel.String())) != 0)
		{
			BString ident (GetIdent (data));
			BString address (GetAddress (data));
			const char *expansions[3];
			BString buffer;

			expansions[0] = nick.String();
			expansions[1] = ident.String();
			expansions[2] = address.String();

			buffer = ExpandKeyed (events[E_PART], "NIA", expansions);

			BMessage display (M_DISPLAY);
			PackDisplay (&display, buffer.String(), &joinColor, 0, true);

			BMessage msg (M_USER_QUIT);
			msg.AddString ("nick", nick.String());
			msg.AddMessage ("display", &display);
			client->PostMessage (&msg);
		}

		return true;
	}
	
	if(secondWord == "PRIVMSG")
	{
		BString theNick (GetNick (data)),
			ident (GetIdent (data)),
			address (GetAddress (data)),
			addy;


		addy << ident << "@" << address;
		BMessage aMsg (M_IS_IGNORED), reply;
		bool ignored;

		aMsg.AddString ("server", serverName.String());
		aMsg.AddString ("nick", theNick.String());
		aMsg.AddString ("address", addy.String());

		be_app_messenger.SendMessage (&aMsg, &reply);
		reply.FindBool ("ignored", &ignored);

		if (ignored)
		{
			BMessage msg (M_IGNORED_PRIVMSG);
			const char *rule;

			reply.FindString ("rule", &rule);
			msg.AddString ("nick", theNick.String());
			msg.AddString ("address", addy.String());
			msg.AddString ("rule", rule);
			Broadcast (&msg);
			return true;
		}

		BString theTarget (GetWord (data, 3).ToUpper()),
		        theTargetOrig (GetWord (data, 3)),
		        theMsg (RestOfString (data, 4));
		ClientWindow *client (0);

		theMsg.RemoveFirst(":");

		if(theMsg[0] == '\1' && GetWord(theMsg.String(), 1) != "\1ACTION") // CTCP
		{
			ParseCTCP (theNick, theTargetOrig, theMsg);
			return true;
		}

		if (theTarget[0] == '#')
			client = Client (theTarget.String());
		else if (!(client = Client (theNick.String())))
		{
			BString ident = GetIdent(data);
			BString address = GetAddress(data);
			BString addyString;
			addyString << ident << "@" << address;

			client = new MessageWindow (
				theNick.String(),
				sid,
				serverName.String(),
				sMsgr,
				myNick.String(),
				addyString.String(),
				false, // not a dcc chat
				true); // initated by server

			clients.AddItem (client);
			client->Show();
		}

		if (client) client->ChannelMessage (
			theMsg.String(),
			theNick.String(),
			ident.String(),
			address.String());

		return true;
	}
	
	if (secondWord == "NICK")
	{
		BString oldNick (GetNick (data)),
		        ident (GetIdent (data)),
		        address (GetAddress (data)),
		        newNick (GetWord (data, 3)),
		        buffer;
		const char *expansions[4];

		newNick.RemoveFirst (":");

		expansions[0] = oldNick.String();
		expansions[1] = newNick.String();
		expansions[2] = ident.String();
		expansions[3] = address.String();

		buffer = ExpandKeyed (events[E_NICK], "NnIA", expansions);
		BMessage display (M_DISPLAY);
		PackDisplay (&display, buffer.String(), &nickColor, 0, bowser_app->GetStampState());

		BMessage msg (M_CHANGE_NICK);
		msg.AddString ("oldnick", oldNick.String());
		msg.AddString ("newnick", newNick.String());
		msg.AddString ("ident", ident.String());
		msg.AddString ("address", address.String());
		msg.AddMessage ("display", &display);

		Broadcast (&msg);

		// Gotta change the server as well!
		if (myNick.ICompare (oldNick) == 0)
		{
			myNick = newNick;
			status->SetItemValue (STATUS_NICK, newNick.String());
		}

		bowser_app->PostMessage (&msg); // for ignores

		return true;
	}

	if (secondWord == "QUIT")
	{
		BString theNick (GetNick (data).String()),
		        theRest (RestOfString (data, 3)),
		        ident (GetIdent (data)),
		        address (GetAddress (data)),
		        theMsg,
		        firstNick;
		const char *expansions[4];

		theRest.RemoveFirst (":");
		
		expansions[0] = theNick.String();
		expansions[1] = theRest.String();
		expansions[2] = ident.String();
		expansions[3] = address.String();

		theMsg = ExpandKeyed (events[E_QUIT], "NRIA", expansions);
		BMessage display (M_DISPLAY);
		PackDisplay (&display, theMsg.String(), &quitColor, 0, true);

		BMessage msg (M_USER_QUIT);
		msg.AddMessage ("display", &display);
		msg.AddString ("nick", theNick.String());

		Broadcast (&msg);
		
		// see if it was our first nickname. if so, change
		firstNick = (const char *)lnicks->ItemAt (0);
		if (theNick == firstNick)
		{
			BString tempCmd ("/nick ");
			tempCmd << firstNick;
			ParseCmd (tempCmd.String());
		}
				
		return true;
	}

	if (secondWord == "KICK")
	{
		BString kicker (GetNick (data)),
		        kickee (GetWord (data, 4)),
		        rest (RestOfString (data, 5)),
		        channel (GetWord (data, 3));
		ClientWindow *client (Client (channel.String()));

		rest.RemoveFirst (":");

		if ((client = Client (channel.String())) != 0
		&&   kickee == myNick)
		{
			BMessage display (M_DISPLAY); // "you were kicked"
			BString buffer;

			buffer << "*** You have been kicked from "
				<< channel << " by " << kicker << " (" << rest << ")\n";
			PackDisplay (&display, buffer.String(), &quitColor, 0, true);

			BMessage display2 (M_DISPLAY); // "attempting auto rejoin"
			buffer = "*** Attempting to automagically rejoin ";
			buffer << channel << "...\n";
			PackDisplay (&display2, buffer.String(), &quitColor, 0, true);
						

			BMessage msg (M_CHANNEL_GOT_KICKED);
			msg.AddString ("channel", channel.String());
			msg.AddMessage ("display", &display);  // "you were kicked"
			msg.AddMessage ("display2", &display2); // "attempting auto rejoin"
			client->PostMessage (&msg);
		}

		if (client && kickee != myNick)
		{
			BMessage display (M_DISPLAY);
			const char *expansions[4];
			BString buffer;

			expansions[0] = kickee.String();
			expansions[1] = channel.String();
			expansions[2] = kicker.String();
			expansions[3] = rest.String();

			buffer = ExpandKeyed (events[E_KICK], "NCnR", expansions);
			PackDisplay (&display, buffer.String(), &quitColor, 0, true);

			BMessage msg (M_USER_QUIT);
			msg.AddString ("nick", kickee.String());
			msg.AddMessage ("display", &display);
			client->PostMessage (&msg);
		}

		return true;
	}

	if(secondWord == "TOPIC")
	{
		BString theNick (GetNick (data)),
		        theChannel (GetWord (data, 3)),
		        theTopic (RestOfString (data, 4));
		ClientWindow *client (Client (theChannel.String()));

		theTopic.RemoveFirst (":");

		if (client && client->Lock())
		{
			BString ident (GetIdent (data));
			BString address (GetAddress (data));
			const char *expansions[5];
			BString buffer;

			expansions[0] = theNick.String();
			expansions[1] = theTopic.String();
			expansions[2] = client->Id().String();
			expansions[3] = ident.String();
			expansions[4] = address.String();

			if(bowser_app->GetShowTopicState())
			{
				buffer << client->Id() << " : " << theTopic;
				client->SetTitle (buffer.String());
				client->Unlock();
			}
			else
			{
				buffer << client->Id();
				client->SetTitle (buffer.String());
				client->Unlock();
			}
			
			BMessage topic (M_CHANNEL_TOPIC);
			
			topic.AddString("topic", theTopic.String());
						
			BMessage display (M_DISPLAY);

			buffer = ExpandKeyed (events[E_TOPIC], "NTCIA", expansions);
			PackDisplay (&display, buffer.String(), &whoisColor, 0, true);
			topic.AddMessage("display", &display);
			client->PostMessage (&topic);
		}
		return true;
	}

	if (secondWord == "MODE")
	{
		BString theNick (GetNick (data)),
		        theChannel (GetWord (data, 3)),
		        theMode (GetWord (data, 4)),
		        theTarget (RestOfString (data, 5));
		ClientWindow *client (Client (theChannel.String()));

		if (client)
		{
			BMessage msg (M_CHANNEL_MODE);

			msg.AddString("nick", theNick.String());
			msg.AddString("mode", theMode.String());
			msg.AddString("target", theTarget.String());

			client->PostMessage (&msg);
		}
		else
		{
			BMessage msg (M_DISPLAY);
			BString buffer;
			
			theMode.RemoveFirst(":");
	
			buffer << "*** User mode changed: " << theMode << "\n";
			PackDisplay (&msg, buffer.String(), 0, 0, true);

			PostActive (&msg);
		}

		return true;
	}

	if(firstWord == "NOTICE") // _server_ notice
	{
		BString theNotice (RestOfString(data, 3));
		const char *expansions[1];

		theNotice.RemoveFirst(":");

		expansions[0] = theNotice.String();
		theNotice = ExpandKeyed (events[E_SNOTICE], "R", expansions);
		Display (theNotice.String(), 0, 0, true);

		return true;
	}

	if (firstWord == "ERROR") // server error (on connect?)
	{
		BString theError (RestOfString (data, 2));

		theError.RemoveAll (":");
		theError.Append ("\n");

		Display (theError.String(), &quitColor);
		isConnecting = false;
		return true;
	}

	if(secondWord == "NOTICE") // _user_ notice
	{
		BString theNick (GetNick (data)),
			ident (GetIdent (data)),
			address (GetAddress (data)),
			addy;

		addy << theNick << "@" << address;

		BMessage aMsg (M_IS_IGNORED), reply;
		bool ignored;

		aMsg.AddString ("server", serverName.String());
		aMsg.AddString ("nick", theNick.String());
		aMsg.AddString ("address", addy.String());

		be_app_messenger.SendMessage (&aMsg, &reply);
		reply.FindBool ("ignored", &ignored);

		if (ignored) return true;

		BString theNotice = RestOfString(data, 4);

		theNotice.RemoveFirst(":");

		if(theNotice[0] == '\1')
		{
			ParseCTCPResponse(theNick, theNotice);
			return true;
		}

		const char *expansions[4];
		BString tempString;

		expansions[0] = theNick.String();
		expansions[1] = theNotice.String();
		expansions[2] = ident.String();
		expansions[3] = address.String();

		tempString = ExpandKeyed (events[E_UNOTICE], "NRIA", expansions);
		BMessage display (M_DISPLAY);
		PackDisplay (&display, tempString.String(), &noticeColor, 0, true);
		PostActive (&display);
		return true;
	}

	return ParseENums (data, secondWord.String());
}