Форум программистов, компьютерный форум CyberForum.ru

Как создать запускающий файл? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Рекурсия: удалить из дерева часть вершин, чтобы оставшееся дерево стало пирамидой http://www.cyberforum.ru/cpp-beginners/thread297090.html
Рекурсия .Удалить из дерева часть вершин так чтобы оставшееся дерево стало пирамидой
C++ файлы не работает програмка Посмотрите что не так с моей задачей В существующем на диске файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр. Заменить все символы этой последовательности на «*». (Файл создать с помощью текстового редактора) #include<math.h> #include<iostream.h> #include<string.h> #include<conio.h> #include<stdio.h> main() {FILE*fp;... http://www.cyberforum.ru/cpp-beginners/thread297086.html
Аргументы командной стороки. C++
Приветствую! Изучаю аргументы ком. строки в данный момент, попалась вот такая вот задача => "Напишите программу, которая интерпретирует свои аргументы как целые числа и выводит на стандартный поток вывода их сумму." Не совсем на данный момент понимаю каким образом могу вычислить их сумму, буду рад любой помощи :) Добавлено через 47 минут апапап
Метод Гаусса для решения СЛАУ C++
помогите исправить ошибки... а то уже сил нет(((( template<typename T> void Gauss(Matrix<T> a,vector<T> b, vector<T>&x ) { if((a.rows()!=a.cols()|| a.rows()!=b.size())||b.size()!=x.size()) throw "eror"; int i,j,k; for( j=0; j<a.cols(); j++) { for( i=j; i<a.rows(); i++) {
C++ Не могу решить циклы и массивы http://www.cyberforum.ru/cpp-beginners/thread297077.html
Не могу решить несколько задач на циклы и массивы, если кто может помогите) ЦИКЛЫ(WHILE, REPEAT) 1) Дано число a (1<a<=1,5). Из чисел 1+1/2, 1+1/3, … напечатать те, которые не меньше a Циклы (FOR…) 2) Два простых числа называются "близнецами", если они отличаются друг от друга на 2 (например, 41 и 43). Напечатать все пары "близнецов" из отрезка , где n — заданное натуральное число больше...
C++ Классы!Строки!Моделирование! Нужно решить задачи на С++...Нужен зачет по проге и допуск к экзамену=) 8. Задачи на классы Создать класс для хранения календарных дат. Обеспечить возможность работы с датами в раз-личных форматах, изменения даты на заданное количество дней. Перегрузить операцию «–» для нахождения разности дат и операции сравнения. Для класса определить оператор <<. Стандартные функции и типы С для работы... подробнее

Показать сообщение отдельно
witalii
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 13
16.05.2011, 19:35  [ТС]     Как создать запускающий файл?
я эту программку делаю по книге Корнилов "создание шахмат", уже исправил кучу ошибок связанных со скобками и т.д. вот вся программа:

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
// 2.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "2.h"
int static TMove; gMove; //сюда вернется лучший ход 
int Search(int alpha,int beta,int Depth, int ply); 
{
//пока не нашли лучшего хода
NoFindMove(retMove); 
if (Depth <= 0 | I TimeOverO()) return Evaluate (); 
TMove tmpMove; //стековая промежуточная переменная
//найдем лучший ход на меньшую глубину
Search(alpha,beta,Depth-2,retMove,ply); 
//если лучший ход найдем, попробуем его первым
if(findMove) 
}
{ 
MakeMove(retMove); 
int tmp = -Search(-beta,-alpha,Depth-1, 
&tmpMove, //нам не потребуется
ply+1); 
UnMakeMove(retMove); 
if(tmp > alpha) alpha = tmp; 
if(alpha >= beta) return alpha; 
} 
//основной счет 
{...} 
///допустим, нашли ход
{...} 
{
MakeMove (move) ; 
tmp = -Search(-beta,-alpha,Depth-1,&tmpMove,ply+1); 
UnMakeMove(move); 
if(tmp > alpha) 
{ 
alpha = tmp; 
if(!TimeOver() ) 
memcpy(retMove,move,sizeof(TMove)); 
} 
if(alpha >= beta) return alpha; 
{...} 
return alpha; 
} 
{
typedef struct _TMove{ 
int xl,yl,x2,y2; //откуда и куда пошла фигура
int f; //сама фигура 
int newF; //значение фигуры на новом месте
//пешка после превращения меняет значение
int eatFX, eatFY;//координаты съеденной фигуры
//при взятии пешкой через битое поле
//эти координаты не совпадают с новым
//местом фигуры
int eatF; //сама съеденная фигура
int score; //приращение оценки при ходе
bool isExtMoveKing; //рокировка? 
int Depth; //глубина счета
}TMove,*PMove; 
#define B BLACK 
#define W WHITE 
static unsigned char _pos [ 8 ] [ 8 ] = 
{ROOK|Р’,KNIGHT|Р’,BISHOP|Р’ }, 
{...}
}
//делает перемещение
(void MakeMove(PMove move));
{ 
if(!move->isExtMoveKing) 
{ 
_pos[move->yl][move->xl] = 0; 
_pos[move->eatFY][move->eatFX] = 0; 
_pos[move->y2][move->x2] = move->newF; 
}else{ 
//рокировка
    {...}
}
}
//восстанавливает позицию
(void UnMakeMove(PMove move));
{ 
//все в обратном порядке
    {...}
}
{
    //массивы со стратегической оценкой
typedef int TStBoard[8][8]; 
//стратегическая оценка 
//для верхних
static TStBoard _upSt = 
{ 
{ 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} 
}; 
//для нижних
static TStBoard _botSt = 
{ 
{64,63,62,61,60,59,58,57}, 
{56,55,54,53,52,51,50,49}, 
{48,47,46,45,44,43,42,41}, 
{40,39,38,37,36,35,34,33}, 
{32,31,30,29,28,27,26,25}, 
{24,23,22,21,20,19,18,17}, 
{16,15,14,13,12,11,10, 9}, 
{ 8, 7, 6, 5, 4, 3, 2, 1} 
};
//массив быстрой перекодировки кода фигуры в ее вес
static int _wf [7] = {0,W_KING,W_QUEEN,W_ROOK,W_BISHOP,W_KNIGHT,W_PAWN} ; 
//возвращает приращение оценки хода
int delRes( TStBoard *myB, //оценка наших фигур
TStBoard *opB, //противника
PMove move //описатель перемещения
)
{
int score; 
if(move->isExtMoveKing) 
{ 
//рокировка
{...} 
}else{ 
score = _wf[FIGURE(move->newF) - _wf[FIGURE(move->f)] + 
(*myB) [move->y2] [move->x2] - 
(*myB) [move->yl] [move->xl] ; 
if(eatF) 
{ 
score += _wf[FIGURE(move->eatF); 
score += (*opB)[move->eatFY][move->eatFX]; 
}
}
return score; 
} 
//цвет верхних фигур
static int _upFColor; 
//сама функция счета (схематично)
int Search(PMove node, //описатель хода в эту позицию
int Depth, //сколько полуходов осталось
int ply, //абсолютная глубина от 0 
int alpha, 
int beta, 
PMove retMove, //найденный ход
int score, //текущая оценка узла
bool isLazyEval, //идет сокращенный просчет
int color //цвет наших фигур
)
{
TStBoard *myB,*opB; 
int nextColor = color=BLACK?WHITE:BLACK; 
//инициализируем переменные
if(color != _upFColor) 
{ 
//если наши фигуры нижние
myB = &_botSt; opB = &_upSt; 
}else{ 
myB = &_upSt; opB = &_botSt; 
} 
retMove->f = 0; //нет пока лучшего хода
if(Depth <= 0 || TimeOver()) return score; 
int res = -INFINITY; //возвращаемая оценка
//в эту стековую переменную будет возвращен лучший ход
TMove tmpMove; 
//структура выборочного поиска
static int ext[100] = 
{-64,-64,-64,-64, 
-64,W_PAWN,W_BISHOP,W_ROOK,W_QUEEN,INFINITY,INFINITY,...}; 
//повышаем alpha текущей оценкой
if(ply > 0 && //если не первый полуход
node->score < ext[ply] && //ход не продлевается
!lnCheck(node) //не шах
)
{
res = score; 
if(res > alpha) alpha = res; 
if(alpha >= beta) return alpha; 
}
//переберем на глубину Depth-2 для получения
//лучшего хода 
int tmp = Search(node,Depth-2,ply,alpha,beta, 
retMove, 
score, 
ply==O?false:true, 
color 
); 
/// lazy eval ///// 
//если данный узел удовлетворяет некоторым требованиям, 
//мы можем отсечь его, основываясь на результате сокращенного счета
if(retMove->f && //если нашли лучший ход
retMove->Depth >= Depth-2 //достаточная глубина
ply != 0 && //не первый вызов
!isLazyEval && //не делаем сокращенного поиска
score - 64 >= beta && //оценка и поле роста >= beta 
tmp-64 >= beta && //проверка подтверждает
node->score < W_PAWN && //не взятие
!InCheck(node) //не шах
)
{
return beta; //целая ветвь подрезана!!! 
} 
//прежде, чем нашли перемещения,
//попробуем найденный лучший ход
if(retMove->f) //если такой ход найден
{ 
MakeMove(retMove); 
tmp = -Search( retMove, //описатель хода в эту позицию
Depth-1, //сколько полуходов осталось
ply+1, //абсолютная шлубина от 0
-beta, 
-alpha, 
&tmpMove, //найденный ход (нам не нужен)
-(score+retMove->score), //текущая оценка узла
isLazyEval, 
nextColor 
); 
UnMakeMove (retMove) ; 
if(tmp > res) res = tmp; 
if(res > alpha) 
{ 
//если не превышен лимит времени
if(ITimeOver()) 
{ 
//лучший ход тот же,
//только корректируем глубину
retMove->Depth = Depth; 
} 
alpha = res; 
} 
if(alpha >= beta) return alpha; 
}//endif 
///////// взятия ///////////////////////////// 
//нашли взятие - сразу в следующую позицию //// 
{...}
////// допустим, нашли ход //////////////////// 
{...} 
//приращение при ходе
ove->score = delRes(myB,opB,move); 
MakeMove(move); 
tmp = -Search( move, //описатель хода в эту позицию
Depth-1, //сколько полуходов осталось
ply+1, //абсолютная глубина от 0
-beta, 
-alpha, 
&tmpMove, //найденный ход (нам не нужен)
-(score+move->score), //текущая оценка узла
isLazyEval, 
nextColor 
); 
if(tmp > res) res = tmp; 
if(res > alpha) 
{ 
alpha = res; 
if(!TimeOver()) 
{ 
memcpy(retMove,move,sizeof(TMove)); 
retMove->Depth = Depth; 
}
}
if(alpha >= beta) return alpha; 
UnMakeMove(move); 
{...} 
(...) 
return res; 
}
}//end function
Добавлено через 1 минуту
здесь вроде еще нужно создать начальную функцию для PMove но у меня не получается(( подскажите что-нибудь

Добавлено через 22 минуты
попробовал сделать простую программу хелловорлд при запуске она появляется на долю секунды и исчезает, это что означает?

 Комментарий модератора 
Используйте теги форматирования кода!
 
Текущее время: 15:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru