class DonnerTechnique

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

Public Class Methods

creer(grille) click to toggle source

Ce constructeur permet de créer une nouvelle aide

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

# File Core/DonnerTechnique.rb, line 19
def DonnerTechnique.creer(grille)
  new(grille)
end

Public Instance Methods

aider() click to toggle source

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

# File 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)
            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)
            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 érronée"
end