Behöver hjälp med inspiration, ska försöka mig på att göra något program i .NET och men vet inte vad. Behöver inte vara något nytt och fyndigt utan bara något som är bra och kanske kan vara kul att programmera. Jadu, ett enkelt snake spel kan man täcka alla dem kraven?, delar man upp klasserna flitigt så blir det kanske något sånt här "Worm, Food, Board, Hi Score, Paint", du sparar high-scoren i diverse databas. Om du inte drar dig för lite matematik föreslår jag att du skriver en enklare RayTracer. Det må låta ambitiöst men man kan förenkla saker avsevärt och ändå få ett program som presterar ganska intressanta bilder! Jag skulle göra en enkel pokermotor: Jens, Absolut! Jag skall gräva fram det och återkommer när jag gjort det! Nice, tackar...då är det bara resten kvar :-) Sommaren är räddad... Lol, första bilden blev väl så där lyckad. Ett rött klot rakt framför kameran belyst lite från höger var målet men jag är visst inte helt klar ännu :-) Men se där, det går ju framåt! Kul! Har precis beslutat att jag skall porta den där tracern från ML till C#, bara för skojs skull =) Jag har skrivit min i C#, men koden är väl sådär. Eftersom det inte är en inlämningsuppgift eller ett jobb så har jag kanske inte gjort mitt allra bästa för att skriva snygg kod, speciellt på slutet. Jag ville mest se om jag kunde få fram ett vettigt resultat :-) Ja, rekursion är väl enklast och i mitt tycke snyggast. Men det blir (väl?) inte mer jobb med rekursion än någon annan lösning, annat än det kompilatorn tvingas göra vid rekursiva anrop. Det är kanske inte mer jobb rent kodningsmässigt att göra det med raytracing, jag tänkte nog mer på prestanda. Som du säger så verkar ju kodoptimeringar vara det viktigaste, och när jag tittade på listan över extrafunktioner som man kunde lägga till så inser jag att jag verkligen bara skrapat på ytan.Någon idé till projekt som övningsprojekt?
Programmet ska använda minst 5 klasser, databas, polymorfism...
Någon som har någon idé eller förslag på program man kan göra?Sv: Någon idé till projekt som övningsprojekt?
När man gör rit funktioner brukar väl det bli rätt mkt polymorfism. Kanske göra inherits med Worm och Food på paint?Sv: Någon idé till projekt som övningsprojekt?
Ett sådant program kan innehålla allt man kan önska... exempel:
Du har en klass för kamera, en grundklass för ett objekt i världen, samt några ärvda objekt (tex trianglar och sfärer). Sen behöver du klasser för ljuskällor och ytegenskaper. Så nog kommer du upp i fem klasser och polymorphismkravet.
Vad skall det vara för databas? Räknas textfiler som databas? Hur som helst måste du nånstans ha scenbeskrivningar...
Det beror helt på vad du ligger på för nivå, men det finns otroligt mycket information att tillgå i ämnet och möjligheterna är oändliga. Om du blir intresserad av det kan jag ge dig material som innehåller precis alla algoritmer/beräkningar som behövs för att skapa en ganska simpel raytracer.
Bara en tanke... Franke... :DSv: Någon idé till projekt som övningsprojekt?
Klasserna:
clsDealer - Evaluerar spelarnas händer och ser till att ingen bryter reglerna
clsDeck - Kortleken
clsPlayer - Spelaren, hans stack och hans hålkort (spellogik osv)
clsCard - Kortklass som kan transporteras mellan kortleken, spelaren och bordet
clsTable - Kastade kort, gemensamma kort
Databasen loggar de olika spelarnas resultat långsiktigt.
Annars skulle man kunna göra något enkelt brädspel sås om Othello eller Fyra i rad...Sv:Någon idé till projekt som övningsprojekt?
Jag började själv koda på en enkel raytraycer en gång (7-8 år sedan) men fastnade på något (troligen bristande motivation om jag känner mig rätt). Jag är dock lite sugen på att leka lite med detta nu när min två månader långa "semester" börjar (i alla fall inga uppdrag ute hos kund). Tänkte ändå lära mig lite managed directX snart så det känns som ett kul projekt. Jag kollar gärna på det materialet du har om det är ok...jag behöver dessutom fräscha upp mina mattekunskaper som används allt mer sällan :-(
Min epost är : per@hultqvist.nuSv: Någon idé till projekt som övningsprojekt?
Edit: så. Vad jag har är alltså en inlämningsuppgift (eller snarare specen till den) i en kurs som jag både gått när jag pluggade data samt själv undervisat i som assistent ett par omgångar. Uppgiften var att skriva en raytracer i C och lära sig en massa om programmering på vägen.
Specen till uppgiften innehåller i princip allt man behöver veta för att skriva en enkel raytracer. Det finns många sätt att göra det på, detta är bara ett. Bifogar även en egenhändigt skriven raytracer, men den är för skojs skull skriven i Objective ML (för att testa dess prestanda mot C). Men den följer specen till 99%.
Specen: http://www.familyolsson.se/files/programming/oldstuff/raytracer/coursematerial/inlupp.pdf
(Du kan hoppa till sidan 6, du skall ju trots allt inte göra den som inlämningsuppgift)
Vidare, om du sen kommer så långt att du tycker raytracern behöver byggas ut kommer en länk till sidan (för samma kurs) där förslag på utökningar finns. Som lite inspiration:
http://www.familyolsson.se/files/programming/oldstuff/raytracer/coursematerial/extensions.htm
Sist men inte minst koden till en fullt fungerande raytracer, som förvisso bara kompilerar under *nix och med Ocaml.
http://www.familyolsson.se/files/programming/oldstuff/raytracer/tracer-1.01.tar.gzSv:Någon idé till projekt som övningsprojekt?
Sv: Någon idé till projekt som övningsprojekt?
http://83.227.155.142/FirstAttempt.jpg
[Edit: Nu blev det något bättre, men lite skalningsproblem återstår. Det får dock vänta tills imorgon]
http://83.227.155.142/SecondAttempt.JPG
[Edit: Det går framåt. Att det blir lite grynigt beror på att Windows Paint inte konverterar bilderna till JPG så bra.]
http://83.227.155.142/ThirdAttempt.JPG
http://83.227.155.142/FourthAttempt.JPG med projicerade bitmappar på planet och ett av kloten.Sv:Någon idé till projekt som övningsprojekt?
Hur implementerar du din förresten? C++ eller? Int' behöver du MDX för att raytraca?... Sv: Någon idé till projekt som övningsprojekt?
En fundering har jag dock, när man implementerar reflektion och transmission, så bör man väl nästan göra detta rekursivt eller? Det blir ju många strålar att ta hand om då? Eller en queue kanske räcker långt...
Ang MDX: Det är ju helt sant, jag gjorde bara en snabbassociation i huvudet raytracing-grafik-directx utan att tänka :-) Så jag har använt en helt vanlig System.Drawing.BitMap i stället vilket ju fungerar utmärkt. Jag får helt enkelt hitta på en annan ursäkt för att lära mig MDX.Sv:Någon idé till projekt som övningsprojekt?
Lite sugen på att testa hur mycket arbete rekursion kräver jämfört med andra lösningar i ett språk som C#. I ML som bygger på rekursion är det så man löser saker, och en bra kompilator skall göra det utan större förlust. Men, är som sagt sugen på att testa lite och mäta.
Generellt kan sägas att när det gäller raytracing så är det första och största man kan vinna i prestanda beroende på algoritmer och optimeringar av dessa. Visst, språkval mm kommer in i bilden men den naiva versionen av raytracing är ganska ineffektiv så det är där de största vinsterna görs.Sv: Någon idé till projekt som övningsprojekt?
Jag började märka av prestandaproblem redan i mitt lilla enkla projekt så helt klart behöver man titta på detta förr eller senare.