Inlägg

Inlägg som nadje28 har skrivit i forumet
Av nadje28

Nu har jag ändrat om lite i mitt program, bytt namn på mina variabler samt lagt till en sak där nere för att få variabeln uppdaterar sig. Men jag har ändå inte fått till det..... Jag fattar inte vart jag ska lägga in den så den uppdaterar sig efter varje gissning...

using System;

namespace Uppgift_03
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Välkommen till spelet, gissa ett tal mellan 1 till 100");//Skriver välkomsttexten först

Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);

Console.WriteLine("Gissa ett tal");
string str = Console.ReadLine();
int gissningar = Int32.Parse(str);

do {

if (gissningar < 100 || gissningar > 0) // Lägger in detta först så att om man gissar utanför 0-100 så blir det ogiltigt tal
{
Console.WriteLine("Du har skrivit in ett ogiltigt tal");
Console.ReadLine();
}

else if (gissningar > slump_tal)

{
Console.WriteLine("För högt, gissa igen!");
Console.ReadLine();
}

else if (gissningar < slump_tal)
{
Console.WriteLine("För lågt, gissa igen!");
Console.ReadLine();
}
gissningar = Int32.Parse(str);// jag testar att lägga in variabeln här så den kör igen dvs att variabeln uppdaterar sig

} while (gissningar != slump_tal);

Console.WriteLine("Grattis du gissade rätt!");// Jag hade lagt denna innanför loopen och har nu lagt den utanför för som jag förstått det så körs detta när det blir rätt för loopen kör så länge det är fel tal
Console.ReadLine();

Av nadje28

Tack allihopa för er input, var tvungen att hämta mina barn från skolan och förskolan så har inte hunnit göra mer än det jag gjort. Jag ska sätta mig och titta på allt ni skrivit sen ta till era råd och se om jag klarar uppgiften :).

Av nadje28

@Daz: Ja, du har säkert rätt, har kraschat mina program riktigt många gånger innan jag fått till det. Har haft två små uppgifter innan denna där jag inte använt mig utav en loop. Detta är min första uppgift med en loop och första gången jag använder en loop. Min lärobok har inte varit till jätte stor hjälp om jag ska vara ärlig. Om Do while har de bara skrivit en sida och gjort två små exempel och inget mer. Vart tvungen att kolla på en massa youtube klipp för att få en bättre inblick på vad do while koden gör. Jag fattar vad skillnaden mellan do while och while är men det känns som att det hade varit lättare för mig som nybörjare att använda mig utav while istället. Jag ska testköra den nu och se vad som händer. Måste medge att jag är rädd att jag gjort fel och kommer känna mig ännu mer korkad :/.

Men tack för allas svar.

Av nadje28

@MickeBoy: Nej!!!! absolut inte. Jag menar mer nu när jag försöker hitta vad jag gjort för fel så har jag inte ändrat det jag skrivit än för vill inte förstöra något i onödan... Vet ju inte ens om jag tänkt rätt eller fel. Jag kommer såklart testköra den innan annars kommer jag ju få ett f om det inte funkar.

Av nadje28

@MickeBoy: Jag testade aldrig det jag skickade... är rädd att allt ska krascha då det tagit mig en himla massa tid att ens komma till där jag är...

Av nadje28

@Jpau94:
Tack jag ändrade namnen på min deklaration och gjorde en if else istället för if. Men jag förstod inte vad du menade med att lägga till en kod i code taggarna.

Tack alla för snabb respons och att ni inte säger att jag är dum för att jag inte riktigt fattar vad jag gjort för fel. Jag uppskattar verkligen er hjälp och att ni lägger ner er tid till att hjälpa mig!

Av nadje28

@perost:

@perost:
Ok, jag tror att jag fattar nu..... Men är säkert fortfarande helt ute haha. Först och främst tack för förklaringen mellan tilldelning och deklaration.

using System;

namespace Uppgift_03
{
class Program
{
static void Main(string[] args)
{

Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);

do {
Console.WriteLine("Välkommen, gissa ett tal mellan 1 till 100");
string str = Console.ReadLine();
int gissningar = Int32.Parse(str);

if (gissningar < slump_tal)
{
Console.WriteLine("För lågt, gissa igen!");
Console.ReadLine();
}

else if (gissningar > slump_tal)
{
Console.WriteLine("För högt, gissa igen!");
Console.ReadLine();
}
else if (gissningar > 100 || gissa < 100)
{
Console.WriteLine("Du gissade ett ogiltigt tal");
Console.ReadLine();
}

else
{
Console.WriteLine("Grattis du gissade rätt!");
Console.ReadLine();
}
} while (gissningar != slump_tal);

Av nadje28

@perost: Eller ska jag flytta in i varje loop? Jag håller på att läsa länken du skickat till mig. Jag inte testat det jag skickat in till dig än för orkar inte krascha hela programmet som jag gjort 7843 gånger under processen... Om något av det jag lagt upp är rätt kan du vara jätte snäll och förklara varför det ska vara så och inte så som jag gjort :). Jag bara väntar på att polletten ska falla ner och jag ska fatta allt men det ser inte så ljust ut just nu haha.

using System;

namespace Uppgift_03
{
class Program
{
static void Main(string[] args)
{

Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);

do {

if (gissa < slump_tal)
{
Console.WriteLine("Välkommen, gissa ett tal mellan 1 till 100");
string str = Console.ReadLine();
int gissa = Int32.Parse(str);
Console.WriteLine("För lågt, gissa igen!");
Console.ReadLine();
}

if (gissa > slump_tal)
{
Console.WriteLine("För högt, gissa igen!");
Console.ReadLine();
}
if (gissa > 100 || gissa < 100)
{
Console.WriteLine("Du gissade ett ogiltigt tal");
Console.ReadLine();
}

else
{
Console.WriteLine("Grattis du gissade rätt!");
Console.ReadLine();
}
} while (gissa != slump_tal);

}

Av nadje28

@perost: Tack för länken, ska absolut kolla in den och hoppas på att den hjälper mig. Ok, så jag är ändå på rätt väg så att säga? behöver bara komma på vart jag ska ändra.... Men om vi nu säger att jag gör det som många nybörjare gör och lägger till ännu fler inläsningar. Tänker jag rätt då genom att jag ska lägga in fler inläsningar inne i villkoren?
Dvs:

using System;

namespace Uppgift_03
{
class Program
{
static void Main(string[] args)
{

Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);

Console.WriteLine("Välkommen, gissa ett tal mellan 1 till 100");
string str = Console.ReadLine();
int gissa = Int32.Parse(str);

do {

if (gissa < slump_tal)
{
Console.WriteLine("För lågt!");
Console.ReadLine();
Console.WriteLine("Gissa igen:");
string str = Console.ReadLine();
int gissa = Int32.Parse(str);

}

if (gissa > slump_tal)
{
Console.WriteLine("För högt!");
Console.ReadLine();
Console.WriteLine("Gissa igen:");
string str = Console.ReadLine();
int gissa = Int32.Parse(str);

}
if (gissa > 100 || gissa < 100)
{
Console.WriteLine("Du gissade ett ogiltigt tal");
Console.ReadLine();
Console.WriteLine("Gissa igen:");
string str = Console.ReadLine();
int gissa = Int32.Parse(str);

}

else
{
Console.WriteLine("Grattis du gissade rätt!");
Console.ReadLine();
}
} while (gissa != slump_tal);

}

Eller är jag helt fel ute???

Av nadje28

@perost: Menar du att jag behöver göra om hela processen jag gjort i början av programmet när jag skrivit ut "välkommen gissa ett tal mellan 1-100"? Åååh känner mig jätte dum att jag inte fattar.... Har ni några förslag på videoklipp eller sidor som förklara do while så att jag förstår vad jag gjort för fel?

Av nadje28

@perost: Tack för svar, om jag ska vara helt ärlig så gjorde jag först uppgiften med en while istället för en do while för jag tyckte det var lättare samt att jag inte fattade hur jag skulle bygga programmet med en do while efter att kollat på 10 olika youtube klipp så byggde jag det jag lagt in. Så jag gissade mig fram för att se vad som funkar och inte funkar för det står inte alls mycket om do while i min lärbok utöver en sida... Jag förstår det du skriver, men har jag inte redan gjort det när jag lagt ut if och else? Där jag skriver in villkoren? Eller menar du att man måste skriva till något inne i villkoren? Förlåt om jag använder helt fel termer. Som sagt är en helt nybörjare!!

Av nadje28

@Daz: Hej!
Tack så hemskt mycket för svar! Jag förstår, men vad ska jag ge "gissa" för nytt värde?Alltså hur ska jag veta vad för värde jag ska tillse "gissa"? och vart gör jag detta? Inne i loopen eller innan loopen? Förlåt om jag låter helt korkad som sagt har precis börjat med detta och allt har inte fallit på plats än så att säga....

Av nadje28

Behöver hjälp med min uppgift "Gissa det hemliga talet" c#

Hej!
Jag hoppas på att få lite hjälp då min lärare inte svarar och jag vet inte vad jag gjort för fel. Jag har precis börjat läsa programmering 1 på hermods distans. Låt oss säga att jag haft lite problem med att bygga mina program även fast jag förstått teorin jag läst i läroboken samt den lilla information vår lärare lagt ut. Så jag vill gärna inte att någon dumförklarar mig för jag har verkligen gjort mitt bästa...

Min uppgift går ut på att vi ska använda oss utav, Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);

och bygga upp ett program där man får gissa ett tal mellan 1-100. I detta program ska jag använda mig utav do while och if else bland annat. Innan jag visar hur långt jag kommit så ska jag förklara vad problemet är. Mitt program skriver ut "För högt, gissa igen!" oavsett vilken siffra jag trycker in. Såhär långt jag har kommit och mitt program funkar men inte som det ska uppenbarligen då den inte skriver ut något annat än det jag skrev ovan. Snälla hjälp!!! Kan någon förklara vad jag gjort för fel? Snälla tänk på att jag precis börjat med programmering och är inne på min andra vecka i kursen.

using System;

namespace Uppgift_03
{
class Program
{
static void Main(string[] args)
{

Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);

Console.WriteLine("Välkommen, gissa ett tal mellan 1 till 100");
string str = Console.ReadLine();
int gissa = Int32.Parse(str);

do {

if (gissa < slump_tal)
{
Console.WriteLine("För lågt, gissa igen!");
Console.ReadLine();
}

if (gissa > slump_tal)
{
Console.WriteLine("För högt, gissa igen!");
Console.ReadLine();
}

else
{
Console.WriteLine("Grattis du gissade rätt!");
Console.ReadLine();
}
} while (gissa != slump_tal);

}
}
}