Skip to content

lydia-ath/Solidity-SOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Solidity-SOS

Assignment for Blockchain course of MSc

Το πρόγραμμα έχει αναπτυχθεί σε περιβάλλον Remix.

Δομή Προγράμματος. Η βασική δομή του προγράμματος είναι ένα Contract το οποίο περιλαμβάνει τις βασικές μεταβλητές και συναρτήσεις όπως αυτές ζητούνται από τις απαιτήσεις υλοποίησης του παιχνιδιού. Για την αναπαράσταση του κάθε παίκτη έχει επιλεγεί η δομή struct στην οποία ορίζονται ο κωδικός με τον οποίο μπαίνει στο παιχνίδι, η διεύθυνσή του στο σύστημα η οποία είναι τύπου address καθώς και μια μεταβλητή τύπου bool η οποία δηλώνει εάν ο παίκτης είναι ή όχι παρών στο παιχνίδι. Όλες οι συναρτήσεις που είναι απαραίτητες για τη λειτουργία του παιχνιδιού έχουν αναπτυχθεί σύμφωνα με τις απαιτήσεις που αναγράφονται στην εκφώνηση. Το παιχνίδι ξεκινάει μόλις ένας παίκτης που είναι συνδεδεμένος στο σύστημα καλέσει την συνάρτηση play() η οποία δηλώνεται ως public payable για να μπορεί να διαχειριστεί μεταφορά ποσών ether στο σύστημα όταν γίνεται κλήση της. Όταν ένας παίκτης καλέσει τη συνάρτηση μπαίνει σε αναμονή όσο η συνάρτηση κάνει έλεγχο για άλλο παίκτη που επιθυμεί να συνδεθεί. Ο έλεγχος γίνεται με τη συνάρτηση require() που παίρνει ως ορίσματα τις μεταβλητές που δηλώνουν την παρουσία ή όχι των παικτών στο σύστημα. Όταν ο έλεγχος ολοκληρωθεί γίνεται emit η συνάρτηση StartGame(address,address). Η τοποθέτηση των συμβόλων S και O στη σκακιέρα γίνεται με τις συναρτήσεις placeS() placeO() με όρισμα την αριθμημένη θέση του τετραγώνου η οποία μετατρέπεται από το πρόγραμμα σε γραμμή και στήλη του πίνακα που αναπαριστά τη σκακιέρα.

Tο παιχνίδι δηλώνεται τώρα ως δομή (struct) ώστε κάθε παιχνίδι να μπορεί να κρατάει το δικό του state.

Για να τρέχουν πολλά παιχνίδια ταυτόχρονα έχει δηλωθεί πίνακας παιχνιδιών mapping (uint32 => Game) private games;

Releases

No releases published

Packages

No packages published