Forum
Test titel - / * ! " # ¤ % & / ( ) = nr 2
1
kan jeg åbne denne tråd + noget andet
0
Test titel - / * ! " # ¤ % & / ( ) =
0
Test 3 marts
0
Test tråd 2 tæller svar
0
Tråd 2 med billedee
1
kan denne tråd tælle svar
2
Test tråd med views
0
Test tråd ikke skjult
1
S: Test 2345
0
Test tråd context pool
3
med billeder
0
Test Artikel
0
test overskrift
0
Tråd med billede
1
test nyhed
2
Test tråd 2 til emails
10
test
0
Test test
2
Hjemmeserver for 2 personer udaftil
6
Internet problemer
7
MOZA Racing og Automobili Lamborghini Squadra Corse bringer Lamborghini DNA'et til sim racing
4
Kommentarer til dette kort?
56
Thomas tester en nyhed
29
Tester billeder
2
Stop Destroying Videogames (EU underskrift indsaml...
83
Husk at nulstille password for at logge ind
0
Dette er en test artikel
0
HJÆLP oplader til bærbar.
10
Minecraft Java Server problemer
1
Køb & Salg
S: RTX 5080
0
S: geforce
0
S: Test 2004
0
S: Test igen
0
S: Test salg 321
0
S: Test salg 123
0
S: Test salg. gemme billede i index
0
K: Test tråd til ret
0
S: Test salg
0
S: grafikkort
0
K: Thomas test
0
S: Test fra serveren
1
S: Test salg redirect
0
S: Salg med flere billeder
0
S: ASUS Z690
0
S: RTX 3080
0
S: RTX 5080
0
S: Test billeder
0
S: RTX 5090
4
S: Skrig sælges
0
Hol.dk's Uofficielle White/Black liste V3
2067
K: RTX 6090
2
S: Test tråd
0
S: vman bruger
4
S: Dell Monitor G2524H
0
S: Dell Monitor G2524H
0
V: PowerColor AX7990 6GBD5
11
V: b650m, 7600, 32GB D5, 6650xt, 1TB SSD
4
S: Alienware AW2723DF
4
K: intel 12-14 gen bundle, evt pc uden gpu
2
Forum
Test titel - / * ! " # ¤ % & / ( ) = nr 2
1
kan jeg åbne denne tråd + noget andet
0
Test titel - / * ! " # ¤ % & / ( ) =
0
Test 3 marts
0
Test tråd 2 tæller svar
0
Tråd 2 med billedee
1
kan denne tråd tælle svar
2
Test tråd med views
0
Test tråd ikke skjult
1
S: Test 2345
0
Test tråd context pool
3
med billeder
0
Test Artikel
0
test overskrift
0
Tråd med billede
1
test nyhed
2
Test tråd 2 til emails
10
test
0
Test test
2
Hjemmeserver for 2 personer udaftil
6
Internet problemer
7
MOZA Racing og Automobili Lamborghini Squadra Corse bringer Lamborghini DNA'et til sim racing
4
Kommentarer til dette kort?
56
Thomas tester en nyhed
29
Tester billeder
2
Stop Destroying Videogames (EU underskrift indsaml...
83
Husk at nulstille password for at logge ind
0
Dette er en test artikel
0
HJÆLP oplader til bærbar.
10
Minecraft Java Server problemer
1
Køb & Salg
S: RTX 5080
0
S: geforce
0
S: Test 2004
0
S: Test igen
0
S: Test salg 321
0
S: Test salg 123
0
S: Test salg. gemme billede i index
0
K: Test tråd til ret
0
S: Test salg
0
S: grafikkort
0
K: Thomas test
0
S: Test fra serveren
1
S: Test salg redirect
0
S: Salg med flere billeder
0
S: ASUS Z690
0
S: RTX 3080
0
S: RTX 5080
0
S: Test billeder
0
S: RTX 5090
4
S: Skrig sælges
0
Hol.dk's Uofficielle White/Black liste V3
2067
K: RTX 6090
2
S: Test tråd
0
S: vman bruger
4
S: Dell Monitor G2524H
0
S: Dell Monitor G2524H
0
V: PowerColor AX7990 6GBD5
11
V: b650m, 7600, 32GB D5, 6650xt, 1TB SSD
4
S: Alienware AW2723DF
4
K: intel 12-14 gen bundle, evt pc uden gpu
2
- Denne tråd er over 6 måneder gammel
Er du sikker på, at du har noget relevant at tilføje?
C# spil - random angreb + tekst samt mere
Af NoName27 Ny på siden
hey hol
jeg er godt igang med et tekst figting game i CMD i C# men jeg har lidt problemer pt.
Jeg har 4 characters, som skal angribe hinanden randomly samt der skal komme en tekst med.
jeg har prøvet lidt af hver men kan ikke få det til at fungerer, mit seneste forsøg ser sådan ud: (det er kun et eksempel med 2 characters)
http://puu.sh/g3AR9/82254eb0c5.PNG
men den vil ikke tage i mod min attack kommando
cThraceSpartacus.Attack(cGualCrixus) er min attack kommando, som skal med samt tekst.
alle characters skal altså have en chance for at angribe de 3 andre characters.
en anden ting er at når 1 character er nået ned på 0 hp, så skal man ikke kunne angribe ham, så det nu kun er 3 mod hinanden, når den næste så dør, så er det 2 mod i hinanden og til sidst vinderen.
håber i forstår hvad jeg mener her og tak på forhånd :)
p.s jeg er ny til programmering, bare lige så i ved det ^^
edit: jeg har fået lavet et lille spil men det er kun med 2 characters.
jeg er godt igang med et tekst figting game i CMD i C# men jeg har lidt problemer pt.
Jeg har 4 characters, som skal angribe hinanden randomly samt der skal komme en tekst med.
jeg har prøvet lidt af hver men kan ikke få det til at fungerer, mit seneste forsøg ser sådan ud: (det er kun et eksempel med 2 characters)
http://puu.sh/g3AR9/82254eb0c5.PNG
men den vil ikke tage i mod min attack kommando
cThraceSpartacus.Attack(cGualCrixus) er min attack kommando, som skal med samt tekst.
alle characters skal altså have en chance for at angribe de 3 andre characters.
en anden ting er at når 1 character er nået ned på 0 hp, så skal man ikke kunne angribe ham, så det nu kun er 3 mod hinanden, når den næste så dør, så er det 2 mod i hinanden og til sidst vinderen.
håber i forstår hvad jeg mener her og tak på forhånd :)
p.s jeg er ny til programmering, bare lige så i ved det ^^
edit: jeg har fået lavet et lille spil men det er kun med 2 characters.
Start med at flytte din random uden for loopet, ellers kan du ikke regne med at det er særligt random.
For det andet skal der {} rundt om de linier kode der er en del af et if statement, så længe der er tale om mere end 1 linie kode
For det andet skal der {} rundt om de linier kode der er en del af et if statement, så længe der er tale om mere end 1 linie kode
Du skal ikke lave en ny tilfældigtalsgenerator i hvert gennemløb.
Så flyt Random generator erklæringen ud af løkken.
Det er jo en stump grafik, du linker til. Du skal give os kildekoden som tekst.
Umiddelbart kan det, du viser os, slet ikke kompilere.
Det er en god ide altid at bruge krøllede parenteser i if...else
Så flyt Random generator erklæringen ud af løkken.
Det er jo en stump grafik, du linker til. Du skal give os kildekoden som tekst.
Umiddelbart kan det, du viser os, slet ikke kompilere.
Det er en god ide altid at bruge krøllede parenteser i if...else
Først og fremmest, { } { }, de mangler, sæt dem ind (din if)
[CODE]if(noget) {Ting i din; if sætning;}else{Ting; i din else;}[/CODE]
Du kan godt lave en if else uden, men så må hver af dem KUN indeholde en line (et ;)
Så en god regl er altid at sætte dem ind, medmindre du har en god grund.
Der efter, du er klar over at Random.Next(i) betyder at den ved første "gennemløb" kan være mellem 0 og 1, mens den ved sidste gennemløb er 0 til 50, det vil sige at chancen bliver mindre og mindre for at "spartacus" kan angribe og chancen for at "crixus" bliver mærkant større (49 til 1 i sidste gennemløb)?
[CODE]if(noget) {Ting i din; if sætning;}else{Ting; i din else;}[/CODE]
Du kan godt lave en if else uden, men så må hver af dem KUN indeholde en line (et ;)
Så en god regl er altid at sætte dem ind, medmindre du har en god grund.
Der efter, du er klar over at Random.Next(i) betyder at den ved første "gennemløb" kan være mellem 0 og 1, mens den ved sidste gennemløb er 0 til 50, det vil sige at chancen bliver mindre og mindre for at "spartacus" kan angribe og chancen for at "crixus" bliver mærkant større (49 til 1 i sidste gennemløb)?
#1 og #2 det med {} var en fejl men den er rettet nu og random er smidt uden for løkken
#3 det med random.next vidste jeg ikke nej, planen er at chancen skal være lige så stor alle gangene selvfølgelig, så hvordan skal den så laves? :)
#3 det med random.next vidste jeg ikke nej, planen er at chancen skal være lige så stor alle gangene selvfølgelig, så hvordan skal den så laves? :)
#4 - Hvis du bare skifter i ud med 1, altså random.Next(1), så bør den altid spytte 1 eller 0 ud, og så har du 50/50% chance.
der er flere ting der kunne være lavet smartere:
1)
Smid "Random random = new Random();" ud af dit for-loop..
Problemet er at du laver et nyt random-objekt hver gang.. måden random er bygget op på gør at den udregning den laver der giver et "tilfældigt" tal, som bliver baseret på et seed. Hvis du genbruger random objectet så bruger den samme seed (seedet bliver i første gang lavet baseret på klokken og en masse andet).. Hvis det ikke giver mening så læs evt op på Random :)
Så ved at bruge samme Random-object, så sørger du for at den ikke får samme tal
2)
hvorfor bruger du random.next(i)?
random.next(i) giver et tilfældigt tal mellem 0 (inklusivt) og i (ekslusivt)..
Så som du har det nu sker random.next(i) som følgende:
første call = tal mellem 0 og -1
andet call = tal mellem 0 og 0
tredje = 0 og 1
osv..
derfor bliver chancen mindre og mindre og opfører sig antageligvis anderledes end du forventer..
3)
du mangler brackets ved både if/else statements:
lige nu sker det som følger:
hvis random.next(i) == 0 så skriver den til consolen.
uanset hvad random.next(i) er, så angriber den.
(og det samme sker ved 'else')
skriv istedet:
[CODE]
if(random.next(i) == 0)
{
Console.WriteLine("blablabal");
guy.attack(otherguy);
}
[/CODE]
osv (med de rigtige navne osv :)
Also - brug pastebin eller lignende en anden gang :) så kan du smide teksten ind, istedet for et billede deraf - det gør det lettere at overskue :)
EDIT: too late
1)
Smid "Random random = new Random();" ud af dit for-loop..
Problemet er at du laver et nyt random-objekt hver gang.. måden random er bygget op på gør at den udregning den laver der giver et "tilfældigt" tal, som bliver baseret på et seed. Hvis du genbruger random objectet så bruger den samme seed (seedet bliver i første gang lavet baseret på klokken og en masse andet).. Hvis det ikke giver mening så læs evt op på Random :)
Så ved at bruge samme Random-object, så sørger du for at den ikke får samme tal
2)
hvorfor bruger du random.next(i)?
random.next(i) giver et tilfældigt tal mellem 0 (inklusivt) og i (ekslusivt)..
Så som du har det nu sker random.next(i) som følgende:
første call = tal mellem 0 og -1
andet call = tal mellem 0 og 0
tredje = 0 og 1
osv..
derfor bliver chancen mindre og mindre og opfører sig antageligvis anderledes end du forventer..
3)
du mangler brackets ved både if/else statements:
lige nu sker det som følger:
hvis random.next(i) == 0 så skriver den til consolen.
uanset hvad random.next(i) er, så angriber den.
(og det samme sker ved 'else')
skriv istedet:
[CODE]
if(random.next(i) == 0)
{
Console.WriteLine("blablabal");
guy.attack(otherguy);
}
[/CODE]
osv (med de rigtige navne osv :)
Also - brug pastebin eller lignende en anden gang :) så kan du smide teksten ind, istedet for et billede deraf - det gør det lettere at overskue :)
EDIT: too late
#5 fungerer ikke, den første sætning "if" har nu 100% chance
#6 jeg takker for dit uddybende svar :)
siden random.next ikke kan bruges, hvad skal jeg så have fat i?
#6 jeg takker for dit uddybende svar :)
siden random.next ikke kan bruges, hvad skal jeg så have fat i?
#7 - Ah, upper bound er eksklusiv i Random.Next, skriver #6, så skal det jo bare være random.Next(2).
#8 super det fungerer nu :)
problemet er bare at der bliver ikke angrebet, det er kun teksten med "spartacus attacks crixus" osv, som dukker op og ikke at de skader hinanden.
inden jeg lavede random, så skadede de hinanden.
vil i have hele min kode?
problemet er bare at der bliver ikke angrebet, det er kun teksten med "spartacus attacks crixus" osv, som dukker op og ikke at de skader hinanden.
inden jeg lavede random, så skadede de hinanden.
vil i have hele min kode?
Sæt er breakpoint ved din if, og step igennem, og se om den rent faktisk får kaldt din attack metode, eller hvad der sker.
Og smid eventuelt din kode på http://pastebin.com/ - så er det nemmere for os at følge med.
Og smid eventuelt din kode på http://pastebin.com/ - så er det nemmere for os at følge med.
#10 den bliver ikke hentet :)
jeg har lige prøvet og smidt det i pastebin:
http://pastebin.com/cvRaW15V
virker det?
jeg har lige prøvet og smidt det i pastebin:
http://pastebin.com/cvRaW15V
virker det?
#11 du kan optimere din kode en masse med Lists/arrays og lignende :)
Hvis du har lyst til noget mere dybde gående hjælp så kan jeg hjælpe over skype eller lignende.. :)
ydermere kan jeg meget anbefale Heads First C# - den er rimelig humoristisk indgangsvinkel til C#, og er derfor rimelig 'let' selvom der er 800 sider ish... er lige blevet færdig med den, efter at have brugt C# i 2 år på "noob" niveau - mange ting jeg fik lært af den. klart at anbefale :)
Et 'trick' er at smide debugging text ind, det er en god måde at forstå hvordan din kode fungerer.. så jeg ville evt ændre din Attack() class til:
[CODE]public void Attack(Character EnemyCharacter)
{
double DamageDone = this.attack * (1-(EnemyCharacter.armor / 200));
int randNum = dodgeRandom.Next(1, 101);
Console.WriteLine(this.name + " attacked " +EnemyCharacter.name + " - randNum = "+randNum+" & and have a dogde score of" +EnemyCharacter.dodge + " with a dmg of="+DamageDone);
if (randNum > EnemyCharacter.dodge)
{
EnemyCharacter.health = EnemyCharacter.health - DamageDone;
}
}[/CODE]
Så kan du også følge med i hvad der sker - men breakpoints og så at step igennem koden er også en god løsning :)
Melder koden fejl? prøvede du at step igennem koden?
Ydermere er der en masse 'gode' tommelfinger regler mht. navngivning osv som er godt at få på rygraden i starten.. De er ikke 'lovpligtige' men gør koden lettere og læse for dig og andre :) Igen - Overvej at kig på Heads First C#, eller en lign bog, og så bare kom igennem det, selvom det virker tungt osv! :)
Hvis du har lyst til noget mere dybde gående hjælp så kan jeg hjælpe over skype eller lignende.. :)
ydermere kan jeg meget anbefale Heads First C# - den er rimelig humoristisk indgangsvinkel til C#, og er derfor rimelig 'let' selvom der er 800 sider ish... er lige blevet færdig med den, efter at have brugt C# i 2 år på "noob" niveau - mange ting jeg fik lært af den. klart at anbefale :)
Et 'trick' er at smide debugging text ind, det er en god måde at forstå hvordan din kode fungerer.. så jeg ville evt ændre din Attack() class til:
[CODE]public void Attack(Character EnemyCharacter)
{
double DamageDone = this.attack * (1-(EnemyCharacter.armor / 200));
int randNum = dodgeRandom.Next(1, 101);
Console.WriteLine(this.name + " attacked " +EnemyCharacter.name + " - randNum = "+randNum+" & and have a dogde score of" +EnemyCharacter.dodge + " with a dmg of="+DamageDone);
if (randNum > EnemyCharacter.dodge)
{
EnemyCharacter.health = EnemyCharacter.health - DamageDone;
}
}[/CODE]
Så kan du også følge med i hvad der sker - men breakpoints og så at step igennem koden er også en god løsning :)
Melder koden fejl? prøvede du at step igennem koden?
Ydermere er der en masse 'gode' tommelfinger regler mht. navngivning osv som er godt at få på rygraden i starten.. De er ikke 'lovpligtige' men gør koden lettere og læse for dig og andre :) Igen - Overvej at kig på Heads First C#, eller en lign bog, og så bare kom igennem det, selvom det virker tungt osv! :)
#12 jeg vil nok kigge nærmere på heads first C# :)
koden melder ingen fejl nej.
billede af hver der sker:
http://puu.sh/g59vG/ce8311555a.PNG
den skal gerne opdater med statsene, som du kan se i starten men det er ligesom at min angreb kode ikke bliver hentet
koden melder ingen fejl nej.
billede af hver der sker:
http://puu.sh/g59vG/ce8311555a.PNG
den skal gerne opdater med statsene, som du kan se i starten men det er ligesom at min angreb kode ikke bliver hentet
jeg fik det til at virke med switch/case :D
http://pastebin.com/BtnfkJBX
men nu har jeg et nyt problem, hvordan tilføjer jeg stats til de 2 sidste characters "gannicus" og "oenomaus", da jeg jo har brugt if og else ved "spartacus" og "crixus" :)
http://pastebin.com/BtnfkJBX
men nu har jeg et nyt problem, hvordan tilføjer jeg stats til de 2 sidste characters "gannicus" og "oenomaus", da jeg jo har brugt if og else ved "spartacus" og "crixus" :)
14#
If(...)
else if (...)
...
else
Men du burde måske overveje, at lave en klasse "Homeland" som indeholder stats. Så kunne Character tage Homeland og så få dens attributter, så slap du for en masse if else for hvert Homeland.
If(...)
else if (...)
...
else
Men du burde måske overveje, at lave en klasse "Homeland" som indeholder stats. Så kunne Character tage Homeland og så få dens attributter, så slap du for en masse if else for hvert Homeland.
Du har stadig Random generatoren inde i en while løkke. Den skal ud i yderste niveau.
#16 ja sorry, glemte det helt men jeg flytter den lige :).
#15 super, jeg roder lige videre med det i morgen! :)
#15 super, jeg roder lige videre med det i morgen! :)
Jeg har nu fået lavet en class stats til class character (prøvet i hvert fald) men problemet er nu at den stadig kun viser spartacus og crixus men nu får ingen af dem damage
http://pastebin.com/nJseXmm9
nogle gode ideer? :)
http://pastebin.com/nJseXmm9
nogle gode ideer? :)
..
Gæsten
#20
Gæst
21-02-2015 17:11
Hvor meget af det du har nu har du fået hjælp til at lave?
Jeg tror du bliver nødt til at læse en eller anden C# for kids da det mest af alt ligner du bare prøver at indsætte tilfældige liniers kode.
Jeg tror du bliver nødt til at læse en eller anden C# for kids da det mest af alt ligner du bare prøver at indsætte tilfældige liniers kode.
#20 dejlig brugbar kommentar fra en gæst men det er jo typisk efterhånden ^^
din stats klasse skal ikke have en Main. Initialiser dine characters i din Program.Main
#22 har fået det til at virke nu, jeg takker for hjælpen :)