logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

C++ GOTOXY nie może wytrzymać towarzystwa textcolor();

K_o_N_z_I 28 Sty 2006 15:01 8000 5
  • #1 2229525
    K_o_N_z_I
    Poziom 17  
    Posty: 336
    Pomógł: 13
    Ocena: 55
    witam, a wiec mam ten kod:

    gotoxy(74,5); 
                                    textcolor(15);
                                    printf("%d",p);
                                    //cout<<p<<endl;



    i zglasza sie blad|: conio.c C:\Dev-Cpp\include\LIBCONIO.A(conio.o)(.text+0x2c0) multiple definition of `gotoxy'

    oraz: first defined here
    natomiast gdy usune textcolor(); oraz printf(); od razu ladnie dziala, ale ja musze miec kolorowy tekst!!! Bez gotoxy tez dziala, jednak sprawa wymaga obecnosci tych dwoch rzeczy obok siebie i nie moge tego pogodzic
  • #2 2230089
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Raczej problem wynika z czegoś innego, wklej cały problematyczny kod.
  • #3 2231249
    K_o_N_z_I
    Poziom 17  
    Posty: 336
    Pomógł: 13
    Ocena: 55
    #include<iostream.h>
    #include<windows.h>
    #include"conio.h"
    
    
    //*****************RYSOWANIE RAMKI**********************************************
    
    void ramka() //rysuje ramke na ekranie
    { int c;
    
      gotoxy(1, 2);
      for (int i=0; i<70; ++i)
        printf("%c", 205);
      printf(" %c", 30);
      gotoxy(1, 22);
      for (int j=0; j<70; ++j)
        printf("%c", 205);
      printf(" %c", 31);
      }
    
    //*****************OBSLUGA KURSORA**********************************************
    
    void gotoxy(int x, int y)
    {
       COORD coord;
       coord.X = x;
       coord.Y = y;
       SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
    }
    
    //******************DEKLAROWANIE STRUKTURY**************************************
    
    struct struktura
    {
    	int w;
    	int x;
    	int y;
    };
    
    
    static struktura snake[1000];
    
    int p;
    
    //******************DEKLAROWANIE STRUKTURY**************************************
    
    struct strukt
    {
    	int x;
    	int y;
    	int ok;
    };
    
    static strukt biji;
    
    int opt_cor;
    int a;
    int b;
    char znak;
    
    //*********************CIAŁO FUNKCJI********************************************
    int main()
    {
    	int z,zz;
    	int speed;
    	char speed1[3];
    	int x;
    	int y;
    	char opt_ex='n';
    	char opt;
    	cout<<endl<<endl;
    	ramka();
    	gotoxy(32,5);
        cout<<"Jak grac?"<<endl;
        gotoxy(15,8);
    	cout<<"Kierujesz weza za pomoca tych 4 klawiszy"<<endl;
    	gotoxy(15,11);
        cout<<"[W] - w gore"<<endl;
        gotoxy(15,12);
        cout<<"[S] - w dol"<<endl;
    	gotoxy(15,13);
        cout<<"[A] - w lewo"<<endl;
        gotoxy(15,14);
    	cout<<"[D] - w prawo"<<endl<<endl<<endl;
    	gotoxy(15,16);
    	cout<<"Kontroluj weza by rosl jak najdluzszy  "<<char(1)<<endl;
    	gotoxy(15,17);
        cout<<""<<endl<<endl<<endl;
        cout<<"                  Press any key to continue game ... ";
    		
       	getch();
    	do
    	{
    		p=0;
    		system("cls");
    		for(a=2;a<73;a++)
    		{
    			gotoxy(a,1); cout<<char(205)<<endl;
    			gotoxy(a,21); cout<<char(205)<<endl;
    		}
    		gotoxy(1,1); cout<<char(201)<<endl;
    		gotoxy(1,21); cout<<char(200)<<endl;
    		gotoxy(73,1); cout<<char(187)<<endl;
    		gotoxy(73,21); cout<<char(188)<<endl;
    
    		for(a=2;a<21;a++)
    		{
    			gotoxy(1,a); cout<<char(186)<<endl;
    			gotoxy(73,a); cout<<char(186)<<endl;
    		}
    		gotoxy(37,1); cout<<p<<endl;
    
    		do
    		{
    		    gotoxy(25,8); cout<<"Wybierz poziom trudnosci";        
    			gotoxy(30,10); cout<<"Level (1-5) : "<<endl;
    			gotoxy(44,10); speed1[0]=getch(); putch(speed1[0]);
    			speed=atoi(speed1);
    		}while(speed>5&&speed<=0);
    		gotoxy(25,8); cout<<"                                "<<endl;
    		gotoxy(30,10); cout<<"                   "<<endl;
    
    		opt='0';
    		opt_ex='n';
    		biji.ok=1;
    
    		znak='w';
    		b=0;
    		for(a=0;a<1000;a++)
    		{
    			snake[a].w=0;
    			snake[a].x=0;
    			snake[a].y=0;
    		}
    		snake[b].w=1;
    
    		x=23;
    		y=20;
    		do
    		{
    			if(biji.ok==1)
    			{
    				biji.x=(rand() % 70)+2;
    				biji.y=(rand() % 18)+2;
    				biji.ok=0;
    			}
    			for(a=0;a<1000;a++)
    			{
    				if(snake[a].w==1)
    				{
    					gotoxy(snake[a].x,snake[a].y); cout<<char(0)<<endl;
    				}
    			}
    			for(a=999;a>0;a--)
    			{
    				if(snake[a].w==1&&snake[a-1].w==1)
    				{
    					snake[a].x=snake[a-1].x;
    					snake[a].y=snake[a-1].y;
    				}
    			}
    			snake[0].x=x;
    			snake[0].y=y;
    
    			for(a=0;a<1000;a++)
    			{
    				if(snake[a].w==1)
    				{
    					gotoxy(snake[a].x,snake[a].y); cout<<char(1)<<endl;
    				}
    			}
    			gotoxy(biji.x,biji.y); cout<<char(21)<<endl;
    
    			if(kbhit())
    			{
    				opt=getch();
    			}
    
    			if(opt=='w')
    			{
    				if(znak=='s')
    				{
    					opt=znak;
    				}
    				else
    				{
    					y=y-1;
    				}
    			}
    			if(opt=='s')
    			{
    				if(znak=='w')
    				{
    					opt=znak;
    				}
    				else
    				{
    					y=y+1;
    				}
    			}
    			if(opt=='d')
    			{
    				if(znak=='a')
    				{
    					opt=znak;
    				}
    				else
    				{
    					x=x+1;
    				}
    			}
    			if(opt=='a')
    			{
    				if(znak=='d')
    				{
    					opt=znak;
    				}
    				else
    				{
    					x=x-1;
    				}
    			}
    			znak=opt;
    
    			for(a=1;a<1000;a++)
    			{
    				if(snake[a].w==1)
    				{
    					if(x==snake[a].x&&y==snake[a].y)
    					{
    						for(zz=0;zz<10;zz++)
    						{
    							if(zz%2==0)
    							{
    								for(z=0;z<1000;z++)
    								{
    									if(snake[z].w==1)
    									{
    										gotoxy(snake[z].x,snake[z].y); cout<<' '<<endl;
    									}
    								}
    							}
    							else
    							{
    								for(z=0;z<1000;z++)
    								{
    									if(snake[z].w==1)
    									{
    										gotoxy(snake[z].x,snake[z].y); cout<<char(2)<<endl;
    									}
    								}
    							}
    							Sleep(200);
    						}
    						gotoxy(30,15); cout<<"Gra skonczona !!!"<<endl;
    						cout<<char(7)<<endl;
    						opt=char(27);
    
    					}
    				}
    			}
    
    			if(x==1||x==73||y==21||y==1)
    			{
    				for(zz=0;zz<10;zz++)
    						{
    							if(zz%2==0)
    							{
    								for(z=0;z<1000;z++)
    								{
    									if(snake[z].w==1)
    									{
    										gotoxy(snake[z].x,snake[z].y); cout<<' '<<endl;
    									}
    								}
    							}
    							else
    							{
    								for(z=0;z<1000;z++)
    								{
    									if(snake[z].w==1)
    									{
    										gotoxy(snake[z].x,snake[z].y); cout<<char(2)<<endl;
    									}
    								}
    							}
    							Sleep(100);
    						}
    				gotoxy(30,15); cout<<"Gra skonczona !!!"<<endl;
    				cout<<char(7)<<endl;
    				opt=char(27);
    			}
    			if(x==biji.x&&y==biji.y)
    			{
    
    				gotoxy(x,y); cout<<' '<<endl;
    				biji.ok=1;
    				p=p+speed;
    				b=b+1;
    				gotoxy(37,1); 
    				cout<<p<<endl;
    				snake[b].w=1;
    			}
    
    			Sleep(170/speed);
    		}while(opt!=char(27));
    
    		do
    		{
    		    system("cls");
    		    gotoxy(30,12);
    		    cout<<"Zdobyles "<<p<<" punktow."; 
    			gotoxy(27,23); cout<<"Replay? [Y]es / [N]o : "<<endl;
    			gotoxy(50,23); opt_ex=getch();
    			if(opt_ex=='y'||opt_ex=='Y'||opt_ex=='n'||opt_ex=='N')
    			{
    				opt_cor=1;
    			}
    			else
    			{
    				opt_cor=0;
    			}
    		}while(opt_cor==0);
    
    
    	}while(opt_ex=='y'||opt_ex=='Y');
    	cout<<endl;
    	MessageBox(NULL,"Konrad Ignerowicz\n nr indexu 147433\n","Informatyka: Zaliczenie gry",
    	                  MB_OK | MB_SYSTEMMODAL|MB_ICONINFORMATION|MB_SERVICE_NOTIFICATION|MB_RTLREADING);
    	}
  • #4 2232041
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Kod wygląda ok, wrzuć jeszcze dokładny komunikat jaki generuje kompilator.
  • #5 2235322
    K_o_N_z_I
    Poziom 17  
    Posty: 336
    Pomógł: 13
    Ocena: 55
    //tutaj zrezygnowalem z tego bo wywalalo blad co w poscie wyzej, a efekt jaki chce uzyskać to kolorowy tekst zaraz po ustawnieniu kursora za pomocą gotoxy, chyba że znacie inną funkcję na ustawienie kursora co by się nie gryzła z textcolor();
  • #6 2270967
    ed-ek
    Poziom 34  
    Posty: 1814
    Pomógł: 275
    Ocena: 42
    Podam ci przykład kompilowany jako Projekt Console Application:
    #include <iostream>
    #include <stdlib.h>
    using namespace std;

    int main(int argc, char *argv[])
    {
    HANDLE hConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsoleHandle, FOREGROUND_BLUE );
    cout<<"wewqrwewrewrw"<<endl;
    SetConsoleTextAttribute(hConsoleHandle,FOREGROUND_GREEN);
    cout<<"wewqrwewrewrghfgjhfgw"<<endl;
    system("PAUSE");
    return 0;
    }
REKLAMA