[Solved] Pascal - Snakes And Ladders

Συζητήσεις σχετικές με την Delphi και την πρόγονη της Pascal

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
christos312
Δημοσιεύσεις: 126
Εγγραφή: 13 Νοέμ 2005 22:13
Επικοινωνία:

[Solved] Pascal - Snakes And Ladders

Δημοσίευση από christos312 » 01 Ιαν 2009 11:31

Καλή χρονιά και ΕΥΤΥΧΙΣΜΕΝΟ το 2009...

Προσπαθώ να κάνω το παιχνίδι snakes and ladders το επιτραπέζιο ΠΑΙΧΝΙΔΙ που ξέρουμε όλοι σε Pascal....

Έχω τελειώσει σχεδόν το project άλλα με προβληματίζει η κίνηση των πιονιών μιας και πρέπει να γίνεται ζικ ζακ...

Δηλαδή...

αν ο πινάκας είναι 3χ3, στη περίπτωση μου είναι 10χ10

και είχαμε
1 2 3
1 ___|___|___|

2 ___|___|___|

3 ___|___|___|

Όταν ο παίχτης έφτανε στη θέση 3,3 πρέπει να πάει στη θέση 3,2
όταν φτάσει στη θέση 2,1 να πάει στο 1,1 και επίσης πρέπει στη μια σειρά να αυξάνω κάποιο μετρητή το i για παράδειγμα που αντιπροσωπεύει τις στήλες και στην επόμενη να τον μειώνω....

Ξέρει κάποιος πως μπορώ να το κάνω? Δεν ζητώ έτοιμα προγράμματα(γιατί έτσι δεν μαθαίνεις) ή να μου το κάνει κάποιος, άπλα συμβουλές και κάποιες κατευθυντήριες γραμμές...

Ευχαριστώ πολύ για το κόπο σας
Χρόνια Πολλά
Τελευταία επεξεργασία από το μέλος christos312 την 26 Ιουν 2009 14:19, έχει επεξεργασθεί 1 φορά συνολικά.
Εικόνα
"All This Has Happened Before And It Will Happen Again.."
Battlestar Galactica RULEZZ

Άβαταρ μέλους
Hermeia
Honorary Member
Δημοσιεύσεις: 987
Εγγραφή: 02 Αύγ 2004 00:14
Τοποθεσία: Αθήνα
Επικοινωνία:

[Solved] Pascal - Snakes And Ladders

Δημοσίευση από Hermeia » 02 Ιαν 2009 14:30

Σίγουρα έχεις ένα έλεγχο για τη μέγιστη διάσταση (κελί) κάθε "σειράς" πχ (αν είναι οι σειρές που προχωρει ας πούμε, όταν φτάσει στο πιο μεγάλο κελί της σειράς, θα ανέβει στη επόμενη σειρά),
πρόσθεσε και μια "σημαία" (flag, boolean) που να σου δείχνει την κατεύθυνση, και που θα είναι απαραίτητο δηλωμένο χαρατκηριστικό κάθε σειράς,
το οποίο θα ορίζει (και θα δείχνει) την κατεύθυνση της προόδου στην κάθε σειρά,

πχ. αρχίζεις κάπου την πρώτη σειρά, και αυξάνεις τα κελιά (με τη σημαία μηδενική πχ),
κι όταν φτάσεις στο τέλος της, τότε αλλάξεις τη σειρα (πας στην παραπάνω γρμμή του παιχνιδιου, στο ίδιο τελευταίο κελί), και εδώ η σημαία είναι ανάποδη (πχ. σε κάθε ζυγή σειρά θα είναι 1), και η πρόοδος γίνεται εδώ με το δείκτη κελιού να μειώνονται.. και τανάπαλιν
(με την αναποδη σημαία/1, η αλλαγή θα γίνεται όταν φτάσει στο 1ο κελι.. όπου θα πας στην παραπάνω γραμμή, και θα ξανα-αλλάξει η σημαία/flag σε 0..)

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


καλη επιτυχία


υγ. το παιχνιδι το λέγανε φιδάκι όταν ήμουνα παιδι

υγ2. συγνώμη, σου τα είπα ανάποδα.. εγώ υπέθεσα ότι αρχίζει από το κελι 1, σειρά 1 και προχωράει.. ενώ στα δικά σου λεγόμενα αρχίζει από τις μεγιστες τιμές και μειώνει.. αλλα πιστεύω να είναι σαφές ότι μια σημαία της σωστής "φοράς" κατεύθυνσης θα σε βοηθήσει
Hermeia the InfoSharer
Η Γνώση είναι Δύναμη
Εικόνα

Takis456
Δημοσιεύσεις: 20
Εγγραφή: 14 Δεκ 2008 02:12

[Solved] Pascal - Snakes And Ladders

Δημοσίευση από Takis456 » 04 Ιαν 2009 22:14

Να προσθέσω μερικά πραγματάκια. Θα πρέπει να έχεις 2 μεταβλητές x,y που θα αποθηκεύεις τη θέση του πάνω στο board. Σωστά το παιχνίδι θα πρέπει να αρχίζει από τη θέση 1.1 και να προχωράει. Αν θες μπορείς να αρχίζεις από το 3.3, αλλά θα είναι λίγο παράξενο σε σχέση με αυτό που έχουμε μάθει.

Δεν χρειάζεται η χρήση flag αφού η θέση που μπορεί να πάει μπορεί να βρεθεί εύκολα με συνάρτηση τύπου odd. Αντιθέτως η χρήση flag θα σε αναγκάσει να έχεις μεγαλύτερο κώδικα, αφού θα πρέπει πάντα να φροντίζεις να την ανανεώνεις. Ειδικά αν σε φάει φιδάκι ή πας σε σκαλοπατάκι δεν θα ξέρεις αν θα πρέπει να πας δεξιά ή αριστερά. Πχ.

Αντί για:

Κώδικας: Επιλογή όλων

var x,y:integer;
      go_left:boolean;
begin
...
   if go_left then
    ...
  else
    ...
...
end.
Να έχεις:

Κώδικας: Επιλογή όλων

var x,y:integer;
begin
...
   if not Odd (y) then
    ...
  else
    ...
...
end.
Hermeia έγραψε:υγ. το παιχνιδι το λέγανε φιδάκι όταν ήμουνα παιδι
Σωστά. Μην το ονομάσεις Snakes And Ladders. Λίγοι θα καταλάβουν τι εννοείς.

Άβαταρ μέλους
christos312
Δημοσιεύσεις: 126
Εγγραφή: 13 Νοέμ 2005 22:13
Επικοινωνία:

[Solved] Pascal - Snakes And Ladders

Δημοσίευση από christos312 » 05 Ιαν 2009 19:45

Ευχαριστώ... θα το κοιτάξω :D
Εικόνα
"All This Has Happened Before And It Will Happen Again.."
Battlestar Galactica RULEZZ

Απάντηση

Επιστροφή στο “Delphi, Pascal”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες