Permalänk
Medlem

Hängagubbe - C#

Tjenare,
Ska göra ett hänga gubbe program i C#(Microsoft Visual Studios 2008, Forms).
Från början ska det gömda ordet vara dolt med '_' och när man gissar rätt så ska den bytas ut mot rätt bokstav.

Jag tänkte först göra en dubbel for-loop. Exempel nedan:
Jag kommer hit ifall jag vet att det hemliga ordet innehåller min gissade bokstav.
Jag lägger sedan in den rätt gissade bokstaven i en sträng vid namn rättGissade.
outSvar är det som sen ska printas i själva designen.

public string gissadeRätt(){
for(int i = 0; i < rättGissade.Length; i++){
for(int k = =; k < hemligaOrdet.Length; k++){
if(rättGissade[i] == hemligaOrdet[k]){
outSvar += rättGissade[i];
else
outSvar += "_";
}
}
}
return outSvar;
}

Detta trodde ju jag att det skulle funka men den skriver ut för många tecken och ifall jag gissar rätt 2 gånger kommer det andra tecknet precis efter det första.
Det är säkert lätt löst på nåt bra sätt men jag kommer inte på hur och skulle uppskatta hjälp!
Mvh, Fredrik

Permalänk
Medlem

känns som din kod saknar lite tecken osv, lr så har du inte copy/pastat ordentligt:P
hur som helst, detta borde funka:

loopa igenom hemliga ordet
-bool matcha bokstav=false
-loopa igenom array av "rättabokstäver"
--om bokstav i hemliga ordet matchar en av bokstäverna man gissat, sätt boolen till true
-
-om bool för matchad bokstav är satt, konktanera bokstav från hemliga ord, annars konkaterna "_".
slut på loop 1

skrev lite halvkass pseudokod så du får jobba lite;)

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 |

Permalänk
Medlem

Jo jag skrev det snabbt för hand och missade antagligen någonting, men tack så mycket för hjälpen!
Och det är mycket bättre med pseudokod än ett färdigt program rakt i näven, annars lär man sig inget!

Permalänk

Använd engelska ord för alla variabler, blir bättre på många sätt.

Börja med en if(correctWord.Contains(guessedChar)) eller dyl, gör sedan en funktion som tar ut alla index of bokstaven

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Nu är det ju så att jag började läsa Programmering A bara igår eller förrgår och det första vi får läsa om är Pseudokod, så jag gjorde den här åt dig. ^^ Hoppas det går att läsa osv eftersom jag är ganska ny på detta.

Eftersom klockan är 4 på morgon orkade jag inte tänka tillräckligt mycket för att lägga in så att du förlora efter X antal försök. La inte heller in "Add letter to word" för den skulle blivit så stor och inte fått plats på ett printscreen.

Visa signatur

AMD Ryzen 9 3900x - MSI Tomahawk x570 Wi-Fi - 32GB Corsair Vengence @ 3200Mhz - MSI GeForce GTX 1070 8GB Gaming X - Corsair Hydro H100x - Några HDD's