Значит ноль остаётся.Феникc писал(а): lol, там только 20 НР
Арена
Модератор: Jolly Roger
- Jolly Roger
- Сообщения: 2973
- Зарегистрирован: 27 ноя 2009, 09:10
- Откуда: Minsk, Belarus
Re: Арена
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.
Re: Арена
Собственно, внеся несколько изменений, представляю доработанную версию.
Заодно выложу исходники, теперь можно меня и попинать за огрехи.
Заодно выложу исходники, теперь можно меня и попинать за огрехи.
Всё вышесказанное - ИМХО, если не указано обратное.
- Jolly Roger
- Сообщения: 2973
- Зарегистрирован: 27 ноя 2009, 09:10
- Откуда: Minsk, Belarus
Re: Арена
Не сильно хорошо знаю сишку, но
вот этот кусок мне не понравился:
Назначение переменных без стакана не понять.
Когда код вырастет, они поимеют мозг.
вот этот кусок мне не понравился:
Код: Выделить всё
int attack(int i,int j,int x,int y)
{
int min=100000,k=0;
extern int a[24][80];
if ((rasst(i-1,j,x,y)<=min)&((a[i-1][j]==0)||(a[i-1][j]==2))){min=(rasst(i-1,j,x,y));k=8;};
if ((rasst(i-1,j+1,x,y)<=min)&((a[i-1][j+1]==0)||(a[i-1][j+1]==2))){min=(rasst(i-1,j+1,x,y));k=9;};
if ((rasst(i,j+1,x,y)<=min)&((a[i][j+1]==0)||(a[i][j+1]==2))){min=(rasst(i,j+1,x,y));k=6;};
if ((rasst(i+1,j+1,x,y)<=min)&((a[i+1][j+1]==0)||(a[i+1][j+1]==2))){min=(rasst(i+1,j+1,x,y));k=3;};
if ((rasst(i+1,j,x,y)<=min)&((a[i+1][j]==0)||(a[i+1][j]==2))){min=(rasst(i+1,j,x,y));k=2;};
if ((rasst(i+1,j-1,x,y)<=min)&((a[i+1][j-1]==0)||(a[i+1][j-1]==2))){min=(rasst(i+1,j-1,x,y));k=1;};
if ((rasst(i,j-1,x,y)<=min)&((a[i][j-1]==0)||(a[i][j-1]==2))){min=(rasst(i,j-1,x,y));k=4;};
if ((rasst(i-1,j-1,x,y)<=min)&((a[i-1][j-1]==0)||(a[i-1][j-1]==2))){min=(rasst(i-1,j-1,x,y));k=7;};
return k+48;
}
Когда код вырастет, они поимеют мозг.
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.
Re: Арена
Мда, имена переменных не шибко информативные. Особенно если читать с телефона, как я сейчас. Впрочем я довольно быстро вспомнил что i,j это положение атакующего. Вообще я думал меня за гото пинать будут (есть там один) так что имена переменных это еще ничего, поправлю.
Всё вышесказанное - ИМХО, если не указано обратное.
Re: Арена
Я тут подумал... Думаю тему можно в утиль. Основы рогаликописания я постиг, а большего от Арены и не требовалось.
Всё вышесказанное - ИМХО, если не указано обратное.
- Jolly Roger
- Сообщения: 2973
- Зарегистрирован: 27 ноя 2009, 09:10
- Откуда: Minsk, Belarus
Re: Арена
Перенесено по желанию автора.
Удачи в следующей работе!
Удачи в следующей работе!
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.
Re: Арена
Мне кажется пофиг как переменные называются функции... можно просто сделать так...Jolly Roger писал(а):Не сильно хорошо знаю сишку, но
вот этот кусок мне не понравился:Назначение переменных без стакана не понять.Код: Выделить всё
int attack(int i,int j,int x,int y) { int min=100000,k=0; extern int a[24][80]; if ((rasst(i-1,j,x,y)<=min)&((a[i-1][j]==0)||(a[i-1][j]==2))){min=(rasst(i-1,j,x,y));k=8;}; if ((rasst(i-1,j+1,x,y)<=min)&((a[i-1][j+1]==0)||(a[i-1][j+1]==2))){min=(rasst(i-1,j+1,x,y));k=9;}; if ((rasst(i,j+1,x,y)<=min)&((a[i][j+1]==0)||(a[i][j+1]==2))){min=(rasst(i,j+1,x,y));k=6;}; if ((rasst(i+1,j+1,x,y)<=min)&((a[i+1][j+1]==0)||(a[i+1][j+1]==2))){min=(rasst(i+1,j+1,x,y));k=3;}; if ((rasst(i+1,j,x,y)<=min)&((a[i+1][j]==0)||(a[i+1][j]==2))){min=(rasst(i+1,j,x,y));k=2;}; if ((rasst(i+1,j-1,x,y)<=min)&((a[i+1][j-1]==0)||(a[i+1][j-1]==2))){min=(rasst(i+1,j-1,x,y));k=1;}; if ((rasst(i,j-1,x,y)<=min)&((a[i][j-1]==0)||(a[i][j-1]==2))){min=(rasst(i,j-1,x,y));k=4;}; if ((rasst(i-1,j-1,x,y)<=min)&((a[i-1][j-1]==0)||(a[i-1][j-1]==2))){min=(rasst(i-1,j-1,x,y));k=7;}; return k+48; }
Когда код вырастет, они поимеют мозг.
Код: Выделить всё
int attack(int i,int j,int x,int y) //Эта функция готовит пончик
{...}
Ну, а уж если потребуется переписать... то вперед)
- Jesus05
- Сообщения: 1840
- Зарегистрирован: 02 дек 2009, 07:50
- Откуда: Норильск, сейчас Санкт-петербург.
- Контактная информация:
Re: Арена
а потом сидишь и думаешь, а что-же тут происходит.Hatber писал(а):Мне кажется пофиг как переменные называются функции... можно просто сделать так...Jolly Roger писал(а):Не сильно хорошо знаю сишку, ноСкрытый текст: ПОКАЗАТЬКомменты решают....Код: Выделить всё
int attack(int i,int j,int x,int y) //Эта функция готовит пончик {...}
Ну, а уж если потребуется переписать... то вперед)
Код: Выделить всё
attack (a,b,c,d);
attack (b,c,d,a);
attack (d,c,b,a);
- Maelstrom
- Мастер
- Сообщения: 2062
- Зарегистрирован: 26 ноя 2006, 14:19
- Откуда: г. Усть-Кирдык
- Контактная информация:
Re: Арена
+1а потом сидишь и думаешь, а что-же тут происходит.
У меня с древних-древних версий валяются две загадочные глобальные переменные с не менее загадочным комментарием:
Код: Выделить всё
'Это не трогать (ЧОЧО?)
Public Va As ItemOnGround
Public vu As Integer
'--
Айв кнгенгах Йог-Сотот
- Jolly Roger
- Сообщения: 2973
- Зарегистрирован: 27 ноя 2009, 09:10
- Откуда: Minsk, Belarus
Re: Арена
Милый вброс от Hatber'а
Вот смотрю на такое и радуюсь, что не программер и такое по наследству не приходит.
Вот смотрю на такое и радуюсь, что не программер и такое по наследству не приходит.
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.
- Jolly Roger
- Сообщения: 2973
- Зарегистрирован: 27 ноя 2009, 09:10
- Откуда: Minsk, Belarus
Re: Арена
Вот:
Jesus05 писал(а):есть у меня такое чудо доставшееся в наследство(по работе) с именами переменных Button1 Button2 и подобными названиями функций от балды.Код: Выделить всё
attack (a,b,c,d); attack (b,c,d,a); attack (d,c,b,a);
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.
Re: Арена
Ну... Грубо говоря в основном теле программы таково быть не может, я лишь сказал, что неважно как переменные называются в небольшом куске программы-функции(ибо не важно как их там называть).Jolly Roger писал(а):Вот:Jesus05 писал(а):есть у меня такое чудо доставшееся в наследство(по работе) с именами переменных Button1 Button2 и подобными названиями функций от балды.Код: Выделить всё
attack (a,b,c,d); attack (b,c,d,a); attack (d,c,b,a);
Но, конечно не буду разводить тут спор, я лично сам за то, чтобы все называлось красиво и понятно.
Код: Выделить всё
char* ArrayOfNumber;
int ThisVariableIsNeededToWorkWithAnArrayOfNumbers;
Вот он - Дзен)
- Jolly Roger
- Сообщения: 2973
- Зарегистрирован: 27 ноя 2009, 09:10
- Откуда: Minsk, Belarus
Re: Арена
Ну по хорошему даже локальный счётчик желательно называть осмысленно, а не i, f или j, но если хочется, то это не слишком страшно.
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 47 гостей