Bingo problem obslugi myszki

0
#include <allegro.h>
#ifdef ALLEGRO_WINDOWS
#include <winalleg.h>
#endif

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<winsock.h>
#include <windows.h>


void ErrorCode ()
{
  int err = WSAGetLastError();
  switch (err)
 {
    case 0: printf("Winsock error 0: No error\n"); break;
    // reszte err pominalem
  }
    WSACleanup();
    system("pause");
    exit(1);
}    
    
    



int tablica_w[15][5], tablica_g[6][6];
int i,j,a,b,liczba,licznik,przycisk=0,tmp,tm, dana = 1;




BITMAP *Kulki[75];                    // deklaracja zmiennych do grafiki
BITMAP *Wyswietlacz = NULL;
BITMAP *Kropka = NULL;
BITMAP *Kulka = NULL;
BITMAP *Kupon = NULL;
BITMAP *Kwadracik = NULL;
BITMAP *Bingo = NULL;
BITMAP *Rozpocznij = NULL;
BITMAP *Zakoncz = NULL;


int mx=0,my=0,mb=0;
void myszka()     // obsługa myszki
{
  if( mx != mouse_x  || my != mouse_y || mb != mouse_b )
  {
    mx = mouse_x;
    my = mouse_y;
    mb = mouse_b;
  }
};

void tablica()   //tworzene wyswietlacza
{
     int i,j;
	for (j=1;j<=5;j++)
		for (i=1;i<=15;i++)
		{
			tablica_w[i][j] = 0; // zerowanie wyswietlacza
		}

		for(i=1; i<=75; i++)
		{

			Wyswietlacz = load_bmp("Wyswietlacz.bmp",default_palette);    // ładowanie grafiki wyswietlacza
			if (!Wyswietlacz)
			{
				set_gfx_mode(GFX_TEXT,0,0,0,0);
				allegro_message("nie mogę załadować obrazka!");
				allegro_exit();
				return;
			}
			blit(Wyswietlacz, screen, 0, 0, 50, 175, Wyswietlacz->w, Wyswietlacz->h);  // wyswietlanie wyswietlacza
		}
}

void grafika() // ładowanie grafik
{
	Kropka = load_bmp("Kropka.bmp",default_palette);
	if (!Kropka)
	{
		set_gfx_mode(GFX_TEXT,0,0,0,0);
		allegro_message("nie mogę załadować obrazka!");
		allegro_exit();
		return;
	}
	int i;
	for(i=1; i<=75; i++) // wyswietlanie kolejnych obrazów kul
	{
		char liczba[20];
		itoa(i, liczba, 10);
		strcat(liczba, ".bmp");
		Kulki[i] = load_bmp(liczba ,default_palette);
		if (!Kulki[i])
		{
			set_gfx_mode(GFX_TEXT,0,0,0,0);
			allegro_message("nie mogę załadować obrazka 3!");
			allegro_exit();
			return;
		}

	}
	Kupon = load_bmp("Kupon.bmp",default_palette);
	if (!Kupon)
	{
		set_gfx_mode(GFX_TEXT,0,0,0,0);
		allegro_message("nie mogę załadować obrazka!");
		allegro_exit();
		return;
	}
	Kwadracik = load_bmp("Kwadracik.bmp",default_palette);
	if (!Kwadracik)
	{
		set_gfx_mode(GFX_TEXT,0,0,0,0);
		allegro_message("nie mogę załadować obrazka!");
		allegro_exit();
		return;
	}
	Bingo= load_bmp("Bingo.bmp",default_palette);
	if (!Bingo)
	{
		set_gfx_mode(GFX_TEXT,0,0,0,0);
		allegro_message("nie mogę załadować obrazka!");
		allegro_exit();
		return;
	}
	Rozpocznij = load_bmp("Rozpocznij.bmp",default_palette);
	if (!Rozpocznij)
	{
		set_gfx_mode(GFX_TEXT,0,0,0,0);
		allegro_message("nie mogę załadować obrazka!");
		allegro_exit();
		return;
	}
    Zakoncz = load_bmp("Zakoncz.bmp",default_palette);
	if (!Zakoncz)
	{
		set_gfx_mode(GFX_TEXT,0,0,0,0);
		allegro_message("nie mogę załadować obrazka!");
		allegro_exit();
		return;
	}
	blit(Kupon, screen, 0, 0, 50, 375, Kupon->w, Kupon->h); // ładowanie obrazka kuponu
	blit(Bingo, screen, 0, 0, 300, 450, Bingo->w, Bingo->h); // ładowanie obrazka przycisku bingo
	blit(Rozpocznij, screen, 0, 0, 500, 400, Rozpocznij->w, Rozpocznij->h); // ładowanie obrazka przycisku rozpocznij
	blit(Zakoncz, screen, 0, 0, 500, 470, Zakoncz->w, Zakoncz->h); // ładowanie obrazka przycisku zakoncz

}

void losowanie() // wyswietlanie kropki i kulki zaleznie od wprowadzonej zmiennej
{
int k = 1;
int i,j;

	liczba =9; // zmienna która powina byc podana z serwera
	for (j=1;j<=5;j++)
		for (i=1;i<=15;i++)
		{
			if(k == liczba)
			{
				tmp = i*56;
				tm = j*26;
				blit(Kropka, screen, 0, 0, tmp+70, tm+153, Kropka->w, Kropka->h); // wyswietlanie kropki zaleznie od podanej liczby
				tablica_w[i][j] = liczba;
				licznik++;
				//blit(Kulki[N], screen, 0, 0, 450, 80, Kulki[i]->w, Kulki[i]->h); // powinno wyswietlac kule o numerze podanym z serwera
				//N to liczba  podana z serwera
			}
			k++;
		}

}

void gracz() // wyswietlanie i uzupelnianie kuponu
{
	int liczba1,i,j;

	tmp = 20;
	tm = 380;
	for(j=0; j<6; j++)  //zeruje tablice gracza
		for(i=0; i<6; i++)
			tablica_g[i][j] = 0;


	for(j=1; j<6; j++) // wypelnianie tablicy niepowtarzajacymi sie liczbami
		for(i=1; i<6; i++)
		{
			int d=1;
			liczba1 =rand()%74+1;
			while (d==1)
			{
				for(b=1; b<6; b++)
					for(a=1; a<6; a++)
					{
						if(tablica_g[a][b] == liczba1)
						{
							liczba1 = rand()%74+1;
							a = 0;
							b = 0;
							break;
						}
					}
					break;
			}
			tablica_g[i][j] = liczba1;
			tablica_g[3][3] = 0;
	//		textprintf(screen,font,tmp+i*38,tm +j*38,makecol(123,255,128)-1,"%d", tablica_g[i][j]); // wyswietlanie liczb
		}
		blit(Kwadracik, screen, 0, 0, 125, 483, Kwadracik->w, Kwadracik->h); // wyswietlanie grafiki
}

void nadawca()
{
     //int wyb;
     //char name[32];
     WSADATA wsaData;
     WORD version;

     version = MAKEWORD(2,0);
     if (WSAStartup(version, &wsaData) != 0)
     {
        printf("Blad inicjalizacji WSA\n");
        ErrorCode();
        }
     SOCKET nadawca;
     struct sockaddr_in nad;
     int port=2000;
     struct hostent *host;
     char ipodb[64]="localhost";
     char bufor[100]="Succesfull !!!";

     nadawca = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
     if(nadawca == INVALID_SOCKET)
     {
        printf("Nie mozna stworzyc gniazdka\n");
        ErrorCode();
     }
     memset(&nad, 0, sizeof(nad));
     nad.sin_family = AF_INET;
     nad.sin_port = htons(port);
     nad.sin_addr.s_addr = inet_addr(ipodb);
     if (nad.sin_addr.s_addr == INADDR_NONE)
     {
        host = gethostbyname(ipodb);
        if (host == NULL)
        {
           printf("Nie mozna skonwertowac adresu\n");
           closesocket(nadawca);
           ErrorCode();
        }
        memcpy(&nad.sin_addr, host->h_addr_list[0], host->h_length);
     }
     if (connect(nadawca, (struct sockaddr*)&nad, sizeof(nad)) ==  SOCKET_ERROR )
     {
        printf ("Nieudana proba polaczenia!\n");
        closesocket(nadawca);
        ErrorCode();
     }
     else printf("Polaczenie nawiazane poprawnie\nWiadomosc wyslana\n");
     send(nadawca, bufor, strlen(bufor), 0);
     closesocket(nadawca);
     WSACleanup();
     system("pause");
}

int main()
{
    nadawca();
	allegro_init();
	install_keyboard();
	set_color_depth(16);
	set_gfx_mode(GFX_AUTODETECT_FULLSCREEN,1024,768,0,0);
	clear_to_color(screen, makecol(255,255,255));
	install_mouse();
	show_mouse(screen);
	unscare_mouse();
	srand(time(NULL));
	tablica();
	grafika();

    BITMAP *bufor = NULL;
	bufor = create_bitmap(500,500);

	losowanie();
	gracz();
	while (!key[KEY_ESC])
	{
		myszka();
		if (mouse_b == 1)
		{
			i=0;
			j=0;

			if(mx> 50 && mx<88) // sprawdza w którym kwadraciku kliknieto myszką
				i = 1;
			if (mx> 88 && mx<124)
				i = 2;
			if (mx>124 && mx<161)
				i = 3;
			if (mx>161 && mx<200)
				i = 4;
			if (mx>200 && mx<235)
				i = 5;
			if (my>412 && my<446)
				j = 1;
			if (my>446 && my<483)
				j = 2;
			if (my>483 && my<520)
				j = 3;
			if (my>520 && my<556)
				j = 4;
			if (my>556 && my<592)
				j = 5;

			for(b=1; b<=5; b++)
				for(a=1; a<=15; a++)
				{
					if(tablica_g[i][j] == tablica_w[a][b]) // sprawdza czy wybrana liczba pasuje do tej w wyswietlaczu
					{
						tmp = 37*i;
						tm = 37*j;
						blit(Kropka, screen, 0, 0, tmp+21, tm+380, Kropka->w, Kropka->h); //wyswietla kropke w podanym miejscu

					}
				}blit(Kwadracik, screen, 0, 0, 125, 483, Kwadracik->w, Kwadracik->h);

			if ((mx> 500 && mx<650)&& (my>400 && my<460))//sprawdza czy kliknieto na podany przycisk jesli tak to przypisuje pod przycisk daną zmienną
				przycisk = 1;
			if ((mx> 500 && mx<650)&& (my>470 && my<530))
					przycisk = 2;
		}
	}

	destroy_bitmap(bufor);
	destroy_bitmap(Kropka);
	destroy_bitmap(Kulka);
	destroy_bitmap(Kupon);
	destroy_bitmap(Bingo);
	destroy_bitmap(Kwadracik);
	destroy_bitmap(Rozpocznij);
	destroy_bitmap(Zakoncz);
	allegro_exit();
	return 0;
}

END_OF_MAIN();

i mam straszny problem z ta myszka a dokladniej to zmiennymi doi myszki i nie wiem czemu nie chce dzialac ;/ z gory dzieki za pomoc.

0

Nie zadeklarowałeś zmiennych w funkcji myszka()

void myszka(int mouse_x, int mouse_y, int mouse_b)

W innych miejscach jest podobnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1