链接列表中的两个条目

链接列表中的两个条目

我是一名狂热的 DOTA 2 玩家。这是一款 5 人团队电子游戏,玩家可以从大约 100 名英雄中挑选一名进行游戏,这些英雄的能力和优势与劣势各不相同。

我经常担任队长,选择能够相互补充的英雄并暴露其他队长选择的弱点非常重要。

我想建立一个个人朋友和敌人数据库,可能使用 Excel 或 Access,但也可能还有其他解决方案。

如果我将两个英雄标记为反制者,例如 Venge > Enigma,我该怎么做,这样如果我看到 Venge,我就会看到 Enigma,如果我看到 Enigma,我就会看到 Venge。

例如

  • 复仇克制谜团
  • 谜团被 Venge 击败

或者

  • Wisp 与 CK 结合
  • CK 与 Wisp 结合

我只想输入每个计数器/组合的数据一次。

换句话说,我想要类似的东西http://www.mobacounter.com/dota/heroes,而是在我自己的电脑上有自己的列表。

我认为这很容易,但是当你不知道如何表述问题时,用 Google 寻找答案真的很困难。

答案1

我对这些微软程序一无所知;但我可以给你一些关于设计的反馈。

基本上,你需要一张表来记录所有的英雄和他们的属性,还有一张表来定义谁打败了谁。

这是在 postgresql 中执行此操作的方法。这可能不是您想要的,但也许您可以从中提取一些有用的信息:

create table hero (name varchar primary key, description varchar, size numeric);
create table defeats (stronger varchar references hero(name), weaker varchar references hero(name), reason varchar, constraint winlose_pk primary key (stronger,weaker));

现在是时候填充表格了:

insert into hero values ('rock', 'big and shiny', 5);
insert into hero values ('scissors', 'sharp and shiny', 4);
insert into hero values ('paper', 'white but dirty', 8);
insert into hero values ('noob', 'defeated by everything', 2);

现在关系表:

insert into defeats values ('rock', 'scissors', 'crushing defeat');
insert into defeats values ('paper', 'rock', 'enveloped');
insert into defeats values ('scissors', 'paper', 'cut');
insert into defeats values ('rock', 'noob', 'stone to the head');
insert into defeats values ('paper', 'noob', 'finger got cut');
insert into defeats values ('scissors', 'noob', 'would not stop runnning');
insert into defeats values ('noob', 'noob', 'self explanatory');

现在你有了两张表:

   name   |      description       | size 
----------+------------------------+------
 rock     | big and shiny          |    5
 scissors | sharp and shiny        |    4
 paper    | white but dirty        |    8
 noob     | defeated by everything |    2



 stronger |  weaker  |         reason          
----------+----------+-------------------------
 rock     | scissors | crushing defeat
 paper    | rock     | enveloped
 scissors | paper    | cut
 rock     | noob     | stone to the head
 paper    | noob     | finger got cut
 scissors | noob     | would not stop runnning
 noob     | noob     | self explanatory

现在你可以使用这个查询来检查谁是强力摇滚:

select * from defeats where stronger='rock';

 stronger |  weaker  |      reason       
----------+----------+-------------------
 rock     | scissors | crushing defeat
 rock     | noob     | stone to the head

相关内容