Class Solitari

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Panel
                    |
                    +--java.applet.Applet
                          |
                          +--Solitari

public class Solitari
extends java.applet.Applet

See Also:
Serialized Form

Inner Class Summary
 class Solitari.Botonet
          Aquesta classe Botonet és un boto usual al que li hem afegit tres imatges, que es mostraran segons l'estat: 0 - normal; 1 - seleccionat; 2 - esborrat.
(package private)  class Solitari.GestorBoto
          Deim el que s'ha de fer en cada cas segons el boto que s'ha pitjat
(package private)  class Solitari.GestorChoice
          Amb aquesta classe escoltam el Choice de les aparences.
(package private)  class Solitari.GestorFinestra
          Gestionam el que ha de fer la finestra quan pitjam el boto de tancar
 class Solitari.Panelet
          La classe Panelet es un Panel amb una imatge associada
(package private)  class Solitari.Resolucio
          Amb aquesta classe podem fer que les fitxes es moguin pel tauler i es jugui la partida automàticament, acabant guanyant de manera perfecta.
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AWTTreeLock
 
Field Summary
(package private)  Solitari.Panelet bolletes
          Tauler del joc
(package private)  java.awt.Panel botons
          Panel on es col·locaquen els botons de comandes i el Choice de les aparences
(package private)  Solitari.Botonet bsel
          Darrera fitxa que s'ha sel·leccionat
(package private)  java.awt.Choice cskin
          Choice per triar l'aparença del joc
(package private)  java.net.URL dir
          URL de carpeta base
(package private)  java.net.URL dirs
          URL de carpeta d'aparences
(package private)  java.lang.String dirskin
          Ruta de la carpeta d'aparences
(package private)  Solitari.Panelet[] fons
          Llista de panels d'afora del tauler
(package private)  java.awt.Frame instruccions
          Frame on hi ha les instrucions
(package private)  java.awt.Label l
          Label del panel marcador
(package private)  java.awt.Panel marcador
          Hi anirà situat el marcador de moviments
(package private)  int movi
          Nombre de moviment realitzats
(package private)  java.lang.String moviments
          Llistat de tots els moviments que s'han fet. el format serà: $t i0j0 i1j1 i1j1 i2j2 t i3j3 i4j4 t i5j5...
(package private)  int nskins
          Ens dona la quantitat de possibles aperences
(package private)  int quin
          Contador de fons
(package private)  boolean seleccionat
          Indica si el bot fet és el principi d'un moviment
(package private)  java.lang.String skin
          Indica el nom del directori de l'aparença que s'utilitza
(package private)  java.lang.String[] skins
          Llista d'arxius i directoris de la carpeta sekins
(package private)  Solitari.Botonet solaux
          Boto auxiliar que ens servirà per gestionar el botó solució/atura
(package private)  Solitari.Resolucio solu
          Variable thread que solucionarà el joc
(package private)  boolean solucionant
          Indica si el Thread de Resoluciò està actiu
(package private)  Solitari.Botonet[][] tauler
          Taula de botonets per representar les fitxes
 
Constructor Summary
Solitari()
           
 
Method Summary
private  void afegirblanc(java.awt.Panel p)
          Afegeix un Panelet amb la imatge "fons.gif" alla on no hi ha d'haver bolles (botons)
private  void afegirbotonet(java.awt.Panel p, java.lang.String c, Solitari.GestorBoto gboto)
          Crea i afegeix un botonet a un panel, però en aquest cas sense cap imatge, és a dir, com si fos un botó usual
private  void afegirbotonet(java.awt.Panel p, java.lang.String c, java.lang.String ima0, java.lang.String ima1, java.lang.String ima2, int i, int j, Solitari.GestorBoto gboto)
          Crea i afegeix a un panel un botonet.
private  void canviarskin(java.lang.String sk)
          Canviam el directori de la carpeta d'aperences per ../skins/"sk"/
private  boolean desmoure(Solitari.Botonet origen, Solitari.Botonet desti)
          Donat un boto origen i un boto desti desfeim el bot que en fet.
private  void gameover()
          Després de cada moviment, miram si queda qualque moviment possible, fent un recorregut per la taula de botonets.
 void init()
          Crea l'interficie amb la qual l'usuari podrà interactuar amb el joc.
private  boolean isskin(java.lang.String direc)
          Verifica que un File de dins la carperta de skins sigui un directori, i contengui les quatre imatges necessàries per dibuixar el tauler del joc.
private  java.lang.String[] llista()
          Ens torna una llista amb els noms de les possibles carpetes d'aperences
private  boolean moure(Solitari.Botonet origen, Solitari.Botonet desti)
          Donats dos botonets, si és possible, realitzam el moviment d'una fitxa d'un botó a l'altre.
private  int pos(Solitari.Botonet b)
          Ens torna la posició on es troba el botonet dins el gridlayout amb un enter La posico es torna com i*10+j on (i,j) es la posicio de Botonet
 

Field Detail

moviments

java.lang.String moviments
Llistat de tots els moviments que s'han fet. el format serà: $t i0j0 i1j1 i1j1 i2j2 t i3j3 i4j4 t i5j5...

marcador

java.awt.Panel marcador
Hi anirà situat el marcador de moviments

l

java.awt.Label l
Label del panel marcador

movi

int movi
Nombre de moviment realitzats

bolletes

Solitari.Panelet bolletes
Tauler del joc

fons

Solitari.Panelet[] fons
Llista de panels d'afora del tauler

quin

int quin
Contador de fons

tauler

Solitari.Botonet[][] tauler
Taula de botonets per representar les fitxes

bsel

Solitari.Botonet bsel
Darrera fitxa que s'ha sel·leccionat

seleccionat

boolean seleccionat
Indica si el bot fet és el principi d'un moviment

botons

java.awt.Panel botons
Panel on es col·locaquen els botons de comandes i el Choice de les aparences

cskin

java.awt.Choice cskin
Choice per triar l'aparença del joc

skin

java.lang.String skin
Indica el nom del directori de l'aparença que s'utilitza

skins

java.lang.String[] skins
Llista d'arxius i directoris de la carpeta sekins

nskins

int nskins
Ens dona la quantitat de possibles aperences

dirs

java.net.URL dirs
URL de carpeta d'aparences

dir

java.net.URL dir
URL de carpeta base

dirskin

java.lang.String dirskin
Ruta de la carpeta d'aparences

solu

Solitari.Resolucio solu
Variable thread que solucionarà el joc

solaux

Solitari.Botonet solaux
Boto auxiliar que ens servirà per gestionar el botó solució/atura

solucionant

boolean solucionant
Indica si el Thread de Resoluciò està actiu

instruccions

java.awt.Frame instruccions
Frame on hi ha les instrucions
Constructor Detail

Solitari

public Solitari()
Method Detail

init

public void init()
Crea l'interficie amb la qual l'usuari podrà interactuar amb el joc.
Overrides:
init in class java.applet.Applet

afegirblanc

private void afegirblanc(java.awt.Panel p)
Afegeix un Panelet amb la imatge "fons.gif" alla on no hi ha d'haver bolles (botons)

llista

private java.lang.String[] llista()
Ens torna una llista amb els noms de les possibles carpetes d'aperences

isskin

private boolean isskin(java.lang.String direc)
Verifica que un File de dins la carperta de skins sigui un directori, i contengui les quatre imatges necessàries per dibuixar el tauler del joc.

canviarskin

private void canviarskin(java.lang.String sk)
Canviam el directori de la carpeta d'aperences per ../skins/"sk"/

afegirbotonet

private void afegirbotonet(java.awt.Panel p,
                           java.lang.String c,
                           java.lang.String ima0,
                           java.lang.String ima1,
                           java.lang.String ima2,
                           int i,
                           int j,
                           Solitari.GestorBoto gboto)
Crea i afegeix a un panel un botonet. Inicialitza el botonet amb les tres imatges possibles. A més, afegim el botonet a la taula.

afegirbotonet

private void afegirbotonet(java.awt.Panel p,
                           java.lang.String c,
                           Solitari.GestorBoto gboto)
Crea i afegeix un botonet a un panel, però en aquest cas sense cap imatge, és a dir, com si fos un botó usual

moure

private boolean moure(Solitari.Botonet origen,
                      Solitari.Botonet desti)
Donats dos botonets, si és possible, realitzam el moviment d'una fitxa d'un botó a l'altre. El botonet desti, sempre esta buit.

desmoure

private boolean desmoure(Solitari.Botonet origen,
                         Solitari.Botonet desti)
Donat un boto origen i un boto desti desfeim el bot que en fet. Aquesta accio nomes es crida amb els darrers botons que hem emprat i nomes quan es pitja el boto "Enrere"

pos

private int pos(Solitari.Botonet b)
Ens torna la posició on es troba el botonet dins el gridlayout amb un enter La posico es torna com i*10+j on (i,j) es la posicio de Botonet

gameover

private void gameover()
Després de cada moviment, miram si queda qualque moviment possible, fent un recorregut per la taula de botonets.