我可能很快就会参加编码比赛,我想知道是否有人制作了比赛以及指南/流程在哪里。我想让比赛对所有的开发者都有吸引力,我正在努力想出如何做的想法。
场景是:有一个事件正在运行,我们(编码竞赛)将有一个我们可以使用的房间(编码或问题等),但是,理想情况下,比赛的任务应该是分配的,他们应该eb 能够去做其他事情,如果他们愿意的话。我想知道要提出什么样的挑战,最重要的是,“赢得”教学和学习良好编码标准的标准是什么,需要很长时间,我想如果你编码的时间更长,你会把事情做对和快速......但在竞争中,你会偷工减料......我非常感谢你对此的投入
5 回答
一场吸引所有开发者的比赛?听起来……很难。但如果你想在解决问题和算法方面进行比赛,那么我是Sphere Online Judge的忠实粉丝。基本上,这是一个编程难题的存储库,但您也可以成为问题制定者并在网站上创建问题或竞赛。
它支持大量的编程语言,从“流行”语言到更晦涩难懂的语言。程序通常会从标准输入读取并写入标准输出。标准判断程序将简单地diff
输出具有预期输出的程序输出,但更精细的判断是可能的。您还为提交的执行设置了时间限制,这通常需要程序员比蛮力更聪明。
赢家是解决问题最多的人。正确提交的时间会打破平局,错误提交会受到一些时间的惩罚。
指导方针
限制可以提交的语言。如果不这样做,您可能会获得需要特殊购买的编译器或其他一些不便的专有语言。
正确性
这很简单。以您将接受的所有语言提供易于阅读的单元测试。这将允许对提交进行简单、自动的测试,并将指导解决方案的界面。
挑战
创建一个主题。使其重点突出,但不要过于具体,以至于需要某些范式或语言特征。然后围绕该主题制定挑战。
为每个挑战分配积分。给更困难的问题更多的分数。 请务必仔细审查每个挑战,并在给出分数之前让团队尝试它们,以便您做出更准确的决定。
正如@miorel 在他的回答中提到的那样,时间限制和内存限制非常棒。为每个挑战设置每个测试的时间限制,或者至少对其进行监控,并让这些指标有助于为解决问题给出的分数。
你应该看看 ACM 比赛。每年他们都会举办大学编程比赛。这些与语言无关。档案位于此处。
要开始提高自己,您需要一个可以从事的项目,一个您想要解决的问题,一个您想要实现的目标。没有任何上下文和你想结束的目的地,你将无法学习所有必要的方法和语言的所有联系。
有一个比赛,每年举行 2 次,叫做ludum dare
.
你写什么语言也没关系,你只需要在 48 小时内创建一个游戏(组合,只有一个人和你自己创建的所有资产)和 72 小时(jam,一个团队合作,可以购买资产)。比赛结束后,每个人都上传了自己的游戏,投票开始。这将需要大约 20 天的时间,每个人都可以为您的游戏投票,或者您可以为其他人的游戏投票。大约有3000人参加。
每次比赛开始,依次进行5天的投票。每天,您都会对一组主题进行投票,这些主题可能是您必须为其创建游戏的主题。我上一场比赛的主题是“非常规武器”。投票结束后,比赛开始了,你必须考虑使用(在我的情况下)非传统武器的游戏并开始编写你喜欢的游戏。
这不是要成为最好的,你应该在比赛结束后开始关注其他人的项目。你可以学习很多其他人,他们解决问题的方法,我相信每次参加这样的比赛你都会提高自己。
很难设计一个适合多种语言的编码竞赛,因为语言通常有不同的用途。我建议您要查找的内容不存在。