Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2010, 08:49   #1
Petruha-nsk
Пользователь
 
Аватар для Petruha-nsk
 
Регистрация: 10.04.2009
Сообщений: 69
По умолчанию в игре Пятнашки фишки двигаются не так как описано в проге. прогаю в Builder C++ 6

Добрый день! я делаю курсовик по программированию в среде Borland C++ Builder 6. я решил создать приложение Пятнашки. насколько мне кажется я в полной мере описал поведение одной пятнашки: создал общую таблицу расположения фишек,а также занятости полей (это структура Element),но фишка под номером 1 (для нее одной пока все описано) не подчиняется языку с++ и перемещается так как захочет. пожалуйста,подскажите что у меня не так... я буду весьма вам благодарен

"project1.cpp"
Код:
#include <clx.h>
#include "Unit1.h"
#pragma hdrstop
USEFORM("Unit1.cpp", Form1);

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
 /*стандартный текст нового проекта в BC++6*/
                 input(Form1);
}
"Unit1.h"
Код:
#ifndef Unit1H
#define Unit1H
#include <Classes.hpp>
#include <QControls.hpp>
#include <QStdCtrls.hpp>
#include <QForms.hpp>
#include <QComCtrls.hpp>

class TForm1 : public TForm
{
__published:	// IDE-managed Components
        TButton *Button1;
        TButton *Button2;
        TButton *Button3;
        TButton *Button4;
        TButton *Button5;
        TButton *Button6;
        TButton *Button7;
        TButton *Button8;
        TButton *Button9;
        TButton *Button10;
        TButton *Button11;
        TButton *Button12;
        TButton *Button13;
        TButton *Button14;
        TButton *Button15;
        THeaderControl *HeaderControl1;
        void __fastcall Button1Click(TObject *Sender);
private:	// User declarations
                
public:		// User declarations
        __fastcall TForm1(TComponent* Owner);
};

extern PACKAGE TForm1 *Form1;

#endif

struct Element{int Left; int Top; int Employ; int num;};
Element T[15];

void input(TForm1 *Form1)
{
 /*...*/
}
'Unit1.cpp"
Код:
-
#include <clx.h>
#pragma hdrstop
#include "Unit1.h"

#pragma package(smart_init)
#pragma resource "*.xfm"
#include <iostream>
#include <cstdio>
#include <conio.h>
#include <stdio.h>
TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}

int search(int x, int y)
{
        int i,P;
        i=0; P=1;
        while(i<15 && P)
        {
                if(T[i].Left == x && T[i].Top == y)
                {
                        P=0;
                }
                i++;
        }
        if(T[i-1].Employ == 0)return 1;
        else return 0;
}

void employment(int x, int y, int t)
{
        int i,P;
        i=0; P=1;
        while(i<15 && P)
        {
                if(T[i].Left == x && T[i].Top == y)
                {
                        T[i].Employ = t;
                        P=0;
                }
                i++;
        }
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        int x,y;
        x = Button1->Left;
        y = Button1->Top;

        if((x-100>=0) && search(x-100,y))
        {
                /*Button1->Left = (Button1->Left)-100;
                employment(x,y,0);
                employment(x-100,y,1);*/
                 cout << '\a';
        }
        else
                {
                        if((x+100)<=300 && search(x+100,y))
                        {
                                Button1->Left = (Button1->Left)+100;
                                employment(x,y,0);
                                employment(x+100,y,1);
                        }
                        else
                                {
                                        if((y+100 <= 330) && search(x,y+100))
                                        {
                                                Button1->Top = (Button1->Top)+100;
                                                employment(x,y,0);
                                                employment(x,y+100,1);
                                        }
                                        else
                                                {
                                                        if((y-100 >= 30) && search(x,y-100))
                                                        {
                                                                Button1->Top = (Button1->Top)+100;
                                                                employment(x,y,0);
                                                                employment(x,y+100,1);
                                                        }
                                                }
                                }
                }
}
Petruha-nsk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать справку в проге???? micaell Общие вопросы Delphi 12 23.11.2009 06:37
как написать server к игре vekktor Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 02.02.2009 22:17
Что я не так сделал в игре???Подскажите. spamer Общие вопросы Delphi 1 06.01.2009 23:04
Как сделать так что б С++Builder при компиляции сохранял в .ехе файле все требуемые библиотеки Endimion C++ Builder 7 04.11.2007 12:52
VB - обькты не двигаются sqvair Помощь студентам 3 14.10.2007 13:24