私が第3のクラスゲームから私のクラス馬のlykkesHestインスタンスにアクセスしようとしてきました。しかし、現在の文脈でインスタンスが存在しないことを私に伝えます。lykkesHest hestが公開クラスとして作成されていないためです。しかし、私が試してみるとlykkesHest公然のクラスではなく、それは私に奇妙なエラーをたくさん与えます。私はそれがデンマーク語であるので、ユーザーに出力されるテキストをお詫び申し上げます。第三のクラスからの第二のクラスで行われたC#のアクセスクラスのインスタンス
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Lykkes_Hest
{
// The class with the main game hidden inside it!
class game
{
public static int money;
public static double fodder;
public game()
{
money = 1000;
fodder = 1;
}
public static void help()
{
Console.WriteLine("#######################");
Console.WriteLine("###### - HJÆLP - ######");
Console.WriteLine("#######################");
Console.WriteLine();
Console.WriteLine("Kommandoer du kan bruge:");
Console.WriteLine("Hjælp - viser dig denne skærm");
Console.WriteLine("fodre hesten - giver din hest mad hvis du har noget");
}
public static void exitSafely()
{
Console.WriteLine("Er du sikker på at du vil forlade spillet?");
Console.WriteLine("(Ja eller nej)");
if(Program.getBool())
{
Environment.Exit(0);
}
}
public void RegisterCommand()
{
string command = Console.ReadLine();
switch(command)
{
case "exit":
exitSafely();
break;
case "vent":
lykkesHest.PassDay();
break;
default:
Console.WriteLine("Ikke genkendt kommando.");
break;
}
}
}
// A class for making a horse
class horse
{
public string name;
public double age = 0;
public string color;
public double hunger = 50;
public double boredom = 50;
public horse()
{
Console.WriteLine("Hvad skal din hest hedde?");
name = Console.ReadLine();
Console.WriteLine("Hvor mange år er din hest?");
while (age == 0) {
try
{
age = Convert.ToInt32(Console.ReadLine());
} catch {
Console.WriteLine("Do skal skrive et tal.");
}
}
Console.WriteLine("Hvilken farve har din hest?");
color = Console.ReadLine();
}
public void Print()
{
Console.WriteLine("Din hest heder {0} er {1} år gammel og har farven {2}", name, age, color);
}
public static void Die(string cause)
{
Console.WriteLine("Din hest døde af {0}........", cause);
Console.WriteLine("Du burde passe bedre på den en anden gang!");
Console.WriteLine();
Console.WriteLine("Klik på en knap for at afslutte.");
Console.ReadKey();
Environment.Exit(0);
}
public void PassDay()
{
hunger =+ 10;
boredom =+ 10;
if(hunger >= 100 || boredom >= 100)
{
horse.Die("sult");
} else if(boredom >= 100)
{
horse.Die("Kedsomhed");
}
}
}
class Program
{
public static bool getBool()
{
while (true)
{
string answer = Console.ReadLine();
if (answer.ToLower() == "ja")
{
return true;
}
else if (answer.ToLower() == "nej")
{
return false;
}
Console.WriteLine("Du må kun skrive ja eller nej");
}
}
static void Main(string[] args)
{
// Get passowrd
Console.WriteLine("HVAD ER KODEORDET FOR AT MÅ SPILLE DET HER AMAZING SPIL?");
if (Console.ReadLine().ToLower() != "what is password?")
{
Environment.Exit(0);
}
// Initialize the game
game Spil = new game();
Console.WriteLine("###############################");
Console.WriteLine("######## -Lykkes Hest- ########");
Console.WriteLine("###############################");
Console.WriteLine();
Console.WriteLine("Velommen, du spiller version 001");
Console.WriteLine();
// Create a basic horse
horse lykkesHest = new horse();
lykkesHest.Print();
Console.WriteLine("Er dette korrekt?");
while(getBool() == false)
{
lykkesHest = new horse();
}
// Optional tutorial
Console.WriteLine();
Console.WriteLine("Vil du gerne lære de kommandoer du kan bruge?");
Console.WriteLine("(Ja eller nej)");
if (getBool())
{
Console.WriteLine();
Console.WriteLine("Lykkes hest er et interaktivt sandbox spil hvor du styrer EN FUCKING HEST!!");
Console.WriteLine("Du bestemmer selv om du vil have din hest til at en flotter præmie hest eller en sy' hurtig ræcer!");
Console.WriteLine();
Console.WriteLine("Du spiller ved at skrive nogle få kommandoer ind i kommando linjen (Den du læser fra lige nu).");
Console.WriteLine();
Console.WriteLine("Hvis du nogensinde glemmer en kommando eller vil lære nogle nye kan du altid skrive 'Hjælp' for at få dem vist.");
Console.WriteLine("Og hvis du nogensinde vil stoppe spillet kan du gøre det ved at skrive 'exit'");
}
Console.WriteLine();
Console.WriteLine();
// Loop the rest of the game
while (true)
{
Console.WriteLine("#####################################################");
Console.WriteLine("Penge: {0} - Foder: {1}", game.money, game.fodder);
Console.WriteLine("Hestens sult: {0} - Hestens kedsomhed: {1}", lykkesHest.hunger, lykkesHest.boredom);
Console.WriteLine("#####################################################");
game.RegisterCommand();
Console.WriteLine();
}
}
}
}
エラーが発生した行をマークできますか? – Sean