Class: DonnerTechnique

Inherits:
Aide
  • Object
show all
Defined in:
lib/Hashiparmentier/Core/DonnerTechnique.rb

Overview

Auteur

Brabant Mano

Version

0.1

Date

09/04/2020

Cette classe permet de donner de l’aide pour résoudre une grille

Hérite de Aide

Instance Attribute Summary

Attributes inherited from Aide

#grille

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(grille) ⇒ DonnerTechnique

:nodoc:



24
25
26
# File 'lib/Hashiparmentier/Core/DonnerTechnique.rb', line 24

def initialize(grille)
  super(grille)
end

Class Method Details

.creer(grille) ⇒ Object

Ce constructeur permet de créer une nouvelle aide

param
  • grille La grille sur laquelle on va donner des aides



19
20
21
# File 'lib/Hashiparmentier/Core/DonnerTechnique.rb', line 19

def DonnerTechnique.creer(grille)
  new(grille)
end

Instance Method Details

#aiderObject

L’aide apporté ici est une phrase qui indique des informations sur une ile qui peut poser de façon évidente des ponts

Par exemple une ile qui ne possède qu’un seul voisin



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/Hashiparmentier/Core/DonnerTechnique.rb', line 33

def aider()
  archipelle = false
  cheminComplet = false
  cheminIncomplet = false
  for i in (0..@grille.tailleX - 1)
    for j in (0..@grille.tailleY - 1)
      cGrille = @grille.getCase(i, j)
      if(cGrille.estIle?())
        capa = cGrille.getCapaciteResiduelle()
        nChemins = cGrille.getNombreCheminDisponible()
        nDirection = cGrille.getNombreDirectionConstructible()
        if(capa > 0)
          if(capa == nChemins)  #Alors le placement est évident
            cheminComplet = true
            messageComplet = "Une ile doit encore placer " + capa.to_s() + " ponts et possède " + nChemins.to_s() + " ponts disponibles"
          elsif(capa == nChemins - 1 && nDirection <= capa) #On peut placer un pont simple dans (capa - nDirection + 1) directions
            cheminIncomplet = true
            messageIncomplet = "Une ile doit encore placer " + capa.to_s() + " ponts et possède " + nChemins.to_s() + " ponts disponibles dans " + nDirection.to_s() + " directions possible"
          elsif(capa == 1)
            archipelle = true
          end
        end
      end
    end
  end
  if(cheminComplet)
    message = messageComplet
  elsif(cheminIncomplet)
    message = messageIncomplet
  elsif(archipelle)
    message = "Attention à ne pas former d'archipelle"
  else
    message ="Pas d'aide disponible"
  end
  return message + "\nAttention s'il y a une erreur dans la grille la technique peut-être erronée"
end