Programmerings uppgift C# - HJÄLP!

Permalänk

Programmerings uppgift C# - HJÄLP!

Tjenare allihopa,

Jag ska börja på en uppgift nu som jag har i programmering, dock så har jag ingen anning om hur jag ska börja på den..

Så här ska det se ut i konsollfönstret:

Jag (datorn) tänker på ett tal mellan 1 och 100.
Försök att gissa vilket!
55
Nej, inte 55!
Du har gjort 1 försök.
Gissa igen!
Försök med ett högre tal...
88
Nej, inte 88!
Du har gjort 2 försök.
Gissa igen!
Försök med ett lägre tal…
Åttiotre
Ogiltig gissning!
Du har gjort 2 giltiga försök.
Ange bara siffror.
Gissa igen!
83
Ja, det är rätt!
Talet 83 tänkte jag på hela tiden.
Du klarade det på 3 försök.

Någon som vet? Om någon kunde hjälpa mig vore jag väldig tacksam!

Permalänk
Medlem

http://www.csharpskolan.se brukar kunna lösa det mesta när man är nybörjare

Permalänk
Medlem
Skrivet av Ultranoob:

Tjenare allihopa,

Jag ska börja på en uppgift nu som jag har i programmering, dock så har jag ingen anning om hur jag ska börja på den..

Så här ska det se ut i konsollfönstret:

Jag (datorn) tänker på ett tal mellan 1 och 100.
Försök att gissa vilket!
55
Nej, inte 55!
Du har gjort 1 försök.
Gissa igen!
Försök med ett högre tal...
88
Nej, inte 88!
Du har gjort 2 försök.
Gissa igen!
Försök med ett lägre tal…
Åttiotre
Ogiltig gissning!
Du har gjort 2 giltiga försök.
Ange bara siffror.
Gissa igen!
83
Ja, det är rätt!
Talet 83 tänkte jag på hela tiden.
Du klarade det på 3 försök.

Någon som vet? Om någon kunde hjälpa mig vore jag väldig tacksam!

Du har ju hela algoritmen där egentligen men ok:

Slumpa fram ett tal mellan 1-100

Låt användaren mata in ett tal (i giltligt intervall)

Plussa på en räknare som håller ordning på hur många gånger användaren gissat

Jämför det användaren matade in med hemliga talet

Om det var rätt, skriv ut det
Om det var för lågt, skriv det
Om det var för högt, skriv det

Anropa din gissningsfunktion igen.

De funktioner jag hade använt är nog:

MakeGuess - läser in en sträng, kollar att det är i rätt intervall och gör om till en int och returnerar den.

CompareWithSecretNumber - jämför talen, skriver ut om det var rätt, för högt/lågt

Permalänk

tack för hjälpen, men exakt hur skriver man det i "programspråk"?

Permalänk
Medlem

Har du gjort några övningar/program tidigare? Vissa saker i denna uppgiften bör du ju klara i sådant fall. Gör det du kan och återkom med det du har problem med

Permalänk
Medlem
Skrivet av Ultranoob:

tack för hjälpen, men exakt hur skriver man det i "programspråk"?

Det fungerar inte så här.
Det som fungerar är att du visar hur långt du kommit och frågar specifika frågor.
"Gör min hemläxa åt mig"-trådar riskerar att låsas och innan dess får de en dålig stämning.

När du beskriver ditt problem och använder "programspråk" så genomskådar vi dina kunskaper till ca 0 och då vet vi att det enda du är ute efter är att vi ska ge dig hela lösningen.

Så, upp till bevis. Hur långt har du kommit?

Permalänk
Medlem

Om du inte vet vart du ska börja bör du antingen kolla tillbaka på gamla uppgifter, och se om dessa kan ge dig en fingervisning, ta hjälp av kurslitteraturen, eller rådfråga med din lärare. Jag har väldigt svårt att se att det där skulle vara din första uppgift, och därmed bör du iallafall kunna börja skriva de delar du kan, så kan vi hjälpa dig korrigera de delar du missat.

Visa signatur

He who fights with monsters should look to it that he himself does not become a monster. And if you gaze long into an abyss, the abyss also gazes into you.

Permalänk

Jag skrev detta programmet på min miniräknare nyligen i skolan. Jag använde mig av en for-loop med 3 if-satser.

Visa signatur

||PC: Asus M5A78L LE||Amd fx 8320 ||Asus DirectCUII TOP R9 280X||Antec DF-35||Corsair TX650w||500 GB WD caviar blue 7200rpm HDD||Samsung 830 120 GB SSD ||8 GB DDR3|| TABLET: Nexus 7

Permalänk

I javascript skulle for loppen bli såhär:

for(var i=0; i<=7 ; i++){
var guess = prompt("Guess the number");

if(guess<answear){
alert("Too low!");
}
if(guess>answear){
alert("Too high!");
}
if(guess==answear){
alert("You won!");
}
}
Nu är det upp till dig att förstå koden och konvertera den till C#.
Variabeln answear tas fram genom en Random int funktion som finns färdig i programmeringsspråket.

Visa signatur

||PC: Asus M5A78L LE||Amd fx 8320 ||Asus DirectCUII TOP R9 280X||Antec DF-35||Corsair TX650w||500 GB WD caviar blue 7200rpm HDD||Samsung 830 120 GB SSD ||8 GB DDR3|| TABLET: Nexus 7

Permalänk
Medlem

Om du inte kan implementera programmet efter att ha fått min algoritm så kanske du inte ska syssla med programmering...

BTW, tyckte väl att jag kände igen uppgiften... https://coursepress.lnu.se/kurs/inledande-programmering-med-c...
Använd gärna min lösning, hoppas Mats känner igen den

Permalänk
Legendarisk

* Hjälp gärna till med resonemanget, men undvik att posta kompletta lösningar på skoluppgifter även om ni kan. Tråd rensad. *

Visa signatur

Abstractions all the way down.

Permalänk
Medlem

Här är en lösning för javascript, sen får du porta den till C# själv. Lycka till!

var answer = ~~(Math.random()* 100), trys = 1; function tryIt(guess){ if(guess === answer) { alert('Du gissade rätt! Och det tog dig ' + trys + ' försök'); return; } else if ( guess < answer) { alert('Du gissade för lågt, försök igen'); } else{ alert('Du gissade för högt, försök igen'); } trys++; tryIt(~~prompt("Gissa talet!")); } tryIt(~~prompt("Gissa talet!"));

Permalänk
Avstängd

@Biberu, min var inte en full lösning, då den var skriven i javascript samt innehöll bara hur man kan slippa ifsatser

edit: Jag lägger till den här igen, du får väll ta bort den om du tycker den avslöjar för mycket, men som sagt den visar mer hur du kan slippa ifsatser med en form av visitor pattern

http://jsfiddle.net/zmUK8/2/

this.outcomes = { tooSmall: { check: function(number, guess) { return guess < number; }, text: "Försök med ett högre tal..." }, tooLarge: { check: function(number, guess) { return guess > number; }, text: "Försök med ett lägre tal…" }, correct: { check: function(number, guess) { return guess === number; }, text: "Ja, det är rätt!" } };

Visa signatur
Permalänk
Skrivet av Ultranoob:

tack för hjälpen, men exakt hur skriver man det i "programspråk"?

Fråga läraren Tycker ni borde ha lärt er om "if-satser" om ni får en sådan här uppgift.

Använd dig av if för att kolla hur talet stämmer överens med ditt hemliga tal. Här är ett exempel för att kolla om den är högre än det talet:

if(userNumber > secretNumber) { System.Console.WriteLine("Du gissade för högt, försök igen"); }

Resten av tänket tyckte jag "joss" förklarade bra.

Visa signatur

| MacBook Pro 2016 Touch Bar 15" |

| 16GB Ram DDR4 2133 MHz | i5 6500k | RX 480 4GB | ASUS Z170-A | Fractal Design XL | Corsair TX650W |

CITERA FÖR SVAR