En armet tyveknægt - Random

Tags:    c#

<< < 12 > >>
Jeg fik idag en opgave for på Tekniskskole.
Jeg skulle udrette en "En armet tyveknægt"
Tingene jeg skal bruge er følgende:
4 labels
- 3 til Random-tal, 1 til ens point.
én knap

Jeg har tyvsjålet noget af Mathias's kode fra hans forum indlæg om et spil i C#

Følgende kode:

Fold kodeboks ind/udKode 


Nu forstår jeg så ikke at den viser det samme tal i ALLE 3 labels hver gang jeg trykker på knappen.
Det var faktisk spørgsmålet.



Problemet er løst.

Fold kodeboks ind/udKode 


Nu kommer det andet spørgsmål så.
Hvorfor får jeg en debug fejl ved dette

Fold kodeboks ind/udKode 


Fejlmeddelse:
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 16.04.2009 01:36 af Bruger #9780
Er ikke helt sikker på C# men debug fejlen kommer jo fordi den ikke kan lave int om til en sand/falsk værdi.

Er du sikker på at '=' sammenligner værdien, og ikke bare assigner? C# stammer jo fra C og Java som bruger '==' for sammenligningen, og ikke VB som kun bruger en?

skal det så ikke være:

if ( a == b == c) ?



Jeg har prøvet == dette virker heller ikke.

Fejlmeddelse ved == :
Fold kodeboks ind/udKode 




Prøv at rette:

Fold kodeboks ind/udCSharp kode 


til:

Fold kodeboks ind/udCSharp kode 


Men umiddelbart har du også byttet om på teksterne? Hvis tallene er forskellige, så har man fundet det rigtige tal?

Giver da ikke mening?

Lover ikke det virker, C# er ikke min stærke side, og har ikke tid til at teste.

M.v.h. Johnny



Det var min fejl.
Det skal jeg nok rette.

Johnny, når jeg gør som du siger, kommer dette :
Fold kodeboks ind/udKode 




Så prøv:

Fold kodeboks ind/udCSharp kode 


Testet og virker i Visual C# 2008 Express

M.v.h. Johnny



Du skal lige i øvrigt være opmærksom på at hvis du laver et nyt Random-objekt hver gang du vil have et tilfældigt tal i den kode så får du ikke et tilfældigt tal.

Du skal lave ét Random-objekt i din klasse og så bare kalde Next() på den hver gang ved dem alle sammen.



Tak Jonas.
Som du kan se, så har jeg fundet det problem.
Det giver jo også mening, så det var let løst :)




Ved ikke om du selv har fundet ud af det ved at læse de andre indlæg, men så vidt jeg kan se, står det ikke skrevet nogle steder.

Grunden til den ikke vil compile:
Fold kodeboks ind/udKode 


er at den først og tjekker om a er det samme til som b, det giver enten sand aller falsk, lad os sige at det blev falsk i dette eksempel, så nu står der:

if(false == c)

Så prøver den at samligne false med c hvilket den ikke kan, da false er en bool og c er en int.

.:Edit:.
Skal lige siges at jeg ikke ved noget om hvordan C# compileren fungere, så det er kan ligeså godt være at den tjekker om b == c først, men det er alligevel ret ligemeget i dette eksempel.



Indlæg senest redigeret d. 16.04.2009 16:24 af Bruger #13669
Hvad kan jeg så gøre ? :)



<< < 12 > >>
t