1

对于我所在大学的辩论俱乐部,我被要求创建一个分配辩论会议的应用程序,我在为其设计一个好的设计时遇到了一些困难。我会用Java来做。这是需要的:

您需要了解的关于 BP 辩论的知识:有四支队伍,每支队伍有 2 名辩手和一名法官。这四个组被分配了一个特定的位置:gov1、gov2、op1、op2。团队内部的顺序没有意义。

该应用程序的目标是获取在场的辩手作为输入(例如,如果有 20 人,我们将举行 2 场辩论),并根据每位辩手的历史将他们分配给团队和角色,以便:

  • 每个辩论者都应该与尽可能多的人进行辩论(在同一个团队中)。
  • 每个辩手应统一在不同的位置进行辩论。
  • 辩论应该是公平的——辩手有不同的经验水平,这应该尽可能地公平——即,不应该有一个由两个非常有经验的辩手组成的团队和一个由初级辩手组成的团队。
  • 应该有一个选项供用户以各种方式限制分配,例如:
    • 指定两个人应该一起辩论,无论是否在特定位置。
    • 指定单个辩手应处于特定位置,而与搭档无关。

如果有人可以尝试给我一些关于此应用程序设计的建议,我将非常感激!另外,我以前从未实现过 GUI,所以我也希望能提供一些关于这方面的建议,但这不是现在的主要问题。

此外,还有将 Debater 信息保存在文件中的问题,我也从未在 Java 中实现过,并且也希望得到一些提示。

4

2 回答 2

0

有两部分(如果算上输入和/或保存数据,则为三部分),底层算法和 UI。

对于 UI,我很奇怪。我使用这种技术(有一个指向我的 sourceforge 项目的链接)。必须完成 Java 版本,这不会太难。这很奇怪,因为很少有人使用它,但它节省了一个数量级的编码工作。

对于算法,问题看起来足够小,我可以通过简单的树搜索来解决它。我会有一个评分算法,只报告得分最高的时间表。

这是我将如何处理它的鸟瞰图。

于 2010-05-05T22:27:30.933 回答
0

这似乎是一个教科书约束问题。尽管有 GUI,但它非常适合 Prolog 之类的技术(ECLiPSe prolog 附带了几个不同的 Java 集成库)。

但是,既然你想在 Java 中这样做,为什么不将辩论者的历史存储在 sql 数据库中,并使用 SQL 语言来构造约束。然后,您可以将这些 SQL 查询包装为 Java 方法。

于 2010-05-05T20:41:17.657 回答