Προς το περιεχόμενο

[C++] - Δημιουργία Λαβυρίνθων


bnvdarklord

Προτεινόμενες αναρτήσεις

@gon: Ποιο κατέβασες; Εγώ δοκίμασα μόλις από το git του defacer και τόσο ο Windows7 Photo Viewer όσο και το Gimp τις βλέπουν κανονικά τις παραγόμενες bmp εικόνες.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 45
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Έκανα clone το του defacer. Θα κατεβάσω ένα gimp για να το δοκιμάσω κι εγώ.

Πάντως το δοκίμασα και σε Windows 8.1 Photo Viewer και έλεγε πως είναι

κατεστραμμένο.

 

 

REFRESH:

Ξαναέκανα clone.

Κάνω compile με:

g++ -Wall -Wextra -std=c++11 *.cpp -o mazegen

Εμφανίζονται αυτά τα warnings:

In file included from MazeGenerator.cpp:2:0:
Maze.h: In constructor ‘Maze::Maze(int, int, bool, bool)’:
Maze.h:30:8: warning: ‘Maze::dumpSteps’ will be initialized after [-Wreorder]
   bool dumpSteps;
        ^
Maze.h:26:9: warning:   ‘Color Maze::pathColor’ [-Wreorder]
   Color pathColor;
         ^
Maze.h:48:1: warning:   when initialized here [-Wreorder]
 Maze::Maze(int height, int width, bool classic, bool steps) :
 ^

το τρέχω και εμφανίζεται το test.bmp το οποίο και ΔΕΝ ανοίγει ούτε με gimp.

 

Το επισυνάπτω κιόλας. Να τονίσω πως είμαι από Linux.

test.bmp

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Λογικα με αυτο θα δουλευει https://github.com/AnonymoPapaki/maze-generator/commit/3a6a4e4ffa5acbbc9265d20dfb38bdaa80408242

 

Ειναι λαθος και ο υπολογισμος του μεγεθους, αλλα δεν νομιζω να νοιαζεται και πολυ ο viewer

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Για ανέβασε μία ένα τέτοιο κατεστραμμένο αρχείο.

Είναι συννημένο στο προηγούμενο post μου.

 

Θα το δοκιμάσω τώρα παπί.

@παπι

Δούλεψε!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κάτι με το header παίζει λάθος, στην εικόνα το συγκρίνω με ένα αντίστοιχο που βρήκα στο φάκελο που είχα τον κώδικα από τότε που άνοιξα το thread. Πώς γινεται όμως να δουλευε σε μένα αλλά τώρα σε εσένα να σκαλώνει;(ισως το packing του struct μεταξύ compilers; )

post-172621-0-92498000-1425945455_thumb.png

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

+ του ότι γίνονται όλα aligned στο μεγαλύτερο μέγεθος στο struct ή σε lword (padding)

+ ότι άλλο microsoft compiler και άλλο gcc (padding-alignment)

+ διαφορετικές αρχιτεκτονικές (32bit vs 64bit, βλέπε το πιο τρανταχτό sizeof(unsigned char *))

+ ότι μετά από ΟΛΑ τα παραπάνω χρησιμοποιείται sizeof.

 

EDIT:

Λέω βλακείες; Είναι και αργά. :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

#include <stdint.h> FTW! Μεγάλη υπόθεση!

Εδώ βλέπω ότι μιλάνε για bits. Άρα δεν έχουμε εδώ την έννοια των "C bytes"

και την εκπλήρωση/ικανοποίηση αναπαράστασης τουλάχιστον κάποιου range;

Τί σκαλίζω κι εγώ; Αλλά γιατί όχι; :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν ανταποκρίνομαι πλεόν. Μετά από τόσο code conversion και το σεντόνι που έγραψα στο άλλο νήμα, έχω τερματίσει! :P
 

Αυτό που κατάλαβα από τα "συμφραζόμενα" είναι πως δεν σου δούλευε εσένα γιατί ο compiler σου έχει το long ίσο με 64bits, ενώ στα windows είναι 32bits. Για αυτό και είπα για <stdint.h>... αντί για long βάζεις int32_t και είναι παντού ίδιο.

 

Δεν είμαι για παραπάνω απόψε :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ok! Δεν πιέζω άλλο :P

 

Αλλά αυτό θέλω να μου το απαντήσετε. Γιατί χρησιμοποιήθηκε sizeof για τον υπολογισμό

του header size και όχι κάτι hardcoded, εφόσον έτσι (sizeof) δεν είναι portable;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ok! Δεν πιέζω άλλο :P

 

Αλλά αυτό θέλω να μου το απαντήσετε. Γιατί χρησιμοποιήθηκε sizeof για τον υπολογισμό

του header size και όχι κάτι hardcoded, εφόσον έτσι (sizeof) δεν είναι portable;

 

Δεν έχω δει καν τον κώδικα. Αλλά αν ήταν int32_t αντί για long, τότε hardcoded kai sizeof θα ήταν παντού ίδια, ανεξαρτήτως compiler.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ok! Δεν πιέζω άλλο :P

 

Αλλά αυτό θέλω να μου το απαντήσετε. Γιατί χρησιμοποιήθηκε sizeof για τον υπολογισμό

του header size και όχι κάτι hardcoded, εφόσον έτσι (sizeof) δεν είναι portable;

Ποιος ξέρει, και εγώ τον κώδικα του bitmap έτοιμο τον είχα πάρει τότε που το έφτιαξα αυτό. Ήμουν φρέσκος από C# κτλ τότε και φοβόμουν να δοκιμάσω κάτι τέτοιο μονος μου :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μπορεί αυτός που το έγραψε να είχε documented πως είναι Windows specific ο κώδικας. Ή μπορεί να μην ήξερε πως είναι compiler dependent. Ή μπορεί όταν τον έγραψε να μην υπήρχαν καν 64bit πλατφόρμες :P

 

Ποιος ξέρει;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...