f.pfister

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 26 avril 2006

Entrées - sorties en java

La sérialisation permet de rendre un objet persistant, en le "détricotant" pour le transformer en un flux d'octets qui pourra être stocké dans un fichier sur disque, ou transmis vers un client distant par une connexion réseau, et à l'inverse, en le "retricotant", le reconstituant à partir du flux.

Le mécanisme de sérialisation inclus dans java est standard et transparent: il suffit d'implémenter l'interface Serializable, qui fournit la capacité pour un objet d'être sauvegardé dans un flux et, au contraire, restitué à partir de celui-ci.

La sauvegarde concerne non seulement les attributs de l'objet, mais aussi tous les objets auxquels cet objet est lié: la sauvegarde se propage automatiquement à la grappe constituée par cet objet et ceux auxquels il est lié: par exemple, la sauvegarde d'un objet Echiquier inclut celle de ses Piece et de leur Position.

Le code source d'un exemple est donné ci-après, ainsi qu'un cas de sauvegarde et de restitution d'un objet au format csv, ce dernier peut aussi être lu et généré par MS-Excel. A noter que pour ce cas d'écriture et de lecture csv, ce n'est pas la sérialisation qui est utilisée, on réalise manuellement la décomposition et la recomposition des attributs de l'objet, notamment dans un constructeur au moyen d'un StringTokenizer, et dans la méthode toCsv()

lire la suite

lundi 10 avril 2006

Jeu d'échecs

Implémentation d'un jeu d'échecs en java Le jeu d'échecs se joue sur un échiquier composé de 64 cases, et de 32 pièces représentant deux armées. Au début d'une partie, chaque joueur dispose de 16 pièces :
  • 8 pions
  • 2 tours
  • 2 fous
  • 2 cavaliers
  • 1 roi
  • 1 reine
Le mouvement de chaque pièce est soumis à des régles spécifiques:
  • Un pion avance d'une case vers l'avant
  • La tour de déplace sur les lignes et les colonnes
  • Un fou se déplace sur les diagonales de sa couleur
  • Le cavalier se déplace sur un 'L'
  • La reine combine les déplacements de la tour et du fou
  • Le roi peut atteindre les 8 cases le jouxtant
Le but de cette exercice est d'écrire un programme qui gère le déplacement des pièces. Nous allons procéder par étapes.
  • Analysez le probléme, définissez les classes et les interactions entre classes
  • Pour valider votre étude, écrivez un programme ne gérant qu'une pièce. Par exemple, nous allons prendre la reine, qui se trouvera au début du jeu sur la case (a,5)
  • Généralisez votre programme en prenant en compte des autres pièces
echecs
modele echecs

lire la suite

mercredi 29 mars 2006

Le jeu de la vie

John von Neumann, mathématicien de génie (un des principaux artisans de la réalisation des ordinateurs), se posa il y a une quarantaine d'années la question de l'autoreproduction des machines. Il créa sur papier un AUTOMATE CELLULAIRE. Ce dernier est constitué d'un damier sur lequel des pions vivent et meurent selon des règles logiques dépendant de leur voisinage. La théorie des automates cellulaires s'est ensuite rapidement développée et suscita un engouement considérable.
Le mathématicien américain John Conway a alors imaginé vers 1970 un jeu, appelé "Jeu de la vie" qui met en scène des cellules susceptibles de se reproduire, de disparaître ou de survivre lorsqu'elles obéissent à des règles quelquefois appelées 'génétiques'. Ces cellules sont représentées ici par des cases sur un quadrillage.
Chaque cellule est donc entourée de huit cases susceptibles d'accueillir d'autres cellules.
Les règles sont les suivantes :
- La survie : chaque cellule ayant deux ou trois cellules adjacentes survit jusqu'à la génération suivante.
- La mort :
    Chaque cellule ayant quatre cellules adjacentes ou plus disparaît, ou meurt, par surpopulation.
    Chaque cellule n'ayant qu'une ou aucune cellule adjacente meurt d'isolement.
- La naissance : chaque case vide ayant exactement trois cellules adjacentes fait naître une nouvelle cellule pour la génération suivante.
Toutes les naissances et toutes les morts ont lieu en même temps au cours d'une génération.

un exemple en Flash

http://perso.wanadoo.fr/therese.eveilleau/pages/truc_mat/textes/conway.htm

lire la suite

lundi 27 mars 2006

Gestion de bibliothèque

On désire réaliser un programme permettant de gérer une bibliothèque.



Un adhérent peut rechercher un ouvrage par titre, l'emprunter, le rendre. Le gestionnaire peut ajouter un ouvrage dans la bibliothèque.
Le gestionnaire veut savoir si un ouvrage a été sorti, et connaitre, pour chaque adhérent, la liste des ouvrages qu'il a emprunté.
Il veut également consulter l'historique de tous les emprunts.
On a analysé le problème ainsi:

Nous avons besoin d'une classe Bibliotheque, une classe Adherent, une classe Gestionnaire, une classe Ouvrage, une classe Emprunt associant Bibliothèque, Ouvrage et Adhérent, et spécifiant, de plus, une date et une durée pour l'emprunt.

L'adhérent a un nom et un prénom. Le document a un titre et un auteur.

Ecrire et tester cette application

Gestion de bibliothèque

On désire réaliser un programme permettant de gérer une bibliothèque.



On veut permettre à un adhérent de rechercher un ouvrage par titre, de l'emprunter, on veut permettre également au gestionnaire d'ajouter un ouvrage dans la bibliothèque.

On veut savoir enfin si un ouvrage a été emprunté, et connaitre, pour chaque adhérent, la liste des ouvrages qu'il a emprunté.

On a analysé le problème ainsi:

Nous avons besoin d'une classe Bibliotheque, une classe Adherent, une classe Ouvrage, une classe Emprunt associant Bibliothèque, Ouvrage et Adhérent, et spécifiant, de plus, une date et un durée pour l'emprunt.

L'adhérent a un nom et un prénom. Le document a un titre et un auteur.

Ecrire et tester cette application

jeudi 23 mars 2006

Cours et tutoriels Java

lire la suite

mercredi 22 mars 2006

Parking

Un gérant de parking a décidé d'informatiser son entreprise. Notamment, pour faciliter l'accès de l'infrastructure aux abonnés, il a équipé les barrières de péage d'une caméra lisant les numéros de plaques minéralogiques. Un logiciel reconnaît les chiffres, et si le chauffeur a payé son abonnement, la barrière d'accès s'ouvre.

Le but de cette exercice est d' écrire un programme qui gère l'accès au parking des voitures.
Il vous est demandé de procéder par étape:
   1°) Analysez le probléme, determinez les classes qui composeront votre programme.
   2°) Proposez une statégie de développement permettant de tester unitairement chaque classe.

lire la suite

Saisie au clavier

La classe Console permet de saisir des valeurs numériques ou texte au clavier. (Convient pour des tests).

lire la suite