Daily Programming Thread
- LexTalionis
- bit level
- Posts: 30
- Joined: Tue Dec 03, 2013 9:03 pm
Daily Programming Thread
Λοιπόν,στόχος του thread :
Να μείνει alive και πάντα να βρίσκεται στα new posts
Τι συζητάμε ; Project με τα οποία ασχολούμαστε,θέλουμε να ασχοληθούμε,κομμάτια κώδικα που μας μπέρδεψαν/μας έφαγαν χρόνο για χαζομάρα,ερωτήσεις σχετικά με προγραμματισμό , πράγματα που ανακαλύψαμε , απορίες κτλπ . Ίσως κάποιοι να θέλουν να ασχοληθούν περισσότερο με προγραμματισμό,αλλά να μην μπορούν να βρουν κάποια ωραία ιδέα , οπότε θα μπορούσαν να ρωτήσουν εδώ για ιδέες
Επίσης δεν θέλω κάποιος να φοβηθεί επειδή ίσως να ναι newb . Όλοι είμαστε/ήμασταν ,και αυτό εδώ μπορεί να μας βοηθήσει να ξεφύγουμε πιο γρήγορα και εύκολα από την "newbίστικη" κατάσταση μας .
Και αφού είπα λίγα σχετικά με το πως σκέφτομαι εγώ το thread,ήρθε η ώρα να μιλήσω πρώτος .
Η πιο κοντινή βλακεία που έκανα ,ήταν στο git να θέτω global.mail = kati@mail.com αντί για global.email = kati@mail.com . Μου κόστισε κοντά στις 3 ώρες να καταλάβω γιατί δεν μου εμφάνιζε στα commits του github το profile μου .
Εγώ στο κοντινό μέλλον(εντός 1-2 εβδομάδων) σκέφτομαι να φτιάξω custom ui σε android για ένα chat app . Ουσιαστικά θα μοιαζει πάρα πολύ με το ui που χει τώρα το facebook chat .
Στο μακρινό μέλλον θέλω να φτιάξω botaki για mmorpg . Ουσιαστικά σαν aimbot θα ναι ,και αν τελειώσει το project αυτό και φαρμάρει μηχανικά, ίσως να του φτιάξω ai για να κάνει περισσότερα πράγματα .
Να μείνει alive και πάντα να βρίσκεται στα new posts
Τι συζητάμε ; Project με τα οποία ασχολούμαστε,θέλουμε να ασχοληθούμε,κομμάτια κώδικα που μας μπέρδεψαν/μας έφαγαν χρόνο για χαζομάρα,ερωτήσεις σχετικά με προγραμματισμό , πράγματα που ανακαλύψαμε , απορίες κτλπ . Ίσως κάποιοι να θέλουν να ασχοληθούν περισσότερο με προγραμματισμό,αλλά να μην μπορούν να βρουν κάποια ωραία ιδέα , οπότε θα μπορούσαν να ρωτήσουν εδώ για ιδέες
Επίσης δεν θέλω κάποιος να φοβηθεί επειδή ίσως να ναι newb . Όλοι είμαστε/ήμασταν ,και αυτό εδώ μπορεί να μας βοηθήσει να ξεφύγουμε πιο γρήγορα και εύκολα από την "newbίστικη" κατάσταση μας .
Και αφού είπα λίγα σχετικά με το πως σκέφτομαι εγώ το thread,ήρθε η ώρα να μιλήσω πρώτος .
Η πιο κοντινή βλακεία που έκανα ,ήταν στο git να θέτω global.mail = kati@mail.com αντί για global.email = kati@mail.com . Μου κόστισε κοντά στις 3 ώρες να καταλάβω γιατί δεν μου εμφάνιζε στα commits του github το profile μου .
Εγώ στο κοντινό μέλλον(εντός 1-2 εβδομάδων) σκέφτομαι να φτιάξω custom ui σε android για ένα chat app . Ουσιαστικά θα μοιαζει πάρα πολύ με το ui που χει τώρα το facebook chat .
Στο μακρινό μέλλον θέλω να φτιάξω botaki για mmorpg . Ουσιαστικά σαν aimbot θα ναι ,και αν τελειώσει το project αυτό και φαρμάρει μηχανικά, ίσως να του φτιάξω ai για να κάνει περισσότερα πράγματα .
No luv ?
- Funk
- Venus Former Team Member
- Posts: 1834
- Joined: Wed Oct 06, 2010 10:29 pm
- Gender: ♂
- Location: Korriban
Re: Daily Programming Thread
Δεν είναι τόσο programming, αλλά σήμερα χάλασα και ξαναέστησα 3 φορές το wordpress μέχρι να καταλάβω πως μπορώ να αλλάξω τα permalinks.
Το όνομα του site είναι "Α noob's website" ...oh well...
Το όνομα του site είναι "Α noob's website" ...oh well...
- Spongebobu
- Mbyte level
- Posts: 702
- Joined: Mon Jul 02, 2012 6:54 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: In yo house
Re: Daily Programming Thread
Ωραίο thread και μακάρι να συμμετάσχουν περισσότεροι (φοιτητές Πληροφορικής δεν είμαστε?).
On topic:
Επειδή τώρα τελευταία ασχολούμαι με functional programming και συγκεκριμένα με clojure, για πείτε την γνώμη σας κατα πόσο πιστεύετε αξίζει ο συναρτησιακός προγραμματισμός και αν σας έχει βοηθήσει πουθενά. Προσωπικά πιστεύω βοηθάει πολύ στο scalability και την καλύτερη σύνταξη προγραμμάτων και πολλές τεχνικές μπορούν να μεταφερθούν και σε OO/procedural γλώσσες (π.χ. immutability). Το κακό είναι οτι για πολλούς είναι "ξένη" μεθοδολογία και δεν βλέπουν το νόημα να εκφράζουν τα προγράμματα τους ως μαθηματική φόρμουλα, στο οποίο ως ενα βαθμό συμφωνώ.
Also, αν τον ενδιαφέρει κάποιον μπορούμε να κάνουμε κανένα code golf challenge.
On topic:
Επειδή τώρα τελευταία ασχολούμαι με functional programming και συγκεκριμένα με clojure, για πείτε την γνώμη σας κατα πόσο πιστεύετε αξίζει ο συναρτησιακός προγραμματισμός και αν σας έχει βοηθήσει πουθενά. Προσωπικά πιστεύω βοηθάει πολύ στο scalability και την καλύτερη σύνταξη προγραμμάτων και πολλές τεχνικές μπορούν να μεταφερθούν και σε OO/procedural γλώσσες (π.χ. immutability). Το κακό είναι οτι για πολλούς είναι "ξένη" μεθοδολογία και δεν βλέπουν το νόημα να εκφράζουν τα προγράμματα τους ως μαθηματική φόρμουλα, στο οποίο ως ενα βαθμό συμφωνώ.
Also, αν τον ενδιαφέρει κάποιον μπορούμε να κάνουμε κανένα code golf challenge.
Every time you make a typo the errorists win.
Fabio 2 - 1 Funk
-
- Gbyte level
- Posts: 1061
- Joined: Mon Dec 12, 2011 8:42 pm
- Academic status: Alumnus/a
- Gender: ♂
Re: Daily Programming Thread
(please delete)
Last edited by michalis on Fri Dec 06, 2013 1:00 pm, edited 1 time in total.
Re: Daily Programming Thread
Νομίζω ότι αξίζει. Πλέον όλες οι σύγχρονες γλώσσες έχουν αποκτήσει χαρακτηριστικά συναρτησιακών γλωσσών προγραμματισμού. Για παράδειγμα, όλες οι γλώσσες (βλ. C#, Ruby, Python, C++11, σε λίγο καιρό ΚΑΙ η Java) υποστηρίζουν lambda expressions, ένας μηχανισμός ο οποίος υλοποιήθηκε αρχικά στη Lisp και προήλθε από τον λ-λογισμό και τα μαθηματικά. Και φυσικά δεν είναι μόνο αυτό. Immutability, lazy evaluation, currying, closures...... Άσε που τα τελευταία χρόνια όλο και περισσότερες γλώσσες δημιουργούνται που τρέχουν στη JVM και εννοείται πως έχουν full access σε ολες τις βιβλιοθήκες της Java. Φαίνεται πως υπάρχει μία τάση σύγκλισης declarative και imperative style.Spongebobu wrote:Ωραίο thread και μακάρι να συμμετάσχουν περισσότεροι (φοιτητές Πληροφορικής δεν είμαστε?).
On topic:
Επειδή τώρα τελευταία ασχολούμαι με functional programming και συγκεκριμένα με clojure, για πείτε την γνώμη σας κατα πόσο πιστεύετε αξίζει ο συναρτησιακός προγραμματισμός και αν σας έχει βοηθήσει πουθενά. Προσωπικά πιστεύω βοηθάει πολύ στο scalability και την καλύτερη σύνταξη προγραμμάτων και πολλές τεχνικές μπορούν να μεταφερθούν και σε OO/procedural γλώσσες (π.χ. immutability). Το κακό είναι οτι για πολλούς είναι "ξένη" μεθοδολογία και δεν βλέπουν το νόημα να εκφράζουν τα προγράμματα τους ως μαθηματική φόρμουλα, στο οποίο ως ενα βαθμό συμφωνώ.
Also, αν τον ενδιαφέρει κάποιον μπορούμε να κάνουμε κανένα code golf challenge.
Συνιστώ σε όποιον τον ενδιαφέρουν αυτά να πάρει υπολογισιμότητα (όταν ξαναγίνει). Είναι εντυπωσιακό το πόσα στοιχεία έχουν δανειστεί οι συναρτησιακές γλώσσες από εκεί. Έτσι κι αλλιώς δε νομίζω ότι είναι τυχαίο το ότι η υπολογισιμότητα είναι περισσότερο γνωστή ως θεωρία αναδρομικών συναρτήσεων.
Τον τελευταίο καιρό, όταν έχω λίγο χρόνο ξεφυλλίζω το Real World Haskell.
- X-ray
- Mbyte level
- Posts: 854
- Joined: Tue Aug 29, 2006 2:09 pm
- Academic status: Alumnus/a
- Gender: ♂
- Contact:
Re: Daily Programming Thread
Εγώ τον τελευταίο καιρό ασχολούμαι με Drupal / PHP / mySQL.
Μια χαρά μου φαίνεται so far, αν και η μετάβαση από .NET / C# / Oracle ήταν κάπως σκληρή
Ασχολείται κανένας άλλος με drupal;
Μια χαρά μου φαίνεται so far, αν και η μετάβαση από .NET / C# / Oracle ήταν κάπως σκληρή
Ασχολείται κανένας άλλος με drupal;
- ja_the_invincible
- Wow! Terabyte level
- Posts: 2414
- Joined: Tue Dec 01, 2009 12:33 am
- Academic status: N>4
- Gender: ♂
- Location: Κάπου στο matrix...
Re: Daily Programming Thread
Python κυρίως πάνω σε flask με βάση mongodb και background task running με celery.Πολλές πολλές δυνατότητες και πιστεύω θα τα δούμε πιο πολύ στο μέλλον.Θα πρότεινα όποιος ασχολείται με web να τα κοιτάξει σαν κάτι εναλλακτικό που αποκτά πολύ hype τελευταία.
f**k robin and batman i'm robbin with a bat man
- ThOdOr1s
- Mbyte level
- Posts: 964
- Joined: Thu Oct 25, 2012 5:17 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: 36.86588,25.51602
Re: Daily Programming Thread
Εγω χθες αργα το βραδυ καθησα και διαβασα αυτο.
Δεν εγραψα κωδικα, αυτο θα γινει μετα το μπουγιο εργασιων που εχουμε τωρα. Αλλα κατι καταλαβα τουλαχιστον... Δεν ειναι τοσο τραγικα τα πραγματα οσο τα περιγραφει ο moodie...
Δεν εγραψα κωδικα, αυτο θα γινει μετα το μπουγιο εργασιων που εχουμε τωρα. Αλλα κατι καταλαβα τουλαχιστον... Δεν ειναι τοσο τραγικα τα πραγματα οσο τα περιγραφει ο moodie...
Elementary OS
Re: Daily Programming Thread
Λοιπόν η φάση έχει ως εξής:
Ξαδελφός μου, πιτσιρικάς (μόλις μπήκε στο γυμνάσιο), με τραβολογάει να του μάθω προγραμματισμό. Το ζήτημα είναι το εξής: Σε ποια γλώσσα να του δείξω, μιας και αμφιταλαντεύομαι μεταξύ python και java, με την πλάστιγγα να γέρνει πιο πολύ προς την πρώτη κυρίως λόγω της απλότητας του συντακτικού της και αφου μιλάμε για πιτσιρίκι, δεν θα γλαρώσει τόσο εύκολα. Αλλά από την άλλη δεν θα μπορεί να εξοικιωθει με βασικές έννοιες προγραμματισμού και θα αποκτήσει κακές συνήθειες στο "γράψιμο".
Εσείς τι θα διαλέγατε σε μια τέτοια περίπτωση?
Ξαδελφός μου, πιτσιρικάς (μόλις μπήκε στο γυμνάσιο), με τραβολογάει να του μάθω προγραμματισμό. Το ζήτημα είναι το εξής: Σε ποια γλώσσα να του δείξω, μιας και αμφιταλαντεύομαι μεταξύ python και java, με την πλάστιγγα να γέρνει πιο πολύ προς την πρώτη κυρίως λόγω της απλότητας του συντακτικού της και αφου μιλάμε για πιτσιρίκι, δεν θα γλαρώσει τόσο εύκολα. Αλλά από την άλλη δεν θα μπορεί να εξοικιωθει με βασικές έννοιες προγραμματισμού και θα αποκτήσει κακές συνήθειες στο "γράψιμο".
Εσείς τι θα διαλέγατε σε μια τέτοια περίπτωση?
Kommt Zeit, kommt Rat, kommt Attentat!
- ja_the_invincible
- Wow! Terabyte level
- Posts: 2414
- Joined: Tue Dec 01, 2009 12:33 am
- Academic status: N>4
- Gender: ♂
- Location: Κάπου στο matrix...
Re: Daily Programming Thread
Αν και εξελίσσομαι σε fan της python δεν θα την πρότεινα για πρώτη γλώσσα.Κατά την γνώμη μου καλύτερα κάποιος όταν ξεκινάει προγραμματισμό να ασχοληθεί με type strict γλώσσες, να καταλάβει πώς δουλεύει αυτό το πράγμα στην μνήμη , να μάθει πώς δουλεύουν οι pointers, κλπ.Η python παρέχει πολλές ευκολίες σίγουρα για ένα developer που έχει κάνει c/c++/java ωστόσο για ένα πρωτάρη σκιπάρει πολύ βασικά πράγματα τα οποία είναι ανορθόδοξο να τα καλύψει μετά.Καλύτερα java & στην αρχή το concept να είναι functional και μόνο.Ακόμα καλύτερα c/c++.
f**k robin and batman i'm robbin with a bat man
- cypher
- Venus Former Team Member
- Posts: 6207
- Joined: Mon Sep 29, 2008 9:12 pm
- Academic status: Alumnus/a
- Gender: ♂
Re: Daily Programming Thread
Κατ'εμε C με πολύ βασικά παραδείγματα και μικρά προβληματάκια που θα λύvει. Το http://www.mgiurdas.gr/book-209.aspx εχει ενα σωρό εύκολα παραδειγματάκια/ασκήσεις και έχει και cd με κώδικα για να τσεκάρει. Θα πάρει ίσως 1-2 εβδομάδες παραπάνω διάβασμα αλλα αξίζει. Python είναι υπεραπλουστευμένη και δεν θα είναι αρκετά challenging, και η java έχει αρκετές ιδιαιτερότητες και libs που θα τον κουράζουν και δεν θα έχουν σχέση με τα προβληματακια που θα πρέπει να λύσει (π.χ. συνεχή conversions ανάμεσα σε data types).
- nachos
- Gbyte level
- Posts: 1252
- Joined: Mon Aug 21, 2006 4:28 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Brachamee City
Re: Daily Programming Thread
Θα σου πρότεινα να παίξεις με Visual Basic .NEΤ. Είναι ψηλά-χαμηλά το ίδιο πράμα με Java, αλλά έχει το εξής καλό: εκτός από κλάσεις, μπορείς να γράφεις και modules (όπου όλα τα methods είναι εξ' ορισμού static, οπότε δεν μπλέκεις με το να εξηγείς εξαρχής τι είναι το static κλπ). Επίσης, το συντακτικό της VB αν και λίγο φλύαρο, θεωρώ ότι βοηθάει εξαιρετικά στην εκμάθηση ένα πρωτάρη. Σκέψου ότι πρακτικά η ψευδογλώσσα που κάναμε στο λύκειο, ήταν VB 6 μεταφρασμένη στα ελληνικά, με ελάχιστες παραλλαγές.
Δες ένα παράδειγμα με το κλασσικό hello world, όπως θα το έγραφες με το καλημέρα σε visual studio 2010:
Δες ένα παράδειγμα με το κλασσικό hello world, όπως θα το έγραφες με το καλημέρα σε visual studio 2010:
Code: Select all
Module Module1
Sub Main()
Console.WriteLine("Hello world!")
End Sub
End Module
Nothing is impossible for the man who doesn't have to do it himself
- LexTalionis
- bit level
- Posts: 30
- Joined: Tue Dec 03, 2013 9:03 pm
Re: Daily Programming Thread
Μιας και μόλις μπήκε γυμνάσιο,συμφωνώ με τον nachos ,καθώς θα θέλει άμεσα αποτελέσματα (και ui σχετικά γρήγορα), και επίσης θα βρει πιο χρήσιμα tutorials (δλδ να εξηγούν το παραμικρό ξανά και ξανά ) .
Με αυτό δεδομένο,στην σύγκριση visual studio vs python,διαλέγω python .
Βέβαια καλό θα ταν να άρχιζε από c,αλλά πραγματικά,εδώ συμφοιτητές μας δεν έχουν την υπομονή να την μάθουν,θα χε ένα παιδί 1ης γυμνασίου ;
Με αυτό δεδομένο,στην σύγκριση visual studio vs python,διαλέγω python .
Βέβαια καλό θα ταν να άρχιζε από c,αλλά πραγματικά,εδώ συμφοιτητές μας δεν έχουν την υπομονή να την μάθουν,θα χε ένα παιδί 1ης γυμνασίου ;
No luv ?
- rexes
- Kilobyte level
- Posts: 397
- Joined: Wed Sep 21, 2011 8:22 pm
- Academic status: 3rd year
- Gender: ♂
- Location: SomeWhere
Re: Daily Programming Thread
Πολυ ωραίο thread!
Ήθελα να ρωτήσω κάτι σχετικά με App Engine και γενικότερα τεχνολογίες Cloud της Google.
Έχει ασχοληθεί κανείς;; Εχω μια απορία πάνω σε Projects για το App Engine αν εχει ασχοληθει κανεις πολυ!
Ήθελα να ρωτήσω κάτι σχετικά με App Engine και γενικότερα τεχνολογίες Cloud της Google.
Έχει ασχοληθεί κανείς;; Εχω μια απορία πάνω σε Projects για το App Engine αν εχει ασχοληθει κανεις πολυ!
Εφαρμογή για το Πρόγραμμα του Οικονομικού Πανεπιστημίου Αθηνών
Δείτε περισσότερα για την εφαρμογή και πείτε την άποψή σας!
Δείτε περισσότερα για την εφαρμογή και πείτε την άποψή σας!
- PatrickFTW
- Mbyte level
- Posts: 625
- Joined: Sat Oct 30, 2010 9:06 pm
- Academic status: N>4
- Gender: ♂
- Location: Somewhere
Re: Daily Programming Thread
Παιδιά για να χρησιμοποιήσω το Android SDK πρέπει οπωσδήποτε να έχω Java 6 ή μπορώ και με με Java 7 ?
Oι άνθρωποι δεν πρέπει να φοβούνται τις κυβερνήσεις, οι κυβερνήσεις πρέπει να φοβούνται τους ανθρώπους...
- cypher
- Venus Former Team Member
- Posts: 6207
- Joined: Mon Sep 29, 2008 9:12 pm
- Academic status: Alumnus/a
- Gender: ♂
Re: Daily Programming Thread
Με eclipse + adt δεν ειναι compatible οχι. Με android studio μπορείς να το ρυθμίσεις να παίζει απλά μερικά καινούργια features της γλώσσας δεν θα λειτουργουν. Δες εδώ http://stackoverflow.com/questions/7153 ... th-android
- nachos
- Gbyte level
- Posts: 1252
- Joined: Mon Aug 21, 2006 4:28 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Brachamee City
Re: Daily Programming Thread
Νομίζω ότι μπορεί να παίξει με την έννοια ότι μπορείς να θέσεις το runtime compatibility σε 1.6. Οπότε αν έχεις ήδη εγκατεστημένo τo 1.7 να μη χρειάζεσαι installation του 1.6 sdk.cypher wrote:Με eclipse + adt δεν ειναι compatible οχι. Με android studio μπορείς να το ρυθμίσεις να παίζει απλά μερικά καινούργια features της γλώσσας δεν θα λειτουργουν. Δες εδώ http://stackoverflow.com/questions/7153 ... th-android
Nothing is impossible for the man who doesn't have to do it himself
Re: Daily Programming Thread
Code: Select all
import java.awt.event.*;
import acm.program.*;
import acm.graphics.*;
public class mouse extends GraphicsProgram {
public void run(){
GRect rect=new GRect(getWidth()/2,getHeight()/2,100,80);
rect.setFilled(true);
add (rect);
while(true){
rect.move(dx,dy);
pause(10);
}
}
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_LEFT) {
dx = -1;
}
if (key == KeyEvent.VK_RIGHT) {
dx = 1;
}
if (key == KeyEvent.VK_UP) {
dy = -1;
}
if (key == KeyEvent.VK_DOWN) {
dy = 1;
}
}
private int dx;
private int dy;
}
Προσπαθώ να καταλάβω πως να χρησιμοποιώ το πληκτρόλογιο ως ακροατή συμβάντων.
Ευχαριστώ
- rexes
- Kilobyte level
- Posts: 397
- Joined: Wed Sep 21, 2011 8:22 pm
- Academic status: 3rd year
- Gender: ♂
- Location: SomeWhere
Re: Daily Programming Thread
Την keyPressed δεν καταλαβαίνεις;001 wrote:Μπορεί κάποιος να μου εξηγήσει τι κάνει αυτός ο κώδικας?Code: Select all
import java.awt.event.*; import acm.program.*; import acm.graphics.*; public class mouse extends GraphicsProgram { public void run(){ GRect rect=new GRect(getWidth()/2,getHeight()/2,100,80); rect.setFilled(true); add (rect); while(true){ rect.move(dx,dy); pause(10); } } public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); if (key == KeyEvent.VK_LEFT) { dx = -1; } if (key == KeyEvent.VK_RIGHT) { dx = 1; } if (key == KeyEvent.VK_UP) { dy = -1; } if (key == KeyEvent.VK_DOWN) { dy = 1; } } private int dx; private int dy; }
Προσπαθώ να καταλάβω πως να χρησιμοποιώ το πληκτρόλογιο ως ακροατή συμβάντων.
Ευχαριστώ
Εφαρμογή για το Πρόγραμμα του Οικονομικού Πανεπιστημίου Αθηνών
Δείτε περισσότερα για την εφαρμογή και πείτε την άποψή σας!
Δείτε περισσότερα για την εφαρμογή και πείτε την άποψή σας!
- nachos
- Gbyte level
- Posts: 1252
- Joined: Mon Aug 21, 2006 4:28 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Brachamee City
Re: Daily Programming Thread
Μέσα στην run, κατασκευάζεται ένα ορθογώνιο σχήμα, και τοποθετείται μέσα στον καμβά της GraphicsProgram. Έπειτα, η άπειρη επανάληψη, προκαλεί σε κάθε βήμα μετακίνηση του ορθογωνίου κατά χ και ψ, ίση με τις ποσότητες dx και dy αντίστοιχα. Οι ποσότητες αυτές όπως παρατηρείς είναι δηλωμένες στην κλάση GraphicsProgram, και όταν ξεκινάει το πρόγραμμα είναι ίσες με 0 (άρα αρχικά το ορθογώνιο παραμένει ακίνητο).
Εδώ έρχεται να μπεί στο παιχνίδι η μέθοδος keyPressed. Για λόγους που δεν είναι επί της παρούσης να σου εξηγηθεί, η keyPressed έχει ιδιαίτερη ερμηνεία στην κλάση GraphicsProgram, και ουσιαστικά καλείται κάθε φορά που χρήστης θα πατήσει οποιοδήποτε πλήκτρο από το πληκτρολόγιο. Όπως παρατηρείς, στην πρώτη της γραμμη, ο κώδικας αναθέτει σε μια μεταβλητή τον κωδικό του πλήκτρου που πατήθηκε. Έπειτα, εξετάζει αν είναι κάποιο από τα τέσσερα βέλη του πληκτρολογίου (αριστερά, δεξιά, πάνω, κάτω), και ανά περίπτωση ενημερώνει την αντίστοιχη μεταβλητή μετατόπισης (dx, dy).
Με αυτόν τον τρόπο, αν ο χρήστης πατήσει ένα οποιοδήποτε βέλος, θα προκαλέσει (στην επόμενη επανάληψη) αντίστοιχη μετατόπιση στο ορθογώνιο. Παρατήρησε επίσης ότι με τον τρόπο που είναι γραμμένος ο κώδικας, αρκεί να πατήσει κανείς μια φορά μόνο ένα βέλος, και μετά το ορθογώνιο θα συνεχίσει να κινείται προς αυτή την κατεύθυνση, μέχρις ότου ο χρήστης να αποφασίσει να διατάξει να κινηθεί προς την αντίθετη.
Εδώ έρχεται να μπεί στο παιχνίδι η μέθοδος keyPressed. Για λόγους που δεν είναι επί της παρούσης να σου εξηγηθεί, η keyPressed έχει ιδιαίτερη ερμηνεία στην κλάση GraphicsProgram, και ουσιαστικά καλείται κάθε φορά που χρήστης θα πατήσει οποιοδήποτε πλήκτρο από το πληκτρολόγιο. Όπως παρατηρείς, στην πρώτη της γραμμη, ο κώδικας αναθέτει σε μια μεταβλητή τον κωδικό του πλήκτρου που πατήθηκε. Έπειτα, εξετάζει αν είναι κάποιο από τα τέσσερα βέλη του πληκτρολογίου (αριστερά, δεξιά, πάνω, κάτω), και ανά περίπτωση ενημερώνει την αντίστοιχη μεταβλητή μετατόπισης (dx, dy).
Με αυτόν τον τρόπο, αν ο χρήστης πατήσει ένα οποιοδήποτε βέλος, θα προκαλέσει (στην επόμενη επανάληψη) αντίστοιχη μετατόπιση στο ορθογώνιο. Παρατήρησε επίσης ότι με τον τρόπο που είναι γραμμένος ο κώδικας, αρκεί να πατήσει κανείς μια φορά μόνο ένα βέλος, και μετά το ορθογώνιο θα συνεχίσει να κινείται προς αυτή την κατεύθυνση, μέχρις ότου ο χρήστης να αποφασίσει να διατάξει να κινηθεί προς την αντίθετη.
Nothing is impossible for the man who doesn't have to do it himself
Re: Daily Programming Thread
-------001 wrote:Ναι....rexes wrote:Την keyPressed δεν καταλαβαίνεις;001 wrote:Μπορεί κάποιος να μου εξηγήσει τι κάνει αυτός ο κώδικας?Code: Select all
import java.awt.event.*; import acm.program.*; import acm.graphics.*; public class mouse extends GraphicsProgram { public void run(){ GRect rect=new GRect(getWidth()/2,getHeight()/2,100,80); rect.setFilled(true); add (rect); while(true){ rect.move(dx,dy); pause(10); } } public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); if (key == KeyEvent.VK_LEFT) { dx = -1; } if (key == KeyEvent.VK_RIGHT) { dx = 1; } if (key == KeyEvent.VK_UP) { dy = -1; } if (key == KeyEvent.VK_DOWN) { dy = 1; } } private int dx; private int dy; }
Προσπαθώ να καταλάβω πως να χρησιμοποιώ το πληκτρόλογιο ως ακροατή συμβάντων.
Ευχαριστώ
και βασικά γιατι δεν δουλεύει ο κώδικας ...
1ον) Τον κώδικα τον έγραψα εγώ... αφού είδα τους κωδικούς απο τα βελάκια...nachos wrote:Μέσα στην run, κατασκευάζεται ένα ορθογώνιο σχήμα, και τοποθετείται μέσα στον καμβά της GraphicsProgram. Έπειτα, η άπειρη επανάληψη, προκαλεί σε κάθε βήμα μετακίνηση του ορθογωνίου κατά χ και ψ, ίση με τις ποσότητες dx και dy αντίστοιχα. Οι ποσότητες αυτές όπως παρατηρείς είναι δηλωμένες στην κλάση GraphicsProgram, και όταν ξεκινάει το πρόγραμμα είναι ίσες με 0 (άρα αρχικά το ορθογώνιο παραμένει ακίνητο).
Εδώ έρχεται να μπεί στο παιχνίδι η μέθοδος keyPressed. Για λόγους που δεν είναι επί της παρούσης να σου εξηγηθεί, η keyPressed έχει ιδιαίτερη ερμηνεία στην κλάση GraphicsProgram, και ουσιαστικά καλείται κάθε φορά που χρήστης θα πατήσει οποιοδήποτε πλήκτρο από το πληκτρολόγιο. Όπως παρατηρείς, στην πρώτη της γραμμη, ο κώδικας αναθέτει σε μια μεταβλητή τον κωδικό του πλήκτρου που πατήθηκε. Έπειτα, εξετάζει αν είναι κάποιο από τα τέσσερα βέλη του πληκτρολογίου (αριστερά, δεξιά, πάνω, κάτω), και ανά περίπτωση ενημερώνει την αντίστοιχη μεταβλητή μετατόπισης (dx, dy).
Με αυτόν τον τρόπο, αν ο χρήστης πατήσει ένα οποιοδήποτε βέλος, θα προκαλέσει (στην επόμενη επανάληψη) αντίστοιχη μετατόπιση στο ορθογώνιο. Παρατήρησε επίσης ότι με τον τρόπο που είναι γραμμένος ο κώδικας, αρκεί να πατήσει κανείς μια φορά μόνο ένα βέλος, και μετά το ορθογώνιο θα συνεχίσει να κινείται προς αυτή την κατεύθυνση, μέχρις ότου ο χρήστης να αποφασίσει να διατάξει να κινηθεί προς την αντίθετη.
2ον) το keyPressed δεν καταλαβαίνω.
3ον) Συμφωνώ απόλυτα...οτι έτσι δουλεύει το πρόγραμμα,αλλά στην πράξη δεν τρέχει όταν πατάω βελάκι.Το object μένει ακίνητο.
4ον)Επειδή είναι η πρώτη μου επαφή με keyPressed είναι σίγουρα σωστά γραμμένος ο κώδικας?
5ον) Ευχαριστώ πολύ
Last edited by Funk on Mon Dec 09, 2013 4:50 pm, edited 1 time in total.
Reason: double post merged
Reason: double post merged
- nachos
- Gbyte level
- Posts: 1252
- Joined: Mon Aug 21, 2006 4:28 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Brachamee City
Re: Daily Programming Thread
Α οκ, νόμιζα ότι ήταν sample κώδικας και ότι έπαιζε σωστά (άρα ότι υπήρχε και η κατάλληλη υποδομή για να παίξει).
EDIT:
Μόλις πρόσεξα αυτή τη μέθοδο:
Θα πρέπει να την καλέσεις στην run στον κώδικα που ήδη έχεις (πριν το άπειρο while), ώστε να καλείται καταληκτικά η keyPressed όταν πρέπει.
EDIT:
Μόλις πρόσεξα αυτή τη μέθοδο:
Code: Select all
addKeyListeners()
Nothing is impossible for the man who doesn't have to do it himself