#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.