Forum FunLabyrinthe

Le jeu de labyrinthe fun et gratuit - Retour au site

  • Vous n'êtes pas connecté.

#1 jan. 31, 2011 16:31:02

Xaumina
Enregistré : 2011-01-20
Messages : 191
Réputation: +  5  -
Profil   Envoyer un courriel  

Le moins de pas possible

Il y a un problème avec Pas: j'ai fini deux fois le niveau 3, et il m'a emmené à deux niveaux différents... Et dans le niveau quatre avec le trésor, les pas ne sont pas comptés... (dans le niveau quatre avec tmes flèches, on ne perd pas quand on a dépasser le nombre de pas maximum).

Hors-ligne

#2 jan. 31, 2011 19:38:59

intello
De : Yvelines
Enregistré : 2010-07-25
Messages : 167
Réputation: +  9  -
Profil  

Le moins de pas possible

Le niveau 4 avec le trésor , c'est l'endroit de fin ; tu t'es donc trompé d'un pas dans le niveau 3 : normal que les pas n'y sont pas comptés .

Mais je ne vois pas de niveau 4 avec des flèches

Normalement ya des téléporteurs .
Peux-tu m'envoyer un screenshot


========================================
Pas, Flèches rapides, Flèches masquées, Impossible par Maxime, Elévateurs & Terrains vides,
Jeu de boutons

Admirez mes jeux de flèches, de téléporteurs , d'escaliers , de pas ou de boutons !


Notez ces labyrinthes

Hors-ligne

#3 jan. 31, 2011 20:02:57

Xaumina
Enregistré : 2011-01-20
Messages : 191
Réputation: +  5  -
Profil   Envoyer un courriel  

Le moins de pas possible

Non, je ne peux plus. mais il s'agit peut-être d'un autre niveau.

Hors-ligne

#4 fév. 1, 2011 16:29:30

sjrd
De : Belgique
Enregistré : 2010-04-11
Messages : 481
Réputation: +  14  -
Profil   Envoyer un courriel  

Le moins de pas possible

Mes impressions

Concept très intéressant, niveaux bien travaillés. C'est très chouette dans l'ensemble.

Par contre, c'est pas évident de comprendre quand on a perdu, par exemple. Un moyen plus efficace aurait été de faire :
Player.Lose;
Player.ShowMessage('Tu as dépassé le nombre de pas autorisé : tu as perdu !');

plutôt que d'envoyer le joueur dans un endroit qui le "condamne" (mais on ne le comprend pas tout de suite).

Quelques remarques techniques

Il y a aussi un bug dans le niveau 6 (avec les échelles). Car rien ne m'empêche, une fois que je suis sur le mur, de continuer et de changer d'écran tout en restant sur le mur (et là : bardaf, c'est l'embardée). Il faudrait mettre de vrais murs (Mur et non Murebe) sur le bas de l'écran 7.

Au niveau de ton code FunDelphi, chapeau déjà pour avoir déjà pu maîtriser pas mal d'aspects de ce langage

Point de vue stylistique, c'est un peu brouillon par contre. Je t'encourage vivement à respecter ce qu'on appelle l'indentation, c'est-à-dire le nombre d'espaces en tête de ligne. Prends exemple sur les nombreux codes que j'ai moi-même écrits (sur le forum et dans mes labyrinthes). Cela rendra ton code beaucoup plus lisible, et sera un signe de meilleure qualité.

Là je n'ai plus beaucoup de temps dans l'immédiat, mais j'ai d'autres remarques et conseils que je donnerai plus tard (sans doute pas avant jeudi). Par exemple tu aurais pu ne déclarer qu'une seule classe TCounterOnViewPlugin, mais avec trois composants qui utilisent la même classe. Il aurait suffi d'ajouter deux property TextX et TextY, au lieu de les code "en dur". Elles seraient apparues dans l'inspecteur d'objets, où tu aurais pu les modifier séparément par plugin. Je te donnerai plus de détails plus tard.

Ma note

Pour l'instant de je t'ai noté 7/10. Mais je le monterai à 8/10 si tu corriges et améliores selon ces quelques remarques (je suis sévère, mais mes étudiants ne l'ont jamais regretté )


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Hors-ligne

#5 fév. 1, 2011 19:15:19

intello
De : Yvelines
Enregistré : 2010-07-25
Messages : 167
Réputation: +  9  -
Profil  

Le moins de pas possible

oK je vais corriger ça !


========================================
Pas, Flèches rapides, Flèches masquées, Impossible par Maxime, Elévateurs & Terrains vides,
Jeu de boutons

Admirez mes jeux de flèches, de téléporteurs , d'escaliers , de pas ou de boutons !


Notez ces labyrinthes

Hors-ligne

#6 fév. 4, 2011 23:29:46

sjrd
De : Belgique
Enregistré : 2010-04-11
Messages : 481
Réputation: +  14  -
Profil   Envoyer un courriel  

Le moins de pas possible

Bon alors voici des remarques plus détaillées, qui t'aideront à écrire du code plus joli, et donc de meilleure qualité. De plus, cela t'aidera à mieux comprendre certaines choses.

En-tête
uses
  FunLabyBase, FLBSimpleEffects;

FLBSimpleEffects ne doit plus être utilisé. Je sais, la doc est obsolète FunLabyBase suffit à avoir accès à tous les composants qui sont prévus de base dans FunLabyrinthe.
const
  idGrass = 'Grass';
  idWall = 'Wall';

Ceci doit être supprimé. Le fait de mettre uses FunLabyBase rend ces const inutiles. Je sais, c'est le bouton "Code Source" du ssq qui a produit ce code, et lui en a besoin. Mais une fois que tu passes en fnd et que tu mets le uses FunLabyBase, il faut les supprimer.

Les 3 CounterOnViewPlugin

Comme je l'ai dit dans mon post précédent, il serait mieux de faire un seul type TCounterOnViewPlugin, mais de créer 3 instances de ce type. Il vaut d'ailleurs mieux nommer correctement les trois instances (composants). Tu peux même personnaliser certaines propriétés directement là où tu déclares les 3 instances (dans components). Cela donne :
components
  StepCounter: TCounterOnViewPlugin
    MsgFormat: 'Pas : %d';
    TextX: 12;
    TextY: 8;
  end;

  LevelCounter: TCounterOnViewPlugin
    MsgFormat: 'Niveau %d';
    TextX: 309;
    TextY: 8;
  end;

  MaxStepCounter: TCounterOnViewPlugin
    MsgFormat: 'Pas requis maximum : %d';
    TextX: 12;
    TextY: 280;
  end;

plugin TCounterOnViewPlugin3
  hint 'Pas requis';

  property MsgFormat: string;
  property Counter: Integer;
  property BackColor: TColor32;
  property FontColor: TColor32;
  property TextX: Integer;
  property TextY: Integer;

  on AfterConstruction do
  begin
    inherited;

    MsgFormat := '%d';
    BackColor := clWhite32;
    FontColor := clBlack32;
    TextX := 8;
    TextY := 8;
  end;

  on DrawView do
  var
    Text: string;
    Extent: TSize;
  begin
    Bitmap.Font.Name := 'Tahoma'; {don't localize}
    Bitmap.Font.Size := 8;

    Text := Format(MsgFormat, [Counter]);
    Extent := Bitmap.TextExtent(Text);

    Bitmap.FillRectTS(TextX-2, TextY, TextX+Extent.cx+2, TextY+Extent.cy,
      BackColor);

    Bitmap.RenderText(TextX, TextY, Text, 12, FontColor);
  end;
end;


L'usage de Map[X, Y, Z]

Dans ton code tu as :
field TPas(TGround)
  name 'Terrain à pas + murs';
  image 'Fields/Grass';

  on Entering do
  begin
    CounterOnViewPlugin.Counter := CounterOnViewPlugin.Counter + 1;
  end;

  on Entered do
  begin
    Master.Map['MainMap'].Map[Pos.X+1,Pos.Y+2,Pos.Z].Field := Wall;
  end;
end;

D'abord, pourquoi avoir choisi Entering et Entered ? N'est-il pas plus logique de mettre les deux dans Entered. Pour rappel : Entering sert à empêcher le jouer de venir sur la case. Entered sert à faire quelque chose lorsque le joueur est entré sur la case.

De plus, la ligne compliquée avec Master.Map peut être simplifiée de beaucoup. Je sais, tu es parti de ce que produit le "Code source" des ssq. Mais les ssq ne savent rien, et c'est pourquoi ils mettent toujours beaucoup de code qui en fait est inutile... au cas où. Mais toi, tu sais qu'en fait il n'y a qu'une seule Map, et que c'est celle où se trouve actuellement le joueur que tu veux modifier. Tu peux faire simplement :
Map[Pos.X+1, Pos.Y+2, Pos.Z].Field := Wall;

C'est évidemment valable à tous les autres endroits avec le Master.Map.

if..else et begin..end

effect TBouty(TCounterEffect)
  name 'touby';

  on Execute do
  begin
    if CounterOnViewPlugin.Counter > CounterOnViewPlugin3.Counter then
      Player.MoveTo(Point3D(3, 3, 0))
    else
      Master.Map['MainMap'].Map[5, 79, 0] := Grass;
      CounterOnViewPlugin.Counter := 0;
      Master.Map['MainMap'].Map[6, 79, 0] := Grass;
  end;
end;

Ici il y a un problème de syntaxe. Si tu relis ce passage de l'aide, tu remarqueras que tu dois entourer les trois dernières instructions avec un begin..end supplémentaire. Sinon le else ne porte que sur la première instruction. Quel est le résultat alors ? Eh bien c'est que les deux dernières instructions seront toujours exécutées, même si le test du if est vrai !

Il faut donc écrire (avec au passage, la simplification du Master.Map) :
  on Execute do
  begin
    if CounterOnViewPlugin.Counter > CounterOnViewPlugin3.Counter then
      Player.MoveTo(Point3D(3, 3, 0))
    else
    begin
      Map[5, 79, 0] := Grass;
      CounterOnViewPlugin.Counter := 0;
      Map[6, 79, 0] := Grass;
    end;
  end;

Voilà j'ai atteint le bout J'espère que ces indications pourront t'aider


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Hors-ligne

#7 fév. 5, 2011 22:26:15

intello
De : Yvelines
Enregistré : 2010-07-25
Messages : 167
Réputation: +  9  -
Profil  

Le moins de pas possible

Voilà un labyrinthe de haut niveau : Pas.
Ce jeu consiste à faire le moins de Pas possible .
7 niveaux où je vous conseille de sauvegarder à chaque débuts de niveau (une idée de Xaumina pour sa rivière inima) sauf si vous voulez les recommencer à chaque fois .

Un jeu qui prend pas mal de temps , et qui est assez difficile dans l'ensemble.
Vous devez télécharger les images de flèches de toutes les couleurs .

N'oubliez pas de mettre le dossier "Laby" dans "Units" .
Si nécessaire , je fournirais une solution.

Ci- joint une image de filtre bleu .

P.S : Et voilà , comme si le premier message n'existait pas


========================================
Pas, Flèches rapides, Flèches masquées, Impossible par Maxime, Elévateurs & Terrains vides,
Jeu de boutons

Admirez mes jeux de flèches, de téléporteurs , d'escaliers , de pas ou de boutons !


Notez ces labyrinthes

Pièces jointes :
attachment Pas.zip (15,5 KB)

Hors-ligne

#8 fév. 5, 2011 22:30:08

sjrd
De : Belgique
Enregistré : 2010-04-11
Messages : 481
Réputation: +  14  -
Profil   Envoyer un courriel  

Le moins de pas possible

Peux-tu rappeler où sont les flèches de toutes les couleurs ? Je ne les retrouve plus


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Hors-ligne

#9 fév. 5, 2011 22:43:37

sjrd
De : Belgique
Enregistré : 2010-04-11
Messages : 481
Réputation: +  14  -
Profil   Envoyer un courriel  

Le moins de pas possible

Voilà, tu as droit à un 8/10 de ma part, maintenant


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Hors-ligne

Pied de page

Modération

Powered by DjangoBB

Lo-Fi Version