Inlägg

Inlägg som mjolkbollen har skrivit i forumet
Av mjolkbollen
Skrivet av kundun:

Kolla in denna biten:

public void add_soda() { Console.WriteLine("Choose a bevrage:"); Console.WriteLine("1. Irn Bru 5kr"); Console.WriteLine("2. Pepsi 5kr"); Console.WriteLine("3. Pepsi twist 5kr"); Console.WriteLine("4. Monster energy 10kr"); Console.WriteLine("5. Indian pale ale 10kr"); // Vad händer här? och varför? for (int i = 0; i < flaskor.Length; i++) { flaskor[i] = bevrage; } bevrage = Console.ReadLine(); switch (bevrage) { case "1": // Här skriver du ut vad användaren väljer, men du sparar inte det någonstans? Console.WriteLine("Irn Bru"); // Här ökar du värdet på backen innan vi vet om det finns plats! cheap++; break; case "2": Console.WriteLine("Pepsi"); cheap++; break; case "3": Console.WriteLine("Pepsi twist"); cheap++; break; case "4": Console.WriteLine("Monster energy"); expensive++; break; case "5": Console.WriteLine("Indian pale ale"); expensive++; break; default: Console.WriteLine("Something went wrong here!"); Console.WriteLine("=========================="); break; } // Varför loopar du igenom backen? for (int j = 0; j < flaskor.Length; j++) { // Här kollar du ju om det finns 24 flaskor, bra if (antal_flaskor == 24) { Console.WriteLine("The crate is full!"); Console.WriteLine(); } else { // Här ökar du antalet flaskor, bra! // men... du lägger inte till någon flaska i backen // Här är ju också ett bra ställe att öka värdet på backen antal_flaskor++; break; } } }

Här är ett förslag på pseudokod som ska funka:
1. skriv ut valen
2. spar drycken som användaren väljer
3. Kolla om det finns en tom plats i backen
3.1 Det finns en tom plats
3.1.1 stoppa i drycken på platsen
3.1.2 öka värdet på backen
3.1.3 öka antalet flaskor i backen
3.2 Det finns ingen tom plats
3.2.1 Meddela användaren om att backen är full

Kolla lite på kommentarerna i koden och fundera över pseudokoden

Grymt,tack! ska hem och kolla efter jobbet! Uppskattas stort!

Skrivet av talonmas:

Vad hjälper det dig om vi visar hur du ska koda? Du måste ju kunna förstå koden när läraren frågar. Plagiat är allvarligt inom alla ämnen i skolan, inte bara historieuppsatser.

Om han ber dig förklara ett visst stycke så kommer du sitta där tyst o se dum ut. Bespara dig skammen och LÄR dig istället. Börja om från början i din lärobok.

Skickades från m.sweclockers.com

Bad aldrig någon att lösa det för mig, utan bad om lite tips och att någon skulle peka mig åt rätt håll så att säga, precis som personen över dig gjorde!

Skrivet av kundun:

Jag tolkar det som att han vill ha tips och råd, inte kod. Men jag kan ju ha missuppfattat...

Precis!

Av mjolkbollen

C# Hjälp!

Hej igen gott folk! Här sitter jag idag på inlämningsdagen med ett projekt som är alldeles för stort för att jag ska kunna få ordning på det idag. Missade helt den andra(största) av de TVÅ inlämningsuppgifter som ska in idag.
Men gjort är gjort!

Uppgiften är att göra någon typ av virtuell läskback där du ska kunna lägga till läsk, räkna ut värde av back och se vad som finns i backen.
Jag har fått lite hjälp av en vän som knappt är bättre än mig på programmering och även läst och stulit lite på nätet.

Programmet funkar kanske till 60%, max. Värdet går att avläsa och man kan typ lägga till läsk.
Men när jag vill se vad som finns i backen blir allt knas, jag har gjort något fel och de vill sig inte i mitt huvud längre.

Så har ni något tips eller kan peka mig åt rätt håll hade jag uppskattat det så enormt!

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace sodacrate { } class Sodacrate { private string[] flaskor = new string[24]; //JObbar ni med struct (ev betyg C) eller klass för soda (betyg A) så är det inte "string" som är datatyp här private int antal_flaskor = 0; //Håller reda på antal flaskor public int expensive = 0; public int cheap = 0; public int totalamount = 0; public string bevrage; private bool mainMenu = true; //(Betyg A): En konstruktor kan ni använda för Sodacrate men det är inget krav. //(Betyg A): Däremot ska ni använda en konstruktor för klassen "Soda" public void Run() { Console.WriteLine("Welcome to the awesome Sodacrate-simulator"); while (mainMenu) { Console.WriteLine("Please pick one of the options beneath:"); Console.WriteLine("1. Add a bevrage"); Console.WriteLine("2. See what's in the crate"); Console.WriteLine("3. Total worth of crate"); Console.WriteLine("4. Exit the program"); switch (Console.ReadLine()) { case "1": add_soda(); break; case "2": print_crate(); break; case "3": calc_total(); break; case "4": mainMenu = false; break; default: Console.WriteLine("Something went wrong"); Console.WriteLine(); Console.WriteLine("===================="); break; } } } public void add_soda() { Console.WriteLine("Choose a bevrage:"); Console.WriteLine("1. Irn Bru 5kr"); Console.WriteLine("2. Pepsi 5kr"); Console.WriteLine("3. Pepsi twist 5kr"); Console.WriteLine("4. Monster energy 10kr"); Console.WriteLine("5. Indian pale ale 10kr"); for (int i = 0; i < flaskor.Length; i++) { flaskor[i] = bevrage; } bevrage = Console.ReadLine(); switch (bevrage) { case "1": Console.WriteLine("Irn Bru"); cheap++; break; case "2": Console.WriteLine("Pepsi"); cheap++; break; case "3": Console.WriteLine("Pepsi twist"); cheap++; break; case "4": Console.WriteLine("Monster energy"); expensive++; break; case "5": Console.WriteLine("Indian pale ale"); expensive++; break; default: Console.WriteLine("Something went wrong here!"); Console.WriteLine("=========================="); break; } for (int j = 0; j < flaskor.Length; j++) { if (antal_flaskor == 24) { Console.WriteLine("The crate is full!"); Console.WriteLine(); } else { antal_flaskor++; break; } } } public void print_crate() { Console.WriteLine("The ammount of bottles in your crate is " + antal_flaskor, flaskor.Length); Console.WriteLine("_______________________________________________________________________"); for (int i = 0; i < flaskor.Length; i++) { Console.WriteLine(flaskor[i]); } { for (int i = 0; i < flaskor.Count(); i++) { if (flaskor[i].Length > 0) Console.WriteLine("Bevrages in {0} is a {1}", i, flaskor[i]); else Console.WriteLine("Place {0} is empty.", i); } } foreach (var bevrage in flaskor) { if (bevrage != null) Console.WriteLine(bevrage); else Console.WriteLine("Empty space"); } //kod här //Missa inte hjälpkoden som finns i projektbeskrivningen //Där beskrivs hur man löser det med tomma positioner i vektorn } public void calc_total() { int total = 0; for (int k = 0; k < flaskor.Length; k++) totalamount = antal_flaskor * 10; { total = (cheap * 5) + (expensive * 10); Console.WriteLine("your crate is worth " + total + " kronor "); } //kod här //Tänk på att inte räkna med tomma positioner i vektorn } public void find_soda() { //Betyg C //Beskrivs i läroboken på sidan 147 och framåt (kodexempel på sidan 149) //Man ska kunna söka efter ett namn //Man kan använda string-metoderna ToLower() eller ToUpper() } public void sort_sodas() { //Betyg A-C //Beskrivs i läroboken på sidan 147 och framåt (kodexempel på sidan 159) //Man ska kunna sortera vektorn med flaskor och med bubble sort //Det är mycket svårt att sortera efter bokstavsordning - är inte flaskorna egna objekt utan bara strängar... //... går det bra att sortera efter längden på namnet istället. } } class Program { public static void Main(string[] args) { //Skapar ett objekt av klassen Sodacrate som heter sodacrate var sodacrate = new Sodacrate(); sodacrate.Run(); Console.Write("Press any key to continue . . . "); Console.ReadKey(true); } }

Av mjolkbollen

Vill bara tacka alla som tog sin tid och hjälpte mig!!

Skrivet av PeCe:

Det finns ingen anledning att ha ett specialfall för första gissningen.

Exempelvis kan koden skrivas som:

Console.WriteLine("Välkommen till ett spel där du skall finna ett specifikt tal mellan 1 och 100.") int random_number = new Random().Next(1, 100); int guess = 0; do { Console.WriteLine("Gissa på ett tal:"); guess = Convert.ToInt32(Console.ReadLine()); if (guess > random_number) { Console.WriteLine("Gissa på ett lägre tal nästa gång."); } if (guess < random_number) { Console.WriteLine("Gissa på ett högre tal nästa gång."); } } while (guess != random_number); Console.WriteLine("Du gissade rätt!!!");

Det där fick ordning på allt, tusen tack!

Av mjolkbollen

Fy fan va grymma ni är och vilken respons!!!
Tack alla!

Som sagt så är jag tvungen att köra en do-while loop och inget annat.
Borde kanske även nämnt att jag inte får använda bool eller break i denna koden alls.

Skrivet av perost:

@tahmady Eller bara lägga in utskriften i den existerande if-satsen, så slipper man hålla reda på det:

if (tal > slump_tal) { Console.WriteLine("Talet är mindre"); Console.WriteLine("Fel gissa igen!"); } else if (tal < slump_tal) { Console.WriteLine("Talet är större"); Console.WriteLine("Fel gissa igen!"); }

Alternativt:

if (tal != slump_tal) { String s = tal > slump_tal ? "större" : "mindre"; Console.WriteLine("Talet är " + s); Console.WriteLine("Fel gissa igen!"); }

Jag försökte mig på detta men fastnar fortfarande på att första gissningen hamnar liksom utanför och får inte responsen "talet är större" alternativt "talet är mindre".
Kanske är hjärndöd här men de vill sig inte riktigt.

Av mjolkbollen

Hjälp i c# gissa nummer

Tjena alla!
Har nyligen börjat studera programmering i c# och nu har jag fastnat lite.
Min uppgift är att göra ett "spel" där man ska gissa på ett nummer mellan 1-100.
Jag har fått det att funka hyfsat men problemet jag har är att jag måste använda en do och while loop, och det har låst sig lite i mitt huvud.
Jag vill nämligen att man får lite hjälp genom att du får information om att talet är större och mindre, men iom min do-while loop så körs inte större eller mindre första gången och jag har stopp i huvudet. Säkert lätt att fixa, men jag har låst mig, här kommer koden.

Console.WriteLine("Välkommen till ett spel där du gissar nummer?");
Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 100);
Console.WriteLine("Gissa på ett tal mellan 1 och 100");
string str = Console.ReadLine();
int tal = Convert.ToInt32(str);

do
{
Console.WriteLine("Fel gissa igen!");
str = Console.ReadLine();
tal = Convert.ToInt32(str);
if (tal > slump_tal)
{
Console.WriteLine("Talet är mindre");
}
else if (tal < slump_tal)
{
Console.WriteLine("Talet är större");
}

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