IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Конкурс програмеров Имхо! (http://www.imho.ws/showthread.php?t=68186)

Hex0gen 22.12.2004 12:33

yunus
Ты хочешь сказать, что во избежание путаницы и двусмысленности следует выработать определенный набор критериев, которым должна удовлетворять программа? То есть нужно выработать минимальный набор требований к программе. Резонно.

Пока в качестве задания у нас лидирует "игра Арканоид". Какие будут предложения?

Можно было бы сформулировать следующие требования:

1. Игра должна быть полноценной:
1.1. определенный набор уровней (не менее 10)
1.2. различные уровни сложности
1.3. наличие жизней и бонусов
1.4. наличие звукового оформления
2. Удобство пользования
2.1. как минимум два варианта управления (клавиатура или мышка).
2.2. пользователь должен иметь возможность переопределять управляющие клавиши клавиатуры
2.3. предусмотреть возможность приостановлении игры (Pause, Save/Load).
3. Оригинальность и динамичность приветствуются.

Можно было бы... Но, поскольку участников будет скорее всего не очень много, я бы данные требования не стал объявлять обязательными.

FantomIL 22.12.2004 12:49

yunus,
не соглашусь с тобой.
Каждая прога имеет право на существование и объективно ее оценить, конечно, не получится. Но, средняя арифметическая оценка из оценок судей и дадут то самое "статитически объективное" представление о проге.
Конечно, критерии важны, но слишком много их тоже быть не должно. Я бы ввел один критерий соответствия: [B]завершенный и готовый к использованию программный продукт". Все остальное оценит жюри. Если в одной проге управление и мышью и клавой, но жутко неудобное, а в другой только клавой, но суперпродуманное и эргономичное, то это сразу будет видно и, соответственно, оценено.

Sheryld 17.01.2005 13:45

предлагаю идти по немного другому пути. если уж сказано конкурс программистов. так и нужно сделать конкурс именно программистов. что я под этим подразумеваю?

пример: программа, которая ищет скажем все перестановки числового ряда за кратчайший промежуток времени.

еще: нахождение всех путей графа.

можно "завернуть" это в "красивую обертку".

по скорости измерять конечно не получиться, т.к. программа, скажем, на asm-е будет всегда быстрее программы на php:)

но вот сам алгоритм, изящество решения и качество исходного кода - вполне поддается оценке компетентным жюри:)

RaZEr 17.01.2005 14:00

Цитата:

но вот сам алгоритм, изящество решения и качество исходного кода - вполне поддается оценке компетентным жюри
Приведи пример с качеством исходного кода

Sheryld 17.01.2005 14:31

ну допустим:

1. "детские" ошибки.

Код:

$temp = $value;
echo $temp;

лишняя операция присвоения. такие ошибки легче всего.

2. работа с памятью. Встает вопрос о том, как работать с памятью. что лучше: диамически выделять память или хранить переменные статически. как реализовано: копирование, выделение, очистка?

3. ООП. если используется, то нужно смотреть реализацию классов, методов, перегрузку операторов, наследование и т.д. что где используется, оправдано или нет?

4. этот пункт уже не обязателен, но если попадутся очень качественные работы, то его можно учесть:

а). используется ли какая-либо нотация при присвоении имен переменных, классов, методов?
б). читаемость кода?
в). комментарии?


а самое главное:

код должен как можно оптимальнее реализовывать конкретный алгоритм.

p.s. конечно тут встанет вопрос о разнообразии языков и технологий. скажем в c#(.NET) в принципе не нужно брать на себя работу с памятью, т.к. за нас уже это сделает среда ..NET. Как вариант, можно будет разделить работы на несколько групп. В каждой группе свой победитель.

в любом случае, даже если отмести все критерии, которые я привел, то останется 1 основной:

оптимальная реализация алгоритма.

RaZEr 17.01.2005 15:17

1. А кто сказал что она лишняя? Возможно где-то в коде переменная используется? Прийдется юзать профилер, причем для каждого языка свой. Это слишком трудоемко.

3. Оправдано или нет. Ты представляешь каково члену жюри будет сидеть и разбираться в коде каждой программы? Одного времени сколько.

4. Это можно оценить. Хотя не думаю что это верный критерий для выбора лучшего.

Давай всё-такиостановимся на оценке по "удобству". Это по крайней мере может сделать каждый. Да и участникам интересней удивлять самой программой, а не её кодом.

FantomIL 17.01.2005 16:04

Я поддерживаю RaZEr-а. ИМХО, интереснее оценивать и писать приложение имеющее практическую ценность для большого количества пользователей.

RaZEr 27.01.2005 18:11

Итак пришло время подвести итоги опроса:

1. Арканоид (игра)
2. Текстовый редактор (аналог notepad)
3. Менеджер процессов win32

Победил арканоид. Какие будут возражения?

ЕЖ 27.01.2005 18:18

Имхо, всё к тому и шло, чтобы победила игра. Не важно какая. И правильно. Это будет интересно и программерам и вообще широкой аудитории - просто взглянуть чего там наваяли. Глядишь, кто-то и оставит себе игрушку и насовсем.

Срок разработки, думаю, не более месяца.

Hex0gen 27.01.2005 20:52

(: да, месяца, должно быть в самый раз. Предлагаю установить срок до 1-го Марта.
1-го Марта состоится презентация :beer:

Псих 29.01.2005 12:00

Месяц? Давайте месяц!

А запись участников делаем? или свободное посещение?

/7y3uK 29.01.2005 19:24

ИМХО свободное посещение - гемора меньше... я вот например не знаю пока буду или нет участвовать... просто скажите дату, после которой проги не будут приниматься к рассмотрению...

RaZEr 29.01.2005 20:00

Никто не мешает записаться участникам, но делать это обязательным смысла не вижу.

Насчет сроков: Это едва ли не самое важное. Думаю нужно объявить их дважды: сначала дату начала (заранее), а потом - дату окончания.

denver 29.01.2005 20:11

Самое хреновое что в арканоиде важен не сколько сам "движок" (который к слову простой как 5 копеек), сколько графика и разнообразие уровней. На последнее у нормального программера не хватит фантазии/времени, а на графику умений. Гыыыыыыы :cool:

RaZEr 29.01.2005 20:21

Цитата:

Самое хреновое что в арканоиде важен не сколько сам "движок" (который к слову простой как 5 копеек)
Движок можно усложнить. Ввести округлые поверхности доски, добавить возможность "подкручивать" шар и т.д. Главное чтобы было желание.

Псих 30.01.2005 17:57

Согласен с 3мя посл. постами!

Mind 03.05.2005 05:58

конкурс еwё будет?

Псих 03.05.2005 09:19

Цитата:

Mind:
конкурс еwё будет?
По идее должен быть! Все зависит от того, проснутся ли конкурсанты ;) и зажелают ли соревноватся!

Mind 04.05.2005 04:43

Я бы с удовольствием поучавствовал. Мой C++ надо подтягивать ;)

denver 18.07.2005 17:21

Tempson
Цитата:

наверное буду потеть...
Тут дают призы не за это :cool:
(тут вообще их не дают. уже. хехе)

lotr 20.12.2005 12:06

Модератору.
Предлагаю конкурс программирования - DirectX открытка к 8-му марта (или OpenGL). Как условия - прога должна быть написана с нуля, т.е. без использования сторонних компонентов, а так же проги написанные на языках типа Blitz не рассматривать. В конкурс только проги с исходными кодами. Так же думаю следует исключить использование готовых 3D объектов, только математика и програмное моделирование. Если будут желающие можно будет более детально оговорить условия.

ivahaev 20.12.2005 12:11

lotr, это уже демосценой попахивает :)

ЕЖ 21.12.2005 01:07

lotr
Программисты все разные по профилю - системные, прикладные, веб... у каждого свои любимые интсрументы и технологии. Кто-то хороший кодер, зато другой - хороший архитектор ПО. Если и проводить конкурс, то уж по нескольким номинациям, т.к. нельзя выбрать одного самого самого.

RaZEr 21.12.2005 01:13

Не хочу показаться скептиком, но учитывая то, что провалился конкурс по написанию арканойда и текстового редактора, говорить о 3D-графике преждевременно.

ivahaev 21.12.2005 06:55

Кхе, тут каждый предлагает на конкурс такое задание, которое точно уверен, что сделает лучше всех :)

lotr 21.12.2005 12:12

Цитата:

Сообщение от ivahaev
Кхе, тут каждый предлагает на конкурс такое задание, которое точно уверен, что сделает лучше всех :)

Я не уверен, только начинаю работать с 3Д, мне интересно увидеть работы других в первую очередь, + обмен опытом. Будет конкурс или нет, в любом случае постараюсь что-нить сфарганить и выложить, может кто-то тоже что нибудь выложит за мной, а когда будет достачно заинтересованных людей можно и конкурс сделать.

Псих 29.12.2005 16:22

Давайте что-то оптимальное предумаем?
Создадим что-ли несколько номинаций?

Naked 30.12.2005 17:01

Цитата:

Псих:
Создадим что-ли несколько номинаций?
тогда нужно определить какие номинации будут и все-таки, мне кажется, лучше создать какие-то критерии проверки :p И проводить после сессии ;)

Jazzuin 05.05.2006 10:44

Так с арканоидом что нить вышло? То что я-кодер, я забыл после сдачи диплома в лицее, а вот геймер во мне живёт и умирать не собирается :)

baron386 20.03.2007 18:46

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

sflash 03.10.2007 11:11

С конкурсом что то тишина :( Я б включился бы.

yan_kos 08.10.2007 20:08

+1 я за простенькая задача на логику и стиль

sflash 09.11.2007 13:55

ну что может сами соберемся и предложим что то?
например что то типа сольвера (программа которая решает уравнения и выражения введенные в текстовом виде)
типа вводишь =(2*sin(16)-2345^43)/(8675*22/243)

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

ivahaev 09.11.2007 18:16

Очень простой код будет отсылать вот такой запрос
Код:

http://www.google.com/search?client=safari&rls=en-us&q=(2*sin(16)-2345%5E43)/(8675*22/243)&ie=UTF-8&oe=UTF-8
И отображать результат :)

sflash 26.11.2007 08:14

Я же вроде написал
Цитата:

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

/7y3uK 26.11.2007 11:09

2sflash, твоя задача в зависимости от языка программирования решается либо просто, либо очень просто... ИМХО, самое лучшее что на сегодняшний день придумали для конкурсов - это программинг ботов (на Java точно есть, по-моему JRobot называется) для дуэльных и коммандных поединков...
логика и стиль - вещи очень субъективные и зависят исключительно от опыта работы в крупных софтверных компаниях конкретного проверяльщика кода. А в ботах один критерий, с которым не поспоришь - победил твой бот или нет :)

sflash 26.12.2007 11:48

Цитата:

ИМХО, самое лучшее что на сегодняшний день придумали для конкурсов - это программинг ботов (на Java точно есть, по-моему JRobot называется) для дуэльных и коммандных поединков...
логика и стиль - вещи очень субъективные и зависят исключительно от опыта работы в крупных софтверных компаниях конкретного проверяльщика кода. А в ботах один критерий, с которым не поспоришь - победил твой бот или нет
Поддерживаю, честно говоря никогда не слышал о таких конкурсах :) Но всеми кнопками моей многострадальной клавы - ЗА!!! Есть где нить стандарт API для подобных конкурсов? Чтоб не выдумывать свой.

/7y3uK 26.12.2007 15:03

JRobot - это я попутал :biggrin:
Я вот этот проект на Java имел в виду http://robocode.sourceforge.net/
на других языках не знаю... еще есть обучающая игра Colobot http://colobot.com/, но там, судя по слухам, все совсем просто, хотя лично я не юзал...
В идеале, просто среду, которая будет отрисовывать графику, т.е. поле боя, а API нужно сузить до минимума, чтобы программист сосредоточился на логике и алгоритмике... А по сути, игра может быть любой, хоть и в дурака :)

sflash 27.12.2007 13:08

Цитата:

В идеале, просто среду, которая будет отрисовывать графику, т.е. поле боя, а API нужно сузить до минимума, чтобы программист сосредоточился на логике и алгоритмике... А по сути, игра может быть любой, хоть и в дурака
API ессно надо стадарате MS делать, в смысле вызовов функций. Чтоб с любого языка можно было делать. Пиши в асю 879973 обмозгуем.

ivahaev 27.12.2007 13:48

Цитата:

Сообщение от sflash (Сообщение 1502952)
API ессно надо стадарате MS делать, в смысле вызовов функций

Но лучше вообще на нестандартной платформе :)
Под QNX, к примеру.


Часовой пояс GMT +4, время: 11:37.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.