私は、アイテム、ショップなどでコンソールのテキストベースの冒険に取り組んでいます。C#の他の関数で定義されたクラス変数を使用する
今、私はクラスを使って剣を購入するコードを短縮したいと思っています。私は、あなたが他で買うことができる剣をランダム化するために別々の機能とコードで剣の定義を置く:
namespace Text_Adventure
{
class Game
{
//Weapon class
public class Weapon{
public string name;
public int damage;
public int magic;
public int durability;
public int price;
}
//the weapon showed in the shop
public class Weaponshop{
public string name;
public int damage;
public int magic;
public int durability;
public int price;
}
...
// defenition of swords
public void swords()
{
Weapon sword1 = new Weapon();
sword1.name = "Wooden Sword";
sword1.damage = 2;
sword1.magic = 1;
sword1.durability = 20;
sword1.price = 10;
Weapon sword2 = new Weapon();
sword2.name = "Iron Sword";
sword2.damage = 3;
sword2.magic = 2;
sword2.durability = 50;
sword2.price = 20;
...
}
//gamble sword that are shown in the shop
public void swordgamble()
{
Random shopgamble = new Random();
Weaponshop shopsword1 = new Weaponshop();
//gamble shopsword 1
int shopgamblenumber = shopgamble.Next(1, 8 + 1);
今problemcode同じことがshopsword2とshopsword3
で発生---> if (shopgamblenumber == 1)
{
shopsword1 = sword1;
}
if (shopgamblenumber == 2)
{
shopsword1 = sword1;
}
<----
public void buysword
{
swordgamble();
Console.WriteLine("Shop");
Console.WriteLine();
Console.WriteLine("Which sword do you would like to have?");
Console.WriteLine();
while (correct == 0)
{
Console.WriteLine("1. " + shopsword1.name);
Console.WriteLine("2. " + shopsword2.name);
Console.WriteLine("3. " + shopsword3.name);
Console.WriteLine("4. None of these");
Console.WriteLine("");
...
}
私のプログラマーは、私が剣で設定した変数を読み込むことができず、それをショップに預けることはできません。
私の古いバージョンは変数だけで、これはかなり大きいので、私はあなたが買うことができる8つの剣を取った。誰かが私が剣で設定した変数を読んで、関数buysword()でショップワードを読む方法を知っていますか? ?
あなたは変数を初期化し、それらをswords()voidの中に投げ捨てました。あなたはどこかにそれらを格納していたはずです –
'Weapons'を' Weaponshop'型の変数にどのように割り当てることができますか? –
--- ---セクタをマークすることでした 申し訳ありません申し訳ありません申し訳ありません私は新しいです – KillSwitch