From 7167b4341ef290d56fb96e2af10883a4b925d83b Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Thu, 26 Mar 2026 19:27:18 +0100 Subject: I found my old code! --- JBriscola/all_versions/0.2/0.2.2/src/Main.java | 1317 ++++++++++++++++++++++++ 1 file changed, 1317 insertions(+) create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/Main.java (limited to 'JBriscola/all_versions/0.2/0.2.2/src/Main.java') diff --git a/JBriscola/all_versions/0.2/0.2.2/src/Main.java b/JBriscola/all_versions/0.2/0.2.2/src/Main.java new file mode 100755 index 0000000..baf7968 --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2.2/src/Main.java @@ -0,0 +1,1317 @@ +/* +Copyright 2009 Sebastiano Tronto + +This file is part of JBriscola. + + JBriscola is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + JBriscola is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with JBriscola; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +*/ + +import java.io.*; +import java.util.*; +import javax.swing.*; +import java.awt.*; + +public class Main { + + /* semeBriscola serve a determinare quale il seme di briscola (0 coppe, + * 1 bastoni, 2 denari, 3 spade). + * punteggio è il punteggio del giocatore, punteggioCPU quello della CPU + * mano tiene il conto della mano a cui si è arrivati. + * cartaDaPescare è la carta che la CPU deve raccogliere dal mazzo + * cartaDaGiocare (può assumere valore compraso tra 0 e 2) è la carta + * che la cpu deve giocare. */ + public static int semeBriscola, punteggio, punteggioCPU, mano, cartaDaPescare, cartaDaGiocare; + + /* toccaAllaCPU determina se è il turno del computer o del giocatore, + * CPUHaGiocato se il computer ha già giocato in questo turno e + * haGiocatoPrima se la prima mossa del turno è stata del giocatore + * (true) o della CPU (false). + * sound e keys riguardano le opzioni (souno si o no, tasti rapidi si + * o no) salvate nel file di configurazione. */ + public static boolean toccaAllaCPU = false; + public static boolean CPUHaGiocato = false; + public static boolean haGiocatoPrima = true; + public static boolean sound = true; + public static boolean keys = true; + + /* frame è la finestra principale del gioco, color il colore dello sfondo. + * lang, soundString e keysString servono a leggere le opzioni dal file + * di configurazione. */ + public static Frame frame; + public static Color color = new Color( 0, 150, 0 ); + public static String lang, soundString, keysString; + + /* Tutte le stringhe che vengono utilizzate durante il gioco sono + * inizializzate qui, per poter essere tradotte in altre lingue. */ + public static String version = "0.2.2"; + public static String stringaBottonePrendi = "Prendi/Lascia carte"; + public static String stringaPrimaGioca = "Prima Gioca!"; + public static String stringaUltime4 = "Ultima carta - Occhio alla briscola!"; + public static String stringaVinto = "Hai Vinto!"; + public static String stringaPerso = "Hai Perso"; + public static String stringaPareggio = "Pareggio"; + public static String stringaGiocatore = "Giocatore: "; + public static String stringaComputer = "\nComputer: "; + public static String stringaNuovaPartita = "Nuova Partita"; + public static String stringaVuoiDavveroIniziare = "Vuoi davvero iniziare una nuova partita?"; + public static String stringaVuoiDavveroUscire = "Vuoi davvero uscire?"; + public static String stringaSi = "Si"; + public static String stringaNo = "No"; + public static String stringaOpzioni = "Opzioni..."; + public static String stringaEsci = "Esci"; + public static String stringaImpossibileConfigurare = "Impossibile modificare il file di configurazione.\nSegnalare il bug a: sebastiano@luganega.org\n\nEccezione:\n"; + public static String stringaLingua = "Lingua"; + public static String stringaAnnulla = "Annulla"; + public static String stringaIt = "Italiano"; + public static String stringaLa = "Latino"; + public static String stringaBL = "Dialetto Bellunese"; + public static String stringaBV = "Dialetto Basso Veneto"; + public static String stringaEN = "Inglese"; + public static String stringaModificaOpzioni = "Modifica Opzioni"; + public static String stringaInformazioni = "Informazioni"; + public static String stringaInformazioni2 = "JBriscola e' un gioco di briscola per pc scritto in java ideato\ne realizzato da Sebastiano Tronto. Il gioco viene rilasciato sotto licenza GNU/Gpl versione 2 o successive; questo permette\npotenzialmente a chiunque di modificare il gioco partendo dal codice sorgente del programma. Se non avete ricevuto i sorgenti\nassieme al gioco, potete richiedermeli con un'e-mail a sebastiano@luganega.org.\n\nJBriscola version " + version + "\nCopyright 2009 Sebastiano Tronto, license GNU/Gpl 2.0 or later\nE-mail: sebastiano@luganega.org"; + public static String stringaSuono = "Effetti Sonori"; + public static String stringaPunteggio = "Punteggio"; + public static String stringaSfondo = "Sfondo"; + public static String stringaTasti = "Tasti rapidi"; + public static String stringaAggiornamenti = "Cerca aggiornamenti"; + public static String stringaAggiornamentiSi = "Aggiornamento disponibile: "; + public static String stringaAggiornamentiNo = "Nessun aggiornamento disponibile"; + public static String stringaScarica = "E' possibile scaricare la versione più recente\ndal sito http://porkynator.altervista.org/programmi.html"; + public static String stringaNoInternet = "Errore: nessuna connessione internet"; + public static String stringaTasti2 = "1 Gioca la prima carta\n2 Gioca la seconda carta\n3 Gioca la terza carta\nF1 Visualizza questo messaggio\nF2 " + stringaNuovaPartita + "\nF3 " + stringaOpzioni + "\nF4 " + stringaPunteggio + "\nF5 " + stringaInformazioni + "\nF6 " + stringaAggiornamenti + "\nq " + stringaEsci; + + public static void main( String args[] ) { + + /* Chiama il metodo settaOpzioni per leggere le impostazioni + * dell'utente da un eventuale file di configurazione */ + settaOpzioni(); + + /* Crea la finestra principale del gioco e la posiziona al centro + * dello schermo. */ + frame = new Frame(); + frame.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE ); + frame.setResizable( false ); + frame.setSize( 600, 600 ); + frame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 600) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - 600) / 2); + frame.setVisible( true ); + } + + /* Algoritmo per mischiare il mazzo: prende due carte a caso e le + * inverte di posto, utilizzando una variabile aux. Ripete il procedimento + * per 391 volte. */ + public void mischia() { + + mano = 0; + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + ImageIcon aux; + frame.mazzo = true; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + + /* Inizializza l'array di carte mescolate ordinato */ + for ( int i = 0, k = 0; i < 10; i++ ) + for ( int j = 0; j < 4; j++, k++ ) + frame.arrayCarteMescolate[k] = frame.arrayCarte[i][j]; + + /* Mescola le carte utilizzando il metodo sopra citato */ + for ( int i = 0; i < 391; i++ ) { + double a = Math.random() * 40; + int x = (int) a; + double b = Math.random() * 40; + int y = (int) b; + aux = frame.arrayCarteMescolate[x]; + frame.arrayCarteMescolate[x] = frame.arrayCarteMescolate[y]; + frame.arrayCarteMescolate[y] = aux; + } + + /* Imposta il seme della briscola leggendo il nome dell'ultima carta + * utilizzando un array ausiliare */ + char auxChar[] = frame.arrayCarteMescolate[39].toString().toCharArray(); + semeBriscola = auxChar[auxChar.length-5] - 49; + + /* Distribuisce le carte */ + frame.carteInMano[0] = frame.arrayCarteMescolate[0]; + frame.carteInMano[1] = frame.arrayCarteMescolate[1]; + frame.carteInMano[2] = frame.arrayCarteMescolate[2]; + frame.carteCPU[0] = frame.arrayCarteMescolate[3]; + frame.carteCPU[1] = frame.arrayCarteMescolate[4]; + frame.carteCPU[2] = frame.arrayCarteMescolate[5]; + frame.ultimaCarta = frame.arrayCarteMescolate[39]; + frame.giocata[0] = null; + frame.giocata[1] = null; + } + + /* Fa giocare la CPU. Questo metodo contiene l'iuntelligenza artificiale + * del gioco. Ho preferito non commentare il corpo del metodo per due + * motivi; il primo è che abbastanza intuitivo: basta sapere che i vari + * metodi vaiLiscio(), vaiTaglio() ecc... tentano di fare ciò che + * ovviamente dice il loro nome, se ci riescono restituiscono true, + * in caso contrario false.*/ + public void giocaCPU() { + + if ( mano < 16 ) { + + /* Valuta cosa fare se il giocatore non ha ancora giocato. */ + if ( frame.giocata[0] == null ) { + if ( vaiPunti() ); + else if ( vaiLiscio() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + else if ( vaiAsso() ); + else; + } + + /* Valuta cosa fare quando invece il giocatore ha giocato */ + else { + if ( haLisciato() ) { + if ( vaiSopra() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoPunti() ) { + if ( vaiSopra() ); + else if ( vaiLiscio() ); + else if ( vaiTaglio() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haTagliato() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoBriscolaAlta() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoTre() ) { + if ( vaiAsso() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + } else if ( haMessoAsso() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + } else if ( haCaricato() ) { + if ( vaiSopra() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiTaglio() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } + } + } + else if ( mano == 16 ) { + if ( frame.giocata[0] == null ) { + char aux[]; + aux = frame.ultimaCarta.toString().toCharArray(); + if ( aux[aux.length-7] - 48 == 3 || aux[aux.length-7] - 48 == 1 ) { + if ( vaiCarico() ); + else if ( vaiPunti() ); + else if ( vaiLiscio() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTre() ); + else if ( vaiAsso() ); + else; + } else { + if ( vaiPunti() ); + else if ( vaiLiscio() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + else if ( vaiAsso() ); + else; + } + } + else { + char aux[]; + aux = frame.ultimaCarta.toString().toCharArray(); + if ( aux[aux.length-7] - 48 == 3 || aux[aux.length-7] - 48 == 1 ) { + if ( haCaricato() ) { + if ( vaiSopra() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } + } else { + if ( haLisciato() ) { + if ( vaiSopra() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoPunti() ) { + if ( vaiSopra() ); + else if ( vaiLiscio() ); + else if ( vaiTaglio() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haTagliato() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoBriscolaAlta() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoTre() ) { + if ( vaiAsso() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + } else if ( haMessoAsso() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + } else if ( haCaricato() ) { + if ( vaiSopra() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiTaglio() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } + } + } + } else if ( mano == 17 ) { + if ( frame.giocata[0] == null ) { + if ( hoAsso() ) { + if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } else { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + } + } + else { + if ( haLisciato() ) { + if ( vaiSopra() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoPunti() ) { + if ( vaiSopra() ); + else if ( vaiLiscio() ); + else if ( vaiTaglio() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haTagliato() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoBriscolaAlta() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoTre() ) { + if ( vaiAsso() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + } else if ( haMessoAsso() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + } else if ( haCaricato() ) { + if ( vaiSopra() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiTaglio() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } + } + } else if ( mano == 18 ) { + if ( frame.giocata[0] == null ) { + if ( vaiAsso() ); + else if ( vaiCarico() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiPunti() ); + else if ( vaiLiscio() ); + else if ( vaiTre() ); + } + else { + if ( haLisciato() ) { + if ( vaiSopra() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoPunti() ) { + if ( vaiSopra() ); + else if ( vaiLiscio() ); + else if ( vaiTaglio() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haTagliato() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoBriscolaAlta() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoTre() ) { + if ( vaiAsso() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + } else if ( haMessoAsso() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + } else if ( haCaricato() ) { + if ( vaiSopra() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiTaglio() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } + } + } else { + if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiTaglio() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } + + /* Gioca la carta e aggiorna la finestra con il metodo repaint() */ + frame.giocata[1] = frame.carteCPU[cartaDaGiocare]; + frame.carteCPU[cartaDaGiocare] = null; + frame.pannello.repaint(); + + CPUHaGiocato = true; + + if ( frame.giocata[0] == null ) + toccaAllaCPU = false; + } + + /* Determina se ha preso la CPU o il giocatore */ + public void chiPrende() { + char aux[], auxCPU[]; + aux = frame.giocata[0].toString().toCharArray(); + auxCPU = frame.giocata[1].toString().toCharArray(); + + /* Chiama il metodo giocatorePrende( boolean giocatore ) con parametro + * true se ha preso il giocatore, false se ha preso la CPU */ + giocatorePrende( ( (aux[aux.length-5] - 49 == semeBriscola) && (auxCPU[auxCPU.length-5] - 49 != semeBriscola) ) + || ( (aux[aux.length-5] == auxCPU[auxCPU.length-5]) && laPrimaEPiuAlta( aux[aux.length-7] - 48, auxCPU[auxCPU.length-7] - 48 ) ) + || ( (auxCPU[auxCPU.length-5] - 49 != semeBriscola) && (aux[aux.length-5] != auxCPU[auxCPU.length-5]) && haGiocatoPrima ) ); + } + + /* Confronta due carte per decidere quale ha più valore di presa. + * Restituisce true se è la prima, false se è la seconda */ + public boolean laPrimaEPiuAlta( int prima, int seconda ) { + int a, b; + switch ( prima ) { + case 0: + a = 10; + break; + case 1: + a = 12; + break; + case 3: + a = 11; + break; + default: + a = prima; + break; + } + switch ( seconda ) { + case 0: + b = 10; + break; + case 1: + b = 12; + break; + case 3: + b = 11; + break; + default: + b = seconda; + break; + } + return a > b; + } + + /* Viene chiamato con parametro true se ha preso il giocatore, false se + * ha preso la CPU */ + public void giocatorePrende( boolean giocatore ) { + if ( giocatore ) { + toccaAllaCPU = CPUHaGiocato = false; + haGiocatoPrima = true; + } + else { + toccaAllaCPU = true; + CPUHaGiocato = haGiocatoPrima = false; + } + daiPunti( giocatore ); + if ( toccaAllaCPU ) + giocaCPU(); + } + + /* Da i punti (true al giocatore, false alla CPU) e fa pescare le carte*/ + public void daiPunti( boolean giocatore ) { + + char aux[], auxCPU[]; + aux = frame.giocata[0].toString().toCharArray(); + auxCPU = frame.giocata[1].toString().toCharArray(); + int punti = 0; + + switch( aux[aux.length-7] - 48 ) { + case 0: + punti += 4; + break; + case 1: + punti += 11; + break; + case 3: + punti += 10; + break; + case 8: + punti += 2; + break; + case 9: + punti += 3; + break; + default: + break; + } + switch( auxCPU[auxCPU.length-7] - 48 ) { + case 0: + punti += 4; + break; + case 1: + punti += 11; + break; + case 3: + punti += 10; + break; + case 8: + punti += 2; + break; + case 9: + punti += 3; + break; + default: + break; + } + + frame.giocata[0] = frame.giocata[1] = null; + + if ( giocatore ) { + punteggio += punti; + if ( mano < 18 ) { + if ( frame.carteInMano[0] == null ) + frame.carteInMano[0] = frame.arrayCarteMescolate[cartaDaPescare]; + if ( frame.carteInMano[1] == null ) + frame.carteInMano[1] = frame.arrayCarteMescolate[cartaDaPescare]; + if ( frame.carteInMano[2] == null ) + frame.carteInMano[2] = frame.arrayCarteMescolate[cartaDaPescare]; + cartaDaPescare++; + if ( frame.carteCPU[0] == null ) + frame.carteCPU[0] = frame.arrayCarteMescolate[cartaDaPescare]; + if ( frame.carteCPU[1] == null ) + frame.carteCPU[1] = frame.arrayCarteMescolate[cartaDaPescare]; + if ( frame.carteCPU[2] == null ) + frame.carteCPU[2] = frame.arrayCarteMescolate[cartaDaPescare]; + cartaDaPescare++; + } + } + + else { + punteggioCPU += punti; + if ( mano < 18 ) { + if ( frame.carteCPU[0] == null ) + frame.carteCPU[0] = frame.arrayCarteMescolate[cartaDaPescare]; + if ( frame.carteCPU[1] == null ) + frame.carteCPU[1] = frame.arrayCarteMescolate[cartaDaPescare]; + if ( frame.carteCPU[2] == null ) + frame.carteCPU[2] = frame.arrayCarteMescolate[cartaDaPescare]; + cartaDaPescare++; + if ( frame.carteInMano[0] == null ) + frame.carteInMano[0] = frame.arrayCarteMescolate[cartaDaPescare]; + if ( frame.carteInMano[1] == null ) + frame.carteInMano[1] = frame.arrayCarteMescolate[cartaDaPescare]; + if ( frame.carteInMano[2] == null ) + frame.carteInMano[2] = frame.arrayCarteMescolate[cartaDaPescare]; + cartaDaPescare++; + } + } + + /* Aggiorna la finestra */ + frame.pannello.repaint(); + frame.repaint(); + } + + /* Vari metodi che determinano che tipo di carta ha giocato il giocatore. + * Per farlo leggono il nome dell'immagine dal file. Dato che ogni carta + * a un nome del tipo 1-1.jpg (asso di coppe) o 10-3 (re di denari) e + * così via, è facile riconoscerle. */ + public boolean haLisciato() { + char auxCPU[]; + auxCPU = frame.giocata[0].toString().toCharArray(); + return ( (frame.giocata[0] != null) && (auxCPU[auxCPU.length-5] - 49 != semeBriscola) && + (auxCPU[auxCPU.length-7] - 48 != 0 ) && (auxCPU[auxCPU.length-7] - 48 != 1 ) && + (auxCPU[auxCPU.length-7] - 48 != 3 ) && (auxCPU[auxCPU.length-7] - 48 < 8 ) ); + } + + public boolean haMessoPunti() { + char auxCPU[]; + auxCPU = frame.giocata[0].toString().toCharArray(); + return ( (frame.giocata[0] != null) && (auxCPU[auxCPU.length-5] - 49 != semeBriscola) && + ( (auxCPU[auxCPU.length-7] - 48 == 0 ) || (auxCPU[auxCPU.length-7] - 48 == 8 ) || + (auxCPU[auxCPU.length-7] - 48 == 9 ) ) ); + } + + public boolean haTagliato() { + char auxCPU[]; + auxCPU = frame.giocata[0].toString().toCharArray(); + return ( (frame.giocata[0] != null) && (auxCPU[auxCPU.length-5] - 49 == semeBriscola) && + (auxCPU[auxCPU.length-7] - 48 != 0) && (auxCPU[auxCPU.length-7] - 48 != 1) && + (auxCPU[auxCPU.length-7] - 48 != 3) && (auxCPU[auxCPU.length-7] - 48 <= 7) ); + } + + public boolean haMessoBriscolaAlta() { + char auxCPU[]; + auxCPU = frame.giocata[0].toString().toCharArray(); + return ( (frame.giocata[0] != null) && (auxCPU[auxCPU.length-5] - 49 == semeBriscola) && + ( (auxCPU[auxCPU.length-7] - 48 == 0) || (auxCPU[auxCPU.length-7] - 48 == 8) || + (auxCPU[auxCPU.length-7] - 48 == 9) ) ); + } + + public boolean haMessoTre() { + char auxCPU[]; + auxCPU = frame.giocata[0].toString().toCharArray(); + return ( (frame.giocata[0] != null) && (auxCPU[auxCPU.length-5] - 49 == semeBriscola) && + (auxCPU[auxCPU.length-7] - 48 == 3) ); + } + + public boolean haMessoAsso() { + char auxCPU[]; + auxCPU = frame.giocata[0].toString().toCharArray(); + return ( (frame.giocata[0] != null) && (auxCPU[auxCPU.length-5] - 49 == semeBriscola) && + (auxCPU[auxCPU.length-7] - 48 == 1) ); + } + + public boolean haCaricato() { + char auxCPU[]; + auxCPU = frame.giocata[0].toString().toCharArray(); + return ( (frame.giocata[0] != null) && (auxCPU[auxCPU.length-5] - 49 != semeBriscola) && + ( (auxCPU[auxCPU.length-7] - 48 == 1 ) || (auxCPU[auxCPU.length-7] - 48 == 3 ) ) ); + } + + /* I metodi seguenti cercano di andare liscio - dare punti - mettere + * un taglio - ecc... e restituiscono true se hanno avuto successo, + * false altrimenti. */ + public boolean vaiLiscio() { + + char auxCPU[]; + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( (auxCPU[auxCPU.length-5] - 49 != semeBriscola) && + (auxCPU[auxCPU.length-7] - 48 != 0 ) && (auxCPU[auxCPU.length-7] - 48 != 1 ) && + (auxCPU[auxCPU.length-7] - 48 != 3 ) && (auxCPU[auxCPU.length-7] - 48 < 8 ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + + public boolean vaiPunti() { + /* Cerca di dare punti, cercando di darne il meno possibile (meglio + * un fante di re). */ + + char[] auxCPU; + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( (auxCPU[auxCPU.length-5] - 49 != semeBriscola) && (auxCPU[auxCPU.length-7] - 48 == 8 ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( (auxCPU[auxCPU.length-5] - 49 != semeBriscola) && (auxCPU[auxCPU.length-7] - 48 == 9 ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( (auxCPU[auxCPU.length-5] - 49 != semeBriscola) && (auxCPU[auxCPU.length-7] - 48 == 0 ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiTaglio() { + + char auxCPU[]; + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( auxCPU[auxCPU.length-5] - 49 == semeBriscola && + (auxCPU[auxCPU.length-7] - 48 != 0) && (auxCPU[auxCPU.length-7] - 48 != 1) && + (auxCPU[auxCPU.length-7] - 48 != 3) && (auxCPU[auxCPU.length-7] - 48 <= 7) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiBriscolaAlta() { + + char[] auxCPU; + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( (auxCPU[auxCPU.length-5] - 49 == semeBriscola) && (auxCPU[auxCPU.length-7] - 48 == 8 ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( (auxCPU[auxCPU.length-5] - 49 == semeBriscola) && (auxCPU[auxCPU.length-7] - 48 == 9 ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( (auxCPU[auxCPU.length-5] - 49 == semeBriscola) && (auxCPU[auxCPU.length-7] - 48 == 0 ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiTre() { + + char auxCPU[]; + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( auxCPU[auxCPU.length-5] - 49 == semeBriscola && (auxCPU[auxCPU.length-7] - 48 == 3) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiAsso() { + + char auxCPU[]; + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( auxCPU[auxCPU.length-5] - 49 == semeBriscola && (auxCPU[auxCPU.length-7] - 48 == 1) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiCarico() { + + char[] auxCPU; + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( (auxCPU[auxCPU.length-5] - 49 != semeBriscola) && (auxCPU[auxCPU.length-7] - 48 == 3 ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( (auxCPU[auxCPU.length-5] - 49 != semeBriscola) && (auxCPU[auxCPU.length-7] - 48 == 1 ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiSopra() { + /* Innanzitutto controlla se il giocatore ha giocato (non dovrebbe + * essere possibile, in quanto quando questo metodo viene chiamato + * tale condizione è già stata verificata, ma è sempre meglio un + * controllo in più che uno in meno) e restituisce false in caso + * contrario */ + if ( frame.giocata[0] == null ) + return false; + + /* Tre variabili intere che serviranno a valutare quali delle tre + * carte è meglio giocare, se più di una può andare sopra. */ + int a = -1; + int b = -1; + int c = -1; + + /* Tre booleane che verificano quali delle tre carte possono + * andare sopra. */ + boolean laPrimaPuoAndareSopra = false; + boolean laSecondaPuoAndareSopra = false; + boolean laTerzaPuoAndareSopra = false; + + /* E tre array di caratteri ausiliari per leggere il nome delle + * carte, più quello per la carta giocata dal giocatore.*/ + char[] auxCPU1 = new char[1024]; + char[] auxCPU2 = new char[1024]; + char[] auxCPU3 = new char[1024]; + char[] aux = frame.giocata[0].toString().toCharArray(); + + /* Se il giocatore ha giocato un asso, restituisce direttamente false. */ + if ( aux[aux.length-7] - 48 == 1 ) + return false; + + /* Valuta quali delle tre carte possono andare sopra, dopo essersi + * accertato di averle: nelle ultime mani non si hanno tutte le carte + * in mano, e noi non vogliamo una NullPointerException sul più bello + * di una partita, vero?! */ + if ( frame.carteCPU[0] != null ) { + auxCPU1 = frame.carteCPU[0].toString().toCharArray(); + a = auxCPU1[auxCPU1.length-7] - 48; + if ( (auxCPU1[auxCPU1.length-5] - 49 == aux[aux.length-5] - 49) && laPrimaEPiuAlta( a, aux[aux.length-7] - 48 ) ) + laPrimaPuoAndareSopra = true; + } + + if ( frame.carteCPU[1] != null ) { + auxCPU2 = frame.carteCPU[1].toString().toCharArray(); + b = auxCPU2[auxCPU2.length-7] - 48; + if ( (auxCPU2[auxCPU2.length-5] - 49 == aux[aux.length-5] - 49) && laPrimaEPiuAlta( b, aux[aux.length-7] - 48 ) ) + laSecondaPuoAndareSopra = true; + } + + if ( frame.carteCPU[2] != null ) { + auxCPU3 = frame.carteCPU[2].toString().toCharArray(); + c = auxCPU3[auxCPU3.length-7] - 48; + if ( (auxCPU3[auxCPU3.length-5] - 49 == aux[aux.length-5] - 49) && laPrimaEPiuAlta( c, aux[aux.length-7] - 48 ) ) + laTerzaPuoAndareSopra = true; + } + + /* Se nessuna carta può andare sopra, restituisce false. Se una + * sola delle tre può andare sopra la imposta come carta da giocare. */ + if ( !laPrimaPuoAndareSopra && !laSecondaPuoAndareSopra && !laTerzaPuoAndareSopra ) + return false; + else if ( laPrimaPuoAndareSopra && !laSecondaPuoAndareSopra && !laTerzaPuoAndareSopra ) + cartaDaGiocare = 0; + else if ( !laPrimaPuoAndareSopra && laSecondaPuoAndareSopra && !laTerzaPuoAndareSopra ) + cartaDaGiocare = 1; + else if ( !laPrimaPuoAndareSopra && !laSecondaPuoAndareSopra && laTerzaPuoAndareSopra ) + cartaDaGiocare = 2; + + /* Se più di una carta può andare sopra, valuta quale è più alta. */ + else if ( laPrimaPuoAndareSopra && laSecondaPuoAndareSopra && !laTerzaPuoAndareSopra ) + if ( laPrimaEPiuAlta( a, b ) ) + cartaDaGiocare = 0; + else + cartaDaGiocare = 1; + else if ( !laPrimaPuoAndareSopra && laSecondaPuoAndareSopra && laTerzaPuoAndareSopra ) + if ( laPrimaEPiuAlta( b, c ) ) + cartaDaGiocare = 1; + else + cartaDaGiocare = 2; + else if ( laPrimaPuoAndareSopra && !laSecondaPuoAndareSopra && laTerzaPuoAndareSopra ) + if ( laPrimaEPiuAlta( a, c ) ) + cartaDaGiocare = 0; + else + cartaDaGiocare = 2; + else if ( laPrimaPuoAndareSopra && laSecondaPuoAndareSopra && laTerzaPuoAndareSopra ) + if ( laPrimaEPiuAlta( a, b ) ) + if ( laPrimaEPiuAlta( a, c ) ) + cartaDaGiocare = 0; + else + cartaDaGiocare = 2; + else + if ( laPrimaEPiuAlta( b, c ) ) + cartaDaGiocare = 1; + else + cartaDaGiocare = 2; + + /* Controlla che la carta con cui sta cercando di andare sopra + * sia una figura o un carico. Non vogliamo mica prendere delle + * scartelle con delle scartelle, giusto?! */ + aux = frame.carteCPU[cartaDaGiocare].toString().toCharArray(); + if ( (aux[aux.length-7] - 48 != 0) && (aux[aux.length-7] - 48 != 1) && + (aux[aux.length-7] - 48 != 3) && (aux[aux.length-7] - 48 <= 7) ) + return false; + + return true; + } + + /* I metodi seguenti valutano le carte che la CPU ha in mano. */ + public boolean hoCarico() { + + char auxCPU[]; + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( (auxCPU[auxCPU.length-5] - 49 != semeBriscola) && + ( (auxCPU[auxCPU.length-7] - 48 == 1 ) || (auxCPU[auxCPU.length-7] - 48 == 3 ) ) ) { + return true; + } + } + } + + return false; + } + public boolean hoAsso() { + + char auxCPU[]; + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( (auxCPU[auxCPU.length-5] - 49 == semeBriscola) && (auxCPU[auxCPU.length-7] - 48 == 1 ) ) { + return true; + } + } + } + + return false; + } + public boolean hoTre() { + + char auxCPU[]; + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( (auxCPU[auxCPU.length-5] - 49 == semeBriscola) && (auxCPU[auxCPU.length-7] - 48 == 3 ) ) { + return true; + } + } + } + + return false; + } + public boolean hoBriscolaAlta() { + + char auxCPU[]; + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( (auxCPU[auxCPU.length-5] - 49 == semeBriscola) && + ( (auxCPU[auxCPU.length-7] - 48 == 0 ) || (auxCPU[auxCPU.length-7] - 48 == 8 ) || (auxCPU[auxCPU.length-7] - 48 == 9 ) ) ) { + return true; + } + } + } + + return false; + } + public boolean hoTaglio() { + + char auxCPU[]; + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + auxCPU = frame.carteCPU[i].toString().toCharArray(); + if ( (auxCPU[auxCPU.length-5] - 49 == semeBriscola) && + (auxCPU[auxCPU.length-7] - 48 < 8 ) && (auxCPU[auxCPU.length-7] - 48 != 3 ) + && (auxCPU[auxCPU.length-7] - 48 != 1 ) && (auxCPU[auxCPU.length-7] - 48 != 0 ) ) { + return true; + } + } + } + + return false; + } + + /* Imposta le opzioni dell'utente cercando di leggerle dal file di configurazione. */ + public static void settaOpzioni() { + + /* Impostazioni predefinite. */ + lang = "it"; + soundString = "suono=si"; + keysString = "tasti=si"; + int r = 0; + int g = 150; + int b = 0; + + /* Cerca di leggere il file per impostare le opzioni. */ + Scanner scanner = null; + File file = new File( "JBriscolaConfig.txt" ); + if ( file.exists() ) { + try { + scanner = new Scanner( file ); + } catch ( FileNotFoundException e ) { } + try { + lang = scanner.next(); + soundString = scanner.next(); + keysString = scanner.next(); + r = scanner.nextInt(); + g = scanner.nextInt(); + b = scanner.nextInt(); + } catch ( NoSuchElementException e ) { } + } + + /* Modifica le opzioni. */ + if ( lang.equals( "it" ) ) { + stringaBottonePrendi = "Prendi/Lascia carte"; + stringaPrimaGioca = "Prima Gioca!"; + stringaUltime4 = "Ultima carta - Occhio alla briscola!"; + stringaVinto = "Hai Vinto!"; + stringaPerso = "Hai Perso"; + stringaPareggio = "Pareggio"; + stringaGiocatore = "Giocatore: "; + stringaComputer = "\nComputer: "; + stringaNuovaPartita = "Nuova Partita"; + stringaVuoiDavveroIniziare = "Vuoi davvero iniziare una nuova partita?"; + stringaVuoiDavveroUscire = "Vuoi davvero uscire?"; + stringaSi = "Si"; + stringaNo = "No"; + stringaOpzioni = "Opzioni..."; + stringaEsci = "Esci"; + stringaImpossibileConfigurare = "Impossibile modificare il file di configurazione.\nSegnalare il bug a: sebastiano@luganega.org\n\nEccezione:\n"; + stringaLingua = "Lingua"; + stringaAnnulla = "Annulla"; + stringaIt = "Italiano"; + stringaLa = "Latino"; + stringaBL = "Dialetto Bellunese"; + stringaBV = "Dialetto Basso Veneto"; + stringaEN = "Inglese"; + stringaModificaOpzioni = "Modifica Opzioni"; + stringaInformazioni = "Informazioni"; + stringaInformazioni2 = "JBriscola e' un gioco di briscola per pc scritto in java ideato\ne realizzato da Sebastiano Tronto. Il gioco viene rilasciato sotto licenza GNU/Gpl versione 2 o successive; questo permette\npotenzialmente a chiunque di modificare il gioco partendo dal codice sorgente del programma. Se non avete ricevuto i sorgenti\nassieme al gioco, potete richiedermeli con un'e-mail a sebastiano@luganega.org.\n\nJBriscola version" + version + "\nCopyright 2009 Sebastiano Tronto, license GNU/Gpl 2.0 or later\nE-mail: sebastiano@luganega.org"; + stringaSuono = "Effetti sonori"; + stringaPunteggio = "Punteggio"; + stringaSfondo = "Sfondo"; + stringaTasti = "Tasti rapidi"; + stringaAggiornamenti = "Cerca aggiornamenti"; + stringaAggiornamentiSi = "Aggiornamento disponibile: "; + stringaAggiornamentiNo = "Nessun aggiornamento disponibile"; + stringaScarica = "E' possibile scaricare la versione più recente\ndal sito http://porkynator.altervista.org/programmi.html"; + stringaNoInternet = "Errore: nessuna connessione internet"; + stringaTasti2 = "1 Gioca la prima carta\n2 Gioca la seconda carta\n3 Gioca la terza carta\nF1 Visualizza questo messaggio\nF2 " + stringaNuovaPartita + "\nF3 " + stringaOpzioni + "\nF4 " + stringaPunteggio + "\nF5 " + stringaInformazioni + "\nF6 " + stringaAggiornamenti + "\nq " + stringaEsci; + } + else if ( lang.equals( "la" ) ) { + stringaBottonePrendi = "CAPIS/RELINQVIS CHARTAS"; + stringaPrimaGioca = "ANTE CHARTAM PONE!"; + stringaUltime4 = "CHARTA POSTREMA - INTVERE BRISCOLAM!"; + stringaVinto = "VICISTI!"; + stringaPerso = "PERDIDISTI"; + stringaPareggio = "AEQVATIO!"; + stringaGiocatore = "LVSOR: "; + stringaComputer = "\nCOMPVTER: "; + stringaNuovaPartita = "NOVA LVSO"; + stringaVuoiDavveroIniziare = "NOVAM LVSIONEM INCIPERE?"; + stringaVuoiDavveroUscire = "EXIRE?"; + stringaSi = "ID VOLO"; + stringaNo = "NOLO"; + stringaOpzioni = "OPTIONES..."; + stringaEsci = "EXIRE"; + stringaImpossibileConfigurare = "CONFIGVRATIONIS FILE SCRIBERE NON POTVI.\nERROREM ME CERTIOREM FACITE: sebastiano@luganega.org\n\nEXCEPTIO:\n"; + stringaLingua = "LINGVA"; + stringaAnnulla = "ABROGA"; + stringaIt = "ITALICA"; + stringaLa = "LATINA"; + stringaBL = "BELLUNI"; + stringaBV = "VENETIAE"; + stringaEN = "ANGLICVS"; + stringaModificaOpzioni = "OPTIONES NOVARE"; + stringaInformazioni = "INFORMATIONES"; + stringaInformazioni2 = "JBriscola EST LVDVM BRISCOLAE COMPVTERI, JAVA SCRIPTVM, EXCOGITATVM\nFACTVMQUE A SEBASTIANO TRONTO. IPSVM LUDVM REICITUR LICENTIA GNU/Gpl VERSIONE 2 AVT POSTERIORIBUS; ID\nOMNIBVS LVDVM MUTARE CODICE IPSIVS INCIPIENDO LICET. SI CODICES CUM\nLVDO NON PERVENIT, EOS POSCERE POTESTIS E-MAILE sebastiano@luganega.org.\n\nJBriscola version " + version + "\nCopyright 2009 Sebastiano Tronto, license GNU/Gpl 2.0 or later\nE-mail: sebastiano@luganega.org"; + stringaSuono = "SONVS"; + stringaPunteggio = "NVMERI"; + stringaSfondo = "COLOR"; + stringaTasti = "TASTI RAPIDI"; + stringaAggiornamenti = "VERSIONEM RECENTIOREM QVAERERE"; + stringaNoInternet = "ERROR: INTERNETIS CONIVCTIO NON EST"; + stringaAggiornamentiSi = "VERSIO RECENTIOR EST: "; + stringaAggiornamentiNo = "VERSIO RECENTIOR NON EST"; + stringaScarica = "VERSIONEM RECENTIOREM CEPTA ESSE POTEST:\nhttp://porkynator.altervista.org/programmi.html"; + stringaTasti2 = "1 PONE CHARTAM PRIMAM\n2 PONE CHARTAM SECUNDAM\n3 PONE CHARTAM TERTIAM\nF1 HEAC INFORMATIONES\nF2 " + stringaNuovaPartita + "\nF3 " + stringaOpzioni + "\nF4 " + stringaPunteggio + "\nF5 " + stringaInformazioni + "\nF6 " + stringaAggiornamenti + "\nq " + stringaEsci; + } + if ( lang.equals( "bl" ) ) { + stringaBottonePrendi = "Cio' su/lasa le carte"; + stringaPrimaGioca = "Prima Duga!"; + stringaUltime4 = "Ultima carta - Ocio a la briscola!"; + stringaVinto = "Te ha vint!"; + stringaPerso = "Te ha pers"; + stringaPareggio = "Pari"; + stringaGiocatore = "Dugador: "; + stringaComputer = "\nComputer: "; + stringaNuovaPartita = "Taca n'altra partida"; + stringaVuoiDavveroIniziare = "Utu sul serio scuminziar n'altra partida?"; + stringaVuoiDavveroUscire = "Utu sul serio stusar su?"; + stringaSi = "Si"; + stringaNo = "No"; + stringaOpzioni = "Opzioni..."; + stringaEsci = "Stusa su"; + stringaImpossibileConfigurare = "No ghe ho riva' a scrivere al file de configurazion.\nMandeme na mail a: sebastiano@luganega.org\n\nEcezion:\n"; + stringaLingua = "Lengua"; + stringaAnnulla = "Annulla"; + stringaIt = "Italian"; + stringaLa = "Latin"; + stringaBL = "Dialeto de Belun"; + stringaBV = "Dialeto de la basa"; + stringaEN = "Inglese"; + stringaModificaOpzioni = "Modifica Opzioni"; + stringaInformazioni = "Informazioni"; + stringaInformazioni2 = "JBriscola le' an dugo de briscola par computer scrit in java, pensa' e realiza'\n da Sebastiano Tronto. Al dugo l'e' sotto licenza GNU/Gpl versione 2 o sucesive; questo ol dir che chi che ol\n(se l'e' bon) al pol modificar al dugo coi codici sorgenti del programa. Se no i ve ha dat i sorgenti\nasieme al dugo, pote' domandarmeli co na e-mail a sebastiano@luganega.org.\n\nJBriscola version " + version + "\nCopyright 2009 Sebastiano Tronto, license GNU/Gpl 2.0 or later\nE-mail: sebastiano@luganega.org"; + stringaSuono = "Efeti sonori"; + stringaPunteggio = "Varda i punti"; + stringaSfondo = "Sfondo"; + stringaTasti = "Tasti rapidi"; + stringaAggiornamenti = "Varda se ghe ne' na version pi nova"; + stringaAggiornamentiSi = "Ghe ne' na version pi nova: "; + stringaAggiornamentiNo = "No ghe ne na version pi nova"; + stringaScarica = "Te pol scaricar le version pi nova\ndal sito http://porkynator.altervista.org/programmi.html"; + stringaNoInternet = "Erore: no te se su internet"; + stringaTasti2 = "1 Duga la prima carta\n2 Duga la seconda carta\n3 Duga la terza carta\nF1 Tasti rapidi\nF2 " + stringaNuovaPartita + "\nF3 " + stringaOpzioni + "\nF4 " + stringaPunteggio + "\nF5 " + stringaInformazioni + "\nF6 " + stringaAggiornamenti + "\nq " + stringaEsci; + } + if ( lang.equals( "bv" ) ) { + stringaBottonePrendi = "Ciapa su/lasa e carte"; + stringaPrimaGioca = "Prima Zuga!"; + stringaUltime4 = "Ultima carta - Ocio a la briscola!"; + stringaVinto = "Ti ga vinto!"; + stringaPerso = "Ti ga perso"; + stringaPareggio = "Pari"; + stringaGiocatore = "Zugador: "; + stringaComputer = "\nComputer: "; + stringaNuovaPartita = "N'altra Partida"; + stringaVuoiDavveroIniziare = "Ti vol sul serio scuminziar n'altra partida?"; + stringaVuoiDavveroUscire = "Ti vol sul serio stusar su?"; + stringaSi = "Si"; + stringaNo = "No"; + stringaOpzioni = "Opzioni..."; + stringaEsci = "Stusa su"; + stringaImpossibileConfigurare = "No ghe son riusito a scrivere al file de configurazione.\nMandeme na mail a: sebastiano@luganega.org\n\nEcezion:\n"; + stringaLingua = "Lengua"; + stringaAnnulla = "Annulla"; + stringaIt = "Italian"; + stringaLa = "Latin"; + stringaBL = "Dialeto Belumat"; + stringaBV = "Dialeto Veneto"; + stringaEN = "Inglese"; + stringaModificaOpzioni = "Modifica Opzioni"; + stringaInformazioni = "Informasioni"; + stringaInformazioni2 = "JBriscola xe an zugo de briscola par computer scrito in java, pensato e realisato\n da Sebastiano Tronto. Al zugo xe sotto licenza GNU/Gpl versione 2 o sucesive; questo vol dire che chi che\nvol (se xe bono) al pol modificare al zugo coi codici sorgenti del programa. Se no i ve ha dato i sorgenti\nasieme al zugo, pote' domandarmeli co na e-mail a sebastiano@luganega.org.\n\nJBriscola version " + version + "\nCopyright 2009 Sebastiano Tronto, license GNU/Gpl 2.0 or later\nE-mail: sebastiano@luganega.org"; + stringaSuono = "Efeti sonori"; + stringaPunteggio = "Varda i punti"; + stringaSfondo = "Sfondo"; + stringaTasti = "Tasti rapidi"; + stringaAggiornamenti = "Varda se xe ne' na versione pi nova"; + stringaAggiornamentiSi = "Ghe xe na versione pi nova: "; + stringaAggiornamentiNo = "No ghe xe na versione pi nova"; + stringaScarica = "Te pol scaricar le versione pi nova\ndal sito http://porkynator.altervista.org/programmi.html"; + stringaNoInternet = "Erore: no ti xe su internet"; + stringaTasti2 = "1 Zuga la prima carta\n2 Zuga la seconda carta\n3 Zuga la terza carta\nF1 Tasti rapidi\nF2 " + stringaNuovaPartita + "\nF3 " + stringaOpzioni + "\nF4 " + stringaPunteggio + "\nF5 " + stringaInformazioni + "\nF6 " + stringaAggiornamenti + "\nq " + stringaEsci; + } + if ( lang.equals( "en" ) ) { + stringaBottonePrendi = "Take/leave cards"; + stringaPrimaGioca = "Play your card before!"; + stringaUltime4 = "Last card - keep your eye on the briscola!"; + stringaVinto = "You won!"; + stringaPerso = "You lost"; + stringaPareggio = "Sixty - sixty!"; + stringaGiocatore = "Palyer: "; + stringaComputer = "\nComputer: "; + stringaNuovaPartita = "New Game"; + stringaVuoiDavveroIniziare = "Do you really want to start a new game?"; + stringaVuoiDavveroUscire = "Do you really want to exit?"; + stringaSi = "Yes"; + stringaNo = "No"; + stringaOpzioni = "Options..."; + stringaEsci = "Exit"; + stringaImpossibileConfigurare = "Couldn't write to the configuration file.\nPlease report the bug to: sebastiano@luganega.org\n\nException:\n"; + stringaLingua = "Lang"; + stringaAnnulla = "Cancel"; + stringaIt = "Italian"; + stringaLa = "Latin"; + stringaBL = "Belluno dialect"; + stringaBV = "Venice dialect"; + stringaEN = "English"; + stringaModificaOpzioni = "Change options"; + stringaInformazioni = "Information"; + stringaInformazioni2 = "JBriscola is a briscola pc game written in java, meant\nand made by Sebastiano Tronto. The game is protected by the GNU/General public licence version 2 or later.\n\nJBriscola version" + version + "\nCopyright 2009 Sebastiano Tronto, license GNU/Gpl 2.0 or later\nE-mail: sebastiano@luganega.org"; + stringaSuono = "Sound"; + stringaPunteggio = "Score"; + stringaSfondo = "Background"; + stringaTasti = "Hot keys"; + stringaAggiornamenti = "Check updates"; + stringaAggiornamentiSi = "Update available: "; + stringaAggiornamentiNo = "No updates available"; + stringaScarica = "You can get the latest version from the site\nhttp://porkynator.altervista.org/programmi.html"; + stringaNoInternet = "Error: no internet connection"; + stringaTasti2 = "1 Play the first card\n2 Play the second card\n3 Play the third card\nF1 Get this message\nF2 " + stringaNuovaPartita + "\nF3 " + stringaOpzioni + "\nF4 " + stringaPunteggio + "\nF5 " + stringaInformazioni + "\nF6 " + stringaAggiornamenti + "\nq " + stringaEsci; + } + sound = ( soundString.equals( "suono=si" ) ); + keys = ( keysString.equals( "tasti=si" ) ); + color = new Color( r, g, b ); + if ( frame != null ) { + frame.pannello.repaint(); + frame.pannello2.repaint(); + frame.repaint(); + } + } +} -- cgit v1.3