рефераты рефераты
Главная страница > Курсовая работа: Создание сетевой игры  
Курсовая работа: Создание сетевой игры
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Курсовая работа: Создание сетевой игры

  Kubiki1[0]->Top=YKub1;

  Kubiki1[0]->Visible=true;

  ZnachKub2 = random(6)+1;

  XKub2=random(52)+88;

  YKub2=random(52)+14;

  Bitmap1->LoadFromResourceName((unsigned int)HInstance,"KUB"+IntToStr(ZnachKub2)+strCat);

  Kubiki1[1]->Picture->Bitmap=Bitmap1;

  Kubiki1[1]->Left=XKub2;

  Kubiki1[1]->Top=YKub2;

  Kubiki1[1]->Visible=true;

  ZnachKub3 = random(6)+1;

  XKub3=random(52)+14;

  YKub3=random(52)+88;

  Bitmap1->LoadFromResourceName((unsigned int)HInstance,"KUB"+IntToStr(ZnachKub3)+strCat);

  Kubiki1[2]->Picture->Bitmap=Bitmap1;

  Kubiki1[2]->Left=XKub3;

  Kubiki1[2]->Top=YKub3;

  Kubiki1[2]->Visible=true;

  ZnachKub4 = random(6)+1;

  XKub4=random(52)+88;

  YKub4=random(52)+88;

  Bitmap1->LoadFromResourceName((unsigned int)HInstance,"KUB"+IntToStr(ZnachKub4)+strCat);

  Kubiki1[3]->Picture->Bitmap=Bitmap1;

  Kubiki1[3]->Left=XKub4;

  Kubiki1[3]->Top=YKub4;

  Kubiki1[3]->Visible=true;

  MyCurOch=ZnachKub1+ZnachKub2+ZnachKub3+ZnachKub4;

  MyWholeOch=MyWholeOch+MyCurOch;

  strcpy(strSend,DannieToChar(1, MyCurOch, MyWholeOch, ZnachKub1, XKub1, YKub1, ZnachKub2, XKub2, YKub2,ZnachKub3, XKub3, YKub3, ZnachKub4, XKub4, YKub4));

}

  switch(choosenProt)

  {

    case 0:

        IPXSend(strSend);

        break;

    case 1:

        TCPIPSend(AnsiString(strSend));

        break;

    case 2:

        NetBiosSend(strSend);

        break;

    case 3:

        MailSlotSend(strSend);

        break;

    case 4:

        PipeSend(strSend);

        break;

  }

  enum TypeDannihForTabl DannieForTabl;

  DannieForTabl=yabrosil;

  ZapolnTabl(DannieForTabl);

  lbMyWholeOch->Caption=MyWholeOch;

  if (MyWholeOch>MaxOch)

  {

        lbMyWholeOch->Font->Color=clRed;

        ViProigrali();

  }

  else if(IsHeFixed && MyWholeOch>HisWholeOch && MyWholeOch<=MaxOch)

  {

        ViViigrali();

  }

  else if(IsHeFixed && MyWholeOch<=HisWholeOch)

  {

        ChangeInterfacePerehodHoda(1);

  }

  else

  {

        ChangeInterfacePerehodHoda(0);

  }

delete Bitmap1;

}

//---------------------------------------------------------------------------

void __fastcall TMainForm::btFix2Click(TObject *Sender)

{

    IsYaFixed=true;

  if(IsServer)

  {

     NomHoda++;

  }

  btFix->Color=clRed;

  btBrosit->Color=clCream;

  lbMyWholeOch->Font->Color=clRed;

  switch(choosenProt)

  {

    case 0:

          IPXSend("2;");

          break;

    case 1:

          TCPIPSend("2;");

          break;

    case 2:

          NetBiosSend("2;");

          break;

    case 3:

          MailSlotSend("2;");

          break;

    case 4:

          PipeSend("2;");

          break;

  }

  enum TypeDannihForTabl DannieForTabl;

  DannieForTabl=yafixed;

  ZapolnTabl(DannieForTabl);

  if(IsHeFixed && MyWholeOch==HisWholeOch)

  {

      Nichia();

  }

  else if(MyWholeOch<HisWholeOch)

  {

      ViProigrali();

  }

  else

  {

      ChangeInterfacePerehodHoda(0);

  }

}

//---------------------------------------------------------------------------

Ipx.cpp

//---------------------------------------------------------------------------

#pragma hdrstop

#include <winsock.h>

#include <wsipx.h>

#include "IPX.h"

#include "Main.h"

#include "Podkluch.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#define IPX_SERVER_SOCKET 0x4504

#define IPX_CLIENT_SOCKET 0x4514

#define WSA_NETEVENT (WM_USER+2)

SOCKET IPXSocket;

sockaddr_ipx CallAddress;

sockaddr_ipx OurAddress;

extern bool IsServer;

extern int KolKub;

extern int MaxOch;

//-----------------------Подключение--------------------------------------------

void __fastcall TMainForm::IPXConnect(void)

{

    WSADATA WSAData;

    int rc, OptVal=1;

    rc = WSAStartup(MAKEWORD(2,0), &WSAData);

    if (rc != 0)

    {

        Application->MessageBox("Ошибка инициализации WSAStartup","Ошибка",MB_OK+MB_ICONHAND);

        Application->Terminate();

    }

    IPXSocket = socket(AF_IPX, SOCK_DGRAM, NSPROTO_IPX);

    if (IPXSocket == INVALID_SOCKET)

    {

        Application->MessageBox("Протокол IPX не установлен","Ошибка",MB_OK+MB_ICONHAND);

        Application->Terminate();

    }

    memset(&OurAddress, 0, sizeof(OurAddress));

    OurAddress.sa_family = AF_IPX;

    if(IsServer)

        OurAddress.sa_socket = htons((unsigned short)(IPX_SERVER_SOCKET));

    else

        OurAddress.sa_socket = htons((unsigned short)(IPX_CLIENT_SOCKET));

    if (bind(IPXSocket, (LPSOCKADDR)&OurAddress, sizeof(sockaddr_ipx)) == SOCKET_ERROR)

    {

        Application->MessageBox("Адресная ошибка IPX","Ошибка",MB_OK+MB_ICONHAND);

        closesocket(IPXSocket);

        IPXSocket = INVALID_SOCKET;

        Application->Terminate();

    }

    rc = setsockopt(IPXSocket, SOL_SOCKET, SO_BROADCAST, (char *)&OptVal, sizeof(OptVal));

    if (rc == SOCKET_ERROR)

    {

        rc = WSAGetLastError();

        Application->MessageBox("Ошибка setsockopt","Ошибка",MB_OK+MB_ICONHAND);

        closesocket(IPXSocket);

        IPXSocket = INVALID_SOCKET;

        Application->Terminate();

    }

    if(!IsServer)

    {

        memset(&CallAddress, 0, sizeof(CallAddress));

        CallAddress.sa_family = AF_IPX;

        CallAddress.sa_socket = htons(IPX_SERVER_SOCKET);

        CallAddress.sa_nodenum[0] = 0xff;

        CallAddress.sa_nodenum[1] = 0xff;

        CallAddress.sa_nodenum[2] = 0xff;

        CallAddress.sa_nodenum[3] = 0xff;

        CallAddress.sa_nodenum[4] = 0xff;

        CallAddress.sa_nodenum[5] = 0xff;

        rc = sendto(IPXSocket, "connect", 8, 0, (PSOCKADDR)&CallAddress, sizeof(SOCKADDR));

        if (rc == SOCKET_ERROR)

        {

            rc = WSAGetLastError();

            Application->MessageBox("Ошибка sendto IPX","Ошибка",MB_OK+MB_ICONHAND);

            closesocket(IPXSocket);

            IPXSocket = INVALID_SOCKET;

            Application->Terminate();

        }

    }

    rc = WSAAsyncSelect(IPXSocket, Handle, WSA_NETEVENT, FD_READ);

    if (rc != 0)

    {

        Application->MessageBox("Ошибка WSAAsyncSelect","Ошибка",MB_OK+MB_ICONHAND);

        closesocket(IPXSocket);

        IPXSocket = INVALID_SOCKET;

        Application->Terminate();

    }

    WindowProc = IPXWndProc;

}

//------------------------------прием---------------------------------------

void __fastcall TMainForm::IPXWndProc(Messages::TMessage &Message)

{

    int rc, l=sizeof(CallAddress);

    char Buf[80];

    if (Message.Msg == WSA_NETEVENT)

    {

        if (Message.LParam == FD_READ)

        {

            rc = recvfrom((SOCKET)Message.WParam, Buf, sizeof(Buf)-1, 0, (PSOCKADDR)&CallAddress, &l);

            if (rc == SOCKET_ERROR)

            {

                rc = WSAGetLastError();

                Application->MessageBox("Ошибка recvfrom IPX","Ошибка",MB_OK+MB_ICONHAND);

                closesocket(IPXSocket);

                IPXSocket = INVALID_SOCKET;

                Application->Terminate();

            }

            if (rc >= 1)

            {

                if(!strcmp(Buf,"connect"))

                {

                   char *strPered=DannieToChar(0,KolKub,MaxOch);

                   IPXSend(strPered);

                   InterfaceBeginNewGame();

                   ChangeInterfacePerehodHoda(1);

                }

                else

                {

                   if(IsVisitApplicationBox) return;

                   Priem(CharToMas(Buf));

                }   

            }

         }

    }

    WndProc(Message);

}

//-------------------------отправка---------------------------------------------

void __fastcall TMainForm::IPXSend (char* Buf)

{

    int rc;

    rc = sendto(IPXSocket, Buf, strlen(Buf)+1, 0, (PSOCKADDR)&CallAddress, sizeof(SOCKADDR));

   

    if (rc == SOCKET_ERROR)

    {

        rc = WSAGetLastError();

        Application->MessageBox("Ошибка sendto IPX","Ошибка",MB_OK+MB_ICONHAND);

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9

рефераты
Новости