C# skapa random class så att säga (nybörjare)

Permalänk
Medlem

C# skapa random class så att säga (nybörjare)

Jag började nyligen leka lite med C# och har följt denna tutorialen. Jag har nu skapat 2 klasser som heter Skeleton och Spider som ärver från Character. Nu vill jag när jag kör "spel-loopen" att den ska skapa random objekt från någon av dessa klasser. Jag kan välja t.ex. "Spider monster = new Spider();" men i detta fallet skapas endast objektet spider. Nedan kommer koden från mina 3 klasser.

[code]

namespace RPG
{
class Character
{
public string Name;
public bool isAlive:

public Character()
{
}
}

class Spider : Character
{
public Spider()
{
base.Name = "Spider";
base.isAlive = true;
}
}

class Skeleton : Character
{
public Skeleton()
{
base.Name ="Spider";
base.isAlive = true;
}
}

}

Permalänk
Medlem

Du kan ju använda Character monster = new Spider(); så länge Spider ärver av Character, till exempel. Sen för att välja vilket monster som ska skapas kan du ju slumpa ett heltal istället och sen med hjälp av en switch-case sats skapa ett objekt beroende på vilket tal som slumpas fram. Kan eventuellt vara en bra idé att kika på enums också, vilket skulle kunna göra det lite snyggare. Kan ju dra ett snabbt exempel,

enum MonsterType { Skeleton, Spider, } int random = rand.Next(0, <antal typer - 1> (= 1)); switch (random) { case (int)MonsterType.Skeleton: Character monster = new Skeleton(); //lägg till i lista eller dylikt här break; case (int)MonsterType.Spider: Character monster = new Spider(); //kod break; }

(Lite vid sidan om borde du kanske fundera på att ändra variablerna från public till protected också)

Permalänk
Medlem

Ok, så enum eller random är i princip enda alternativet för att välja en random class?
Antar att det får bli någon av de alternativen

Permalänk
Medlem

Enumen är ju bara för att "namnge" siffror, iaf i detta fallet, går ju självklart att göra mer avancerade Enums som innehåller fler properties samt metoder. Så istället för case 1, case 2, case 3, kommer d stå case SPIDER , case DRAGON , case WHATEVER så det blir lätt att läsa, det har inget med slumpgenerationen att göra. Rand är väl det vettigaste om du vill ha ett slumpat heltal så, finns ju andra sätt att slumpa på men varför lixom ^^. Är väl mer om du ska göra lite mer avancerad logik kring slumpandet, så det blir flera av en viss fiende eller dylikt lycka till ^^

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |