Archief - [PROG][C#] [C#]Hangman

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

jeron

Legacy Member
Hallo.
Als eindwerk voor programmeren zou ik het programma'tje Hangman moeten maken in C# ( Visual C# 2005 ). Na enig probeersel zit ik helemaal vast.
Heb dus vier of vijf verschillende forms. Het hoofdscherm, nieuw spel, afsluiten, woordenlijst bewerken en opties spel ( beginner, gevorderde,.. ). Nu, het switchen tussen verschillende forms is geen probleem, afsluiten ook niet en het visuele aspect is ook oké. Het enige probleem is dat ik later overgeschakelt ben naar deze richting en een groot deel aan basis mis..

Ik zou dus heel graag weten hoe ik de gegeven woorden moet koppelen in het programma. Ik heb dus een .txt file, en die woorden moet ik gebruiken, het moet ook mogelijk zijn om achteraf nog nieuwe woorden toe te voegen.

Ik had zoiets voor de woorden:

namespace GalgjeFinal
{
class RandomWordManager
{
private Random RandomPick;
private string[] words = new string[]
{
"spanje",
"china",
"tennis",

Maar op die manier kan ik achteraf geen nieuwe woorden toevoegen?
Nu, die woorden zijn ook gebonden aan een bepaalde hint, ik heb geen flauw idee hoe ik dit moet klaarspelen.. :crazy:

Als iemand dit kan uitleggen.. :love:

Bedankt :)

Recipe4hate

Legacy Member
Je zou 2 stringarrays kunnen maken. 1 met de woorden en 1 met de hints. Als je dan werkt met een indexnummer, is het toch niet moeilijk om de link te leggen.
Woorden toevoegen gebeurt zoals je doet bij het aanmaken van de string. Je kan ook de woorden rechtstreeks uit je txt-bestand lezen en het aantal woorden dat hierin zit tellen en zo de lengte van je array bepalen. Hoe dit werkt in c# weet ik niet.

Tyfius

Legacy Member
Je kan die woorden ook in een text bestand opslaan. Bijvoorbeeld iets als:
Code:
woord1,hint1
woord2,hint2
Op die manier kan je achteraf makkelijk extra woorden toevoegen en hoef jij bij het openen van je applicatie alleen maar deze file in te lezen en beiden, zoals comment #2 al beschreef, in een list steken.

jeron

Legacy Member
ok, woorden in hints staan in een .txt
die .txt moet ik in 'bin' (debug en release?) mapke zetten?
en vervolgens zou da dus moeten laden als ik op debug klik.
zou er iemand concreet voorbeeld kunnen geven hoe woord en hint aan elkaar te linken, aub?
dus
woord1,hint1; zoals hierboven vermeld wordt.
Dit moet ik dan aanmaken in een klasse? Met bepaalde code? :oink:
Bedankt voor de reacties!

Yngwie

Legacy Member
maak een klasse Woord, met 2 velden, String woord en String hint en schrijf getters/setters getWoord, setWoord,getHint,setHint.

in plaats van dan een array van Strings bij te houden, hou je een array van Woord instanties bij.

zo zou ik het toch doen in java, men c++ kennis zit wat verder weg maar voor basic stuff als dit maakt de taal niveel uit

Cycloon

Legacy Member
Yngwie zei:
maak een klasse Woord, met 2 velden, String woord en String hint en schrijf getters/setters getWoord, setWoord,getHint,setHint.

in plaats van dan een array van Strings bij te houden, hou je een array van Woord instanties bij.

Zo zou ik het eerlijk gezegd ook doen :) Al kan een 2d array hier ook wel zijn werk doen. Je maakt dus een array, en in die array steek je telkens opnieuw een array van grootte 2 met je woord en hint.

UniKorn

Legacy Member
Gewoon een classe

public class HangManword
{
private string woord;
private string hint;

}

Die beiden exposen via een property. En dan allemaal in een collectie steken, en dan een random op die collectie van 1 tot de count op je collectie.

jeron

Legacy Member
Bedankt voor bovenstaande reacties.
Ben al eindje verder gekomen en net toen ik dacht dat alles zou werken, werkt niets alles zoals het moet.. Ik krijg ook de melding IndexOutOfRangeException.
Ik wil het programma gerust droppen ( Visual C# 2005 ) zodat iemand ( die dat wil ) mij even kan verderhelpen. Wel in PM, voordat er een klasgenootje mee gaat lopen.. :).
Alvast merci!

Krueger

Legacy Member
Je mag het gerust eens doorsturen, maar als je index out of bound exeptie hebt, dan kan je toch eenvoudig achter het probleem komen door te debuggen?

jeron

Legacy Member
Dat probleem is ondertussen opgelost :)
De enige problemen die ik nu nog heb:
Ik zou een hoofdscherm moeten maken met nieuw spel, woordenlijst bewerken, over, .. buttons.
Nu heb ik het spelscherm in Form1 gemaakt, is het mogelijk om bvb. Form2, het hoofdscherm dus, als eerste te openen bij het starten/debuggen?
Voorlopig opent meteen het spelscherm.

Volgende, wanneer het woord geraden is, kiest ie geen nieuw woord, wat dus wel het geval zou moeten zijn..

Voorlopig werken ook de hints nog niet.
Leerkracht zei dat ik hints en woorden in zelfde .txt bestand moet zetten met een '-' tussen woord en hint, + een bepaalde regel in mijn code veranderen zodat het programma weet dat ie bij de '-' moet splitsen.

Krueger, ik PM het later deze avond nog, goeie versie staat op andere computer :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan