Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 14

Курсовую завтра защищать, мне нужна ваша ваши советы, не оставайтесь равнодушными

18.12.2012, 10:58. Показов 2687. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Сессия подкралась незаметно, а я был на роботе. Теперь думаю, как сдать курсач. Нашел фришную прогу и решил использовать для своей работы. Но из-за того, что был занят другими делами я вообще не понял азов билдера.
Помогите мне. Завтра защищать нужно. А у меня только код. Ваша помощь заключается в том, что бы прокомментировать код. Надеюсь на вас, ведь, это не сложно, для вас.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
/////////////////////////////////////////////////
const float RADIAN=0.01744444444;
 
TForm1 *Form1;
Graphics::TBitmap*ZadniyBuffer;
float ShipPosX,ShipPosY;//переменные для х и у корабля
float ShipAngle;//не знаю
float ShipSpeed;//переменные для значения скорости
bool LEFT,RIGHT,UP;//логические вверх, влево, вправо
TList*Bullets;//это тоже 
TList*Asteroids;//не понимаю
class Bullet//создание класса пуля
{
public:
float x,y,dx,dy;
void CreateBullet()//функция создания пули, но тело функции для меня тайна
        {
        x=ShipPosX;y=ShipPosY;
        dx=10*cos(RADIAN*ShipAngle);
        dy=10*sin(RADIAN*ShipAngle);
        }
void Draw()//рисование пули, но ничего не понял больше
        {
        ZadniyBuffer->Canvas->Pen->Color=clRed;
        ZadniyBuffer->Canvas->MoveTo(x,y);
        ZadniyBuffer->Canvas->LineTo(x+dx,y+dy);
        }
};
 
class CRock//камень
{
public:
float x,y;
int Figure[50];//зачем массив? Не понимаю этот класс и функцию
float Angle;
float Spin;
float XSpeed,YSpeed;
int Tip;
void CreateAsteroid(int t)
        {
        Tip=t;
 
        XSpeed=random(4)+(random(9)/10.0)-2;
        YSpeed=random(4)+(random(9)/10.0)-2;
 
 
        Spin=random(10)-5;
        for(int i=0;i<20;i++)
                {
                if(Tip==1)Figure[i]=random(10)+25;
                if(Tip==2)Figure[i]=random(10)+10;
                if(Tip==3)Figure[i]=random(5)+5;
                }
        }//помогите. Прошу
void Move()//и этого не понимаю
        {
        x+=XSpeed;y+=YSpeed;
        Angle+=Spin;
        if(x>440)x=-40;if(x<-40)x=440;
        if(y>440)y=-40;if(y<-40)y=440;
        }
void Draw()//рисование астероидов. Больше ничего не понял
        {
         ZadniyBuffer->Canvas->Pen->Color=clRed;
        float tAng=0;
                int tx=cos(RADIAN*(Angle+tAng))*Figure[0]+x;
                int ty=sin(RADIAN*(Angle+tAng))*Figure[0]+y;
                ZadniyBuffer->Canvas->MoveTo(tx,ty);
        for(int i=0;i<20;i++,tAng+=19)
                {
                int tx=cos(RADIAN*(Angle+tAng))*Figure[i]+x;
                int ty=sin(RADIAN*(Angle+tAng))*Figure[i]+y;
                ZadniyBuffer->Canvas->LineTo(tx,ty);
                }
        }
};
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)//здесь, тоже, ничего не понимаю 
        : TForm(Owner)
{
randomize();
ZadniyBuffer=new Graphics::TBitmap();
ZadniyBuffer->Width =400;
ZadniyBuffer->Height=400;
ZadniyBuffer->Canvas->Pen->Color=clWhite;
Bullets  =new TList();
Asteroids=new TList();
LEFT=false;RIGHT=false;
ShipPosX=200;ShipPosY=200;
ShipAngle=0;
ShipSpeed=0;
for(int i=0;i<4;i++)
{
CRock*a=new CRock();
a->x=random(400);
a->y=40;
a->CreateAsteroid(1);
Asteroids->Add((void*)a);//я дурак?
}
}
//---------------------------------------------------------------------------
void TForm1::CLS()//это фон
{
        ZadniyBuffer->Canvas->Brush->Color=clBlack;
        ZadniyBuffer->Canvas->FillRect(Rect(0,0,400,400));
}
void __fastcall TForm1::CopyToScreen()
{
        Canvas->Draw(0,0,ZadniyBuffer);
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(LEFT)ShipAngle-=3;
if(RIGHT)ShipAngle+=3;
MoveShip();
CLS();
DrawShip();
MoveAndDrawBullets();
MoveAndDrawAsteroids();
ZadniyBuffer->Canvas->Font->Color=clWhite;
ZadniyBuffer->Canvas->TextOutA(5,5,"Астероидов осталось : "+IntToStr(Asteroids->Count));
CopyToScreen();
 
 
 
if(IsShipBreaked())
{
Timer1->Enabled=false;
ShowMessage("Корабль взорвался. Команда умерла!");
StartNew();
Timer1->Enabled=true;
}
 
if(Asteroids->Count==0)
{
Timer1->Enabled=false;
ShowMessage("Уровень пройдено");
StartNew();
Timer1->Enabled=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DrawShip()//Зачем радиан? 
{
       ZadniyBuffer->Canvas->Pen->Color=clWhite;
       int tA=0;
       int tx=cos(RADIAN*(ShipAngle+tA))*10+ShipPosX;
       int ty=sin(RADIAN*(ShipAngle+tA))*10+ShipPosY;
       ZadniyBuffer->Canvas->MoveTo(tx,ty);
       int l;
       for(int i=0;i<4;i++,tA+=120)
                {
                if((i==0)||(i==3))l=15;else l=10;
                int tx=cos(RADIAN*(ShipAngle+tA))*l+ShipPosX;
                int ty=sin(RADIAN*(ShipAngle+tA))*l+ShipPosY;
                ZadniyBuffer->Canvas->LineTo(tx,ty);
                }
}
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
if(Key==VK_LEFT) LEFT=true;
if(Key==VK_RIGHT)RIGHT=true;
if(Key==VK_UP)UP=true;
if(Key==VK_SPACE)
        {
        Bullet*b=new Bullet();
        b->CreateBullet();
        Bullets->Add((void*)b);
        }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
if(Key==VK_LEFT) LEFT=false;
if(Key==VK_RIGHT)RIGHT=false;
if(Key==VK_UP)UP=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MoveShip()
{
        if(UP)
        {
        ShipSpeed+=0.01;
        if(ShipSpeed>2)ShipSpeed=4;
        }
        else
        {
        ShipSpeed-=0.01;
        if(ShipSpeed<0)ShipSpeed=0;
        }
        ShipPosX+=cos(RADIAN*ShipAngle)*ShipSpeed;
        ShipPosY+=sin(RADIAN*ShipAngle)*ShipSpeed;
        if(ShipPosX>410)ShipPosX=-10;
        if(ShipPosX<-10)ShipPosX=410;
        if(ShipPosY>408)ShipPosY=-10;
        if(ShipPosY<-10)ShipPosY=410;
}
void __fastcall TForm1::MoveAndDrawBullets()//помогите
{
        Bullet*b;
        for(int i=0;i<Bullets->Count;i++)
                {
                b=(Bullet*)Bullets->Items[i];
                b->x += b->dx;
                b->y += b->dy;
                if((b->x>410)||(b->x<-10)||(b->y>410)||(b->y<-10))
                     {
                     delete b;
                     Bullets->Delete(i);
                     b=NULL;
                     }
 
                if(b!=NULL)b->Draw();
                }
}
TForm1::MoveAndDrawAsteroids()//это не понимаю тоже
{
        CRock*r,*r2;
        Bullet*b;
        for(int i=0;i<Asteroids->Count;i++)
        {
        r=(CRock*)Asteroids->Items[i];
               if(r!=NULL)
                for(int j=0;j<Bullets->Count;j++)
                {
                b=(Bullet*)Bullets->Items[j];
                int distance=sqrt( (r->x-b->x)*(r->x-b->x) + (r->y-b->y)*(r->y-b->y));
                if(((r->Tip==1)&&(distance<30))||((r->Tip==2)&&(distance<15))||((r->Tip==3)&&(distance<5)))
                    {
                    Asteroids->Delete(i);
                    Bullets->Delete(j);
 
                    if(r->Tip<3)
                    {
                    r2=new CRock();
                    r2->x=r->x;
                    r2->y=r->y;
                    r2->CreateAsteroid(r->Tip+1);
                    Asteroids->Add((void*)r2);
 
                    r2=new CRock();
                    r2->x=r->x;
                    r2->y=r->y;
                    r2->CreateAsteroid(r->Tip+1);
                    Asteroids->Add((void*)r2);
                    delete r;
                    r=NULL;
                    }
                    }
                }
        if(r!=NULL)
        {
        r->Move();
        r->Draw();
        }
        }
return 0;
}
bool __fastcall TForm1::IsShipBreaked()//что это?
{
      CRock*r,*r2;
      for(int i=0;i<Asteroids->Count;i++)
        {
        r=(CRock*)Asteroids->Items[i];
        int distance=sqrt((r->x-ShipPosX)*(r->x-ShipPosX)+(r->y-ShipPosY)*(r->y-ShipPosY));
        if(((r->Tip==1)&&(distance<30))||((r->Tip==2)&&(distance<25))||((r->Tip==3)&&(distance<15)))
        return true;
        }
return false;
}
void __fastcall TForm1::StartNew()//и что это?
{
LEFT=false;RIGHT=false;
ShipPosX=200;ShipPosY=200;
ShipAngle=0;
ShipSpeed=1;
Asteroids->Clear();
Bullets->Clear();
for(int i=0;i<4;i++)
{
CRock*a=new CRock();
a->x=random(400);
a->y=40;
a->CreateAsteroid(1);
Asteroids->Add((void*)a);
}
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.12.2012, 10:58
Ответы с готовыми решениями:

Пожалуйста ! Не оставайтесь равнодушными
вот задание на фото что делать?

Ребята нужен сэнсэй или наставник для меня! не оставайтесь равнодушными !
Ребята хочу сделать свой интерент магазин, есть одна идея но я в этом вообще не шарю! Денег платить кому то нет(( помогите разобраться как...

Я начинающий, мне нужны ваши советы
Мне в университете дали задание, создать программу для поиска файлов в каталоге и в папках каталога, но я не понимаю как его делать, на...

30
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.12.2012, 18:18
Студворк — интернет-сервис помощи студентам
Ну смотреть надо по проге...

Но я думаю если отрицательная то просто тогда
C++
1
distance=0;
1
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 14
18.12.2012, 19:13  [ТС]
Avazart,
int distance=sqrt( (r->x-b->x)*(r->x-b->x) + (r->y-b->y)*(r->y-b->y));
if (distance<0) distance=1;
Предупреждение выскакивает, когда очень много стреляю, или астероид не успевает поделится, а 2ая пуля ударила. Черт
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.12.2012, 19:38
Цитата Сообщение от zulder Посмотреть сообщение
Предупреждение выскакивает
Что это значит ?
0
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 14
18.12.2012, 20:54  [ТС]
Avazart, тоже самое что и в предадущем посте я описывал.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.12.2012, 20:58
Скрин сделай
0
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 14
18.12.2012, 21:12  [ТС]
Avazart, вот
Миниатюры
Курсовую завтра защищать, мне нужна ваша ваши советы, не оставайтесь равнодушными  
0
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 14
18.12.2012, 21:19  [ТС]
Avazart, пора умирать. Что же я не понял?
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
19.12.2012, 10:41
это доступ к несуществующему объекту. его удалили, а вы к нему домогаетесь. наверное гдето после r=NULL; должен быть бреак что бы мы не терзали удаленный астероид и перешли к следующему
0
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 14
19.12.2012, 14:17  [ТС]
vxg, попросил еще пару дней у руководителя. Он сказал, что проблема в машине, хоть и в ВУЗе и у меня на ПК и ноуте этот баг(если можно его так назвать) есть и на оценку это не влияет. Вот так вот.
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
19.12.2012, 14:47
проблема в машине может быть только в том смысле что в некоторых случаях этот баг может остаться незамеченным и все будут счастливы не смотря на то что "водичка точит плотину"
0
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 14
19.12.2012, 15:50  [ТС]
vxg, хорошо, но брэйки не помогают. А программа работает. Все чудесно.
Цитата Сообщение от zulder Посмотреть сообщение
на оценку это не влияет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.12.2012, 15:50

Нужна ваша оценка и советы
Вообщем сайт есть у меня. Вот только посещаемость не ростёт. Кто может посоветовать поподробнее чего не хватает сайту. Только пожалуйсто...

Мне нужна программа , завтра курсовая по Делфи( Аудио, Картинки
Сегодня я пойду спать потому что уже 4 часа ночи или утра не знаю , в общем я хотел сделать чтобы когда курсором нажимал на картинку или...

Есть готовая программа , мне нужна ваша умная голова чтоб ее доработать, а то никак не могу
Такая проблема, есть у меня код программы (она работает), решения нелинейный уравнений методом хорд. Так вот она решает по уравнению...

Стив Джобс: Оставайтесь голодными. Оставайтесь безрассудными
Сегодня я хочу рассказать вам три истории из моей жизни. И всё. Ничего грандиозного. Просто три истории. Первая история – о соединении...

Что (и как) стоит защищать в Windows начиная с версии XP по 8.1 Дайте советы
Задали сделать проект по защите ОС. Тема проекта: Защита Windows XP, Vista, 7, 8, 8.1 . - Ручная и программная. Ручная -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru