Арена

Закрытые или заброшенные проекты, не состоявшие в Клубе, но имевшие ветку на форуме.

Модератор: Jolly Roger

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Арена

Сообщение Jolly Roger » 03 фев 2011, 18:08

Феникc писал(а): lol, там только 20 НР :lol:
Значит ноль остаётся. :D
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: Арена

Сообщение Феникc » 04 фев 2011, 12:11

Собственно, внеся несколько изменений, представляю доработанную версию.
Заодно выложу исходники, теперь можно меня и попинать за огрехи.
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Арена

Сообщение Jolly Roger » 21 фев 2011, 07:30

Не сильно хорошо знаю сишку, но
вот этот кусок мне не понравился:

Код: Выделить всё

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;
}
Назначение переменных без стакана не понять.
Когда код вырастет, они поимеют мозг.
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: Арена

Сообщение Феникc » 21 фев 2011, 09:43

Мда, имена переменных не шибко информативные. Особенно если читать с телефона, как я сейчас. Впрочем я довольно быстро вспомнил что i,j это положение атакующего. Вообще я думал меня за гото пинать будут (есть там один) так что имена переменных это еще ничего, поправлю.
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: Арена

Сообщение Феникc » 12 мар 2011, 18:07

Я тут подумал... Думаю тему можно в утиль. Основы рогаликописания я постиг, а большего от Арены и не требовалось.
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Арена

Сообщение Jolly Roger » 12 мар 2011, 18:17

Перенесено по желанию автора.
Удачи в следующей работе! :wink:
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: Арена

Сообщение Феникc » 12 мар 2011, 18:19

Спасибо. Буду стараться :^o
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Hatber
Сообщения: 14
Зарегистрирован: 20 июн 2011, 07:24

Re: Арена

Сообщение Hatber » 20 июн 2011, 16:38

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: Арена

Сообщение Jesus05 » 21 июн 2011, 00:47

Hatber писал(а):
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) //Эта функция готовит пончик
{...}
Комменты решают....
Ну, а уж если потребуется переписать... то вперед)
а потом сидишь и думаешь, а что-же тут происходит.

Код: Выделить всё

attack (a,b,c,d);
attack (b,c,d,a);
attack (d,c,b,a);
есть у меня такое чудо доставшееся в наследство(по работе) с именами переменных Button1 Button2 и подобными названиями функций от балды.

Аватара пользователя
Maelstrom
Мастер
Сообщения: 2062
Зарегистрирован: 26 ноя 2006, 14:19
Откуда: г. Усть-Кирдык
Контактная информация:

Re: Арена

Сообщение Maelstrom » 21 июн 2011, 05:29

а потом сидишь и думаешь, а что-же тут происходит.
+1 :mrgreen:

У меня с древних-древних версий валяются две загадочные глобальные переменные с не менее загадочным комментарием:

Код: Выделить всё

'Это не трогать (ЧОЧО?)
Public Va As ItemOnGround
Public vu As Integer
'--
Больше такого, к счастью, не повторялось :)
Айв кнгенгах Йог-Сотот

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Арена

Сообщение Jolly Roger » 21 июн 2011, 05:38

Милый вброс от Hatber'а :lol:
Вот смотрю на такое и радуюсь, что не программер и такое по наследству не приходит. :)
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
Maelstrom
Мастер
Сообщения: 2062
Зарегистрирован: 26 ноя 2006, 14:19
Откуда: г. Усть-Кирдык
Контактная информация:

Re: Арена

Сообщение Maelstrom » 21 июн 2011, 06:18

Эээ, что именно не приходит по наследству?
Айв кнгенгах Йог-Сотот

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Арена

Сообщение Jolly Roger » 21 июн 2011, 06:29

Вот:
Jesus05 писал(а):

Код: Выделить всё

attack (a,b,c,d);
attack (b,c,d,a);
attack (d,c,b,a);
есть у меня такое чудо доставшееся в наследство(по работе) с именами переменных Button1 Button2 и подобными названиями функций от балды.
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
Hatber
Сообщения: 14
Зарегистрирован: 20 июн 2011, 07:24

Re: Арена

Сообщение Hatber » 21 июн 2011, 07:14

Jolly Roger писал(а):Вот:
Jesus05 писал(а):

Код: Выделить всё

attack (a,b,c,d);
attack (b,c,d,a);
attack (d,c,b,a);
есть у меня такое чудо доставшееся в наследство(по работе) с именами переменных Button1 Button2 и подобными названиями функций от балды.
Ну... Грубо говоря в основном теле программы таково быть не может, я лишь сказал, что неважно как переменные называются в небольшом куске программы-функции(ибо не важно как их там называть).
Но, конечно не буду разводить тут спор, я лично сам за то, чтобы все называлось красиво и понятно.

Код: Выделить всё

char* ArrayOfNumber;
int ThisVariableIsNeededToWorkWithAnArrayOfNumbers;
:wink:
Вот он - Дзен)

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Арена

Сообщение Jolly Roger » 21 июн 2011, 07:44

Ну по хорошему даже локальный счётчик желательно называть осмысленно, а не i, f или j, но если хочется, то это не слишком страшно.
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 39 гостей