Kört fast i Spel-skapande (Programmering A)

Permalänk
Medlem

Kört fast i Spel-skapande (Programmering A)

Har redan fått hjälp, tack för svar!

Permalänk
Medlem

1) Vilket språk pratar vi om?
2) Vad har du kört fast med?

Försök lokalisera en del av koden som inte verkar rätt, lägg upp den här och fråga specifikt om den. Då kommer du få många fler svar mycket snabbare. De flesta orkar inte dra ner ett stort stycke kod och sätta sig in i det.

Jag hjälper gärna till med frågor och svar, men oftast tar jag det på en 5 min pause mellan arbetsuppgifter. Och helst pekar jag bara i rätt riktning istället för att lösa problemet då jag tror på "learning by doing"

Visa signatur

He who hasn't hacked assembly language as a youth has no heart. He who does so as an adult has no brain.
~John Moore

Permalänk
Medlem

Har redan fått svar! Tack för hjälpen!

Permalänk
Medlem

Öppna .cpp filen och tittade i några sekunder Du bör ta en titt på "Du skall naturligtvis använda dig av funktioner med tydliga namn och uppgifter (= funktionen skall göra EN sak)." till att börja med.
En main() metod på över 300 (!) rader är inget jag tänker försöka att läsa iaf!

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

Har redan fått hjälp! Tack för svar!

Permalänk
Medlem

Om det är så att du inte klarar av dina skoluppgifter så är det ju klart att du ska ha IG.
Jag tycker du ska ge upp dina planer med att bli programmerare och satsa på att bli politiker istället.

Permalänk
Medlem

som de tidigare så fanns inte energin att sätta mig i din kod tyvär dåd en inte var särskilt uppdelad i funktioner utan är i själva verket en lång rad med vägskäl, jag tror rent av det kan vara en del i ditt problem, försök om du kan dela upp din kod till flera mindre funktioner, den blir då mycket lättare för dig att testköra.

Visa signatur

Jag gillar datorspel!

Permalänk
Medlem
Skrivet av R0oXeEn:

Vi pratar om koden c++ kan även tänka mig att ge bort någon slant om någon är schysst och hjälper mig.

Du vill alltså betala folk så att de löser dina skoluppgifter?

Visa signatur

In order to understand recursion, one must first understand recursion

Permalänk
Medlem

Har aldrig kodat i c++ men kan programmera. Kikade lite i filen och som ovanstående sa så bör du försöka bryta ut koden i mer funktioner, det var den värsta main-funktionen jag nånsin sett

(Notera att jag inte läst igenom all kod, så förklarar mest generellt)
Jag vet inte hur mycket du kan men eftersom det är programmering A utgår jag ifrån att du inte kan så mycket, så ger därför tips på vad du skulle kunna ha som funktioner. Till att börja med, main är den som kickar igång hela programmet, du skulle därför kunna ha en funktion (antar att det heter funktion i c++ ?) som heter "PlayGame" lägg sedan hela loopen där i. Det är en bra början.
Att skriva ut menyn med samtliga val, skulle kunna läggas i en funktion, då behöver du endast kalla på funktionen där du vill skriva ut menyn. Detsamma gäller instruktioner.
Eftersom det är ett spel har du kanske en highscore, när du skriver ut den kanske du vill ha en funktion som heter "PrintHighScore".

Nämnde några exempel på funktions namn du kanske kan använda, om de behöver ta in och ev returnera saker, beror helt och hållet på hur all kod ser ut och vart du har dina variabler. Men får väl hoppas du vet lite vad som behövs göras, så tillslut kanske det finns folk som faktiskt orkar gå igenom din kod och ge tips på en lösning, för som det är nu så blöder ögonen när man läser din main.

(obs. i menyn står det att val 3 skall vara regler, men det är credits som visas)

Visa signatur

In order to understand recursion, one must first understand recursion

Permalänk
Medlem

Har redan fått svar! Tack för hjälpen!

Permalänk
Medlem

Jag har läst programmering a c# (inte b och c men en kompis har). Där delade man inte in koden i funktioner i programmering A. Det är främst att man ska lära sig tänket med if-satser, loopar, variabler och liknande. Så de lite större projekten blev självklart lite svårlästa eftersom man inte lärt sig använda funktioner och sådant.

Permalänk
Medlem
Skrivet av R0oXeEn:

Nej, men eftersom ingen kommer med något vettigt svar eller pallar att hjälpa mig som har kört fast så är jag villig att göra det ja, var ju innan sommarlovet vi hade programmering A och jag har nästan glömt av allting men försöker lära mig igen.

Okej, men det viktigaste är bara att du själv vill lösa det. Att hjälpa dig med programmering i sig är det säkert många som gör, men just det där att lösa en uppgift åt dig, inte så troligt.

Visa signatur

In order to understand recursion, one must first understand recursion

Permalänk
Avstängd

Jag skulle vilja hjälpa dig. men jag kan inte ett dugg om programmering. gl

Permalänk
Medlem
Skrivet av jocke92:

Jag har läst programmering a c# (inte b och c men en kompis har). Där delade man inte in koden i funktioner i programmering A. Det är främst att man ska lära sig tänket med if-satser, loopar, variabler och liknande. Så de lite större projekten blev självklart lite svårlästa eftersom man inte lärt sig använda funktioner och sådant.

Hur har detta någon som helst betydelse i denna tråd?

Om du läser ursprungsinlägget så står det, med högsta sannolikhet citerat från läraren/uppgiften:
"Du skall naturligtvis använda dig av funktioner med tydliga namn och uppgifter (= funktionen skall göra EN sak)."

Bara för att du läste en värdelös kurs i programmering A med en dålig lärare så behöver inte det föras vidare...

Skrivet av R0oXeEn:

Nej, men eftersom ingen kommer med något vettigt svar eller pallar att hjälpa mig som har kört fast så är jag villig att göra det ja, var ju innan sommarlovet vi hade programmering A och jag har nästan glömt av allting men försöker lära mig igen.

Det är snarare du som inte pallar lära dig, med tanke på hur trivial uppgiften är så bör det inte krävas så mycket energi för att kunna lösa den, det är din motivation som är problemet här. Alternativt så är du alldeles för van att få saker serverade, kanske dags att börja lära sig göra något själv också?

Skrivet av silicon111:

Jag skulle vilja hjälpa dig. men jag kan inte ett dugg om programmering. gl

Nödvändigaste inlägget...

*sigh* humanity.....

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
Skrivet av Gnejs:

Hur har detta någon som helst betydelse i denna tråd?

Om du läser ursprungsinlägget så står det, med högsta sannolikhet citerat från läraren/uppgiften:
"Du skall naturligtvis använda dig av funktioner med tydliga namn och uppgifter (= funktionen skall göra EN sak)."

Bara för att du läste en värdelös kurs i programmering A med en dålig lärare så behöver inte det föras vidare...

Det är snarare du som inte pallar lära dig, med tanke på hur trivial uppgiften är så bör det inte krävas så mycket energi för att kunna lösa den, det är din motivation som är problemet här. Alternativt så är du alldeles för van att få saker serverade, kanske dags att börja lära sig göra något själv också?

Nödvändigaste inlägget...

*sigh* humanity.....

Hahaha, gnäller en massa över innehållslösa inlägg och skriver ett som inte tillför tråden något överhuvudtaget själv. The irony!

Permalänk

Om du lägger upp koden här så ska jag hjälpa dig. Tänker inte tanka något arkiv.

Permalänk
Medlem
Skrivet av MiKz112:

Hahaha, gnäller en massa över innehållslösa inlägg och skriver ett som inte tillför tråden något överhuvudtaget själv. The irony!

Om du läser ordentligt och tänker på det som står i samband med kontexten för denna tråd så tas relevant aspekter upp som t.ex. 'decomposition', dvs att trådskaparen bör dela upp sin kod i mindre delar, t.ex. i s.k. funktioner. En person antydde att detta ej var nödvändigt då denna ej behövde göra det i sin programmeringskurs, vilket jag anser är befängt då det är en av det viktigare delarna att lära sig i början, att en kurs i programmering inte har med det får mig att ifrågasätta kursen. Av den anledningen känns det relevanta att påpeka detta så inte trådskaparen får för sig att lyssna på denna vilsna själ och anta dennes, i min mening, dåliga 'förslag'.

Du kanske skulle hänga med de andra personerna som jag antar tillhör den första kvartilen av befolkning med avseende på intelligens som kommenterat så oerhört upplysande i denna tråd, ni har nog en del gemensamt.

Puss sötnos.

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

Det verkar inte som personen i fråga har rätt inställning för att lära sig programmering (än).
Försök att tänk framåt och att just du ska kunna göra allt helt själv, utan hjälp. Även om det är grupparbeten eller liknande så pilla själv och lär dig allt, det tjänar man på i framtiden, det kan jag lova. Man måste ha den eviga viljan att lära sig för detta, ta in allt och gärna redan när det presenteras första gången, att slöa eller skjuta upp gör bara smällen fyrfaldigt värre när du väl behöver det. Tänk dej själv i framtiden att du kan klara allt, det du inte kan 100% vet du var man finner. Pluggar du vidare på högskolan och pallar med en master i datavetenskap eller liknande så klarar du att skriva ett fulländat 3D-spel själv och allt vad det innebär, fps, strategi eller rpg, det finns inga gränser längre... Även när det är tufft (vilket det är väldigt ofta) så måste man känna sig oövervinnerlig, det är mitt råd.

Jag vet inte hur många kurser jag har gått på men många är intresserade när det väl börjar, en väldigt stor del hoppar dock av efter första året på högskolan, minst lika många året där på och har man påbörjat fjärde året så blir man glad om man ser ett bekant ansikte från programmet man för länge sedan startade. Vill du fortsätta med detta oändligt roliga och oändligt krävande arbete så önskar jag dej lycka till och förmodligen ses vi ett flertal gånger på detta forum (om så vill).

Permalänk
Medlem

Har redan fått hjälp! Tack för svar!

Permalänk
Medlem
Skrivet av R0oXeEn:

Nej alltså, programmering är inget jag kommer att tänka mig lära vidare eller jobba med! Jag gick Programmering A och kursen är avslutad men många har kvar uppgiften att göra, om någon kunde sätta mig på rätt spår och hjälpa mig då jag inte har någon susning av vad jag ska göra :S

Okey för att sätta igång arbetet, har du någon typ av mindmap om hur programmet skall fungera? dvs har du gjort en Pseudokod?
Om inte skall detta vara det första du gör, Efter du har en Pseudokod som innehåller alla moment/vägval i programmet skulle jag rekommendera att du sedan gör olika funktioner av dessa val som jag skrev tidigare. Detta skulle nog hjälpa dig eneromt tror jag.

Visa signatur

Jag gillar datorspel!

Permalänk
Skrivet av R0oXeEn:

Nej alltså, programmering är inget jag kommer att tänka mig lära vidare eller jobba med! Jag gick Programmering A och kursen är avslutad men många har kvar uppgiften att göra, om någon kunde sätta mig på rätt spår och hjälpa mig då jag inte har någon susning av vad jag ska göra :S

Problemet är bara det att grundläggande programmering blir bara svårare och svårare att komma undan, då man i många fall t.ex. behöver programmera i excel.

Och rätt spår är som sagt att dela upp koden i funktioner, som koden är nu så har alla svårt att se var felet finns, det gäller alltså inte bara du. Har du istället små funktioner så kan du enklare testa dem och exakt se var felet ligger.

Visa signatur

[Core i7-3930K med 32GB ram, 2*256GB SSD] & [Core i7 3770K med 16 GB RAM, 256GB SSD] som tillsammans har ett [HD 5850 1GB] och 3st 24".

Permalänk
Medlem
Skrivet av R0oXeEn:

Nej alltså, programmering är inget jag kommer att tänka mig lära vidare eller jobba med! Jag gick Programmering A och kursen är avslutad men många har kvar uppgiften att göra, om någon kunde sätta mig på rätt spår och hjälpa mig då jag inte har någon susning av vad jag ska göra :S

Flera personer inklusive mig själv har försökt hjälpa dig lite. Jag skrev tom exempel på funktionsnamn och vad som kan vara bra att lägga i funktioner, förstår du ändå inte så säg det istället för att nu som du gjorde, skriver att ingen vill hjälpa dig ("om någon kunde sätta mig på rätt spår"). Dina ögon verkar inte kunna se hjälpen, de letar bara efter lösningar.

Visa signatur

In order to understand recursion, one must first understand recursion

Permalänk
Medlem

Kika på detta, förstår du det översta så bör det inte vara några problem för dig att komma igång med funktionsindelning
http://sv.wikipedia.org/wiki/Funktion_(programmering)

Visa signatur

In order to understand recursion, one must first understand recursion

Permalänk
Medlem

urk, kollade genom hela koden och försökte få mig en uppfattning hur det funkar. Det blir lätt grötigt när allt ligger på rad Får ni använde vc++? skulle blir grymt lättare Om jag vore dig så skulle jag göra om det från början och dela in det i funktionera. Du har ett menyval med swtich. Istället för att köra hela koden under varje case så anropa funktioner. Och som någon här ovan skrev. Gör ett schema på ett papper hur det ska fungera. Så du har hela förloppet framför dig. Sedan kan du även på pappret döpa variablar/funktioner med vettiga namn. Gärna ytterligare med ex if-satser osv direkt på pappret vid varje stop. Sedan drar du igång å kodar det.
Jag skulle använt vc++ om jag kunde/fick

Väldigt tråkigt att behöva skriva 300+ rader om från början men ibland kan det vara nyttigt och bra.

Visa signatur

.

Permalänk
Medlem

Jag kollade din kod. Den är tyvärr inte så lätt för en utomstående att läsa och jag tror att orsakerna till varför det är så har framkommit ganska tydligt i den tidigare diskussionen. Försök undvika dela upp koden i vettiga funktioner och undvik allt för mycket nestlade if-satser. Keep it simple, är en metod som jag alltid fått goda resultat med

Hur mycket tid har du på dig att klara uppgiften? Jag brukar själv alltid börja med en enkel flowchart över vad programmet behöver göra. Man kan med penna och papper gå igenom hela logiken bakom programmet utan att skriva en enda rad kod. Detta är ngt som jag till min förträt sällan hör lärare i programmeringskurser säga. Tänk på VAD programmet måste utföra. Det behöver du inte en enda rad kod för

När du vet exakt vad är det också lättare att lista ut HUR du ska få programmet att fungera i språket du använder. Det är här som kodandet börjar och du kommer att märka hur lätt det går att programmera bitar som du redan vet vad ska göra. Lite som at bygga lego från färdiga instruktioner, liksom.

Ta ett djupt andetag och några steg tillbaka så ska du se att det löser sig. Om du gör en flowchart kan du ju posta dig här så är jag säker på att vi kan få ditt spel att fungera!

Visa signatur

www.tomodomo.org - indie spelstudio i Helsinfors
www.fatcatrush.com - en 3D runner för iPhone som vi gjort på Tomodomo

Permalänk
Medlem

Tja försökte med en titt, först och främst vart det C++ är inget vidare på C++, Sedan vart det bland det värst utformade kod jag någonsin sett. Till och med din lärare skrev lite om vad du behöver göra

En gyllene regel är ifall en metod har mer en en loop, eller mer kod en vad som syns på ett fönster så har du gjort fel och bör refakturera om den.

"Koden skall vara väl strukturerad, indenterad och tydlig. Du skall naturligtvis använda dig av funktioner med tydliga namn och uppgifter (= funktionen skall göra EN sak)."

Så jag skulle tippa på att du börjar med att refakturera din kod. http://en.wikipedia.org/wiki/Code_refactoring Nu vet jag inte vilken editor o.s.v. du har så kan inte hjälpa mer en så här men ta en titt på hur man refakturerar, börja refakturera upp din kod, få en vettig struktur på den och så kan jag nog lova att många fler här kan hjälpa till.

Visa signatur

Speldator: i7-8700k, 32GB DDR4, RTX2080
Server 1: SB 2500k, MZI -P67GD55, 32GB DDR3, Corsair MX 240GB SSD
Surface Pro 2017, Konsoler: Typ alla, Oculus Rift

Permalänk
Medlem
Skrivet av MugiMugi:

Tja försökte med en titt, först och främst vart det C++ är inget vidare på C++, Sedan vart det bland det värst utformade kod jag någonsin sett. Till och med din lärare skrev lite om vad du behöver göra

En gyllene regel är ifall en metod har mer en en loop, eller mer kod en vad som syns på ett fönster så har du gjort fel och bör refakturera om den.

"Koden skall vara väl strukturerad, indenterad och tydlig. Du skall naturligtvis använda dig av funktioner med tydliga namn och uppgifter (= funktionen skall göra EN sak)."

Så jag skulle tippa på att du börjar med att refakturera din kod. http://en.wikipedia.org/wiki/Code_refactoring Nu vet jag inte vilken editor o.s.v. du har så kan inte hjälpa mer en så här men ta en titt på hur man refakturerar, börja refakturera upp din kod, få en vettig struktur på den och så kan jag nog lova att många fler här kan hjälpa till.

Fina tips för en som ska fortsätta programmera men TS har inga sådana ambitioner utan vill så enkelt som möjligt få godkänt. Så tråden bör i mitt tycke låsas.

Permalänk
Medlem

Har redan fått hjälp! Tack för svar!

Permalänk
Medlem
Skrivet av R0oXeEn:

vet inte hur jag ska börja, har läst igenom alla kommentarer men har verkligen kört fast.

Jag föreslår att du börjar om från början. Det tjänar du både tid och lärdom på.
Börja med papper och penna. Rita ett flödesschema som beskriver spelet i sig.

Jag gjorde det åt dig här: http://www.lucidchart.com/documents/view/4e9b2a22-f048-48c8-b...
(en rektangel är en "Process", alltså något som sker, medan ett parallellogram (roterad rektangel) anger ett vägval)

Men det kan ändå vara bra för dig att göra en egen variant, eftersom alla tänker olika.

Gör sedan ett flödesschema för mekanismerna omkring själva spelet, alltså en meny där man kan välja antalet spelare etc. där själva spelet bara är en enda process som du namnger "Spela!". Detta för att flödesschemat ska bli lättare att läsa.

Efter att du har flödesscheman, blir det mycket enklare för dig. Du kan börja med att göra metoder som heter likadant som boxarna i flödesschemat. Vissa boxar kanske behöver delas in i flera metoder, medan andra behöver slås ihop. Titta på pilarna i flödesschemat så ser du direkt var du behöver en loop.

Lycka till.

Permalänk
Medlem
Skrivet av azoapes:

Jag föreslår att du börjar om från början. Det tjänar du både tid och lärdom på.
Börja med papper och penna. Rita ett flödesschema som beskriver spelet i sig.

Jag gjorde det åt dig här: http://www.lucidchart.com/documents/view/4e9b2a22-f048-48c8-b...
(en rektangel är en "Process", alltså något som sker, medan ett parallellogram (roterad rektangel) anger ett vägval)

Men det kan ändå vara bra för dig att göra en egen variant, eftersom alla tänker olika.

Gör sedan ett flödesschema för mekanismerna omkring själva spelet, alltså en meny där man kan välja antalet spelare etc. där själva spelet bara är en enda process som du namnger "Spela!". Detta för att flödesschemat ska bli lättare att läsa.

Efter att du har flödesscheman, blir det mycket enklare för dig. Du kan börja med att göra metoder som heter likadant som boxarna i flödesschemat. Vissa boxar kanske behöver delas in i flera metoder, medan andra behöver slås ihop. Titta på pilarna i flödesschemat så ser du direkt var du behöver en loop.

Lycka till.

Okej tack! ska kika på det