Я пытаюсь создать инструмент, который при вводе имени персонажа сравнивает его «навык оружия» с другими введенными персонажами.
Я использую пару ключей, чтобы представить персонажа и его статистику на данный момент, и провожу его через ряд условных проверок. Я думал, что смогу обойти все это, добавив электронную таблицу, но «Библиотека объектов Excel 12.0» отсутствует в моем списке COM, и я не вижу никаких замен.
Есть ли лучший способ сделать это? Если заявления кажутся неэлегентными.
Я искал объекты, DataGridView и Chart звучали обнадеживающе, но, насколько я могу видеть из примеров, которые я видел, и небольшую скрипку, их нельзя использовать так, как мне бы хотелось.
Буду признателен за любые советы или вещи, чтобы посмотреть!
Данные.
1 2 3 4 5 6 7 8 9 10
1 4 4 5 6 6 6 6 6 6 6
2 3 4 4 4 5 5 6 6 6 6
3 2 3 4 4 4 4 5 5 6 6
4 2 3 3 4 4 4 4 4 5 5
5 2 2 3 3 4 4 4 4 4 4
6 2 2 3 3 3 4 4 4 4 4
7 2 2 2 3 3 3 4 4 4 4
8 2 2 2 3 3 3 3 4 4 4
9 2 2 2 2 3 3 3 3 4 4
10 2 2 2 2 3 3 3 3 3 4
Мой код.
namespace ThereIsOnlyRules
{
public partial class Calculator : Form
{
public Calculator()
{
InitializeComponent();
}
StoreVariables test = new StoreVariables();
private void Form1_Load(object sender, EventArgs e)
{
test.doWork();
}
private void button1_Click(object sender, EventArgs e)
{
lblwinner.Text = "";
string attackCharacter = attackBox.Text;
string opponentCharacter = opponentBox.Text;
string toHitRoll = test.ToHit(attackCharacter, opponentCharacter);
lblwinner.Text = toHitRoll;
}
}
public class StoreVariables
{
public Dictionary<string, int> attacker = new Dictionary<string, int>();
public Dictionary<string, int> opponent = new Dictionary<string, int>();
//string attackUnit { get; set; }
//string opponentUnit { get; set; }
int weaponSkill { get; set; }
public void doWork()
{
Attacker();
Opponent();
//ToHit();
}
private void Attacker()
{
attacker.Add("Warrior", 3);
attacker.Add("Destroyer", 4);
attacker.Add("Reaver", 9);
attacker.Add("Killer", 10);
}
private void Opponent()
{
opponent.Add("Warrior", 3);
opponent.Add("Destroyer", 4);
opponent.Add("Reaver", 9);
opponent.Add("Killer", 10);
}
public string ToHit(string attackerName, string opponentName)
{
string toHit = "0";
int value;
int AWS = 0;
int OWS = 0;
if (attacker.TryGetValue(attackerName, out value))
{
AWS = value;
}
if (opponent.TryGetValue(opponentName, out value))
{
OWS = value;
}
if (OWS == 10)
{
if (AWS >= 5)
{
toHit = "4+";
return toHit;
}
else if (AWS <= 4)
{
toHit = "5+";
return toHit;
}
else
{
return null;
}
}
else if (OWS == 9)
{
if (AWS == 10)
{
toHit = "3+";
return toHit;
}
else if (AWS >= 5)
{
toHit = "4+";
return toHit;
}
else if (AWS <= 4)
{
toHit = "5+";
return toHit;
}
else
{
return "I haven't implemented the rest yet, choose Killer as opponent";
}
}
else
{
return null;
}
}
}
}