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

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

Δημοσ.

Τοτε γιατι υπαρχουν οι τυποι δεδομενων byte & short? Και εδω που τα λεμε γιατι να δηλωνουμε τις μεταβλητες παντα int? Ας τις δηλωνουμε long αφου δεν έχει κανένα νόημα να κάνεις οικονομία (θα είχε νόημα μόνο το 1980 στον ZX81 με το 1Kb ram).

 

Να πω ότι εγώ έχω στο μυαλό όσο γίνεται πιο μικρό πρόγραμμα, πιο ελαφρύ, αν και μιλάμε για 2D κάτι μικρό που θα παίζει και σε μηχανήματα προ δεκαετίας, απλά γιατί όχι? βασικά θα ήθελα να δω την διαφορά στην διεργασία-τελικό πρόγραμμα

 

όταν το τελειώσω (και άμα δεν τα παρατήσω) θα κάνω Copy το project και θα βάλω short και θα κοιτάξω αν κάτι είναι περιττό όπως με τα Increase/Decrease/SetHP που τζάμπα πιάνουν μνήμη

 

το τίμημα του παραπάνω είναι η δυσχρηστία(θέλει πάντα προσοχή στην παράμετρο) αλλά its ok!

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

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

Δημοφιλείς Ημέρες

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

Δημοσ.

Latency μολις πας σε μια εταιρεια...

να το παιξεις οτι ξέρεις οτι δεν ξερεις τιποτα

και αν ποτε σε παρουν για δουλεια.... εγω θα χασω στοιχημα.

χαχαχχαα τι του λεει ο αλλος ρε φιλε !!!!!!

 

Defacer ειλικρινα..... (και σε αφηνω να με πεις και ασχετο για να νιωσεις καλυτερα)

εχεις πατησει ποτε το ποδι σου σε εταιρεια ? Οποιασδηποτε μορφης.... ειτε ειναι για προγραμματισμο

ειτε για οτιδηποτε αλλο. Για αυτο αποφευγεις να απαντας και σε ερωτησεις που εχεις δουλεψει.

Με ποια ιδιοτητα δινεις συμβουλες εδω μεσα με υφακι επιτακτικο για δωσε μας εξηγησεις...

 

Ο defacer σου λεει οτι δεν εχεις ιδεα απο OOP και καθεσαι και τον ανεχεσαι Ε Λ Ε Ο Σ!!!!!

 

DEFACER εγω σε προκαλω να μας δειξεις αυτη τη στιγμη δικο σου σοβαρο προτζεκτ σε C++.

Απλα εχεις διαβασει μερικα πραγματακια και βαζεις και ενα καρο δικιες σου σαλτσες και τραμπαλες επιχειρηματολογου για να το φουσκωσεις. Συνεχιζεις με την απαραδεκτη συμπεριφορα με την οποια

δεν θα ησουν αποδεκτος σε οποιαδηποτε σοβαρη ομαδα.... και γενικα δινεις 0.5 βοηθειας και προσπαθεις να μειωσεις τον αλλον κατα πολυ περισσοτερο για να δειξεις εδω μεσα οτι εισαι καποιος. Λοιπον αυτο κανεις....

 

Δεν χρειαζομαστε την βοηθεια σου. Και πρεπει να μαθει ο κοσμος καποια στιγμη

το κολπακι σου .

Δημοσ.

Latency...

 

Σταμάτα να γράφεις κώδικα πριν αποφασίσεις πώς θες να λειτουργούν αυτά που έφτιαξες. Θα κερδίσεις χρόνο τόσο στην ανάπτυξη όσο και στο optimization αλλά και το debug.

 

Π.χ.

Θες να διαχειρίζεσαι το health.

 

Ένα από foo.health+=5; μπορεί να σε βγάλει λάθος εάν έχεις συνθήκες στον παίκτη για το hp. Επιδράς κατευθείαν πάνω σε ένα data member το οποίο είναι σχεδόν σίγουρο ότι αλληλεπιδρά και με άλλες λειτουργικότητες του ιδιοκτήτη του.

 

Προτιμότερο είναι αυτό που ήδη είπε ο defacer. Ένα member function hpIncrease. Μέσα στο οποίο θα μπορείς να κάνεις ό,τι ελέγχους θες και αυτοί οι έλεγχοι θα είναι σε ένα σημείο (στο σημείο που πρέπει να γίνουν). Ακόμα καλύτερα, αυτή η μέθοδος θα μπορεί να είναι κοινή για όλα τα toons. Είτε Human Player είτε PC Players. Όλοι δεν θα κάνουν regenerate; Τα creeps δεν θα έχουν δυνατότητα να δέχονται healing; Πώς θα το κάνεις αυτό; Κατευθείαν με foo.health += "τόσο"; Θα το γράψεις για όλους;

 

Για αυτό, σταμάτα να πληκτρολογείς και σχεδίασε.

 

Ακόμα, το να θες να εφαρμόσεις την λογική της C σε OOP οδηγεί σε spaghetti programming. Προσωπικά θα το απέφευγα.

 

@defacer

Πάνω, εκεί που λέει το όνομά σου έχει κάτι που λέγεται Διαχείριση Λ. Αγνόησης. Δουλεύει, στο εγγυώμαι.

  • Like 1
Δημοσ.

Τοτε γιατι υπαρχουν οι τυποι δεδομενων byte & short? Και εδω που τα λεμε γιατι να δηλωνουμε τις μεταβλητες παντα int? Ας τις δηλωνουμε long αφου δεν έχει κανένα νόημα να κάνεις οικονομία (θα είχε νόημα μόνο το 1980 στον ZX81 με το 1Kb ram).

 

1. Γιατί όταν θέλεις να κάνεις serialization οποιουδήποτε είδους (από network και save μέχρι marshalling) χρειάζεσαι συγκεκριμένα μεγέθη. Αν έχεις μια δομή που αντιπροσωπεύει έναν TCP header τότε το source port πρέπει να είναι short, τέλος.

 

2. Γιατί μπορεί να θέλεις να παίξεις για κάποιο λόγο σε επίπεδο bits (π.χ. ένα union σε C)

 

3. Αν σε οποιαδήποτε γλώσσα προγραμματισμού ο default integral τύπος ήταν long, τότε θα σου έλεγα εκεί να τα κάνεις όλα long. Τώρα που στις γλώσσες που αναφερόμαστε είναι int σου λέω να τα κάνεις int.

Δημοσ.

Τοτε γιατι υπαρχουν οι τυποι δεδομενων byte & short? Και εδω που τα λεμε γιατι να δηλωνουμε τις μεταβλητες παντα int? Ας τις δηλωνουμε long αφου δεν έχει κανένα νόημα να κάνεις οικονομία (θα είχε νόημα μόνο το 1980 στον ZX81 με το 1Kb ram).

 

Γιατί υπάρχουν περιπτώσεις που ΠΡΕΠΕΙ να κάνεις οικονομία ή πρέπει να ακολουθήσεις πρωτόκολλα. Ήδη κάποια είπε ο defacer. Μέσα σε αυτά βάλε ότι εάν για το LCD panel της καφετέριας σου και το firmware που το οδηγεί δεν είχες short, unsigned char κτλ τότε θα έπρεπε να έχεις και πιο μεγάλη καφετέρια, με περισσότερη μνήμη και θα κόστιζε και πιο ακριβά.

Δημοσ.

εσύ από πάνω σταμάτα :P απλά θες να του την πεις

 

Παιδιά, ας το πάμε λίγο off-topic

 

πολύ εύκολα ο κόσμος λέει ότι έτσι όπως το κάνεις δεν θα σε πάρει κανείς για δουλειά (defacer), πραγματικά τώρα αφήστε τους φανατισμούς και τις έχθρες

 

πιστεύετε ότι στην C# (ναι ας μιλήσουμε μόνο για το γήπεδο του defacer) όποιος φτιάξει κάτι με συναρτήσεις αντί properties είναι έξω από τα νερά? επίσης έχουν υπωθεί πολλά από τον defacer συνήθως για τις ονομασίες μεταβλητών, απλά δεν το θεωρώ σοβαρό αυτό το πράγμα, δηλαδή φίλε μου (defacer) θα πρέπει να κάνουμε ότι λέει το google ¨η εσύ? (όχι _ , 1ο γράμμα πάντα μικρό "newMoney")

>
private int money;
public void AddMoney(int newMoney)
{
money = newMoney;
}

για να είμαστε σωστοί?

 

παιδιά αν έχετε όρεξη πείτε την γνώμη σας γενικώς όχι για το παιδί, ούτε εμένα , ούτε τον Starlight (λόγο "βεντέτας")

Δημοσ.

Ένα από foo.health+=5; μπορεί να σε βγάλει λάθος εάν έχεις συνθήκες στον παίκτη για το hp. Επιδράς κατευθείαν πάνω σε ένα data member το οποίο είναι σχεδόν σίγουρο ότι αλληλεπιδρά και με άλλες λειτουργικότητες του ιδιοκτήτη του.

 

Προτιμότερο είναι αυτό που ήδη είπε ο defacer. Ένα member function hpIncrease. Μέσα στο οποίο θα μπορείς να κάνεις ό,τι ελέγχους θες και αυτοί οι έλεγχοι θα είναι σε ένα σημείο (στο σημείο που πρέπει να γίνουν). Ακόμα καλύτερα, αυτή η μέθοδος θα μπορεί να είναι κοινή για όλα τα toons. Είτε Human Player είτε PC Players. Όλοι δεν θα κάνουν regenerate; Τα creeps δεν θα έχουν δυνατότητα να δέχονται healing; Πώς θα το κάνεις αυτό; Κατευθείαν με foo.health += "τόσο"; Θα το γράψεις για όλους;

 

@defacer

Πάνω, εκεί που λέει το όνομά σου έχει κάτι που λέγεται Διαχείριση Λ. Αγνόησης. Δουλεύει, στο εγγυώμαι.

 

Για να μη μπερδευτούμε: εδώ ο timon συγκρίνει το "ξερό πεδίο" με μια method. Η property που λέμε παραπάνω είναι στην ουσία ένα ζευγάρι methods, απλά συντάσσεται λίγο διαφορετικά. Δηλαδή δεν διαφωνούμε στον τρόπο χειρισμού, απλά έτσι που το έγραψες ίσως αφήνει λάθος εντύπωση.

 

Thanks για το tip, done.

Δημοσ.
Προτιμότερο είναι αυτό που ήδη είπε ο defacer. Ένα member function hpIncrease. Μέσα στο οποίο θα μπορείς να κάνεις ό,τι ελέγχους θες και αυτοί οι έλεγχοι θα είναι σε ένα σημείο (στο σημείο που πρέπει να γίνουν). Ακόμα καλύτερα, αυτή η μέθοδος θα μπορεί να είναι κοινή για όλα τα toons. Είτε Human Player είτε PC Players. Όλοι δεν θα κάνουν regenerate; Τα creeps δεν θα έχουν δυνατότητα να δέχονται healing; Πώς θα το κάνεις αυτό; Κατευθείαν με foo.health += "τόσο"; Θα το γράψεις για όλους;

 

sorry, εγώ τι έκανα, μήπως έκανες λάθος το όνομα?

 

>

       // Increase Player HP
       public void IncreaseHP(float _HP)
       {
           if (!isDEAD)
           {
               if (Math.Abs(HP + _HP) < 1)
                   _HP = 1;
               else if (Math.Abs(HP + _HP) > 12000)
               {
                   _HP = Math.Abs(HP + _HP) - 12000;
                   _HP--;
               }

               HP += _HP;
           }
           else
           {
               //TODO: Print is dead message
           }
       }

 

απλά μέσα στην παράμετρο περνας τιμή και δεν ανησυχείς μην ξεχάσεις το "p1.getHP() + 2"

 

εγώ τώρα σκέφτομαι ότι το καλό με αυτό που είπε ο defacer είναι ότι γλυτώνεις κώδικα-μέγεθος παιχνιδιού (ας είναι και πιο δύσχρηστο)

Δημοσ.

Δεν υπαρχει καμια βεντετα. Αλλα θα πρεπει να δεχεσαι τον αλλον

να σε λεει ασχετο μονο αν οντως σου εχει αποδειξει εμπρακτα πως ειναι σε πολυ ανωτερο

επιπεδο απο εσενα. Ο DEFACER προς το παρον δεν εχει αποδειξει τιποτα και καθεται και κανει κριτικες.

Και γραφει σεντονια με φιλοσοφιες.

 

Δεν εχουμε δει κανενα προτζεκτ μεγαλου μεγεθους το οποιο να του δινει ας πουμε το δικαιωμα

να σου μιλαει με επιτακτικο υφακι και να σε λεει ασχετο. ;)

 

Οποιος καθεται και τον ανεχεται για μενα ειναι χαζος. Θα βρεις απο αλλου απαντησεις αν θες...

και με περισσοτερη ευγενια.

Δημοσ.

πιστεύετε ότι στην C# (ναι ας μιλήσουμε μόνο για το γήπεδο του defacer) όποιος φτιάξει κάτι με συναρτήσεις αντί properties είναι έξω από τα νερά?

 

Έτσι γενικά που το θέτεις ναι. Αυτό δε σημαίνει πως δεν υπάρχουν εξαιρέσεις, ούτε και πως δεν γίνεται κατάχρηση των properties εκεί που θα έπρεπε να μπουν methods, ακόμα και από παγκοσμίου κλάσης προσωπικό (γνωστό παράδειγμα)

 

επίσης έχουν υπωθεί πολλά από τον defacer συνήθως για τις ονομασίες μεταβλητών, απλά δεν το θεωρώ σοβαρό αυτό το πράγμα, δηλαδή φίλε μου (defacer) θα πρέπει να κάνουμε ότι λέει το google ¨η εσύ? (όχι _ , 1ο γράμμα πάντα μικρό "newMoney")

>
private int money;
public void AddMoney(int newMoney)
{
money = newMoney;
}

για να είμαστε σωστοί?

 

Οποιοδήποτε σοβαρό άνθρωπο και να ρωτήσεις θα σου πει το ίδιο πράγμα: διάλεξε κάτι που δεν είναι παράλογο and stick with it. Αυτό δε σημαίνει ότι δε μπορούμε να έχουμε προτιμήσεις, ούτε ότι τις προτιμήσεις μας τις βγάλαμε από τον πάτο μας -- αντίθετα τις δημιουργήσαμε παίρνοντας input απο δω και απο κει.

 

Το σημαντικό είναι να είσαι συνεπής σ' αυτό που επέλεξες (και συ και όλη η ομάδα σου, αν υπάρχει). Απλώς αν αυτό που επέλεξες είναι το ευρέως διαδεδομένο τότε καλύτερα και για σένα και για όσους βλέπουν τον κώδικά σου επειδή δε θα δυσκολευτείτε να συνεννοηθείτε λόγω διαφορετικής "προφοράς".

Δημοσ.

@defacer

Ακριβώς, σόρρυ εάν δεν φάνηκε καθαρά... είμαι σε break (βασικά, βαριέμαι να ανοίξω platform builder) και χαζεύω λίγο και τα γράφω γρήγορα :P

 

@latency

Την ευχρηστία θα μπορέσεις να την συγκρίνεις εφόσον μάθεις αυτό που κρίνεις ως δύσχρηστο. Επίσης, αν και λες ότι ξέρεις C... το _HP είναι εντελώς BAD PRACTISE.

Δημοσ.

ON: καλά ας μάθω εγώ πως και τι όσον αφορά τα παιχνίδια και αυτά που λέμε δεν είναι τίποτα, το μεγάλο πρόβλημα είναι πως γίνεται κάτι

 

ε, είναι αυτό που λένε "μπορείς να μοντελοποίησης κάτι που υφίσταται, αλλιώς θέλει ζόρι", στα παιχνίδια θέλει πολύ φαντασία...

 

@latency

Την ευχρηστία θα μπορέσεις να την συγκρίνεις εφόσον μάθεις αυτό που κρίνεις ως δύσχρηστο. Επίσης, αν και λες ότι ξέρεις C... το _HP είναι εντελώς BAD PRACTISE.

 

ξέρω, έχω θέμα με την ομοιομορφία του κώδικα. δεν μου αρέσει να έχει σαν πρώτο γράμμα μικρό.

 

 

Latency θα χρησιμοποιησεις ΧΝΑ?

 

αυτό κάνω, μπας και μάθω την διαδικασία ...

βασικά έχω πολλά θέματα, βλέπω παραδείγματα που η κλάση Player έχει μέσα τα Stats βλέπω άλλα που έχουν μια άλλη κλάση για την περιγραφή των stats και απλά στο Player.cs Γράφουν

 

PlayerStats stats;

.....

if (stasts.HP > 10)

gtfo

 

άσε έχω πονοκέφαλο

Δημοσ.

...

έχουν υπωθεί πολλά από τον defacer συνήθως για τις ονομασίες μεταβλητών, απλά δεν το θεωρώ σοβαρό αυτό το πράγμα

...

 

Δεν ξέρω ακριβώς τι έχετε κουβεντιάσει για αυτό το θέμα. Επίσης δεν έχω παρά μικρή επαγγελματική εμπειρία. Όμως απο αυτή μπορώ να σου πώ το εξής.

 

1 - 2 σημεία μου έρχονται αυτή τη στιγμή.

Έστω ότι έχεις ένα μεγάλο project. Μεγάλο όμως (ας πάρουμε κάποια μεγέθη έτσι για πλάκα, ας πούμε 200 κλάσεις).

Και έστω οτι τα ονόματα των μεταβλητών σου γενικά είναι ο,τι να ναι.

 

Όταν θα τελειώσεις και θα αφήσεις αυτό το project για ένα x διάστημα (π.χ. 1 μήνα) και ξαφνικά θα χρειαστεί να προσθέσεις - διορθώσεις κάτι σε αυτό, τότε θα σου πάρει πάρα πολυ χρόνο να διαβάσεις τον δικό σου κώδικα και να καταλάβεις τι στο καλό κάνεις. Αυτός ο χρόνος είναι χρήσιμος. Ειδικά αν είσαι σε εταιρεία είναι απαγορευτικό.

 

Αντίστοιχα λοιπόν αν έχεις 10 project και τα πάντα τρέχουν με πίεση φαντάσου πόσο θα μειωθεί η παραγωγικότητά σου έναντι κάποιου άλλου συναδέλφου σου - και στην τελική δε συμφέρεις σαν εργαζόμενος έναντι του άλλου.

 

Θα σου προτείνω να κατεβάσεις/αγοράσεις και διαβάσεις προσεκτικά αυτό το βιβλίο (Μπορώ να στο στείλω αν θες) γραμμένο απο έναν άνθρωπο που δουλεύει χρόνια σε πολύ μεγάλες εταιρείες και project να δεις τι έχει να σου πει.

 

 

Τώρα. Ίσως τώρα που ξεκινάς να είναι υπερβολικό να πέφτουν όλοι πάνω σου για πράγματα σαν και αυτά. Όμως το κακό το συνηθίζεις πολύ εύκολα το άτιμο και δεν καταλαβαίνεις πόσο κακό είναι μέχρι να την πατήσεις χοντρά.

  • Like 1

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

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

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

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

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

Σύνδεση

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

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

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