IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

aide pour jeu de la bataille navale


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut aide pour jeu de la bataille navale
    Salut a tous, je me suis mis en tête de faire une bataille navale, et je bute déja . Je pensais faire une image de 500*500 px avec dedans des carreaux de 25*25 px, puis on placerais les bateaux sur ce quadrillage. Mais pour ca il faudrait que chaque carreaux réagisse a un évenement ; j'ai donc pensais mettre un label sous chaque carreaux et mettre le propriété transparent a true. Mais le probleme c'est que j'ai en tout 400 carreaux ...... donc 400 labels a créer ca fais beaucoup quand même ! Donc comment créer 400 labels d'un coup ?
    ou alors proposez moi une autre solution ...

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Points : 711
    Points
    711
    Par défaut
    Bonjour,

    Tu ne crées pas 400 bidules ...

    Tu quadrilles ta fiche, et quand il y a un clic dessus, avec les coordonnées X,Y que le message du clic te donne, tu détermines où tu te trouves (facile avec la dimension de ta fiche, et l'espacement des lignes/colonnes)
    Compilation sans erreur ne signifie pas programme sans erreur.
    L'indentation n'a pas été imaginée pour faire beau, mais pour faciliter la lecture des programmes.

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut
    hum hum c'est pas bete tout ca , je vais essayé !
    Merci et a++

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut
    SAlut a toutes et a tous,
    Je remet ce sujet au gout du jour car j'ai encore un problème (oui je sais ca fait un bout de temps mais j'ai du arreter le projet...)
    Je vais résumer le fonctionnement : le jeu est lancé sur 2 pc, un se met en serveur et l'autre en client, lorsqu'un joueur joue et touche un bateau, une chaine de caratere est envoyé a l'aide de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    server.socket.connections[0].sendtext
    Celle-ci contient le nom du bateau touché et sa position.
    Lorsque le joueur tire une fois, une chaine de caractere est envoyée.
    Mais une arme permet de tiret 200 coups en une seule fois.
    Le client envoie une chaine contenant le nom de l'arme. Le serveur en déduis les 200 cases tirées. Puis avec un for, le serveur analyse les tirs et envoie une chaine de caractere au client des qu'un bateau est touché et/ou coulée.
    Mais apparement le client n'arrive pas a traiter ensuite toutes c'est chaine.
    D'ou ca vient, ou alors il y a t il un meilleur moyen de réaliser ce programme ?

    Si j'ai pas été assez clair n'hésiter pas a me le dire...

    Voila merci ....

  5. #5
    Membre régulier Avatar de poly128
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 73
    Points
    73
    Par défaut
    C'est parceque quand le serveur envoi des donné rapidement a un client, le client ne peu pas sufir a la tache, allors il saute des information envoyer par le serveur.

    Le seul moyen que j'ai trouver pour éviter ca c'est:

    envoi d'une donné par le serveur.
    reception de la donné par le client.
    envoi d'une confirmation de reception par le client.
    Le serveur peu envoyer une nouvelle information.
    Et ca recommence.

    En esperant que ca puisse t'aider.

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut
    oulalala, c'est bien ce que je pensais !
    Merci ! Je vais essayer de faire ca !

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut
    Mouais j'ai essayé de trouver une solution mais le probleme est que le serveur envoie une multitude de données dans un FOR et dans des IF imbriqués (c'est un vraie bordel dans mon programme ! ). Ya pas un autre moyen ??

  8. #8
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par Jeannot Alpin
    Mouais j'ai essayé de trouver une solution mais le probleme est que le serveur envoie une multitude de données dans un FOR et dans des IF imbriqués (c'est un vraie bordel dans mon programme ! ). Ya pas un autre moyen ??
    Mes compos réseau que j'ai déjà posté dans quelques fils de discussion te gèreront la transmission de tes données sans coup férir
    Bidouilleuse Delphi

  9. #9
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut
    Ok merci waskol ! J'vais allez chercher tout ca !

  10. #10
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut
    Euh..... Je trouve rien !
    Faut chercher ou exactement ??

  11. #11
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut

    http://www.developpez.net/forums/sho...ghlight=socket

    C'est du Full TCP/IP qui utilise les windows sockets en version 2 (contrairement à d'autres composants, je remercie à cet égard Alex Konshin et l'auteur des composants originaux qui m'ont bien aidé et accepté que je reprenne leurs source pour une utilisation personelle et non commerciale).
    C'est le principe du socket blocking.
    Les deux composants TWAFileClient et TWAFileServer, sont un protocole maison pour le transfert de fichiers.
    Les TWARegistryClient et TWARegistryServer, sont destinés à utiliser une base de registre distante.
    TWATCPClient et TWATCPClient, gèrent l'envoi de chaines de caractères et de buffers.

    Faudrait vraiment que je pense à passer au TStream...

    Mais l'essentiel, c'est que je les fais évoluer depuis Delphi 5 et qu'ils ne m'ont jamais fait défaut dans mes applis réseau.
    bon dev
    Bidouilleuse Delphi

  12. #12
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut
    Chapeau !
    Je vais regarder ca demain !
    Merci encore !

  13. #13
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par Jeannot Alpin
    Mais apparement le client n'arrive pas a traiter ensuite toutes c'est chaine.
    et en plus, ce qui doit se passer (classique), c'est que ton serveur, parfois, n'envoie pas la chaîne, puis au coup d'après te l'envoi avec la suivante (les deux à la fois donc)
    C'est ce qui arrive lorsque la masse de données à envoyer n'a pas dépassé un certain seuil (en terme de volume de données) : les données restent coincées dans le buffer de la carte réseau. Ces dernières ne sont envoyées que lorsque d'autres données s'y accolent (litéralement) pour en partir, ou qu'un délais de temps ne s'est pas écoulé. C'est un bug "officiel" du standard Berkeley" surlequel s'appuient toutes les bibliothèques de sockets (y compris les Winsock).

    C'est en partie à cause de ça que j'ai fait mes propres compos réseau, pour ne plus avoir de mauvaises surprises à ce niveau là.

    Le principe, c'est que lorsque tu envois des données (une chaîne de caractère), il faut impérativement les faire précéder par la taille de données prévues.
    Comme ça à la réception, ton buffer réceptionne et attend la réception tant qu'il n'a pas tout reçu (si les données sont envoyées en plusieurs paquets --> données volumineuses)
    Ou si deux transmissions arrivent accolées l'une à l'autre, tu arrives néanmoins à les redécouper grace a cette information sur la taille des données et à les traiter successivement comme si deux paquets avaient été reçus successivement.
    Bidouilleuse Delphi

  14. #14
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut
    J'ai installé tes composants sans problème mais je me demande : étant donné que mon projet est assez long est ce qu'il faut changer tout ce qui est en rapport avec serversocket et clientsocket ou ce sont les même (plus ou moins) propriété, méthode et évennement et donc j'ai juste a changer le nom de l'objet ?

  15. #15
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par Jeannot Alpin
    J'ai installé tes composants sans problème mais je me demande : étant donné que mon projet est assez long est ce qu'il faut changer tout ce qui est en rapport avec serversocket et clientsocket ou ce sont les même (plus ou moins) propriété, méthode et évennement et donc j'ai juste a changer le nom de l'objet ?
    Fait déjà une copie de ton projet (on ne sait jamais, si ça ne te plait pas ou qu'une autre idée vienne t'illuminer....)
    Sinon, oui, effectivement, le simple renommage devrait fonctionner
    Bidouilleuse Delphi

  16. #16
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut
    Voila ! Ca marche sans problème !
    Merci !

  17. #17
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par Jeannot Alpin
    Voila ! Ca marche sans problème !
    Merci !
    Haaaaaaa !!!!!

    J'aie bien fait de te dire qu'il y avait mieux qu'Indy, ICS, et les compos standard Delphi pour le réseau

    On peut dire merci à Alex KonShin et (j'ai retrouvé son nom) Robert T Palmqvist (et a Waskol d'avoir fusionné le travail des deux )
    Bidouilleuse Delphi

  18. #18
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 113
    Points : 105
    Points
    105
    Par défaut
    Ca c'est sur ! Rien ne vaut un composant fait maison ! (et a plusieurs en plus !!)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. aide pour bataille navale
    Par isn14 dans le forum GUI
    Réponses: 6
    Dernier message: 17/05/2015, 20h43
  2. Besoin d'aide pour jeu de Pinball
    Par amintheone dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 08/08/2010, 15h22
  3. besoin d'aide pour jeu d'awalé
    Par Dabech dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 12/04/2008, 22h41
  4. aide pour créer un jeu
    Par cstefany dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/10/2005, 03h51
  5. Besoin d'aide pour un projet de jeu en ligne
    Par FLEO dans le forum Projets
    Réponses: 1
    Dernier message: 21/10/2005, 08h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo