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/JBriscola.jar | Bin 0 -> 1357647 bytes .../all_versions/0.1/0.1 Alpha 1/src/Frame.java | 118 ++ .../all_versions/0.1/0.1 Alpha 1/src/Main.java | 211 ++ .../all_versions/0.1/0.1 Alpha 1/src/Pannello.java | 53 + .../all_versions/0.1/0.1 Beta 1/src/Frame.java | 159 ++ .../all_versions/0.1/0.1 Beta 1/src/Main.java | 399 ++++ .../all_versions/0.1/0.1 Beta 1/src/Pannello.java | 53 + .../all_versions/0.1/0.1 Beta 2/src/Frame.java | 174 ++ .../all_versions/0.1/0.1 Beta 2/src/Main.java | 492 +++++ .../0.1/0.1 Beta 2/src/OptionFrame.java | 83 + .../all_versions/0.1/0.1 Beta 2/src/Pannello.java | 53 + JBriscola/all_versions/0.1/0.1.1/src/Frame.java | 186 ++ JBriscola/all_versions/0.1/0.1.1/src/Main.java | 708 +++++++ .../all_versions/0.1/0.1.1/src/OptionFrame.java | 87 + JBriscola/all_versions/0.1/0.1.1/src/Pannello.java | 53 + JBriscola/all_versions/0.1/0.1.1/src/img/1-1.jpg | Bin 0 -> 3893 bytes JBriscola/all_versions/0.1/0.1.1/src/img/1-2.jpg | Bin 0 -> 3688 bytes JBriscola/all_versions/0.1/0.1.1/src/img/1-3.jpg | Bin 0 -> 3616 bytes JBriscola/all_versions/0.1/0.1.1/src/img/1-4.jpg | Bin 0 -> 3827 bytes JBriscola/all_versions/0.1/0.1.1/src/img/10-1.jpg | Bin 0 -> 3375 bytes JBriscola/all_versions/0.1/0.1.1/src/img/10-2.jpg | Bin 0 -> 3831 bytes JBriscola/all_versions/0.1/0.1.1/src/img/10-3.jpg | Bin 0 -> 3699 bytes JBriscola/all_versions/0.1/0.1.1/src/img/10-4.jpg | Bin 0 -> 3638 bytes JBriscola/all_versions/0.1/0.1.1/src/img/2-1.jpg | Bin 0 -> 3351 bytes JBriscola/all_versions/0.1/0.1.1/src/img/2-2.jpg | Bin 0 -> 3228 bytes JBriscola/all_versions/0.1/0.1.1/src/img/2-3.jpg | Bin 0 -> 3111 bytes JBriscola/all_versions/0.1/0.1.1/src/img/2-4.jpg | Bin 0 -> 3711 bytes JBriscola/all_versions/0.1/0.1.1/src/img/3-1.jpg | Bin 0 -> 3527 bytes JBriscola/all_versions/0.1/0.1.1/src/img/3-2.jpg | Bin 0 -> 3249 bytes JBriscola/all_versions/0.1/0.1.1/src/img/3-3.jpg | Bin 0 -> 3235 bytes JBriscola/all_versions/0.1/0.1.1/src/img/3-4.jpg | Bin 0 -> 3647 bytes JBriscola/all_versions/0.1/0.1.1/src/img/4-1.jpg | Bin 0 -> 3616 bytes JBriscola/all_versions/0.1/0.1.1/src/img/4-2.jpg | Bin 0 -> 3640 bytes JBriscola/all_versions/0.1/0.1.1/src/img/4-3.jpg | Bin 0 -> 3121 bytes JBriscola/all_versions/0.1/0.1.1/src/img/4-4.jpg | Bin 0 -> 3867 bytes JBriscola/all_versions/0.1/0.1.1/src/img/5-1.jpg | Bin 0 -> 3703 bytes JBriscola/all_versions/0.1/0.1.1/src/img/5-2.jpg | Bin 0 -> 3535 bytes JBriscola/all_versions/0.1/0.1.1/src/img/5-3.jpg | Bin 0 -> 2854 bytes JBriscola/all_versions/0.1/0.1.1/src/img/5-4.jpg | Bin 0 -> 3829 bytes JBriscola/all_versions/0.1/0.1.1/src/img/6-1.jpg | Bin 0 -> 3717 bytes JBriscola/all_versions/0.1/0.1.1/src/img/6-2.jpg | Bin 0 -> 3673 bytes JBriscola/all_versions/0.1/0.1.1/src/img/6-3.jpg | Bin 0 -> 3140 bytes JBriscola/all_versions/0.1/0.1.1/src/img/6-4.jpg | Bin 0 -> 3982 bytes JBriscola/all_versions/0.1/0.1.1/src/img/7-1.jpg | Bin 0 -> 3798 bytes JBriscola/all_versions/0.1/0.1.1/src/img/7-2.jpg | Bin 0 -> 3630 bytes JBriscola/all_versions/0.1/0.1.1/src/img/7-3.jpg | Bin 0 -> 3265 bytes JBriscola/all_versions/0.1/0.1.1/src/img/7-4.jpg | Bin 0 -> 3958 bytes JBriscola/all_versions/0.1/0.1.1/src/img/8-1.jpg | Bin 0 -> 3777 bytes JBriscola/all_versions/0.1/0.1.1/src/img/8-2.jpg | Bin 0 -> 3694 bytes JBriscola/all_versions/0.1/0.1.1/src/img/8-3.jpg | Bin 0 -> 3742 bytes JBriscola/all_versions/0.1/0.1.1/src/img/8-4.jpg | Bin 0 -> 3526 bytes JBriscola/all_versions/0.1/0.1.1/src/img/9-1.jpg | Bin 0 -> 3558 bytes JBriscola/all_versions/0.1/0.1.1/src/img/9-2.jpg | Bin 0 -> 3614 bytes JBriscola/all_versions/0.1/0.1.1/src/img/9-3.jpg | Bin 0 -> 3485 bytes JBriscola/all_versions/0.1/0.1.1/src/img/9-4.jpg | Bin 0 -> 3542 bytes JBriscola/all_versions/0.1/0.1.1/src/img/carte.jpg | Bin 0 -> 348200 bytes .../all_versions/0.1/0.1.1/src/img/retro1.jpg | Bin 0 -> 3850 bytes .../all_versions/0.1/0.1.1/src/img/retro2.jpg | Bin 0 -> 3848 bytes .../all_versions/0.2/0.2 Beta 1/src/Frame.java | 242 +++ .../all_versions/0.2/0.2 Beta 1/src/Main.java | 1068 ++++++++++ .../0.2/0.2 Beta 1/src/OptionFrame.java | 129 ++ .../all_versions/0.2/0.2 Beta 1/src/Pannello.java | 54 + .../all_versions/0.2/0.2 Beta 1/src/img/1-1.jpg | Bin 0 -> 3893 bytes .../all_versions/0.2/0.2 Beta 1/src/img/1-2.jpg | Bin 0 -> 3688 bytes .../all_versions/0.2/0.2 Beta 1/src/img/1-3.jpg | Bin 0 -> 3616 bytes .../all_versions/0.2/0.2 Beta 1/src/img/1-4.jpg | Bin 0 -> 3827 bytes .../all_versions/0.2/0.2 Beta 1/src/img/10-1.jpg | Bin 0 -> 3375 bytes .../all_versions/0.2/0.2 Beta 1/src/img/10-2.jpg | Bin 0 -> 3831 bytes .../all_versions/0.2/0.2 Beta 1/src/img/10-3.jpg | Bin 0 -> 3699 bytes .../all_versions/0.2/0.2 Beta 1/src/img/10-4.jpg | Bin 0 -> 3638 bytes .../all_versions/0.2/0.2 Beta 1/src/img/2-1.jpg | Bin 0 -> 3351 bytes .../all_versions/0.2/0.2 Beta 1/src/img/2-2.jpg | Bin 0 -> 3228 bytes .../all_versions/0.2/0.2 Beta 1/src/img/2-3.jpg | Bin 0 -> 3111 bytes .../all_versions/0.2/0.2 Beta 1/src/img/2-4.jpg | Bin 0 -> 3711 bytes .../all_versions/0.2/0.2 Beta 1/src/img/3-1.jpg | Bin 0 -> 3527 bytes .../all_versions/0.2/0.2 Beta 1/src/img/3-2.jpg | Bin 0 -> 3249 bytes .../all_versions/0.2/0.2 Beta 1/src/img/3-3.jpg | Bin 0 -> 3235 bytes .../all_versions/0.2/0.2 Beta 1/src/img/3-4.jpg | Bin 0 -> 3647 bytes .../all_versions/0.2/0.2 Beta 1/src/img/4-1.jpg | Bin 0 -> 3616 bytes .../all_versions/0.2/0.2 Beta 1/src/img/4-2.jpg | Bin 0 -> 3640 bytes .../all_versions/0.2/0.2 Beta 1/src/img/4-3.jpg | Bin 0 -> 3121 bytes .../all_versions/0.2/0.2 Beta 1/src/img/4-4.jpg | Bin 0 -> 3867 bytes .../all_versions/0.2/0.2 Beta 1/src/img/5-1.jpg | Bin 0 -> 3703 bytes .../all_versions/0.2/0.2 Beta 1/src/img/5-2.jpg | Bin 0 -> 3535 bytes .../all_versions/0.2/0.2 Beta 1/src/img/5-3.jpg | Bin 0 -> 2854 bytes .../all_versions/0.2/0.2 Beta 1/src/img/5-4.jpg | Bin 0 -> 3829 bytes .../all_versions/0.2/0.2 Beta 1/src/img/6-1.jpg | Bin 0 -> 3717 bytes .../all_versions/0.2/0.2 Beta 1/src/img/6-2.jpg | Bin 0 -> 3673 bytes .../all_versions/0.2/0.2 Beta 1/src/img/6-3.jpg | Bin 0 -> 3140 bytes .../all_versions/0.2/0.2 Beta 1/src/img/6-4.jpg | Bin 0 -> 3982 bytes .../all_versions/0.2/0.2 Beta 1/src/img/7-1.jpg | Bin 0 -> 3798 bytes .../all_versions/0.2/0.2 Beta 1/src/img/7-2.jpg | Bin 0 -> 3630 bytes .../all_versions/0.2/0.2 Beta 1/src/img/7-3.jpg | Bin 0 -> 3265 bytes .../all_versions/0.2/0.2 Beta 1/src/img/7-4.jpg | Bin 0 -> 3958 bytes .../all_versions/0.2/0.2 Beta 1/src/img/8-1.jpg | Bin 0 -> 3777 bytes .../all_versions/0.2/0.2 Beta 1/src/img/8-2.jpg | Bin 0 -> 3694 bytes .../all_versions/0.2/0.2 Beta 1/src/img/8-3.jpg | Bin 0 -> 3742 bytes .../all_versions/0.2/0.2 Beta 1/src/img/8-4.jpg | Bin 0 -> 3526 bytes .../all_versions/0.2/0.2 Beta 1/src/img/9-1.jpg | Bin 0 -> 3558 bytes .../all_versions/0.2/0.2 Beta 1/src/img/9-2.jpg | Bin 0 -> 3614 bytes .../all_versions/0.2/0.2 Beta 1/src/img/9-3.jpg | Bin 0 -> 3485 bytes .../all_versions/0.2/0.2 Beta 1/src/img/9-4.jpg | Bin 0 -> 3542 bytes .../all_versions/0.2/0.2 Beta 1/src/img/carte.jpg | Bin 0 -> 348200 bytes .../all_versions/0.2/0.2 Beta 1/src/img/retro1.jpg | Bin 0 -> 3850 bytes .../all_versions/0.2/0.2 Beta 1/src/img/retro2.jpg | Bin 0 -> 3848 bytes .../all_versions/0.2/0.2 Beta 1/src/sounds/0.wav | Bin 0 -> 18476 bytes .../all_versions/0.2/0.2 Beta 1/src/sounds/1.wav | Bin 0 -> 71468 bytes .../all_versions/0.2/0.2 Beta 1/src/sounds/2.wav | Bin 0 -> 94508 bytes .../all_versions/0.2/0.2 Beta 1/src/sounds/3.wav | Bin 0 -> 18476 bytes .../all_versions/0.2/0.2 Beta 1/src/sounds/4.wav | Bin 0 -> 21932 bytes .../all_versions/0.2/0.2 Beta 1/src/sounds/5.wav | Bin 0 -> 34604 bytes .../0.2/0.2 Beta 1/src/sounds/pareggio.wav | Bin 0 -> 253484 bytes .../0.2/0.2 Beta 1/src/sounds/perso.wav | Bin 0 -> 94508 bytes .../0.2/0.2 Beta 1/src/sounds/vinto.wav | Bin 0 -> 152108 bytes .../all_versions/0.2/0.2 Beta 2/src/Frame.java | 243 +++ .../all_versions/0.2/0.2 Beta 2/src/Main.java | 1069 ++++++++++ .../0.2/0.2 Beta 2/src/OptionFrame.java | 129 ++ .../all_versions/0.2/0.2 Beta 2/src/Pannello.java | 54 + .../all_versions/0.2/0.2 Beta 2/src/img/1-1.jpg | Bin 0 -> 3893 bytes .../all_versions/0.2/0.2 Beta 2/src/img/1-2.jpg | Bin 0 -> 3688 bytes .../all_versions/0.2/0.2 Beta 2/src/img/1-3.jpg | Bin 0 -> 3616 bytes .../all_versions/0.2/0.2 Beta 2/src/img/1-4.jpg | Bin 0 -> 3827 bytes .../all_versions/0.2/0.2 Beta 2/src/img/10-1.jpg | Bin 0 -> 3375 bytes .../all_versions/0.2/0.2 Beta 2/src/img/10-2.jpg | Bin 0 -> 3831 bytes .../all_versions/0.2/0.2 Beta 2/src/img/10-3.jpg | Bin 0 -> 3699 bytes .../all_versions/0.2/0.2 Beta 2/src/img/10-4.jpg | Bin 0 -> 3638 bytes .../all_versions/0.2/0.2 Beta 2/src/img/2-1.jpg | Bin 0 -> 3351 bytes .../all_versions/0.2/0.2 Beta 2/src/img/2-2.jpg | Bin 0 -> 3228 bytes .../all_versions/0.2/0.2 Beta 2/src/img/2-3.jpg | Bin 0 -> 3111 bytes .../all_versions/0.2/0.2 Beta 2/src/img/2-4.jpg | Bin 0 -> 3711 bytes .../all_versions/0.2/0.2 Beta 2/src/img/3-1.jpg | Bin 0 -> 3527 bytes .../all_versions/0.2/0.2 Beta 2/src/img/3-2.jpg | Bin 0 -> 3249 bytes .../all_versions/0.2/0.2 Beta 2/src/img/3-3.jpg | Bin 0 -> 3235 bytes .../all_versions/0.2/0.2 Beta 2/src/img/3-4.jpg | Bin 0 -> 3647 bytes .../all_versions/0.2/0.2 Beta 2/src/img/4-1.jpg | Bin 0 -> 3616 bytes .../all_versions/0.2/0.2 Beta 2/src/img/4-2.jpg | Bin 0 -> 3640 bytes .../all_versions/0.2/0.2 Beta 2/src/img/4-3.jpg | Bin 0 -> 3121 bytes .../all_versions/0.2/0.2 Beta 2/src/img/4-4.jpg | Bin 0 -> 3867 bytes .../all_versions/0.2/0.2 Beta 2/src/img/5-1.jpg | Bin 0 -> 3703 bytes .../all_versions/0.2/0.2 Beta 2/src/img/5-2.jpg | Bin 0 -> 3535 bytes .../all_versions/0.2/0.2 Beta 2/src/img/5-3.jpg | Bin 0 -> 2854 bytes .../all_versions/0.2/0.2 Beta 2/src/img/5-4.jpg | Bin 0 -> 3829 bytes .../all_versions/0.2/0.2 Beta 2/src/img/6-1.jpg | Bin 0 -> 3717 bytes .../all_versions/0.2/0.2 Beta 2/src/img/6-2.jpg | Bin 0 -> 3673 bytes .../all_versions/0.2/0.2 Beta 2/src/img/6-3.jpg | Bin 0 -> 3140 bytes .../all_versions/0.2/0.2 Beta 2/src/img/6-4.jpg | Bin 0 -> 3982 bytes .../all_versions/0.2/0.2 Beta 2/src/img/7-1.jpg | Bin 0 -> 3798 bytes .../all_versions/0.2/0.2 Beta 2/src/img/7-2.jpg | Bin 0 -> 3630 bytes .../all_versions/0.2/0.2 Beta 2/src/img/7-3.jpg | Bin 0 -> 3265 bytes .../all_versions/0.2/0.2 Beta 2/src/img/7-4.jpg | Bin 0 -> 3958 bytes .../all_versions/0.2/0.2 Beta 2/src/img/8-1.jpg | Bin 0 -> 3777 bytes .../all_versions/0.2/0.2 Beta 2/src/img/8-2.jpg | Bin 0 -> 3694 bytes .../all_versions/0.2/0.2 Beta 2/src/img/8-3.jpg | Bin 0 -> 3742 bytes .../all_versions/0.2/0.2 Beta 2/src/img/8-4.jpg | Bin 0 -> 3526 bytes .../all_versions/0.2/0.2 Beta 2/src/img/9-1.jpg | Bin 0 -> 3558 bytes .../all_versions/0.2/0.2 Beta 2/src/img/9-2.jpg | Bin 0 -> 3614 bytes .../all_versions/0.2/0.2 Beta 2/src/img/9-3.jpg | Bin 0 -> 3485 bytes .../all_versions/0.2/0.2 Beta 2/src/img/9-4.jpg | Bin 0 -> 3542 bytes .../all_versions/0.2/0.2 Beta 2/src/img/carte.jpg | Bin 0 -> 348200 bytes .../all_versions/0.2/0.2 Beta 2/src/img/retro1.jpg | Bin 0 -> 3850 bytes .../all_versions/0.2/0.2 Beta 2/src/img/retro2.jpg | Bin 0 -> 3848 bytes .../all_versions/0.2/0.2 Beta 2/src/sounds/0.wav | Bin 0 -> 18476 bytes .../all_versions/0.2/0.2 Beta 2/src/sounds/1.wav | Bin 0 -> 71468 bytes .../all_versions/0.2/0.2 Beta 2/src/sounds/2.wav | Bin 0 -> 94508 bytes .../all_versions/0.2/0.2 Beta 2/src/sounds/3.wav | Bin 0 -> 18476 bytes .../all_versions/0.2/0.2 Beta 2/src/sounds/4.wav | Bin 0 -> 21932 bytes .../all_versions/0.2/0.2 Beta 2/src/sounds/5.wav | Bin 0 -> 34604 bytes .../0.2/0.2 Beta 2/src/sounds/pareggio.wav | Bin 0 -> 253484 bytes .../0.2/0.2 Beta 2/src/sounds/perso.wav | Bin 0 -> 94508 bytes .../0.2/0.2 Beta 2/src/sounds/vinto.wav | Bin 0 -> 152108 bytes .../all_versions/0.2/0.2 Beta 3/src/Frame.java | 306 +++ .../all_versions/0.2/0.2 Beta 3/src/Main.java | 1080 ++++++++++ .../0.2/0.2 Beta 3/src/OptionFrame.java | 129 ++ .../all_versions/0.2/0.2 Beta 3/src/Pannello.java | 54 + .../all_versions/0.2/0.2 Beta 3/src/img/1-1.jpg | Bin 0 -> 3893 bytes .../all_versions/0.2/0.2 Beta 3/src/img/1-2.jpg | Bin 0 -> 3688 bytes .../all_versions/0.2/0.2 Beta 3/src/img/1-3.jpg | Bin 0 -> 3616 bytes .../all_versions/0.2/0.2 Beta 3/src/img/1-4.jpg | Bin 0 -> 3827 bytes .../all_versions/0.2/0.2 Beta 3/src/img/10-1.jpg | Bin 0 -> 3375 bytes .../all_versions/0.2/0.2 Beta 3/src/img/10-2.jpg | Bin 0 -> 3831 bytes .../all_versions/0.2/0.2 Beta 3/src/img/10-3.jpg | Bin 0 -> 3699 bytes .../all_versions/0.2/0.2 Beta 3/src/img/10-4.jpg | Bin 0 -> 3638 bytes .../all_versions/0.2/0.2 Beta 3/src/img/2-1.jpg | Bin 0 -> 3351 bytes .../all_versions/0.2/0.2 Beta 3/src/img/2-2.jpg | Bin 0 -> 3228 bytes .../all_versions/0.2/0.2 Beta 3/src/img/2-3.jpg | Bin 0 -> 3111 bytes .../all_versions/0.2/0.2 Beta 3/src/img/2-4.jpg | Bin 0 -> 3711 bytes .../all_versions/0.2/0.2 Beta 3/src/img/3-1.jpg | Bin 0 -> 3527 bytes .../all_versions/0.2/0.2 Beta 3/src/img/3-2.jpg | Bin 0 -> 3249 bytes .../all_versions/0.2/0.2 Beta 3/src/img/3-3.jpg | Bin 0 -> 3235 bytes .../all_versions/0.2/0.2 Beta 3/src/img/3-4.jpg | Bin 0 -> 3647 bytes .../all_versions/0.2/0.2 Beta 3/src/img/4-1.jpg | Bin 0 -> 3616 bytes .../all_versions/0.2/0.2 Beta 3/src/img/4-2.jpg | Bin 0 -> 3640 bytes .../all_versions/0.2/0.2 Beta 3/src/img/4-3.jpg | Bin 0 -> 3121 bytes .../all_versions/0.2/0.2 Beta 3/src/img/4-4.jpg | Bin 0 -> 3867 bytes .../all_versions/0.2/0.2 Beta 3/src/img/5-1.jpg | Bin 0 -> 3703 bytes .../all_versions/0.2/0.2 Beta 3/src/img/5-2.jpg | Bin 0 -> 3535 bytes .../all_versions/0.2/0.2 Beta 3/src/img/5-3.jpg | Bin 0 -> 2854 bytes .../all_versions/0.2/0.2 Beta 3/src/img/5-4.jpg | Bin 0 -> 3829 bytes .../all_versions/0.2/0.2 Beta 3/src/img/6-1.jpg | Bin 0 -> 3717 bytes .../all_versions/0.2/0.2 Beta 3/src/img/6-2.jpg | Bin 0 -> 3673 bytes .../all_versions/0.2/0.2 Beta 3/src/img/6-3.jpg | Bin 0 -> 3140 bytes .../all_versions/0.2/0.2 Beta 3/src/img/6-4.jpg | Bin 0 -> 3982 bytes .../all_versions/0.2/0.2 Beta 3/src/img/7-1.jpg | Bin 0 -> 3798 bytes .../all_versions/0.2/0.2 Beta 3/src/img/7-2.jpg | Bin 0 -> 3630 bytes .../all_versions/0.2/0.2 Beta 3/src/img/7-3.jpg | Bin 0 -> 3265 bytes .../all_versions/0.2/0.2 Beta 3/src/img/7-4.jpg | Bin 0 -> 3958 bytes .../all_versions/0.2/0.2 Beta 3/src/img/8-1.jpg | Bin 0 -> 3777 bytes .../all_versions/0.2/0.2 Beta 3/src/img/8-2.jpg | Bin 0 -> 3694 bytes .../all_versions/0.2/0.2 Beta 3/src/img/8-3.jpg | Bin 0 -> 3742 bytes .../all_versions/0.2/0.2 Beta 3/src/img/8-4.jpg | Bin 0 -> 3526 bytes .../all_versions/0.2/0.2 Beta 3/src/img/9-1.jpg | Bin 0 -> 3558 bytes .../all_versions/0.2/0.2 Beta 3/src/img/9-2.jpg | Bin 0 -> 3614 bytes .../all_versions/0.2/0.2 Beta 3/src/img/9-3.jpg | Bin 0 -> 3485 bytes .../all_versions/0.2/0.2 Beta 3/src/img/9-4.jpg | Bin 0 -> 3542 bytes .../all_versions/0.2/0.2 Beta 3/src/img/carte.jpg | Bin 0 -> 348200 bytes .../all_versions/0.2/0.2 Beta 3/src/img/retro1.jpg | Bin 0 -> 3850 bytes .../all_versions/0.2/0.2 Beta 3/src/img/retro2.jpg | Bin 0 -> 3848 bytes .../all_versions/0.2/0.2 Beta 3/src/sounds/0.wav | Bin 0 -> 18476 bytes .../all_versions/0.2/0.2 Beta 3/src/sounds/1.wav | Bin 0 -> 71468 bytes .../all_versions/0.2/0.2 Beta 3/src/sounds/2.wav | Bin 0 -> 94508 bytes .../all_versions/0.2/0.2 Beta 3/src/sounds/3.wav | Bin 0 -> 18476 bytes .../all_versions/0.2/0.2 Beta 3/src/sounds/4.wav | Bin 0 -> 21932 bytes .../all_versions/0.2/0.2 Beta 3/src/sounds/5.wav | Bin 0 -> 34604 bytes .../0.2/0.2 Beta 3/src/sounds/pareggio.wav | Bin 0 -> 253484 bytes .../0.2/0.2 Beta 3/src/sounds/perso.wav | Bin 0 -> 94508 bytes .../0.2/0.2 Beta 3/src/sounds/vinto.wav | Bin 0 -> 152108 bytes JBriscola/all_versions/0.2/0.2.1/src/Frame.java | 348 ++++ JBriscola/all_versions/0.2/0.2.1/src/Main.java | 1101 +++++++++++ .../all_versions/0.2/0.2.1/src/OptionFrame.java | 140 ++ JBriscola/all_versions/0.2/0.2.1/src/Pannello.java | 54 + JBriscola/all_versions/0.2/0.2.1/src/img/1-1.jpg | Bin 0 -> 3893 bytes JBriscola/all_versions/0.2/0.2.1/src/img/1-2.jpg | Bin 0 -> 3688 bytes JBriscola/all_versions/0.2/0.2.1/src/img/1-3.jpg | Bin 0 -> 3616 bytes JBriscola/all_versions/0.2/0.2.1/src/img/1-4.jpg | Bin 0 -> 3827 bytes JBriscola/all_versions/0.2/0.2.1/src/img/10-1.jpg | Bin 0 -> 3375 bytes JBriscola/all_versions/0.2/0.2.1/src/img/10-2.jpg | Bin 0 -> 3831 bytes JBriscola/all_versions/0.2/0.2.1/src/img/10-3.jpg | Bin 0 -> 3699 bytes JBriscola/all_versions/0.2/0.2.1/src/img/10-4.jpg | Bin 0 -> 3638 bytes JBriscola/all_versions/0.2/0.2.1/src/img/2-1.jpg | Bin 0 -> 3351 bytes JBriscola/all_versions/0.2/0.2.1/src/img/2-2.jpg | Bin 0 -> 3228 bytes JBriscola/all_versions/0.2/0.2.1/src/img/2-3.jpg | Bin 0 -> 3111 bytes JBriscola/all_versions/0.2/0.2.1/src/img/2-4.jpg | Bin 0 -> 3711 bytes JBriscola/all_versions/0.2/0.2.1/src/img/3-1.jpg | Bin 0 -> 3527 bytes JBriscola/all_versions/0.2/0.2.1/src/img/3-2.jpg | Bin 0 -> 3249 bytes JBriscola/all_versions/0.2/0.2.1/src/img/3-3.jpg | Bin 0 -> 3235 bytes JBriscola/all_versions/0.2/0.2.1/src/img/3-4.jpg | Bin 0 -> 3647 bytes JBriscola/all_versions/0.2/0.2.1/src/img/4-1.jpg | Bin 0 -> 3616 bytes JBriscola/all_versions/0.2/0.2.1/src/img/4-2.jpg | Bin 0 -> 3640 bytes JBriscola/all_versions/0.2/0.2.1/src/img/4-3.jpg | Bin 0 -> 3121 bytes JBriscola/all_versions/0.2/0.2.1/src/img/4-4.jpg | Bin 0 -> 3867 bytes JBriscola/all_versions/0.2/0.2.1/src/img/5-1.jpg | Bin 0 -> 3703 bytes JBriscola/all_versions/0.2/0.2.1/src/img/5-2.jpg | Bin 0 -> 3535 bytes JBriscola/all_versions/0.2/0.2.1/src/img/5-3.jpg | Bin 0 -> 2854 bytes JBriscola/all_versions/0.2/0.2.1/src/img/5-4.jpg | Bin 0 -> 3829 bytes JBriscola/all_versions/0.2/0.2.1/src/img/6-1.jpg | Bin 0 -> 3717 bytes JBriscola/all_versions/0.2/0.2.1/src/img/6-2.jpg | Bin 0 -> 3673 bytes JBriscola/all_versions/0.2/0.2.1/src/img/6-3.jpg | Bin 0 -> 3140 bytes JBriscola/all_versions/0.2/0.2.1/src/img/6-4.jpg | Bin 0 -> 3982 bytes JBriscola/all_versions/0.2/0.2.1/src/img/7-1.jpg | Bin 0 -> 3798 bytes JBriscola/all_versions/0.2/0.2.1/src/img/7-2.jpg | Bin 0 -> 3630 bytes JBriscola/all_versions/0.2/0.2.1/src/img/7-3.jpg | Bin 0 -> 3265 bytes JBriscola/all_versions/0.2/0.2.1/src/img/7-4.jpg | Bin 0 -> 3958 bytes JBriscola/all_versions/0.2/0.2.1/src/img/8-1.jpg | Bin 0 -> 3777 bytes JBriscola/all_versions/0.2/0.2.1/src/img/8-2.jpg | Bin 0 -> 3694 bytes JBriscola/all_versions/0.2/0.2.1/src/img/8-3.jpg | Bin 0 -> 3742 bytes JBriscola/all_versions/0.2/0.2.1/src/img/8-4.jpg | Bin 0 -> 3526 bytes JBriscola/all_versions/0.2/0.2.1/src/img/9-1.jpg | Bin 0 -> 3558 bytes JBriscola/all_versions/0.2/0.2.1/src/img/9-2.jpg | Bin 0 -> 3614 bytes JBriscola/all_versions/0.2/0.2.1/src/img/9-3.jpg | Bin 0 -> 3485 bytes JBriscola/all_versions/0.2/0.2.1/src/img/9-4.jpg | Bin 0 -> 3542 bytes JBriscola/all_versions/0.2/0.2.1/src/img/carte.jpg | Bin 0 -> 348200 bytes .../all_versions/0.2/0.2.1/src/img/retro1.jpg | Bin 0 -> 3850 bytes .../all_versions/0.2/0.2.1/src/img/retro2.jpg | Bin 0 -> 3848 bytes JBriscola/all_versions/0.2/0.2.1/src/sounds/0.wav | Bin 0 -> 18476 bytes JBriscola/all_versions/0.2/0.2.1/src/sounds/1.wav | Bin 0 -> 71468 bytes JBriscola/all_versions/0.2/0.2.1/src/sounds/2.wav | Bin 0 -> 94508 bytes JBriscola/all_versions/0.2/0.2.1/src/sounds/3.wav | Bin 0 -> 18476 bytes JBriscola/all_versions/0.2/0.2.1/src/sounds/4.wav | Bin 0 -> 21932 bytes JBriscola/all_versions/0.2/0.2.1/src/sounds/5.wav | Bin 0 -> 34604 bytes .../all_versions/0.2/0.2.1/src/sounds/pareggio.wav | Bin 0 -> 253484 bytes .../all_versions/0.2/0.2.1/src/sounds/perso.wav | Bin 0 -> 94508 bytes .../all_versions/0.2/0.2.1/src/sounds/vinto.wav | Bin 0 -> 152108 bytes JBriscola/all_versions/0.2/0.2.2/src/Frame.java | 432 ++++ JBriscola/all_versions/0.2/0.2.2/src/Main.java | 1317 ++++++++++++ .../all_versions/0.2/0.2.2/src/OptionFrame.java | 169 ++ JBriscola/all_versions/0.2/0.2.2/src/Pannello.java | 56 + JBriscola/all_versions/0.2/0.2.2/src/img/1-1.jpg | Bin 0 -> 3893 bytes JBriscola/all_versions/0.2/0.2.2/src/img/1-2.jpg | Bin 0 -> 3688 bytes JBriscola/all_versions/0.2/0.2.2/src/img/1-3.jpg | Bin 0 -> 3616 bytes JBriscola/all_versions/0.2/0.2.2/src/img/1-4.jpg | Bin 0 -> 3827 bytes JBriscola/all_versions/0.2/0.2.2/src/img/10-1.jpg | Bin 0 -> 3375 bytes JBriscola/all_versions/0.2/0.2.2/src/img/10-2.jpg | Bin 0 -> 3831 bytes JBriscola/all_versions/0.2/0.2.2/src/img/10-3.jpg | Bin 0 -> 3699 bytes JBriscola/all_versions/0.2/0.2.2/src/img/10-4.jpg | Bin 0 -> 3638 bytes JBriscola/all_versions/0.2/0.2.2/src/img/2-1.jpg | Bin 0 -> 3351 bytes JBriscola/all_versions/0.2/0.2.2/src/img/2-2.jpg | Bin 0 -> 3228 bytes JBriscola/all_versions/0.2/0.2.2/src/img/2-3.jpg | Bin 0 -> 3111 bytes JBriscola/all_versions/0.2/0.2.2/src/img/2-4.jpg | Bin 0 -> 3711 bytes JBriscola/all_versions/0.2/0.2.2/src/img/3-1.jpg | Bin 0 -> 3527 bytes JBriscola/all_versions/0.2/0.2.2/src/img/3-2.jpg | Bin 0 -> 3249 bytes JBriscola/all_versions/0.2/0.2.2/src/img/3-3.jpg | Bin 0 -> 3235 bytes JBriscola/all_versions/0.2/0.2.2/src/img/3-4.jpg | Bin 0 -> 3647 bytes JBriscola/all_versions/0.2/0.2.2/src/img/4-1.jpg | Bin 0 -> 3616 bytes JBriscola/all_versions/0.2/0.2.2/src/img/4-2.jpg | Bin 0 -> 3640 bytes JBriscola/all_versions/0.2/0.2.2/src/img/4-3.jpg | Bin 0 -> 3121 bytes JBriscola/all_versions/0.2/0.2.2/src/img/4-4.jpg | Bin 0 -> 3867 bytes JBriscola/all_versions/0.2/0.2.2/src/img/5-1.jpg | Bin 0 -> 3703 bytes JBriscola/all_versions/0.2/0.2.2/src/img/5-2.jpg | Bin 0 -> 3535 bytes JBriscola/all_versions/0.2/0.2.2/src/img/5-3.jpg | Bin 0 -> 2854 bytes JBriscola/all_versions/0.2/0.2.2/src/img/5-4.jpg | Bin 0 -> 3829 bytes JBriscola/all_versions/0.2/0.2.2/src/img/6-1.jpg | Bin 0 -> 3717 bytes JBriscola/all_versions/0.2/0.2.2/src/img/6-2.jpg | Bin 0 -> 3673 bytes JBriscola/all_versions/0.2/0.2.2/src/img/6-3.jpg | Bin 0 -> 3140 bytes JBriscola/all_versions/0.2/0.2.2/src/img/6-4.jpg | Bin 0 -> 3982 bytes JBriscola/all_versions/0.2/0.2.2/src/img/7-1.jpg | Bin 0 -> 3798 bytes JBriscola/all_versions/0.2/0.2.2/src/img/7-2.jpg | Bin 0 -> 3630 bytes JBriscola/all_versions/0.2/0.2.2/src/img/7-3.jpg | Bin 0 -> 3265 bytes JBriscola/all_versions/0.2/0.2.2/src/img/7-4.jpg | Bin 0 -> 3958 bytes JBriscola/all_versions/0.2/0.2.2/src/img/8-1.jpg | Bin 0 -> 3777 bytes JBriscola/all_versions/0.2/0.2.2/src/img/8-2.jpg | Bin 0 -> 3694 bytes JBriscola/all_versions/0.2/0.2.2/src/img/8-3.jpg | Bin 0 -> 3742 bytes JBriscola/all_versions/0.2/0.2.2/src/img/8-4.jpg | Bin 0 -> 3526 bytes JBriscola/all_versions/0.2/0.2.2/src/img/9-1.jpg | Bin 0 -> 3558 bytes JBriscola/all_versions/0.2/0.2.2/src/img/9-2.jpg | Bin 0 -> 3614 bytes JBriscola/all_versions/0.2/0.2.2/src/img/9-3.jpg | Bin 0 -> 3485 bytes JBriscola/all_versions/0.2/0.2.2/src/img/9-4.jpg | Bin 0 -> 3542 bytes JBriscola/all_versions/0.2/0.2.2/src/img/carte.jpg | Bin 0 -> 348200 bytes .../all_versions/0.2/0.2.2/src/img/retro1.jpg | Bin 0 -> 3850 bytes .../all_versions/0.2/0.2.2/src/img/retro2.jpg | Bin 0 -> 3848 bytes JBriscola/all_versions/0.2/0.2.2/src/sounds/0.wav | Bin 0 -> 18476 bytes JBriscola/all_versions/0.2/0.2.2/src/sounds/1.wav | Bin 0 -> 71468 bytes JBriscola/all_versions/0.2/0.2.2/src/sounds/2.wav | Bin 0 -> 94508 bytes JBriscola/all_versions/0.2/0.2.2/src/sounds/3.wav | Bin 0 -> 18476 bytes JBriscola/all_versions/0.2/0.2.2/src/sounds/4.wav | Bin 0 -> 21932 bytes JBriscola/all_versions/0.2/0.2.2/src/sounds/5.wav | Bin 0 -> 34604 bytes .../all_versions/0.2/0.2.2/src/sounds/pareggio.wav | Bin 0 -> 253484 bytes .../all_versions/0.2/0.2.2/src/sounds/perso.wav | Bin 0 -> 94508 bytes .../all_versions/0.2/0.2.2/src/sounds/vinto.wav | Bin 0 -> 152108 bytes JBriscola/all_versions/0.2/0.2/src/Frame.java | 308 +++ JBriscola/all_versions/0.2/0.2/src/Main.java | 1077 ++++++++++ .../all_versions/0.2/0.2/src/OptionFrame.java | 140 ++ JBriscola/all_versions/0.2/0.2/src/Pannello.java | 54 + JBriscola/all_versions/0.2/0.2/src/img/1-1.jpg | Bin 0 -> 3893 bytes JBriscola/all_versions/0.2/0.2/src/img/1-2.jpg | Bin 0 -> 3688 bytes JBriscola/all_versions/0.2/0.2/src/img/1-3.jpg | Bin 0 -> 3616 bytes JBriscola/all_versions/0.2/0.2/src/img/1-4.jpg | Bin 0 -> 3827 bytes JBriscola/all_versions/0.2/0.2/src/img/10-1.jpg | Bin 0 -> 3375 bytes JBriscola/all_versions/0.2/0.2/src/img/10-2.jpg | Bin 0 -> 3831 bytes JBriscola/all_versions/0.2/0.2/src/img/10-3.jpg | Bin 0 -> 3699 bytes JBriscola/all_versions/0.2/0.2/src/img/10-4.jpg | Bin 0 -> 3638 bytes JBriscola/all_versions/0.2/0.2/src/img/2-1.jpg | Bin 0 -> 3351 bytes JBriscola/all_versions/0.2/0.2/src/img/2-2.jpg | Bin 0 -> 3228 bytes JBriscola/all_versions/0.2/0.2/src/img/2-3.jpg | Bin 0 -> 3111 bytes JBriscola/all_versions/0.2/0.2/src/img/2-4.jpg | Bin 0 -> 3711 bytes JBriscola/all_versions/0.2/0.2/src/img/3-1.jpg | Bin 0 -> 3527 bytes JBriscola/all_versions/0.2/0.2/src/img/3-2.jpg | Bin 0 -> 3249 bytes JBriscola/all_versions/0.2/0.2/src/img/3-3.jpg | Bin 0 -> 3235 bytes JBriscola/all_versions/0.2/0.2/src/img/3-4.jpg | Bin 0 -> 3647 bytes JBriscola/all_versions/0.2/0.2/src/img/4-1.jpg | Bin 0 -> 3616 bytes JBriscola/all_versions/0.2/0.2/src/img/4-2.jpg | Bin 0 -> 3640 bytes JBriscola/all_versions/0.2/0.2/src/img/4-3.jpg | Bin 0 -> 3121 bytes JBriscola/all_versions/0.2/0.2/src/img/4-4.jpg | Bin 0 -> 3867 bytes JBriscola/all_versions/0.2/0.2/src/img/5-1.jpg | Bin 0 -> 3703 bytes JBriscola/all_versions/0.2/0.2/src/img/5-2.jpg | Bin 0 -> 3535 bytes JBriscola/all_versions/0.2/0.2/src/img/5-3.jpg | Bin 0 -> 2854 bytes JBriscola/all_versions/0.2/0.2/src/img/5-4.jpg | Bin 0 -> 3829 bytes JBriscola/all_versions/0.2/0.2/src/img/6-1.jpg | Bin 0 -> 3717 bytes JBriscola/all_versions/0.2/0.2/src/img/6-2.jpg | Bin 0 -> 3673 bytes JBriscola/all_versions/0.2/0.2/src/img/6-3.jpg | Bin 0 -> 3140 bytes JBriscola/all_versions/0.2/0.2/src/img/6-4.jpg | Bin 0 -> 3982 bytes JBriscola/all_versions/0.2/0.2/src/img/7-1.jpg | Bin 0 -> 3798 bytes JBriscola/all_versions/0.2/0.2/src/img/7-2.jpg | Bin 0 -> 3630 bytes JBriscola/all_versions/0.2/0.2/src/img/7-3.jpg | Bin 0 -> 3265 bytes JBriscola/all_versions/0.2/0.2/src/img/7-4.jpg | Bin 0 -> 3958 bytes JBriscola/all_versions/0.2/0.2/src/img/8-1.jpg | Bin 0 -> 3777 bytes JBriscola/all_versions/0.2/0.2/src/img/8-2.jpg | Bin 0 -> 3694 bytes JBriscola/all_versions/0.2/0.2/src/img/8-3.jpg | Bin 0 -> 3742 bytes JBriscola/all_versions/0.2/0.2/src/img/8-4.jpg | Bin 0 -> 3526 bytes JBriscola/all_versions/0.2/0.2/src/img/9-1.jpg | Bin 0 -> 3558 bytes JBriscola/all_versions/0.2/0.2/src/img/9-2.jpg | Bin 0 -> 3614 bytes JBriscola/all_versions/0.2/0.2/src/img/9-3.jpg | Bin 0 -> 3485 bytes JBriscola/all_versions/0.2/0.2/src/img/9-4.jpg | Bin 0 -> 3542 bytes JBriscola/all_versions/0.2/0.2/src/img/carte.jpg | Bin 0 -> 348200 bytes JBriscola/all_versions/0.2/0.2/src/img/retro1.jpg | Bin 0 -> 3850 bytes JBriscola/all_versions/0.2/0.2/src/img/retro2.jpg | Bin 0 -> 3848 bytes JBriscola/all_versions/0.2/0.2/src/sounds/0.wav | Bin 0 -> 18476 bytes JBriscola/all_versions/0.2/0.2/src/sounds/1.wav | Bin 0 -> 71468 bytes JBriscola/all_versions/0.2/0.2/src/sounds/2.wav | Bin 0 -> 94508 bytes JBriscola/all_versions/0.2/0.2/src/sounds/3.wav | Bin 0 -> 18476 bytes JBriscola/all_versions/0.2/0.2/src/sounds/4.wav | Bin 0 -> 21932 bytes JBriscola/all_versions/0.2/0.2/src/sounds/5.wav | Bin 0 -> 34604 bytes .../all_versions/0.2/0.2/src/sounds/pareggio.wav | Bin 0 -> 253484 bytes .../all_versions/0.2/0.2/src/sounds/perso.wav | Bin 0 -> 94508 bytes .../all_versions/0.2/0.2/src/sounds/vinto.wav | Bin 0 -> 152108 bytes JBriscola/all_versions/0.3/0.3.1/src/Frame.java | 523 +++++ JBriscola/all_versions/0.3/0.3.1/src/Main.java | 1637 +++++++++++++++ .../all_versions/0.3/0.3.1/src/OptionFrame.java | 169 ++ JBriscola/all_versions/0.3/0.3.1/src/Pannello.java | 88 + JBriscola/all_versions/0.3/0.3.1/src/img/1-1.jpg | Bin 0 -> 3893 bytes JBriscola/all_versions/0.3/0.3.1/src/img/1-2.jpg | Bin 0 -> 3688 bytes JBriscola/all_versions/0.3/0.3.1/src/img/1-3.jpg | Bin 0 -> 3616 bytes JBriscola/all_versions/0.3/0.3.1/src/img/1-4.jpg | Bin 0 -> 3827 bytes JBriscola/all_versions/0.3/0.3.1/src/img/10-1.jpg | Bin 0 -> 3375 bytes JBriscola/all_versions/0.3/0.3.1/src/img/10-2.jpg | Bin 0 -> 3831 bytes JBriscola/all_versions/0.3/0.3.1/src/img/10-3.jpg | Bin 0 -> 3699 bytes JBriscola/all_versions/0.3/0.3.1/src/img/10-4.jpg | Bin 0 -> 3638 bytes JBriscola/all_versions/0.3/0.3.1/src/img/2-1.jpg | Bin 0 -> 3351 bytes JBriscola/all_versions/0.3/0.3.1/src/img/2-2.jpg | Bin 0 -> 3228 bytes JBriscola/all_versions/0.3/0.3.1/src/img/2-3.jpg | Bin 0 -> 3111 bytes JBriscola/all_versions/0.3/0.3.1/src/img/2-4.jpg | Bin 0 -> 3711 bytes JBriscola/all_versions/0.3/0.3.1/src/img/3-1.jpg | Bin 0 -> 3527 bytes JBriscola/all_versions/0.3/0.3.1/src/img/3-2.jpg | Bin 0 -> 3249 bytes JBriscola/all_versions/0.3/0.3.1/src/img/3-3.jpg | Bin 0 -> 3235 bytes JBriscola/all_versions/0.3/0.3.1/src/img/3-4.jpg | Bin 0 -> 3647 bytes JBriscola/all_versions/0.3/0.3.1/src/img/4-1.jpg | Bin 0 -> 3616 bytes JBriscola/all_versions/0.3/0.3.1/src/img/4-2.jpg | Bin 0 -> 3640 bytes JBriscola/all_versions/0.3/0.3.1/src/img/4-3.jpg | Bin 0 -> 3121 bytes JBriscola/all_versions/0.3/0.3.1/src/img/4-4.jpg | Bin 0 -> 3867 bytes JBriscola/all_versions/0.3/0.3.1/src/img/5-1.jpg | Bin 0 -> 3703 bytes JBriscola/all_versions/0.3/0.3.1/src/img/5-2.jpg | Bin 0 -> 3535 bytes JBriscola/all_versions/0.3/0.3.1/src/img/5-3.jpg | Bin 0 -> 2854 bytes JBriscola/all_versions/0.3/0.3.1/src/img/5-4.jpg | Bin 0 -> 3829 bytes JBriscola/all_versions/0.3/0.3.1/src/img/6-1.jpg | Bin 0 -> 3717 bytes JBriscola/all_versions/0.3/0.3.1/src/img/6-2.jpg | Bin 0 -> 3673 bytes JBriscola/all_versions/0.3/0.3.1/src/img/6-3.jpg | Bin 0 -> 3140 bytes JBriscola/all_versions/0.3/0.3.1/src/img/6-4.jpg | Bin 0 -> 3982 bytes JBriscola/all_versions/0.3/0.3.1/src/img/7-1.jpg | Bin 0 -> 3798 bytes JBriscola/all_versions/0.3/0.3.1/src/img/7-2.jpg | Bin 0 -> 3630 bytes JBriscola/all_versions/0.3/0.3.1/src/img/7-3.jpg | Bin 0 -> 3265 bytes JBriscola/all_versions/0.3/0.3.1/src/img/7-4.jpg | Bin 0 -> 3958 bytes JBriscola/all_versions/0.3/0.3.1/src/img/8-1.jpg | Bin 0 -> 3777 bytes JBriscola/all_versions/0.3/0.3.1/src/img/8-2.jpg | Bin 0 -> 3694 bytes JBriscola/all_versions/0.3/0.3.1/src/img/8-3.jpg | Bin 0 -> 3742 bytes JBriscola/all_versions/0.3/0.3.1/src/img/8-4.jpg | Bin 0 -> 3526 bytes JBriscola/all_versions/0.3/0.3.1/src/img/9-1.jpg | Bin 0 -> 3558 bytes JBriscola/all_versions/0.3/0.3.1/src/img/9-2.jpg | Bin 0 -> 3614 bytes JBriscola/all_versions/0.3/0.3.1/src/img/9-3.jpg | Bin 0 -> 3485 bytes JBriscola/all_versions/0.3/0.3.1/src/img/9-4.jpg | Bin 0 -> 3542 bytes JBriscola/all_versions/0.3/0.3.1/src/img/Thumbs.db | Bin 0 -> 155648 bytes JBriscola/all_versions/0.3/0.3.1/src/img/carte.jpg | Bin 0 -> 348200 bytes .../all_versions/0.3/0.3.1/src/img/retro1.jpg | Bin 0 -> 3850 bytes .../all_versions/0.3/0.3.1/src/img/retro2.jpg | Bin 0 -> 3848 bytes JBriscola/all_versions/0.3/0.3.1/src/sounds/0.wav | Bin 0 -> 18476 bytes JBriscola/all_versions/0.3/0.3.1/src/sounds/1.wav | Bin 0 -> 71468 bytes JBriscola/all_versions/0.3/0.3.1/src/sounds/2.wav | Bin 0 -> 94508 bytes JBriscola/all_versions/0.3/0.3.1/src/sounds/3.wav | Bin 0 -> 18476 bytes JBriscola/all_versions/0.3/0.3.1/src/sounds/4.wav | Bin 0 -> 21932 bytes JBriscola/all_versions/0.3/0.3.1/src/sounds/5.wav | Bin 0 -> 34604 bytes .../all_versions/0.3/0.3.1/src/sounds/pareggio.wav | Bin 0 -> 253484 bytes .../all_versions/0.3/0.3.1/src/sounds/perso.wav | Bin 0 -> 94508 bytes .../all_versions/0.3/0.3.1/src/sounds/vinto.wav | Bin 0 -> 152108 bytes .../0.3/0.3.2/src/CartePassateFrame.java | 39 + JBriscola/all_versions/0.3/0.3.2/src/Frame.java | 552 ++++++ JBriscola/all_versions/0.3/0.3.2/src/Main.java | 2086 ++++++++++++++++++++ .../all_versions/0.3/0.3.2/src/OptionFrame.java | 169 ++ JBriscola/all_versions/0.3/0.3.2/src/Pannello.java | 88 + .../0.3/0.3.2/src/PannelloCartePassate.java | 49 + JBriscola/all_versions/0.3/0.3.2/src/img/1-1.jpg | Bin 0 -> 3893 bytes JBriscola/all_versions/0.3/0.3.2/src/img/1-2.jpg | Bin 0 -> 3688 bytes JBriscola/all_versions/0.3/0.3.2/src/img/1-3.jpg | Bin 0 -> 3616 bytes JBriscola/all_versions/0.3/0.3.2/src/img/1-4.jpg | Bin 0 -> 3827 bytes JBriscola/all_versions/0.3/0.3.2/src/img/10-1.jpg | Bin 0 -> 3375 bytes JBriscola/all_versions/0.3/0.3.2/src/img/10-2.jpg | Bin 0 -> 3831 bytes JBriscola/all_versions/0.3/0.3.2/src/img/10-3.jpg | Bin 0 -> 3699 bytes JBriscola/all_versions/0.3/0.3.2/src/img/10-4.jpg | Bin 0 -> 3638 bytes JBriscola/all_versions/0.3/0.3.2/src/img/2-1.jpg | Bin 0 -> 3351 bytes JBriscola/all_versions/0.3/0.3.2/src/img/2-2.jpg | Bin 0 -> 3228 bytes JBriscola/all_versions/0.3/0.3.2/src/img/2-3.jpg | Bin 0 -> 3111 bytes JBriscola/all_versions/0.3/0.3.2/src/img/2-4.jpg | Bin 0 -> 3711 bytes JBriscola/all_versions/0.3/0.3.2/src/img/3-1.jpg | Bin 0 -> 3527 bytes JBriscola/all_versions/0.3/0.3.2/src/img/3-2.jpg | Bin 0 -> 3249 bytes JBriscola/all_versions/0.3/0.3.2/src/img/3-3.jpg | Bin 0 -> 3235 bytes JBriscola/all_versions/0.3/0.3.2/src/img/3-4.jpg | Bin 0 -> 3647 bytes JBriscola/all_versions/0.3/0.3.2/src/img/4-1.jpg | Bin 0 -> 3616 bytes JBriscola/all_versions/0.3/0.3.2/src/img/4-2.jpg | Bin 0 -> 3640 bytes JBriscola/all_versions/0.3/0.3.2/src/img/4-3.jpg | Bin 0 -> 3121 bytes JBriscola/all_versions/0.3/0.3.2/src/img/4-4.jpg | Bin 0 -> 3867 bytes JBriscola/all_versions/0.3/0.3.2/src/img/5-1.jpg | Bin 0 -> 3703 bytes JBriscola/all_versions/0.3/0.3.2/src/img/5-2.jpg | Bin 0 -> 3535 bytes JBriscola/all_versions/0.3/0.3.2/src/img/5-3.jpg | Bin 0 -> 2854 bytes JBriscola/all_versions/0.3/0.3.2/src/img/5-4.jpg | Bin 0 -> 3829 bytes JBriscola/all_versions/0.3/0.3.2/src/img/6-1.jpg | Bin 0 -> 3717 bytes JBriscola/all_versions/0.3/0.3.2/src/img/6-2.jpg | Bin 0 -> 3673 bytes JBriscola/all_versions/0.3/0.3.2/src/img/6-3.jpg | Bin 0 -> 3140 bytes JBriscola/all_versions/0.3/0.3.2/src/img/6-4.jpg | Bin 0 -> 3982 bytes JBriscola/all_versions/0.3/0.3.2/src/img/7-1.jpg | Bin 0 -> 3798 bytes JBriscola/all_versions/0.3/0.3.2/src/img/7-2.jpg | Bin 0 -> 3630 bytes JBriscola/all_versions/0.3/0.3.2/src/img/7-3.jpg | Bin 0 -> 3265 bytes JBriscola/all_versions/0.3/0.3.2/src/img/7-4.jpg | Bin 0 -> 3958 bytes JBriscola/all_versions/0.3/0.3.2/src/img/8-1.jpg | Bin 0 -> 3777 bytes JBriscola/all_versions/0.3/0.3.2/src/img/8-2.jpg | Bin 0 -> 3694 bytes JBriscola/all_versions/0.3/0.3.2/src/img/8-3.jpg | Bin 0 -> 3742 bytes JBriscola/all_versions/0.3/0.3.2/src/img/8-4.jpg | Bin 0 -> 3526 bytes JBriscola/all_versions/0.3/0.3.2/src/img/9-1.jpg | Bin 0 -> 3558 bytes JBriscola/all_versions/0.3/0.3.2/src/img/9-2.jpg | Bin 0 -> 3614 bytes JBriscola/all_versions/0.3/0.3.2/src/img/9-3.jpg | Bin 0 -> 3485 bytes JBriscola/all_versions/0.3/0.3.2/src/img/9-4.jpg | Bin 0 -> 3542 bytes JBriscola/all_versions/0.3/0.3.2/src/img/Thumbs.db | Bin 0 -> 155648 bytes JBriscola/all_versions/0.3/0.3.2/src/img/carte.jpg | Bin 0 -> 348200 bytes .../all_versions/0.3/0.3.2/src/img/retro1.jpg | Bin 0 -> 3850 bytes .../all_versions/0.3/0.3.2/src/img/retro2.jpg | Bin 0 -> 3848 bytes JBriscola/all_versions/0.3/0.3/src/Frame.java | 523 +++++ JBriscola/all_versions/0.3/0.3/src/Main.java | 1702 ++++++++++++++++ .../all_versions/0.3/0.3/src/OptionFrame.java | 169 ++ JBriscola/all_versions/0.3/0.3/src/Pannello.java | 88 + JBriscola/all_versions/0.3/0.3/src/img/1-1.jpg | Bin 0 -> 3893 bytes JBriscola/all_versions/0.3/0.3/src/img/1-2.jpg | Bin 0 -> 3688 bytes JBriscola/all_versions/0.3/0.3/src/img/1-3.jpg | Bin 0 -> 3616 bytes JBriscola/all_versions/0.3/0.3/src/img/1-4.jpg | Bin 0 -> 3827 bytes JBriscola/all_versions/0.3/0.3/src/img/10-1.jpg | Bin 0 -> 3375 bytes JBriscola/all_versions/0.3/0.3/src/img/10-2.jpg | Bin 0 -> 3831 bytes JBriscola/all_versions/0.3/0.3/src/img/10-3.jpg | Bin 0 -> 3699 bytes JBriscola/all_versions/0.3/0.3/src/img/10-4.jpg | Bin 0 -> 3638 bytes JBriscola/all_versions/0.3/0.3/src/img/2-1.jpg | Bin 0 -> 3351 bytes JBriscola/all_versions/0.3/0.3/src/img/2-2.jpg | Bin 0 -> 3228 bytes JBriscola/all_versions/0.3/0.3/src/img/2-3.jpg | Bin 0 -> 3111 bytes JBriscola/all_versions/0.3/0.3/src/img/2-4.jpg | Bin 0 -> 3711 bytes JBriscola/all_versions/0.3/0.3/src/img/3-1.jpg | Bin 0 -> 3527 bytes JBriscola/all_versions/0.3/0.3/src/img/3-2.jpg | Bin 0 -> 3249 bytes JBriscola/all_versions/0.3/0.3/src/img/3-3.jpg | Bin 0 -> 3235 bytes JBriscola/all_versions/0.3/0.3/src/img/3-4.jpg | Bin 0 -> 3647 bytes JBriscola/all_versions/0.3/0.3/src/img/4-1.jpg | Bin 0 -> 3616 bytes JBriscola/all_versions/0.3/0.3/src/img/4-2.jpg | Bin 0 -> 3640 bytes JBriscola/all_versions/0.3/0.3/src/img/4-3.jpg | Bin 0 -> 3121 bytes JBriscola/all_versions/0.3/0.3/src/img/4-4.jpg | Bin 0 -> 3867 bytes JBriscola/all_versions/0.3/0.3/src/img/5-1.jpg | Bin 0 -> 3703 bytes JBriscola/all_versions/0.3/0.3/src/img/5-2.jpg | Bin 0 -> 3535 bytes JBriscola/all_versions/0.3/0.3/src/img/5-3.jpg | Bin 0 -> 2854 bytes JBriscola/all_versions/0.3/0.3/src/img/5-4.jpg | Bin 0 -> 3829 bytes JBriscola/all_versions/0.3/0.3/src/img/6-1.jpg | Bin 0 -> 3717 bytes JBriscola/all_versions/0.3/0.3/src/img/6-2.jpg | Bin 0 -> 3673 bytes JBriscola/all_versions/0.3/0.3/src/img/6-3.jpg | Bin 0 -> 3140 bytes JBriscola/all_versions/0.3/0.3/src/img/6-4.jpg | Bin 0 -> 3982 bytes JBriscola/all_versions/0.3/0.3/src/img/7-1.jpg | Bin 0 -> 3798 bytes JBriscola/all_versions/0.3/0.3/src/img/7-2.jpg | Bin 0 -> 3630 bytes JBriscola/all_versions/0.3/0.3/src/img/7-3.jpg | Bin 0 -> 3265 bytes JBriscola/all_versions/0.3/0.3/src/img/7-4.jpg | Bin 0 -> 3958 bytes JBriscola/all_versions/0.3/0.3/src/img/8-1.jpg | Bin 0 -> 3777 bytes JBriscola/all_versions/0.3/0.3/src/img/8-2.jpg | Bin 0 -> 3694 bytes JBriscola/all_versions/0.3/0.3/src/img/8-3.jpg | Bin 0 -> 3742 bytes JBriscola/all_versions/0.3/0.3/src/img/8-4.jpg | Bin 0 -> 3526 bytes JBriscola/all_versions/0.3/0.3/src/img/9-1.jpg | Bin 0 -> 3558 bytes JBriscola/all_versions/0.3/0.3/src/img/9-2.jpg | Bin 0 -> 3614 bytes JBriscola/all_versions/0.3/0.3/src/img/9-3.jpg | Bin 0 -> 3485 bytes JBriscola/all_versions/0.3/0.3/src/img/9-4.jpg | Bin 0 -> 3542 bytes JBriscola/all_versions/0.3/0.3/src/img/Thumbs.db | Bin 0 -> 155648 bytes JBriscola/all_versions/0.3/0.3/src/img/carte.jpg | Bin 0 -> 348200 bytes JBriscola/all_versions/0.3/0.3/src/img/retro1.jpg | Bin 0 -> 3850 bytes JBriscola/all_versions/0.3/0.3/src/img/retro2.jpg | Bin 0 -> 3848 bytes JBriscola/all_versions/0.3/0.3/src/sounds/0.wav | Bin 0 -> 18476 bytes JBriscola/all_versions/0.3/0.3/src/sounds/1.wav | Bin 0 -> 71468 bytes JBriscola/all_versions/0.3/0.3/src/sounds/2.wav | Bin 0 -> 94508 bytes JBriscola/all_versions/0.3/0.3/src/sounds/3.wav | Bin 0 -> 18476 bytes JBriscola/all_versions/0.3/0.3/src/sounds/4.wav | Bin 0 -> 21932 bytes JBriscola/all_versions/0.3/0.3/src/sounds/5.wav | Bin 0 -> 34604 bytes .../all_versions/0.3/0.3/src/sounds/pareggio.wav | Bin 0 -> 253484 bytes .../all_versions/0.3/0.3/src/sounds/perso.wav | Bin 0 -> 94508 bytes .../all_versions/0.3/0.3/src/sounds/vinto.wav | Bin 0 -> 152108 bytes JBriscola/trucchi.txt | 18 + 559 files changed, 20482 insertions(+) create mode 100755 JBriscola/JBriscola.jar create mode 100755 JBriscola/all_versions/0.1/0.1 Alpha 1/src/Frame.java create mode 100755 JBriscola/all_versions/0.1/0.1 Alpha 1/src/Main.java create mode 100755 JBriscola/all_versions/0.1/0.1 Alpha 1/src/Pannello.java create mode 100755 JBriscola/all_versions/0.1/0.1 Beta 1/src/Frame.java create mode 100755 JBriscola/all_versions/0.1/0.1 Beta 1/src/Main.java create mode 100755 JBriscola/all_versions/0.1/0.1 Beta 1/src/Pannello.java create mode 100755 JBriscola/all_versions/0.1/0.1 Beta 2/src/Frame.java create mode 100755 JBriscola/all_versions/0.1/0.1 Beta 2/src/Main.java create mode 100755 JBriscola/all_versions/0.1/0.1 Beta 2/src/OptionFrame.java create mode 100755 JBriscola/all_versions/0.1/0.1 Beta 2/src/Pannello.java create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/Frame.java create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/Main.java create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/OptionFrame.java create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/Pannello.java create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/1-1.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/1-2.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/1-3.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/1-4.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/10-1.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/10-2.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/10-3.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/10-4.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/2-1.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/2-2.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/2-3.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/2-4.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/3-1.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/3-2.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/3-3.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/3-4.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/4-1.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/4-2.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/4-3.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/4-4.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/5-1.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/5-2.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/5-3.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/5-4.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/6-1.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/6-2.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/6-3.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/6-4.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/7-1.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/7-2.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/7-3.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/7-4.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/8-1.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/8-2.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/8-3.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/8-4.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/9-1.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/9-2.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/9-3.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/9-4.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/carte.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/retro1.jpg create mode 100755 JBriscola/all_versions/0.1/0.1.1/src/img/retro2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/Frame.java create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/Main.java create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/OptionFrame.java create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/Pannello.java create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/carte.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/retro1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/img/retro2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/0.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/1.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/2.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/3.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/4.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/5.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/pareggio.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/perso.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/vinto.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/Frame.java create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/Main.java create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/OptionFrame.java create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/Pannello.java create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/carte.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/retro1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/img/retro2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/0.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/1.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/2.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/3.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/4.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/5.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/pareggio.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/perso.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/vinto.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/Frame.java create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/Main.java create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/OptionFrame.java create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/Pannello.java create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/carte.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/retro1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/img/retro2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/0.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/1.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/2.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/3.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/4.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/5.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/pareggio.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/perso.wav create mode 100755 JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/vinto.wav create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/Frame.java create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/Main.java create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/OptionFrame.java create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/Pannello.java create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/1-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/1-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/1-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/1-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/10-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/10-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/10-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/10-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/2-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/2-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/2-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/2-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/3-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/3-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/3-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/3-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/4-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/4-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/4-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/4-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/5-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/5-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/5-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/5-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/6-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/6-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/6-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/6-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/7-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/7-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/7-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/7-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/8-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/8-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/8-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/8-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/9-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/9-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/9-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/9-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/carte.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/retro1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/img/retro2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/sounds/0.wav create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/sounds/1.wav create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/sounds/2.wav create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/sounds/3.wav create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/sounds/4.wav create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/sounds/5.wav create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/sounds/pareggio.wav create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/sounds/perso.wav create mode 100755 JBriscola/all_versions/0.2/0.2.1/src/sounds/vinto.wav create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/Frame.java create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/Main.java create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/OptionFrame.java create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/Pannello.java create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/1-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/1-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/1-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/1-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/10-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/10-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/10-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/10-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/2-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/2-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/2-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/2-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/3-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/3-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/3-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/3-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/4-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/4-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/4-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/4-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/5-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/5-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/5-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/5-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/6-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/6-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/6-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/6-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/7-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/7-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/7-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/7-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/8-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/8-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/8-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/8-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/9-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/9-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/9-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/9-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/carte.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/retro1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/img/retro2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/sounds/0.wav create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/sounds/1.wav create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/sounds/2.wav create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/sounds/3.wav create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/sounds/4.wav create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/sounds/5.wav create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/sounds/pareggio.wav create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/sounds/perso.wav create mode 100755 JBriscola/all_versions/0.2/0.2.2/src/sounds/vinto.wav create mode 100755 JBriscola/all_versions/0.2/0.2/src/Frame.java create mode 100755 JBriscola/all_versions/0.2/0.2/src/Main.java create mode 100755 JBriscola/all_versions/0.2/0.2/src/OptionFrame.java create mode 100755 JBriscola/all_versions/0.2/0.2/src/Pannello.java create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/1-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/1-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/1-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/1-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/10-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/10-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/10-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/10-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/2-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/2-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/2-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/2-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/3-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/3-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/3-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/3-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/4-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/4-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/4-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/4-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/5-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/5-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/5-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/5-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/6-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/6-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/6-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/6-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/7-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/7-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/7-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/7-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/8-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/8-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/8-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/8-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/9-1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/9-2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/9-3.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/9-4.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/carte.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/retro1.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/img/retro2.jpg create mode 100755 JBriscola/all_versions/0.2/0.2/src/sounds/0.wav create mode 100755 JBriscola/all_versions/0.2/0.2/src/sounds/1.wav create mode 100755 JBriscola/all_versions/0.2/0.2/src/sounds/2.wav create mode 100755 JBriscola/all_versions/0.2/0.2/src/sounds/3.wav create mode 100755 JBriscola/all_versions/0.2/0.2/src/sounds/4.wav create mode 100755 JBriscola/all_versions/0.2/0.2/src/sounds/5.wav create mode 100755 JBriscola/all_versions/0.2/0.2/src/sounds/pareggio.wav create mode 100755 JBriscola/all_versions/0.2/0.2/src/sounds/perso.wav create mode 100755 JBriscola/all_versions/0.2/0.2/src/sounds/vinto.wav create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/Frame.java create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/Main.java create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/OptionFrame.java create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/Pannello.java create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/1-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/1-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/1-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/1-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/10-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/10-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/10-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/10-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/2-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/2-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/2-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/2-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/3-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/3-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/3-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/3-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/4-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/4-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/4-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/4-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/5-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/5-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/5-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/5-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/6-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/6-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/6-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/6-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/7-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/7-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/7-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/7-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/8-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/8-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/8-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/8-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/9-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/9-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/9-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/9-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/Thumbs.db create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/carte.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/retro1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/img/retro2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/sounds/0.wav create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/sounds/1.wav create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/sounds/2.wav create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/sounds/3.wav create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/sounds/4.wav create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/sounds/5.wav create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/sounds/pareggio.wav create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/sounds/perso.wav create mode 100755 JBriscola/all_versions/0.3/0.3.1/src/sounds/vinto.wav create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/CartePassateFrame.java create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/Frame.java create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/Main.java create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/OptionFrame.java create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/Pannello.java create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/PannelloCartePassate.java create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/1-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/1-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/1-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/1-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/10-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/10-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/10-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/10-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/2-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/2-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/2-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/2-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/3-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/3-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/3-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/3-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/4-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/4-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/4-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/4-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/5-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/5-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/5-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/5-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/6-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/6-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/6-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/6-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/7-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/7-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/7-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/7-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/8-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/8-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/8-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/8-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/9-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/9-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/9-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/9-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/Thumbs.db create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/carte.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/retro1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3.2/src/img/retro2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/Frame.java create mode 100755 JBriscola/all_versions/0.3/0.3/src/Main.java create mode 100755 JBriscola/all_versions/0.3/0.3/src/OptionFrame.java create mode 100755 JBriscola/all_versions/0.3/0.3/src/Pannello.java create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/1-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/1-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/1-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/1-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/10-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/10-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/10-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/10-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/2-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/2-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/2-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/2-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/3-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/3-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/3-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/3-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/4-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/4-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/4-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/4-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/5-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/5-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/5-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/5-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/6-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/6-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/6-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/6-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/7-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/7-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/7-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/7-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/8-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/8-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/8-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/8-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/9-1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/9-2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/9-3.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/9-4.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/Thumbs.db create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/carte.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/retro1.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/img/retro2.jpg create mode 100755 JBriscola/all_versions/0.3/0.3/src/sounds/0.wav create mode 100755 JBriscola/all_versions/0.3/0.3/src/sounds/1.wav create mode 100755 JBriscola/all_versions/0.3/0.3/src/sounds/2.wav create mode 100755 JBriscola/all_versions/0.3/0.3/src/sounds/3.wav create mode 100755 JBriscola/all_versions/0.3/0.3/src/sounds/4.wav create mode 100755 JBriscola/all_versions/0.3/0.3/src/sounds/5.wav create mode 100755 JBriscola/all_versions/0.3/0.3/src/sounds/pareggio.wav create mode 100755 JBriscola/all_versions/0.3/0.3/src/sounds/perso.wav create mode 100755 JBriscola/all_versions/0.3/0.3/src/sounds/vinto.wav create mode 100644 JBriscola/trucchi.txt (limited to 'JBriscola') diff --git a/JBriscola/JBriscola.jar b/JBriscola/JBriscola.jar new file mode 100755 index 0000000..9306db5 Binary files /dev/null and b/JBriscola/JBriscola.jar differ diff --git a/JBriscola/all_versions/0.1/0.1 Alpha 1/src/Frame.java b/JBriscola/all_versions/0.1/0.1 Alpha 1/src/Frame.java new file mode 100755 index 0000000..a372588 --- /dev/null +++ b/JBriscola/all_versions/0.1/0.1 Alpha 1/src/Frame.java @@ -0,0 +1,118 @@ +/* +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 javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class Frame extends JFrame { + public static boolean mazzo; + public static Main main; + public static Pannello pannello; + public static JButton button; + public static ImageIcon retro1, retro2, ultimaCarta; + public static ImageIcon[] giocata = new ImageIcon[2]; + public static ImageIcon[] carteInMano = new ImageIcon[3]; + public static ImageIcon[] carteCPU = new ImageIcon[3]; + public static ImageIcon[] arrayCarteMescolate = new ImageIcon[40]; + public static ImageIcon[][] arrayCarte = new ImageIcon[10][4]; + public Frame() { + super( "Tronto's JBriscola 0.1" ); + mazzo = true; + main = new Main(); + pannello = new Pannello(); + button = new JButton( "Prendi/Lascia carte" ); + button.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( giocata[0] != null && giocata[1] != null ) + main.mano++; + else + JOptionPane.showMessageDialog( Frame.this, "Prima gioca!" ); + try { + main.chiPrende(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, "Prima gioca!" ); + } + if ( main.mano == 16 ) + JOptionPane.showMessageDialog( Frame.this, "Ultime 4 mani - occhio alla briscola!" ); + if ( main.mano == 17 ) { + mazzo = false; + ultimaCarta = null; + pannello.repaint(); + Frame.this.repaint(); + } + if ( main.mano == 20 ) + JOptionPane.showMessageDialog( Frame.this, "Giocatore: " + main.punteggio + "\nComputer: " + main.punteggioCPU + "\n\nMa grazie tante, il computer gioca a caso!\nNon serve che ti gasi tanto." ); + } + } ); + retro1 = new ImageIcon( ClassLoader.getSystemResource( "img/retro1.jpg" ) ); + retro2 = new ImageIcon( ClassLoader.getSystemResource( "img/retro2.jpg" ) ); + for (int i = 0; i < 10; i++) + for (int j = 0; j < 4; j++) + arrayCarte[i][j] = new ImageIcon( ClassLoader.getSystemResource( "img/" + (i+1) + "-" + (j+1) + ".jpg" ) ); + main.mischia(); + carteInMano[0] = arrayCarteMescolate[0]; + carteInMano[1] = arrayCarteMescolate[1]; + carteInMano[2] = arrayCarteMescolate[2]; + carteCPU[0] = arrayCarteMescolate[3]; + carteCPU[1] = arrayCarteMescolate[4]; + carteCPU[2] = arrayCarteMescolate[5]; + ultimaCarta = arrayCarteMescolate[39]; + setLayout( new BorderLayout() ); + add( pannello, BorderLayout.CENTER ); + add( button, BorderLayout.SOUTH ); + addMouseListener( + new MouseAdapter() { + public void mouseClicked ( MouseEvent e ) { + if ( mettiCarta( e.getX(), e.getY() ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + } + } + ); + } + public boolean mettiCarta( int x, int y ) { + if ( !main.toccaAllaCPU && giocata[0] == null ) { + if ( x > 230 && x < 290 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[0]; + carteInMano[0] = null; + pannello.repaint(); + return true; + } + if ( x > 300 && x < 360 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[1]; + carteInMano[1] = null; + pannello.repaint(); + return true; + } + if ( x > 370 && x < 430 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[2]; + carteInMano[2] = null; + pannello.repaint(); + return true; + } + } + return false; + } +} + + diff --git a/JBriscola/all_versions/0.1/0.1 Alpha 1/src/Main.java b/JBriscola/all_versions/0.1/0.1 Alpha 1/src/Main.java new file mode 100755 index 0000000..22f6e47 --- /dev/null +++ b/JBriscola/all_versions/0.1/0.1 Alpha 1/src/Main.java @@ -0,0 +1,211 @@ +/* +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 javax.swing.*; + +public class Main { + public static int semeBriscola, punteggio, punteggioCPU, mano, cartaDaPescare; + public static boolean toccaAllaCPU = false; + public static boolean CPUHaGiocato = false; + public static boolean haGiocatoPrima = true; + public static Frame frame; + public static void main( String args[] ) { + frame = new Frame(); + frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); + frame.setVisible( true ); + frame.setResizable( false ); + frame.setSize( 600, 550 ); + } + public void mischia() { + mano = 0; + cartaDaPescare = 6; + ImageIcon aux; + for ( int i = 0, k = 0; i < 10; i++ ) + for ( int j = 0; j < 4; j++, k++ ) + frame.arrayCarteMescolate[k] = frame.arrayCarte[i][j]; + 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; + } + char auxChar[] = frame.arrayCarteMescolate[39].toString().toCharArray(); + semeBriscola = auxChar[auxChar.length-5] - 49; + } + public void giocaCPU() { + int cartaDaGiocare; + /*******************************************/ + if ( frame.carteCPU[0] != null ) + cartaDaGiocare = 0; + else if ( frame.carteCPU[1] != null ) + cartaDaGiocare = 1; + else + cartaDaGiocare = 2; + /*******************************************/ + frame.giocata[1] = frame.carteCPU[cartaDaGiocare]; + frame.carteCPU[cartaDaGiocare] = null; + frame.pannello.repaint(); + CPUHaGiocato = true; + if ( frame.giocata[0] == null ) + toccaAllaCPU = false; + } + public void chiPrende() { + char aux[], auxCPU[]; + aux = frame.giocata[0].toString().toCharArray(); + auxCPU = frame.giocata[1].toString().toCharArray(); + 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 ) ); + } + 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; + } + public void giocatorePrende( boolean giocatore ) { + if ( giocatore ) { + toccaAllaCPU = CPUHaGiocato = false; + haGiocatoPrima = true; + } + else { + toccaAllaCPU = true; + CPUHaGiocato = haGiocatoPrima = false; + } + daiPunti( giocatore ); + if ( toccaAllaCPU ) + giocaCPU(); + } + 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++; + } + } + frame.pannello.repaint(); + frame.repaint(); + } +} diff --git a/JBriscola/all_versions/0.1/0.1 Alpha 1/src/Pannello.java b/JBriscola/all_versions/0.1/0.1 Alpha 1/src/Pannello.java new file mode 100755 index 0000000..9e73356 --- /dev/null +++ b/JBriscola/all_versions/0.1/0.1 Alpha 1/src/Pannello.java @@ -0,0 +1,53 @@ +/* +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 javax.swing.*; +import java.awt.Graphics; + +public class Pannello extends JPanel { + public static Main main; + public Pannello() { + } + public void paint( Graphics g ) { + super.paint( g ); + if ( main.frame.ultimaCarta != null ) + main.frame.ultimaCarta.paintIcon( this, g, 50, 180 ); + if ( main.frame.mazzo ) + main.frame.retro2.paintIcon( this, g, 17, 256 ); + if ( main.frame.carteCPU[0] != null ) + main.frame.retro1.paintIcon( this, g, 230, 5 ); + if ( main.frame.carteCPU[1] != null ) + main.frame.retro1.paintIcon( this, g, 300, 5 ); + if ( main.frame.carteCPU[2] != null ) + main.frame.retro1.paintIcon( this, g, 370, 5 ); + if ( main.frame.carteInMano[0] != null ) + main.frame.carteInMano[0].paintIcon( this, g, 230, 340 ); + if ( main.frame.carteInMano[1] != null ) + main.frame.carteInMano[1].paintIcon( this, g, 300, 340 ); + if ( main.frame.carteInMano[2] != null ) + main.frame.carteInMano[2].paintIcon( this, g, 370, 340 ); + if ( main.frame.giocata[0] != null ) + main.frame.giocata[0].paintIcon( this, g, 250, 200 ); + if ( main.frame.giocata[1] != null ) + main.frame.giocata[1].paintIcon( this, g, 325, 150 ); + } +} + diff --git a/JBriscola/all_versions/0.1/0.1 Beta 1/src/Frame.java b/JBriscola/all_versions/0.1/0.1 Beta 1/src/Frame.java new file mode 100755 index 0000000..452cfe2 --- /dev/null +++ b/JBriscola/all_versions/0.1/0.1 Beta 1/src/Frame.java @@ -0,0 +1,159 @@ +/* +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 javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class Frame extends JFrame { + public static boolean mazzo; + public static Main main; + public static Pannello pannello; + public static JButton button; + public static JMenuBar barraMenu; + public static JMenu file; + public static JMenuItem nuovaPartita, esci; + public static ImageIcon retro1, retro2, ultimaCarta; + public static ImageIcon[] giocata = new ImageIcon[2]; + public static ImageIcon[] carteInMano = new ImageIcon[3]; + public static ImageIcon[] carteCPU = new ImageIcon[3]; + public static ImageIcon[] arrayCarteMescolate = new ImageIcon[40]; + public static ImageIcon[][] arrayCarte = new ImageIcon[10][4]; + public Frame() { + super( "Tronto's JBriscola 0.1" ); + mazzo = true; + main = new Main(); + pannello = new Pannello(); + button = new JButton( "Prendi/Lascia carte" ); + button.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( giocata[0] != null && giocata[1] != null ) + main.mano++; + try { + main.chiPrende(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, "Prima gioca!" ); + } + if ( main.mano == 16 ) + JOptionPane.showMessageDialog( Frame.this, "Ultime 4 mani - occhio alla briscola!" ); + if ( main.mano == 17 ) { + mazzo = false; + ultimaCarta = null; + pannello.repaint(); + Frame.this.repaint(); + } + if ( main.mano == 20 ) { + String titolo = "Hai vinto!"; + if ( main.punteggio < main.punteggioCPU ) + titolo = "Hai perso"; + if ( main.punteggio == main.punteggioCPU ) + titolo = "Pareggio!"; + JOptionPane.showMessageDialog( Frame.this, "Giocatore: " + main.punteggio + "\nComputer: " + main.punteggioCPU, titolo, JOptionPane.PLAIN_MESSAGE ); + } + } + } ); + barraMenu = new JMenuBar(); + file = new JMenu( "File" ); + nuovaPartita = new JMenuItem( "Nuova Partita" ); + nuovaPartita.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, "Vuoi davvero iniziare una nuova partita?", "JBriscola 0.1", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { "Si", "No" }, "No" ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + esci = new JMenuItem( "Esci" ); + esci.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, "Vuoi davvero uscire?", "JBriscola 0.1", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { "Si", "No" }, "No" ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + } + }); + file.add( nuovaPartita ); + file.add( esci ); + barraMenu.add( file ); + setJMenuBar( barraMenu ); + retro1 = new ImageIcon( ClassLoader.getSystemResource( "img/retro1.jpg" ) ); + retro2 = new ImageIcon( ClassLoader.getSystemResource( "img/retro2.jpg" ) ); + for (int i = 0; i < 10; i++) + for (int j = 0; j < 4; j++) + arrayCarte[i][j] = new ImageIcon( ClassLoader.getSystemResource( "img/" + (i+1) + "-" + (j+1) + ".jpg" ) ); + main.mischia(); + setLayout( new BorderLayout() ); + add( pannello, BorderLayout.CENTER ); + add( button, BorderLayout.SOUTH ); + addMouseListener( + new MouseAdapter() { + public void mouseClicked ( MouseEvent e ) { + if ( mettiCarta( e.getX(), e.getY() ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + } + } + ); + addWindowListener( + new WindowAdapter() { + public void windowClosing( WindowEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, "Vuoi davvero uscire?", "JBriscola 0.1", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { "Si", "No" }, "No" ); + if ( selezione == JOptionPane.YES_OPTION ) + System.exit( 0 ); + } + } + ); + } + public boolean mettiCarta( int x, int y ) { + if ( !main.toccaAllaCPU && giocata[0] == null ) { + if ( x > 230 && x < 290 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[0]; + carteInMano[0] = null; + pannello.repaint(); + return true; + } + if ( x > 300 && x < 360 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[1]; + carteInMano[1] = null; + pannello.repaint(); + return true; + } + if ( x > 370 && x < 430 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[2]; + carteInMano[2] = null; + pannello.repaint(); + return true; + } + } + return false; + } +} + + diff --git a/JBriscola/all_versions/0.1/0.1 Beta 1/src/Main.java b/JBriscola/all_versions/0.1/0.1 Beta 1/src/Main.java new file mode 100755 index 0000000..f844dd8 --- /dev/null +++ b/JBriscola/all_versions/0.1/0.1 Beta 1/src/Main.java @@ -0,0 +1,399 @@ +/* +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 javax.swing.*; + +public class Main { + public static int semeBriscola, punteggio, punteggioCPU, mano, cartaDaPescare, cartaDaGiocare; + public static boolean toccaAllaCPU = false; + public static boolean CPUHaGiocato = false; + public static boolean haGiocatoPrima = true; + public static Frame frame; + public static void main( String args[] ) { + frame = new Frame(); + frame.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE ); + frame.setVisible( true ); + frame.setResizable( false ); + frame.setSize( 600, 600 ); + } + public void mischia() { + mano = 0; + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + ImageIcon aux; + frame.mazzo = true; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + for ( int i = 0, k = 0; i < 10; i++ ) + for ( int j = 0; j < 4; j++, k++ ) + frame.arrayCarteMescolate[k] = frame.arrayCarte[i][j]; + 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; + } + char auxChar[] = frame.arrayCarteMescolate[39].toString().toCharArray(); + semeBriscola = auxChar[auxChar.length-5] - 49; + 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; + } + public void giocaCPU() { + if ( frame.giocata[0] == null ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiBriscola() ); + else if ( vaiCarico() ); + else; + } + else { + if ( haLisciato() || haMessoPunti() ) { + if ( vaiSopra() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiBriscola() ); + else if ( vaiCarico() ); + else System.out.println("Ha lisciato e non so cosa fare"); + } else if ( haMessoBriscola() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiBriscola() ); + else if ( vaiCarico() ); + else System.out.println("Ha messo una briscola e non so cosa fare"); + } else if ( haCaricato() ) { + if ( vaiSopra() ); + else if ( vaiBriscola() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + else System.out.println("Ha caricato e non so cosa fare"); + } else System.out.println("Non so cosa ha fatto"); + } + frame.giocata[1] = frame.carteCPU[cartaDaGiocare]; + frame.carteCPU[cartaDaGiocare] = null; + frame.pannello.repaint(); + CPUHaGiocato = true; + if ( frame.giocata[0] == null ) + toccaAllaCPU = false; + } + public void chiPrende() { + char aux[], auxCPU[]; + aux = frame.giocata[0].toString().toCharArray(); + auxCPU = frame.giocata[1].toString().toCharArray(); + 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 ) ); + } + 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; + } + public void giocatorePrende( boolean giocatore ) { + if ( giocatore ) { + toccaAllaCPU = CPUHaGiocato = false; + haGiocatoPrima = true; + } + else { + toccaAllaCPU = true; + CPUHaGiocato = haGiocatoPrima = false; + } + daiPunti( giocatore ); + if ( toccaAllaCPU ) + giocaCPU(); + } + 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++; + } + } + frame.pannello.repaint(); + frame.repaint(); + } + 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 haMessoBriscola() { + char auxCPU[]; + auxCPU = frame.giocata[0].toString().toCharArray(); + return ( (frame.giocata[0] != null) && (auxCPU[auxCPU.length-5] - 49 == semeBriscola) ); + } + 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 ) ) ); + } + 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() { + 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 ) ) ) { + cartaDaGiocare = i; + return true; + } + } + } + return false; + } + public boolean vaiBriscola() { + 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 ) { + 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 == 1 ) || (auxCPU[auxCPU.length-7] - 48 == 3 ) ) ) { + cartaDaGiocare = i; + return true; + } + } + } + return false; + } + public boolean vaiSopra() { + if ( frame.giocata[0] == null ) + return false; + int a = -1; + int b = -1; + int c = -1; + boolean laPrimaPuoAndareSopra = false; + boolean laSecondaPuoAndareSopra = false; + boolean laTerzaPuoAndareSopra = false; + char[] auxCPU1 = new char[1024]; + char[] auxCPU2 = new char[1024]; + char[] auxCPU3 = new char[1024]; + char[] aux = frame.giocata[0].toString().toCharArray(); + if ( aux[aux.length-7] - 48 == 1 ) + return false; + if ( frame.carteCPU[0] != null ) { + auxCPU1 = frame.carteCPU[0].toString().toCharArray(); + a = auxCPU1[auxCPU1.length-7] - 48; + } + if ( frame.carteCPU[1] != null ) { + auxCPU2 = frame.carteCPU[1].toString().toCharArray(); + b = auxCPU2[auxCPU2.length-7] - 48; + } + if ( frame.carteCPU[2] != null ) { + auxCPU3 = frame.carteCPU[2].toString().toCharArray(); + c = auxCPU3[auxCPU3.length-7] - 48; + } + if ( (auxCPU1[auxCPU1.length-5] - 49 == aux[aux.length-5] - 49) && laPrimaEPiuAlta( a, aux[aux.length-7] - 48 ) ) + laPrimaPuoAndareSopra = true; + if ( (auxCPU2[auxCPU2.length-5] - 49 == aux[aux.length-5] - 49) && laPrimaEPiuAlta( b, aux[aux.length-7] - 48 ) ) + laSecondaPuoAndareSopra = true; + if ( (auxCPU3[auxCPU3.length-5] - 49 == aux[aux.length-5] - 49) && laPrimaEPiuAlta( c, aux[aux.length-7] - 48 ) ) + laTerzaPuoAndareSopra = true; + 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; + 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; + else cartaDaGiocare = 55; + return true; + } +} diff --git a/JBriscola/all_versions/0.1/0.1 Beta 1/src/Pannello.java b/JBriscola/all_versions/0.1/0.1 Beta 1/src/Pannello.java new file mode 100755 index 0000000..9e73356 --- /dev/null +++ b/JBriscola/all_versions/0.1/0.1 Beta 1/src/Pannello.java @@ -0,0 +1,53 @@ +/* +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 javax.swing.*; +import java.awt.Graphics; + +public class Pannello extends JPanel { + public static Main main; + public Pannello() { + } + public void paint( Graphics g ) { + super.paint( g ); + if ( main.frame.ultimaCarta != null ) + main.frame.ultimaCarta.paintIcon( this, g, 50, 180 ); + if ( main.frame.mazzo ) + main.frame.retro2.paintIcon( this, g, 17, 256 ); + if ( main.frame.carteCPU[0] != null ) + main.frame.retro1.paintIcon( this, g, 230, 5 ); + if ( main.frame.carteCPU[1] != null ) + main.frame.retro1.paintIcon( this, g, 300, 5 ); + if ( main.frame.carteCPU[2] != null ) + main.frame.retro1.paintIcon( this, g, 370, 5 ); + if ( main.frame.carteInMano[0] != null ) + main.frame.carteInMano[0].paintIcon( this, g, 230, 340 ); + if ( main.frame.carteInMano[1] != null ) + main.frame.carteInMano[1].paintIcon( this, g, 300, 340 ); + if ( main.frame.carteInMano[2] != null ) + main.frame.carteInMano[2].paintIcon( this, g, 370, 340 ); + if ( main.frame.giocata[0] != null ) + main.frame.giocata[0].paintIcon( this, g, 250, 200 ); + if ( main.frame.giocata[1] != null ) + main.frame.giocata[1].paintIcon( this, g, 325, 150 ); + } +} + diff --git a/JBriscola/all_versions/0.1/0.1 Beta 2/src/Frame.java b/JBriscola/all_versions/0.1/0.1 Beta 2/src/Frame.java new file mode 100755 index 0000000..36ff831 --- /dev/null +++ b/JBriscola/all_versions/0.1/0.1 Beta 2/src/Frame.java @@ -0,0 +1,174 @@ +/* +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 javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class Frame extends JFrame { + public static boolean mazzo; + public static Main main; + public static Pannello pannello; + public static JButton button; + public static JMenuBar barraMenu; + public static JMenu file; + public static JMenuItem nuovaPartita, opzioni, esci; + public static ImageIcon retro1, retro2, ultimaCarta; + public static ImageIcon[] giocata = new ImageIcon[2]; + public static ImageIcon[] carteInMano = new ImageIcon[3]; + public static ImageIcon[] carteCPU = new ImageIcon[3]; + public static ImageIcon[] arrayCarteMescolate = new ImageIcon[40]; + public static ImageIcon[][] arrayCarte = new ImageIcon[10][4]; + public Frame() { + super( "Tronto's JBriscola 0.1 Beta 2" ); + mazzo = true; + main = new Main(); + pannello = new Pannello(); + button = new JButton( main.stringaBottonePrendi ); + button.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( giocata[0] != null && giocata[1] != null ) + main.mano++; + try { + main.chiPrende(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaPrimaGioca, "JBriscola 0.1", JOptionPane.WARNING_MESSAGE ); + } + if ( main.mano == 16 ) + JOptionPane.showMessageDialog( Frame.this, main.stringaUltime4, "JBriscola 0.1", JOptionPane.INFORMATION_MESSAGE ); + if ( main.mano == 17 ) { + mazzo = false; + ultimaCarta = null; + pannello.repaint(); + Frame.this.repaint(); + } + if ( main.mano == 20 ) { + String titolo = main.stringaVinto; + if ( main.punteggio < main.punteggioCPU ) + titolo = main.stringaPerso; + if ( main.punteggio == main.punteggioCPU ) + titolo = main.stringaPareggio; + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, titolo, JOptionPane.PLAIN_MESSAGE ); + } + } + } ); + barraMenu = new JMenuBar(); + file = new JMenu( "File" ); + nuovaPartita = new JMenuItem( main.stringaNuovaPartita ); + nuovaPartita.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola 0.1", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + opzioni = new JMenuItem( main.stringaOpzioni ); + opzioni.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 150 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, + (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + } + }); + esci = new JMenuItem( main.stringaEsci ); + esci.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola 0.1", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + } + }); + file.add( nuovaPartita ); + file.add( opzioni ); + file.addSeparator(); + file.add( esci ); + barraMenu.add( file ); + setJMenuBar( barraMenu ); + retro1 = new ImageIcon( ClassLoader.getSystemResource( "img/retro1.jpg" ) ); + retro2 = new ImageIcon( ClassLoader.getSystemResource( "img/retro2.jpg" ) ); + for (int i = 0; i < 10; i++) + for (int j = 0; j < 4; j++) + arrayCarte[i][j] = new ImageIcon( ClassLoader.getSystemResource( "img/" + (i+1) + "-" + (j+1) + ".jpg" ) ); + main.mischia(); + setLayout( new BorderLayout() ); + add( pannello, BorderLayout.CENTER ); + add( button, BorderLayout.SOUTH ); + addMouseListener( + new MouseAdapter() { + public void mouseClicked ( MouseEvent e ) { + if ( mettiCarta( e.getX(), e.getY() ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + } + } + ); + addWindowListener( + new WindowAdapter() { + public void windowClosing( WindowEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola 0.1", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + System.exit( 0 ); + } + } + ); + } + public boolean mettiCarta( int x, int y ) { + if ( !main.toccaAllaCPU && giocata[0] == null ) { + if ( x > 230 && x < 290 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[0]; + carteInMano[0] = null; + pannello.repaint(); + return true; + } + if ( x > 300 && x < 360 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[1]; + carteInMano[1] = null; + pannello.repaint(); + return true; + } + if ( x > 370 && x < 430 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[2]; + carteInMano[2] = null; + pannello.repaint(); + return true; + } + } + return false; + } +} + + diff --git a/JBriscola/all_versions/0.1/0.1 Beta 2/src/Main.java b/JBriscola/all_versions/0.1/0.1 Beta 2/src/Main.java new file mode 100755 index 0000000..2a3191b --- /dev/null +++ b/JBriscola/all_versions/0.1/0.1 Beta 2/src/Main.java @@ -0,0 +1,492 @@ +/* +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 { + public static int semeBriscola, punteggio, punteggioCPU, mano, cartaDaPescare, cartaDaGiocare; + public static boolean toccaAllaCPU = false; + public static boolean CPUHaGiocato = false; + public static boolean haGiocatoPrima = true; + public static Frame frame; + public static String stringaBottonePrendi = "Prendi/Lascia carte"; + public static String stringaPrimaGioca = "Prima Gioca!"; + public static String stringaUltime4 = "Ultime 4 mani - 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 stringaNecessarioRiavviare = "E' necessario riavviare JBriscola se sono state\nmodificate impostazioni riguardanti la lingua.\nAlcune parti saranno comunque tradotte prima."; + public static String stringaModificaOpzioni = "Modifica Opzioni"; + public static void main( String args[] ) { + settaOpzioni(); + 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 ); + } + public void mischia() { + mano = 0; + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + ImageIcon aux; + frame.mazzo = true; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + for ( int i = 0, k = 0; i < 10; i++ ) + for ( int j = 0; j < 4; j++, k++ ) + frame.arrayCarteMescolate[k] = frame.arrayCarte[i][j]; + 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; + } + char auxChar[] = frame.arrayCarteMescolate[39].toString().toCharArray(); + semeBriscola = auxChar[auxChar.length-5] - 49; + 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; + } + public void giocaCPU() { + if ( frame.giocata[0] == null ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiBriscola() ); + else if ( vaiCarico() ); + else; + } + else { + if ( haLisciato() || haMessoPunti() ) { + if ( vaiSopra() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiBriscola() ); + else if ( vaiCarico() ); + else System.out.println("Ha lisciato e non so cosa fare"); + } else if ( haMessoBriscola() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiBriscola() ); + else if ( vaiCarico() ); + else System.out.println("Ha messo una briscola e non so cosa fare"); + } else if ( haCaricato() ) { + if ( vaiSopra() ); + else if ( vaiBriscola() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + else System.out.println("Ha caricato e non so cosa fare"); + } else System.out.println("Non so cosa ha fatto"); + } + frame.giocata[1] = frame.carteCPU[cartaDaGiocare]; + frame.carteCPU[cartaDaGiocare] = null; + frame.pannello.repaint(); + CPUHaGiocato = true; + if ( frame.giocata[0] == null ) + toccaAllaCPU = false; + } + public void chiPrende() { + char aux[], auxCPU[]; + aux = frame.giocata[0].toString().toCharArray(); + auxCPU = frame.giocata[1].toString().toCharArray(); + 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 ) ); + } + 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; + } + public void giocatorePrende( boolean giocatore ) { + if ( giocatore ) { + toccaAllaCPU = CPUHaGiocato = false; + haGiocatoPrima = true; + } + else { + toccaAllaCPU = true; + CPUHaGiocato = haGiocatoPrima = false; + } + daiPunti( giocatore ); + if ( toccaAllaCPU ) + giocaCPU(); + } + 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++; + } + } + frame.pannello.repaint(); + frame.repaint(); + } + 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 haMessoBriscola() { + char auxCPU[]; + auxCPU = frame.giocata[0].toString().toCharArray(); + return ( (frame.giocata[0] != null) && (auxCPU[auxCPU.length-5] - 49 == semeBriscola) ); + } + 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 ) ) ); + } + 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() { + 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 ) ) ) { + cartaDaGiocare = i; + return true; + } + } + } + return false; + } + public boolean vaiBriscola() { + 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 ) { + 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 == 1 ) || (auxCPU[auxCPU.length-7] - 48 == 3 ) ) ) { + cartaDaGiocare = i; + return true; + } + } + } + return false; + } + public boolean vaiSopra() { + if ( frame.giocata[0] == null ) + return false; + int a = -1; + int b = -1; + int c = -1; + boolean laPrimaPuoAndareSopra = false; + boolean laSecondaPuoAndareSopra = false; + boolean laTerzaPuoAndareSopra = false; + char[] auxCPU1 = new char[1024]; + char[] auxCPU2 = new char[1024]; + char[] auxCPU3 = new char[1024]; + char[] aux = frame.giocata[0].toString().toCharArray(); + if ( aux[aux.length-7] - 48 == 1 ) + return false; + if ( frame.carteCPU[0] != null ) { + auxCPU1 = frame.carteCPU[0].toString().toCharArray(); + a = auxCPU1[auxCPU1.length-7] - 48; + } + if ( frame.carteCPU[1] != null ) { + auxCPU2 = frame.carteCPU[1].toString().toCharArray(); + b = auxCPU2[auxCPU2.length-7] - 48; + } + if ( frame.carteCPU[2] != null ) { + auxCPU3 = frame.carteCPU[2].toString().toCharArray(); + c = auxCPU3[auxCPU3.length-7] - 48; + } + if ( (auxCPU1[auxCPU1.length-5] - 49 == aux[aux.length-5] - 49) && laPrimaEPiuAlta( a, aux[aux.length-7] - 48 ) ) + laPrimaPuoAndareSopra = true; + if ( (auxCPU2[auxCPU2.length-5] - 49 == aux[aux.length-5] - 49) && laPrimaEPiuAlta( b, aux[aux.length-7] - 48 ) ) + laSecondaPuoAndareSopra = true; + if ( (auxCPU3[auxCPU3.length-5] - 49 == aux[aux.length-5] - 49) && laPrimaEPiuAlta( c, aux[aux.length-7] - 48 ) ) + laTerzaPuoAndareSopra = true; + 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; + 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; + else cartaDaGiocare = 55; + return true; + } + public static void settaOpzioni() { + String lang; + Scanner scanner = null; + File file = new File( "JBriscolaConfig.txt" ); + if ( file.exists() ) { + try { + scanner = new Scanner( file ); + } catch ( FileNotFoundException e ) { + lang = "it"; + } + lang = scanner.next(); + } + else { + lang = "it"; + } + if ( lang.equals( "it" ) ) { + stringaBottonePrendi = "Prendi/Lascia carte"; + stringaPrimaGioca = "Prima Gioca!"; + stringaUltime4 = "Ultime 4 mani - 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 dscire?"; + 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"; + stringaNecessarioRiavviare = "E' necessario riavviare JBriscola se sono state\nmodificate impostazioni riguardanti la lingua\nAlcune parti saranno comunque tradotte prima."; + stringaModificaOpzioni = "Modifica Opzioni"; + } + else if ( lang.equals( "la" ) ) { + stringaBottonePrendi = "CAPIS/RELINQVIS CHARTAS"; + stringaPrimaGioca = "ANTE CHARTAM PONE!"; + stringaUltime4 = "IV MANVS POSTREMAS - INTVERE BRISCOLAM!"; + stringaVinto = "VINXISTI!"; + 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 = "ITALICE"; + stringaLa = "LATINE"; + stringaNecessarioRiavviare = "JBRISCOLAM RVRSVS INCIPERE NECESSE EST\nSI LINGVA PRAELATIONES NOVATAE SUNT.\nALIQVAE ANTE ID VERSA ERVNT"; + stringaModificaOpzioni = "OPTIONES NOVARE"; + } + } +} diff --git a/JBriscola/all_versions/0.1/0.1 Beta 2/src/OptionFrame.java b/JBriscola/all_versions/0.1/0.1 Beta 2/src/OptionFrame.java new file mode 100755 index 0000000..de6734b --- /dev/null +++ b/JBriscola/all_versions/0.1/0.1 Beta 2/src/OptionFrame.java @@ -0,0 +1,83 @@ +/* +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.util.Formatter; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class OptionFrame extends JFrame { + public static Main main = new Main(); + public static Formatter formatter; + public static JButton ok, annulla; + public static JLabel lingua; + public static JComboBox selezionaLingua; + public static JPanel pannello1, pannello2; + public OptionFrame() { + super( "JBriscola - " + main.stringaModificaOpzioni ); + ok = new JButton( "OK" ); + ok.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + try { + formatter = new Formatter( "JBriscolaConfig.txt" ); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( OptionFrame.this, main.stringaImpossibileConfigurare + ex ); + } + String lang; + switch ( selezionaLingua.getSelectedIndex() ) { + case 0: + lang = "it"; + break; + case 1: + lang = "la"; + break; + default: + lang = "it"; + break; + } + formatter.format( lang ); + formatter.close(); + main.settaOpzioni(); + main.frame.pannello.repaint(); + main.frame.repaint(); + OptionFrame.this.dispose(); + JOptionPane.showMessageDialog( OptionFrame.this, main.stringaNecessarioRiavviare, "JBriscola 0.1", JOptionPane.INFORMATION_MESSAGE ); + } + }); + annulla = new JButton( main.stringaAnnulla ); + annulla.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + OptionFrame.this.dispose(); + } + }); + lingua = new JLabel( main.stringaLingua ); + String[] lingueDaSelezionare = { main.stringaIt, main.stringaLa }; + selezionaLingua = new JComboBox( lingueDaSelezionare ); + pannello1 = new JPanel( new FlowLayout() ); + pannello1.add( lingua ); + pannello1.add( selezionaLingua ); + pannello2 = new JPanel( new FlowLayout() ); + pannello2.add( ok ); + pannello2.add( annulla ); + add( pannello1, BorderLayout.CENTER ); + add( pannello2, BorderLayout.SOUTH ); + } +} diff --git a/JBriscola/all_versions/0.1/0.1 Beta 2/src/Pannello.java b/JBriscola/all_versions/0.1/0.1 Beta 2/src/Pannello.java new file mode 100755 index 0000000..9e73356 --- /dev/null +++ b/JBriscola/all_versions/0.1/0.1 Beta 2/src/Pannello.java @@ -0,0 +1,53 @@ +/* +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 javax.swing.*; +import java.awt.Graphics; + +public class Pannello extends JPanel { + public static Main main; + public Pannello() { + } + public void paint( Graphics g ) { + super.paint( g ); + if ( main.frame.ultimaCarta != null ) + main.frame.ultimaCarta.paintIcon( this, g, 50, 180 ); + if ( main.frame.mazzo ) + main.frame.retro2.paintIcon( this, g, 17, 256 ); + if ( main.frame.carteCPU[0] != null ) + main.frame.retro1.paintIcon( this, g, 230, 5 ); + if ( main.frame.carteCPU[1] != null ) + main.frame.retro1.paintIcon( this, g, 300, 5 ); + if ( main.frame.carteCPU[2] != null ) + main.frame.retro1.paintIcon( this, g, 370, 5 ); + if ( main.frame.carteInMano[0] != null ) + main.frame.carteInMano[0].paintIcon( this, g, 230, 340 ); + if ( main.frame.carteInMano[1] != null ) + main.frame.carteInMano[1].paintIcon( this, g, 300, 340 ); + if ( main.frame.carteInMano[2] != null ) + main.frame.carteInMano[2].paintIcon( this, g, 370, 340 ); + if ( main.frame.giocata[0] != null ) + main.frame.giocata[0].paintIcon( this, g, 250, 200 ); + if ( main.frame.giocata[1] != null ) + main.frame.giocata[1].paintIcon( this, g, 325, 150 ); + } +} + diff --git a/JBriscola/all_versions/0.1/0.1.1/src/Frame.java b/JBriscola/all_versions/0.1/0.1.1/src/Frame.java new file mode 100755 index 0000000..ab85a28 --- /dev/null +++ b/JBriscola/all_versions/0.1/0.1.1/src/Frame.java @@ -0,0 +1,186 @@ +/* +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 javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class Frame extends JFrame { + public static boolean mazzo; + public static Main main; + public static Pannello pannello; + public static JPanel pannello2; + public static JButton button; + public static JMenuBar barraMenu; + public static JMenu file, puntoInterrogativo; + public static JMenuItem nuovaPartita, opzioni, esci, informazioni; + public static ImageIcon retro1, retro2, ultimaCarta; + public static ImageIcon[] giocata = new ImageIcon[2]; + public static ImageIcon[] carteInMano = new ImageIcon[3]; + public static ImageIcon[] carteCPU = new ImageIcon[3]; + public static ImageIcon[] arrayCarteMescolate = new ImageIcon[40]; + public static ImageIcon[][] arrayCarte = new ImageIcon[10][4]; + public Frame() { + super( "Tronto's JBriscola " + main.version ); + mazzo = true; + main = new Main(); + pannello = new Pannello(); + pannello2 = new JPanel( new FlowLayout() ); + button = new JButton( main.stringaBottonePrendi ); + button.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( giocata[0] != null && giocata[1] != null ) + main.mano++; + try { + main.chiPrende(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaPrimaGioca, "JBriscola " + main.version, JOptionPane.WARNING_MESSAGE ); + } + if ( main.mano == 16 ) + JOptionPane.showMessageDialog( Frame.this, main.stringaUltime4, "JBriscola " + main.version, JOptionPane.INFORMATION_MESSAGE ); + if ( main.mano == 17 ) { + mazzo = false; + ultimaCarta = null; + pannello.repaint(); + Frame.this.repaint(); + } + if ( main.mano == 20 ) { + String titolo = main.stringaVinto; + if ( main.punteggio < main.punteggioCPU ) + titolo = main.stringaPerso; + if ( main.punteggio == main.punteggioCPU ) + titolo = main.stringaPareggio; + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, titolo, JOptionPane.PLAIN_MESSAGE ); + } + } + } ); + barraMenu = new JMenuBar(); + file = new JMenu( "File" ); + nuovaPartita = new JMenuItem( main.stringaNuovaPartita ); + nuovaPartita.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + opzioni = new JMenuItem( main.stringaOpzioni ); + opzioni.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 150 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, + (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + } + }); + esci = new JMenuItem( main.stringaEsci ); + esci.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + } + }); + file.add( nuovaPartita ); + file.add( opzioni ); + file.addSeparator(); + file.add( esci ); + puntoInterrogativo = new JMenu( "?" ); + informazioni = new JMenuItem( main.stringaInformazioni ); + informazioni.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + } + } ); + puntoInterrogativo.add( informazioni ); + barraMenu.add( file ); + barraMenu.add( puntoInterrogativo ); + setJMenuBar( barraMenu ); + retro1 = new ImageIcon( ClassLoader.getSystemResource( "img/retro1.jpg" ) ); + retro2 = new ImageIcon( ClassLoader.getSystemResource( "img/retro2.jpg" ) ); + for (int i = 0; i < 10; i++) + for (int j = 0; j < 4; j++) + arrayCarte[i][j] = new ImageIcon( ClassLoader.getSystemResource( "img/" + (i+1) + "-" + (j+1) + ".jpg" ) ); + main.mischia(); + pannello2.add( button ); + setLayout( new BorderLayout() ); + add( pannello, BorderLayout.CENTER ); + add( pannello2, BorderLayout.SOUTH ); + addMouseListener( + new MouseAdapter() { + public void mouseClicked ( MouseEvent e ) { + if ( mettiCarta( e.getX(), e.getY() ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + } + } + ); + addWindowListener( + new WindowAdapter() { + public void windowClosing( WindowEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + System.exit( 0 ); + } + } + ); + } + public boolean mettiCarta( int x, int y ) { + if ( !main.toccaAllaCPU && giocata[0] == null ) { + if ( x > 230 && x < 290 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[0]; + carteInMano[0] = null; + pannello.repaint(); + return true; + } + if ( x > 300 && x < 360 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[1]; + carteInMano[1] = null; + pannello.repaint(); + return true; + } + if ( x > 370 && x < 430 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[2]; + carteInMano[2] = null; + pannello.repaint(); + return true; + } + } + return false; + } +} + + diff --git a/JBriscola/all_versions/0.1/0.1.1/src/Main.java b/JBriscola/all_versions/0.1/0.1.1/src/Main.java new file mode 100755 index 0000000..a97b21e --- /dev/null +++ b/JBriscola/all_versions/0.1/0.1.1/src/Main.java @@ -0,0 +1,708 @@ +/* +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 { + public static int semeBriscola, punteggio, punteggioCPU, mano, cartaDaPescare, cartaDaGiocare; + public static boolean toccaAllaCPU = false; + public static boolean CPUHaGiocato = false; + public static boolean haGiocatoPrima = true; + public static Frame frame; + public static String version = "0.1.1"; + 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 stringaNecessarioRiavviare = "E' necessario riavviare JBriscola se sono state\nmodificate impostazioni riguardanti la lingua.\nAlcune parti saranno comunque tradotte prima."; + 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 void main( String args[] ) { + settaOpzioni(); + 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 ); + } + public void mischia() { + mano = 0; + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + ImageIcon aux; + frame.mazzo = true; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + for ( int i = 0, k = 0; i < 10; i++ ) + for ( int j = 0; j < 4; j++, k++ ) + frame.arrayCarteMescolate[k] = frame.arrayCarte[i][j]; + 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; + } + char auxChar[] = frame.arrayCarteMescolate[39].toString().toCharArray(); + semeBriscola = auxChar[auxChar.length-5] - 49; + 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; + } + public void giocaCPU() { + if ( frame.giocata[0] == null ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + else if ( vaiAsso() ); + else; + } + 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() ); + } + } + frame.giocata[1] = frame.carteCPU[cartaDaGiocare]; + frame.carteCPU[cartaDaGiocare] = null; + frame.pannello.repaint(); + CPUHaGiocato = true; + if ( frame.giocata[0] == null ) + toccaAllaCPU = false; + } + public void chiPrende() { + char aux[], auxCPU[]; + aux = frame.giocata[0].toString().toCharArray(); + auxCPU = frame.giocata[1].toString().toCharArray(); + 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 ) ); + } + 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; + } + public void giocatorePrende( boolean giocatore ) { + if ( giocatore ) { + toccaAllaCPU = CPUHaGiocato = false; + haGiocatoPrima = true; + } + else { + toccaAllaCPU = true; + CPUHaGiocato = haGiocatoPrima = false; + } + daiPunti( giocatore ); + if ( toccaAllaCPU ) + giocaCPU(); + } + 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++; + } + } + frame.pannello.repaint(); + frame.repaint(); + } + 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 ) ) ); + } + 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() { + 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() { + if ( frame.giocata[0] == null ) + return false; + int a = -1; + int b = -1; + int c = -1; + boolean laPrimaPuoAndareSopra = false; + boolean laSecondaPuoAndareSopra = false; + boolean laTerzaPuoAndareSopra = false; + char[] auxCPU1 = new char[1024]; + char[] auxCPU2 = new char[1024]; + char[] auxCPU3 = new char[1024]; + char[] aux = frame.giocata[0].toString().toCharArray(); + if ( aux[aux.length-7] - 48 == 1 ) + return false; + 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; + } + 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; + 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; + 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; + } + public static void settaOpzioni() { + String lang; + Scanner scanner = null; + File file = new File( "JBriscolaConfig.txt" ); + if ( file.exists() ) { + try { + scanner = new Scanner( file ); + } catch ( FileNotFoundException e ) { + lang = "it"; + } + lang = scanner.next(); + } + else { + lang = "it"; + } + 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"; + stringaNecessarioRiavviare = "E' necessario riavviare JBriscola se sono state\nmodificate impostazioni riguardanti la lingua\nAlcune parti saranno comunque tradotte prima."; + 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"; + } + 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"; + stringaNecessarioRiavviare = "JBRISCOLAM RVRSVS INCIPERE NECESSE EST\nSI LINGVA PRAELATIONES NOVATAE SVNT.\nALIQVAE ANTE ID VERSA ERVNT"; + 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"; + } + 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"; + stringaNecessarioRiavviare = "Se te ha cambia' la lengua te toca\nstusar su e impizar de novo al dugo\nPero' zerte robe le e' belche tradote."; + 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"; + } + 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"; + stringaNecessarioRiavviare = "Se ti ga cambia' la lengua te toca\nstusar su e impizar de novo al zugo\nPero' zerte robe le e' belche tradote."; + 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"; + } + } +} diff --git a/JBriscola/all_versions/0.1/0.1.1/src/OptionFrame.java b/JBriscola/all_versions/0.1/0.1.1/src/OptionFrame.java new file mode 100755 index 0000000..bd6f0da --- /dev/null +++ b/JBriscola/all_versions/0.1/0.1.1/src/OptionFrame.java @@ -0,0 +1,87 @@ +/* +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.util.Formatter; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class OptionFrame extends JFrame { + public static Main main = new Main(); + public static Formatter formatter; + public static JButton ok, annulla; + public static JLabel lingua; + public static JComboBox selezionaLingua; + public static JPanel pannello1, pannello2; + public OptionFrame() { + super( "JBriscola - " + main.stringaModificaOpzioni ); + ok = new JButton( "OK" ); + ok.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + try { + formatter = new Formatter( "JBriscolaConfig.txt" ); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( OptionFrame.this, main.stringaImpossibileConfigurare + ex ); + } + String lang; + switch ( selezionaLingua.getSelectedIndex() ) { + case 0: + lang = "it"; + break; + case 1: + lang = "la"; + break; + case 2: + lang = "bl"; + break; + case 3: + lang = "bv"; + break; + default: + lang = "it"; + break; + } + formatter.format( lang ); + formatter.close(); + main.settaOpzioni(); + OptionFrame.this.dispose(); + JOptionPane.showMessageDialog( OptionFrame.this, main.stringaNecessarioRiavviare, "JBriscola 0.1", JOptionPane.INFORMATION_MESSAGE ); + } + }); + annulla = new JButton( main.stringaAnnulla ); + annulla.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + OptionFrame.this.dispose(); + } + }); + lingua = new JLabel( main.stringaLingua ); + String[] lingueDaSelezionare = { main.stringaIt, main.stringaLa, main.stringaBL, main.stringaBV }; + selezionaLingua = new JComboBox( lingueDaSelezionare ); + pannello1 = new JPanel( new FlowLayout() ); + pannello1.add( lingua ); + pannello1.add( selezionaLingua ); + pannello2 = new JPanel( new FlowLayout() ); + pannello2.add( ok ); + pannello2.add( annulla ); + add( pannello1, BorderLayout.CENTER ); + add( pannello2, BorderLayout.SOUTH ); + } +} diff --git a/JBriscola/all_versions/0.1/0.1.1/src/Pannello.java b/JBriscola/all_versions/0.1/0.1.1/src/Pannello.java new file mode 100755 index 0000000..9e73356 --- /dev/null +++ b/JBriscola/all_versions/0.1/0.1.1/src/Pannello.java @@ -0,0 +1,53 @@ +/* +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 javax.swing.*; +import java.awt.Graphics; + +public class Pannello extends JPanel { + public static Main main; + public Pannello() { + } + public void paint( Graphics g ) { + super.paint( g ); + if ( main.frame.ultimaCarta != null ) + main.frame.ultimaCarta.paintIcon( this, g, 50, 180 ); + if ( main.frame.mazzo ) + main.frame.retro2.paintIcon( this, g, 17, 256 ); + if ( main.frame.carteCPU[0] != null ) + main.frame.retro1.paintIcon( this, g, 230, 5 ); + if ( main.frame.carteCPU[1] != null ) + main.frame.retro1.paintIcon( this, g, 300, 5 ); + if ( main.frame.carteCPU[2] != null ) + main.frame.retro1.paintIcon( this, g, 370, 5 ); + if ( main.frame.carteInMano[0] != null ) + main.frame.carteInMano[0].paintIcon( this, g, 230, 340 ); + if ( main.frame.carteInMano[1] != null ) + main.frame.carteInMano[1].paintIcon( this, g, 300, 340 ); + if ( main.frame.carteInMano[2] != null ) + main.frame.carteInMano[2].paintIcon( this, g, 370, 340 ); + if ( main.frame.giocata[0] != null ) + main.frame.giocata[0].paintIcon( this, g, 250, 200 ); + if ( main.frame.giocata[1] != null ) + main.frame.giocata[1].paintIcon( this, g, 325, 150 ); + } +} + diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/1-1.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/1-1.jpg new file mode 100755 index 0000000..ae43510 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/1-1.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/1-2.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/1-2.jpg new file mode 100755 index 0000000..3f7c75a Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/1-2.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/1-3.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/1-3.jpg new file mode 100755 index 0000000..9e1ead7 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/1-3.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/1-4.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/1-4.jpg new file mode 100755 index 0000000..710f879 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/1-4.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/10-1.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/10-1.jpg new file mode 100755 index 0000000..9aba45a Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/10-1.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/10-2.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/10-2.jpg new file mode 100755 index 0000000..037eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/10-2.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/10-3.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/10-3.jpg new file mode 100755 index 0000000..8780b72 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/10-3.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/10-4.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/10-4.jpg new file mode 100755 index 0000000..587dc0f Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/10-4.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/2-1.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/2-1.jpg new file mode 100755 index 0000000..5dcb7db Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/2-1.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/2-2.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/2-2.jpg new file mode 100755 index 0000000..ea9eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/2-2.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/2-3.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/2-3.jpg new file mode 100755 index 0000000..8cb22dd Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/2-3.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/2-4.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/2-4.jpg new file mode 100755 index 0000000..b3e7898 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/2-4.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/3-1.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/3-1.jpg new file mode 100755 index 0000000..dcb435c Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/3-1.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/3-2.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/3-2.jpg new file mode 100755 index 0000000..1e5b6ec Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/3-2.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/3-3.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/3-3.jpg new file mode 100755 index 0000000..9202cfe Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/3-3.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/3-4.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/3-4.jpg new file mode 100755 index 0000000..5436a8d Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/3-4.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/4-1.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/4-1.jpg new file mode 100755 index 0000000..3bab6d5 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/4-1.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/4-2.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/4-2.jpg new file mode 100755 index 0000000..b4901a6 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/4-2.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/4-3.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/4-3.jpg new file mode 100755 index 0000000..d754ad8 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/4-3.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/4-4.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/4-4.jpg new file mode 100755 index 0000000..3a54b96 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/4-4.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/5-1.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/5-1.jpg new file mode 100755 index 0000000..3f7ba1f Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/5-1.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/5-2.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/5-2.jpg new file mode 100755 index 0000000..fcacb75 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/5-2.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/5-3.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/5-3.jpg new file mode 100755 index 0000000..ce32f9f Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/5-3.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/5-4.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/5-4.jpg new file mode 100755 index 0000000..b86b09a Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/5-4.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/6-1.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/6-1.jpg new file mode 100755 index 0000000..f90cd81 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/6-1.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/6-2.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/6-2.jpg new file mode 100755 index 0000000..cf2a67a Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/6-2.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/6-3.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/6-3.jpg new file mode 100755 index 0000000..2cd2fe2 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/6-3.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/6-4.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/6-4.jpg new file mode 100755 index 0000000..73f410f Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/6-4.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/7-1.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/7-1.jpg new file mode 100755 index 0000000..08cd397 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/7-1.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/7-2.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/7-2.jpg new file mode 100755 index 0000000..a168ff8 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/7-2.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/7-3.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/7-3.jpg new file mode 100755 index 0000000..5cda411 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/7-3.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/7-4.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/7-4.jpg new file mode 100755 index 0000000..5d63229 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/7-4.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/8-1.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/8-1.jpg new file mode 100755 index 0000000..a6faa7b Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/8-1.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/8-2.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/8-2.jpg new file mode 100755 index 0000000..0d9edbb Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/8-2.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/8-3.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/8-3.jpg new file mode 100755 index 0000000..91f8354 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/8-3.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/8-4.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/8-4.jpg new file mode 100755 index 0000000..cc0089c Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/8-4.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/9-1.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/9-1.jpg new file mode 100755 index 0000000..be9c6bf Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/9-1.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/9-2.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/9-2.jpg new file mode 100755 index 0000000..e25da4c Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/9-2.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/9-3.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/9-3.jpg new file mode 100755 index 0000000..cd384f8 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/9-3.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/9-4.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/9-4.jpg new file mode 100755 index 0000000..441210e Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/9-4.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/carte.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/carte.jpg new file mode 100755 index 0000000..838ffac Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/carte.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/retro1.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/retro1.jpg new file mode 100755 index 0000000..9651b06 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/retro1.jpg differ diff --git a/JBriscola/all_versions/0.1/0.1.1/src/img/retro2.jpg b/JBriscola/all_versions/0.1/0.1.1/src/img/retro2.jpg new file mode 100755 index 0000000..c5d3925 Binary files /dev/null and b/JBriscola/all_versions/0.1/0.1.1/src/img/retro2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/Frame.java b/JBriscola/all_versions/0.2/0.2 Beta 1/src/Frame.java new file mode 100755 index 0000000..31aa39b --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2 Beta 1/src/Frame.java @@ -0,0 +1,242 @@ +/* +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 javax.swing.*; +import javax.sound.sampled.*; +import java.io.*; +import java.awt.*; +import java.awt.event.*; + +public class Frame extends JFrame { + public static boolean mazzo; + public static Main main; + public static Pannello pannello; + public static JPanel pannello2; + public static JButton button; + public static JMenuBar barraMenu; + public static JMenu file, puntoInterrogativo; + public static JMenuItem nuovaPartita, opzioni, esci, informazioni, punti; + public static ImageIcon retro1, retro2, ultimaCarta; + public static ImageIcon[] giocata = new ImageIcon[2]; + public static ImageIcon[] carteInMano = new ImageIcon[3]; + public static ImageIcon[] carteCPU = new ImageIcon[3]; + public static ImageIcon[] arrayCarteMescolate = new ImageIcon[40]; + public static ImageIcon[][] arrayCarte = new ImageIcon[10][4]; + public Frame() { + super( "Tronto's JBriscola " + main.version ); + mazzo = true; + main = new Main(); + pannello = new Pannello(); + pannello2 = new JPanel( new FlowLayout() ); + button = new JButton( main.stringaBottonePrendi ); + button.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( giocata[0] != null && giocata[1] != null ) + main.mano++; + try { + main.chiPrende(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaPrimaGioca, "JBriscola " + main.version, JOptionPane.WARNING_MESSAGE ); + } + if ( main.mano == 16 ) + JOptionPane.showMessageDialog( Frame.this, main.stringaUltime4, "JBriscola " + main.version, JOptionPane.INFORMATION_MESSAGE ); + if ( main.mano == 17 ) { + mazzo = false; + ultimaCarta = null; + pannello.repaint(); + Frame.this.repaint(); + } + if ( main.mano == 20 ) { + String titolo = ""; + String suonoFinale = ""; + if ( main.punteggio > main.punteggioCPU ) { + titolo = main.stringaVinto; + suonoFinale = "sounds/perso.wav"; + } + if ( main.punteggio < main.punteggioCPU ) { + titolo = main.stringaPerso; + suonoFinale = "sounds/vinto.wav"; + } + if ( main.punteggio == main.punteggioCPU ) { + titolo = main.stringaPareggio; + suonoFinale = "sounds/pareggio.wav"; + } + if ( main.sound ) { + try { + File suono = new File( ClassLoader.getSystemResource( suonoFinale ).toURI() ); + AudioFileFormat aff = AudioSystem.getAudioFileFormat( suono ); + AudioInputStream ais = AudioSystem.getAudioInputStream( suono ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( + Clip.class, + ais.getFormat(), + ( (int) ais.getFrameLength() * + af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + ol.open(ais); + ol.loop( 0 ); + } catch ( Exception ex ) { + System.err.println( e ); + } + } + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, titolo, JOptionPane.PLAIN_MESSAGE ); + } + } + } ); + barraMenu = new JMenuBar(); + file = new JMenu( "File" ); + nuovaPartita = new JMenuItem( main.stringaNuovaPartita ); + nuovaPartita.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + opzioni = new JMenuItem( main.stringaOpzioni ); + opzioni.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 150 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, + (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + } + }); + esci = new JMenuItem( main.stringaEsci ); + esci.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + } + }); + file.add( nuovaPartita ); + file.add( opzioni ); + file.addSeparator(); + file.add( esci ); + puntoInterrogativo = new JMenu( "?" ); + informazioni = new JMenuItem( main.stringaInformazioni ); + informazioni.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + } + } ); + punti = new JMenuItem( main.stringaPunteggio ); + punti.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + "\n" + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.PLAIN_MESSAGE ); + } + } ); + puntoInterrogativo.add( punti ); + puntoInterrogativo.add( informazioni ); + barraMenu.add( file ); + barraMenu.add( puntoInterrogativo ); + setJMenuBar( barraMenu ); + retro1 = new ImageIcon( ClassLoader.getSystemResource( "img/retro1.jpg" ) ); + retro2 = new ImageIcon( ClassLoader.getSystemResource( "img/retro2.jpg" ) ); + for (int i = 0; i < 10; i++) + for (int j = 0; j < 4; j++) + arrayCarte[i][j] = new ImageIcon( ClassLoader.getSystemResource( "img/" + (i+1) + "-" + (j+1) + ".jpg" ) ); + main.mischia(); + pannello2.add( button ); + setLayout( new BorderLayout() ); + add( pannello, BorderLayout.CENTER ); + add( pannello2, BorderLayout.SOUTH ); + addMouseListener( + new MouseAdapter() { + public void mouseClicked ( MouseEvent e ) { + if ( mettiCarta( e.getX(), e.getY() ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + } + } + ); + addWindowListener( + new WindowAdapter() { + public void windowClosing( WindowEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + System.exit( 0 ); + } + } + ); + } + public boolean mettiCarta( int x, int y ) { + if ( !main.toccaAllaCPU && giocata[0] == null ) { + if ( main.sound ) { + try { + double a = Math.random() * 6; + int i = (int) a; + File suono = new File( ClassLoader.getSystemResource( "sounds/" + i + ".wav" ).toURI() ); + AudioFileFormat aff = AudioSystem.getAudioFileFormat( suono ); + AudioInputStream ais = AudioSystem.getAudioInputStream( suono ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( + Clip.class, + ais.getFormat(), + ( (int) ais.getFrameLength() * + af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + ol.open(ais); + ol.loop( 0 ); + } catch ( Exception e ) { + System.err.println( e ); + } + } + if ( x > 230 && x < 290 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[0]; + carteInMano[0] = null; + pannello.repaint(); + return true; + } + if ( x > 300 && x < 360 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[1]; + carteInMano[1] = null; + pannello.repaint(); + return true; + } + if ( x > 370 && x < 430 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[2]; + carteInMano[2] = null; + pannello.repaint(); + return true; + } + } + return false; + } +} + + diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/Main.java b/JBriscola/all_versions/0.2/0.2 Beta 1/src/Main.java new file mode 100755 index 0000000..6e09368 --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2 Beta 1/src/Main.java @@ -0,0 +1,1068 @@ +/* +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 { + public static int semeBriscola, punteggio, punteggioCPU, mano, cartaDaPescare, cartaDaGiocare; + public static boolean toccaAllaCPU = false; + public static boolean CPUHaGiocato = false; + public static boolean haGiocatoPrima = true; + public static boolean sound = true; + public static Frame frame; + public static Color color = new Color( 0, 150, 0 ); + public static String version = "0.2 beta 1"; + 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 stringaNecessarioRiavviare = "E' necessario riavviare JBriscola se sono state\nmodificate impostazioni riguardanti la lingua.\nAlcune parti saranno comunque tradotte prima."; + 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 lang, soundString; + public static void main( String args[] ) { + settaOpzioni(); + 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 ); + } + public void mischia() { + mano = 0; + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + ImageIcon aux; + frame.mazzo = true; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + for ( int i = 0, k = 0; i < 10; i++ ) + for ( int j = 0; j < 4; j++, k++ ) + frame.arrayCarteMescolate[k] = frame.arrayCarte[i][j]; + 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; + } + char auxChar[] = frame.arrayCarteMescolate[39].toString().toCharArray(); + semeBriscola = auxChar[auxChar.length-5] - 49; + 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; + } + public void giocaCPU() { + if ( mano < 16 ) { + 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; + } + 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() ); + } + frame.giocata[1] = frame.carteCPU[cartaDaGiocare]; + frame.carteCPU[cartaDaGiocare] = null; + frame.pannello.repaint(); + CPUHaGiocato = true; + if ( frame.giocata[0] == null ) + toccaAllaCPU = false; + } + public void chiPrende() { + char aux[], auxCPU[]; + aux = frame.giocata[0].toString().toCharArray(); + auxCPU = frame.giocata[1].toString().toCharArray(); + 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 ) ); + } + 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; + } + public void giocatorePrende( boolean giocatore ) { + if ( giocatore ) { + toccaAllaCPU = CPUHaGiocato = false; + haGiocatoPrima = true; + } + else { + toccaAllaCPU = true; + CPUHaGiocato = haGiocatoPrima = false; + } + daiPunti( giocatore ); + if ( toccaAllaCPU ) + giocaCPU(); + } + 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++; + } + } + frame.pannello.repaint(); + frame.repaint(); + } + 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 ) ) ); + } + 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() { + 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() { + if ( frame.giocata[0] == null ) + return false; + int a = -1; + int b = -1; + int c = -1; + boolean laPrimaPuoAndareSopra = false; + boolean laSecondaPuoAndareSopra = false; + boolean laTerzaPuoAndareSopra = false; + char[] auxCPU1 = new char[1024]; + char[] auxCPU2 = new char[1024]; + char[] auxCPU3 = new char[1024]; + char[] aux = frame.giocata[0].toString().toCharArray(); + if ( aux[aux.length-7] - 48 == 1 ) + return false; + 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; + } + 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; + 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; + 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; + } + 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; + } + public static void settaOpzioni() { + lang = "it"; + soundString = "suono=si"; + int r = 0; + int g = 150; + int b = 0; + 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(); + r = scanner.nextInt(); + g = scanner.nextInt(); + b = scanner.nextInt(); + } catch ( NoSuchElementException e ) { } + } + else { + lang = "it"; + soundString = "suono=si"; + r = 0; + g = 150; + b = 0; + } + 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"; + stringaNecessarioRiavviare = "E' necessario riavviare JBriscola se sono state\nmodificate impostazioni riguardanti la lingua\nAlcune parti saranno comunque tradotte prima."; + 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"; + } + 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"; + stringaNecessarioRiavviare = "JBRISCOLAM RVRSVS INCIPERE NECESSE EST\nSI LINGVA PRAELATIONES NOVATAE SVNT.\nALIQVAE ANTE ID VERSA ERVNT"; + 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 = "SONUS"; + stringaPunteggio = "NUMERI"; + stringaSfondo = "COLOR"; + } + 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"; + stringaNecessarioRiavviare = "Se te ha cambia' la lengua te toca\nstusar su e impizar de novo al dugo\nPero' zerte robe le e' belche tradote."; + 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"; + } + 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"; + stringaNecessarioRiavviare = "Se ti ga cambia' la lengua te toca\nstusar su e impizar de novo al zugo\nPero' zerte robe le e' belche tradote."; + 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"; + } + sound = ( soundString.equals( "suono=si" ) ); + color = new Color( r, g, b ); + if ( frame != null ) { + frame.pannello.repaint(); + frame.pannello2.repaint(); + frame.repaint(); + } + } +} diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/OptionFrame.java b/JBriscola/all_versions/0.2/0.2 Beta 1/src/OptionFrame.java new file mode 100755 index 0000000..a93899f --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2 Beta 1/src/OptionFrame.java @@ -0,0 +1,129 @@ +/* +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.util.Formatter; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class OptionFrame extends JFrame { + public static Main main = new Main(); + public static Formatter formatter; + public static JButton ok, annulla, scegliColore; + public static JLabel lingua, sfondo; + public static JComboBox selezionaLingua; + public static JCheckBox suono; + public static JPanel[] pannello = new JPanel[5]; + public OptionFrame() { + super( "JBriscola - " + main.stringaModificaOpzioni ); + ok = new JButton( "OK" ); + ok.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + try { + formatter = new Formatter( "JBriscolaConfig.txt" ); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( OptionFrame.this, main.stringaImpossibileConfigurare + ex ); + } + String lang; + switch ( selezionaLingua.getSelectedIndex() ) { + case 0: + lang = "it"; + break; + case 1: + lang = "la"; + break; + case 2: + lang = "bl"; + break; + case 3: + lang = "bv"; + break; + default: + lang = "it"; + break; + } + String suonosiono; + if ( suono.isSelected() ) + suonosiono = "suono=si"; + else + suonosiono = "suono=no"; + formatter.format( lang ); + formatter.format( "\n" ); + formatter.format( suonosiono ); + formatter.format( "\n" ); + formatter.format( main.color.getRed() + " " + main.color.getGreen() + " " + main.color.getBlue() ); + formatter.close(); + main.settaOpzioni(); + OptionFrame.this.dispose(); + //JOptionPane.showMessageDialog( OptionFrame.this, main.stringaNecessarioRiavviare, "JBriscola 0.1", JOptionPane.INFORMATION_MESSAGE ); + } + }); + annulla = new JButton( main.stringaAnnulla ); + annulla.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + OptionFrame.this.dispose(); + } + }); + scegliColore = new JButton( " " ); + scegliColore.setBackground( main.color ); + scegliColore.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + Color colore = JColorChooser.showDialog( OptionFrame.this, "JBriscola " + main.version, main.color ); + if ( colore != null ) + main.color = colore; + OptionFrame.scegliColore.setBackground( main.color ); + } + } ); + lingua = new JLabel( main.stringaLingua ); + sfondo = new JLabel( main.stringaSfondo ); + String[] lingueDaSelezionare = { main.stringaIt, main.stringaLa, main.stringaBL, main.stringaBV }; + selezionaLingua = new JComboBox( lingueDaSelezionare ); + int linguaPreselezionata = 0; + if ( main.lang.equals( "it" ) ) + linguaPreselezionata = 0; + else if ( main.lang.equals( "la" ) ) + linguaPreselezionata = 1; + else if ( main.lang.equals( "bl" ) ) + linguaPreselezionata = 2; + else if ( main.lang.equals( "bv" ) ) + linguaPreselezionata = 3; + selezionaLingua.setSelectedIndex( linguaPreselezionata ); + suono = new JCheckBox( main.stringaSuono ); + suono.setSelected( main.sound ); + pannello[0] = new JPanel( new GridLayout( 3, 1 ) ); + pannello[1] = new JPanel( new FlowLayout() ); + pannello[2] = new JPanel( new FlowLayout() ); + pannello[3] = new JPanel( new FlowLayout() ); + pannello[4] = new JPanel( new FlowLayout() ); + pannello[4].add( ok ); + pannello[4].add( annulla ); + pannello[3].add( sfondo ); + pannello[3].add( scegliColore ); + pannello[2].add( suono ); + pannello[1].add( lingua ); + pannello[1].add( selezionaLingua ); + pannello[0].add( pannello[1] ); + pannello[0].add( pannello[2] ); + pannello[0].add( pannello[3] ); + add( pannello[0], BorderLayout.CENTER ); + add( pannello[4], BorderLayout.SOUTH ); + } +} diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/Pannello.java b/JBriscola/all_versions/0.2/0.2 Beta 1/src/Pannello.java new file mode 100755 index 0000000..24c6596 --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2 Beta 1/src/Pannello.java @@ -0,0 +1,54 @@ +/* +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 javax.swing.*; +import java.awt.*; + +public class Pannello extends JPanel { + public static Main main; + public static Color color; + public Pannello() { } + public void paint( Graphics g ) { + super.paint( g ); + setBackground( main.color ); + if ( main.frame.ultimaCarta != null ) + main.frame.ultimaCarta.paintIcon( this, g, 50, 180 ); + if ( main.frame.mazzo ) + main.frame.retro2.paintIcon( this, g, 17, 256 ); + if ( main.frame.carteCPU[0] != null ) + main.frame.retro1.paintIcon( this, g, 230, 5 ); + if ( main.frame.carteCPU[1] != null ) + main.frame.retro1.paintIcon( this, g, 300, 5 ); + if ( main.frame.carteCPU[2] != null ) + main.frame.retro1.paintIcon( this, g, 370, 5 ); + if ( main.frame.carteInMano[0] != null ) + main.frame.carteInMano[0].paintIcon( this, g, 230, 340 ); + if ( main.frame.carteInMano[1] != null ) + main.frame.carteInMano[1].paintIcon( this, g, 300, 340 ); + if ( main.frame.carteInMano[2] != null ) + main.frame.carteInMano[2].paintIcon( this, g, 370, 340 ); + if ( main.frame.giocata[0] != null ) + main.frame.giocata[0].paintIcon( this, g, 250, 200 ); + if ( main.frame.giocata[1] != null ) + main.frame.giocata[1].paintIcon( this, g, 325, 150 ); + } +} + diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-1.jpg new file mode 100755 index 0000000..ae43510 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-2.jpg new file mode 100755 index 0000000..3f7c75a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-3.jpg new file mode 100755 index 0000000..9e1ead7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-4.jpg new file mode 100755 index 0000000..710f879 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/1-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-1.jpg new file mode 100755 index 0000000..9aba45a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-2.jpg new file mode 100755 index 0000000..037eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-3.jpg new file mode 100755 index 0000000..8780b72 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-4.jpg new file mode 100755 index 0000000..587dc0f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/10-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-1.jpg new file mode 100755 index 0000000..5dcb7db Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-2.jpg new file mode 100755 index 0000000..ea9eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-3.jpg new file mode 100755 index 0000000..8cb22dd Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-4.jpg new file mode 100755 index 0000000..b3e7898 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/2-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-1.jpg new file mode 100755 index 0000000..dcb435c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-2.jpg new file mode 100755 index 0000000..1e5b6ec Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-3.jpg new file mode 100755 index 0000000..9202cfe Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-4.jpg new file mode 100755 index 0000000..5436a8d Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/3-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-1.jpg new file mode 100755 index 0000000..3bab6d5 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-2.jpg new file mode 100755 index 0000000..b4901a6 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-3.jpg new file mode 100755 index 0000000..d754ad8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-4.jpg new file mode 100755 index 0000000..3a54b96 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/4-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-1.jpg new file mode 100755 index 0000000..3f7ba1f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-2.jpg new file mode 100755 index 0000000..fcacb75 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-3.jpg new file mode 100755 index 0000000..ce32f9f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-4.jpg new file mode 100755 index 0000000..b86b09a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/5-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-1.jpg new file mode 100755 index 0000000..f90cd81 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-2.jpg new file mode 100755 index 0000000..cf2a67a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-3.jpg new file mode 100755 index 0000000..2cd2fe2 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-4.jpg new file mode 100755 index 0000000..73f410f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/6-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-1.jpg new file mode 100755 index 0000000..08cd397 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-2.jpg new file mode 100755 index 0000000..a168ff8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-3.jpg new file mode 100755 index 0000000..5cda411 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-4.jpg new file mode 100755 index 0000000..5d63229 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/7-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-1.jpg new file mode 100755 index 0000000..a6faa7b Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-2.jpg new file mode 100755 index 0000000..0d9edbb Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-3.jpg new file mode 100755 index 0000000..91f8354 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-4.jpg new file mode 100755 index 0000000..cc0089c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/8-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-1.jpg new file mode 100755 index 0000000..be9c6bf Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-2.jpg new file mode 100755 index 0000000..e25da4c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-3.jpg new file mode 100755 index 0000000..cd384f8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-4.jpg new file mode 100755 index 0000000..441210e Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/9-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/carte.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/carte.jpg new file mode 100755 index 0000000..838ffac Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/carte.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/retro1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/retro1.jpg new file mode 100755 index 0000000..9651b06 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/retro1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/retro2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/retro2.jpg new file mode 100755 index 0000000..c5d3925 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/img/retro2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/0.wav b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/0.wav new file mode 100755 index 0000000..67d9abd Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/0.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/1.wav b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/1.wav new file mode 100755 index 0000000..9357c97 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/1.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/2.wav b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/2.wav new file mode 100755 index 0000000..92b1541 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/2.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/3.wav b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/3.wav new file mode 100755 index 0000000..45a6e42 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/3.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/4.wav b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/4.wav new file mode 100755 index 0000000..1f7ec90 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/4.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/5.wav b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/5.wav new file mode 100755 index 0000000..3627f96 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/5.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/pareggio.wav b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/pareggio.wav new file mode 100755 index 0000000..ff978e6 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/pareggio.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/perso.wav b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/perso.wav new file mode 100755 index 0000000..a454ba4 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/perso.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/vinto.wav b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/vinto.wav new file mode 100755 index 0000000..a6f3ac5 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 1/src/sounds/vinto.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/Frame.java b/JBriscola/all_versions/0.2/0.2 Beta 2/src/Frame.java new file mode 100755 index 0000000..c7b6c36 --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2 Beta 2/src/Frame.java @@ -0,0 +1,243 @@ +/* +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 javax.swing.*; +import javax.sound.sampled.*; +import java.io.*; +import java.awt.*; +import java.awt.event.*; + +public class Frame extends JFrame { + public static boolean mazzo; + public static Main main; + public static Pannello pannello; + public static JPanel pannello2; + public static JButton button; + public static JMenuBar barraMenu; + public static JMenu file, puntoInterrogativo; + public static JMenuItem nuovaPartita, opzioni, esci, informazioni, punti; + public static ImageIcon retro1, retro2, ultimaCarta; + public static ImageIcon[] giocata = new ImageIcon[2]; + public static ImageIcon[] carteInMano = new ImageIcon[3]; + public static ImageIcon[] carteCPU = new ImageIcon[3]; + public static ImageIcon[] arrayCarteMescolate = new ImageIcon[40]; + public static ImageIcon[][] arrayCarte = new ImageIcon[10][4]; + public Frame() { + super( "Tronto's JBriscola " + main.version ); + mazzo = true; + main = new Main(); + pannello = new Pannello(); + pannello2 = new JPanel( new FlowLayout() ); + button = new JButton( main.stringaBottonePrendi ); + button.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( giocata[0] != null && giocata[1] != null ) + main.mano++; + try { + main.chiPrende(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaPrimaGioca, "JBriscola " + main.version, JOptionPane.WARNING_MESSAGE ); + } + if ( main.mano == 16 ) + JOptionPane.showMessageDialog( Frame.this, main.stringaUltime4, "JBriscola " + main.version, JOptionPane.INFORMATION_MESSAGE ); + if ( main.mano == 17 ) { + mazzo = false; + ultimaCarta = null; + pannello.repaint(); + Frame.this.repaint(); + } + if ( main.mano == 20 ) { + String titolo = ""; + String suonoFinale = ""; + if ( main.punteggio > main.punteggioCPU ) { + titolo = main.stringaVinto; + suonoFinale = "sounds/perso.wav"; + } + if ( main.punteggio < main.punteggioCPU ) { + titolo = main.stringaPerso; + suonoFinale = "sounds/vinto.wav"; + } + if ( main.punteggio == main.punteggioCPU ) { + titolo = main.stringaPareggio; + suonoFinale = "sounds/pareggio.wav"; + } + if ( main.sound ) { + try { + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource( suonoFinale ) ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource( suonoFinale ) ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( + Clip.class, + ais.getFormat(), + ( (int) ais.getFrameLength() * + af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + ol.open(ais); + ol.loop( 0 ); + } catch ( Exception ex ) { + System.err.println( e ); + } + } + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, titolo, JOptionPane.PLAIN_MESSAGE ); + } + } + } ); + barraMenu = new JMenuBar(); + file = new JMenu( "File" ); + nuovaPartita = new JMenuItem( main.stringaNuovaPartita ); + nuovaPartita.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + opzioni = new JMenuItem( main.stringaOpzioni ); + opzioni.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 150 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, + (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + } + }); + esci = new JMenuItem( main.stringaEsci ); + esci.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + } + }); + file.add( nuovaPartita ); + file.add( opzioni ); + file.addSeparator(); + file.add( esci ); + puntoInterrogativo = new JMenu( "?" ); + informazioni = new JMenuItem( main.stringaInformazioni ); + informazioni.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + } + } ); + punti = new JMenuItem( main.stringaPunteggio ); + punti.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + "\n" + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.PLAIN_MESSAGE ); + } + } ); + puntoInterrogativo.add( punti ); + puntoInterrogativo.add( informazioni ); + barraMenu.add( file ); + barraMenu.add( puntoInterrogativo ); + setJMenuBar( barraMenu ); + retro1 = new ImageIcon( ClassLoader.getSystemResource( "img/retro1.jpg" ) ); + retro2 = new ImageIcon( ClassLoader.getSystemResource( "img/retro2.jpg" ) ); + for (int i = 0; i < 10; i++) + for (int j = 0; j < 4; j++) + arrayCarte[i][j] = new ImageIcon( ClassLoader.getSystemResource( "img/" + (i+1) + "-" + (j+1) + ".jpg" ) ); + main.mischia(); + pannello2.add( button ); + setLayout( new BorderLayout() ); + add( pannello, BorderLayout.CENTER ); + add( pannello2, BorderLayout.SOUTH ); + addMouseListener( + new MouseAdapter() { + public void mouseClicked ( MouseEvent e ) { + if ( mettiCarta( e.getX(), e.getY() ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + } + } + ); + addWindowListener( + new WindowAdapter() { + public void windowClosing( WindowEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + System.exit( 0 ); + } + } + ); + } + public boolean mettiCarta( int x, int y ) { + if ( !main.toccaAllaCPU && giocata[0] == null ) { + if ( main.sound && + ( ( x > 230 && x < 290 && y > 340 && y < 566 ) || + ( x > 300 && x < 360 && y > 340 && y < 566 ) || + ( x > 370 && x < 430 && y > 340 && y < 566 ) ) ) { + try { + double a = Math.random() * 6; + int i = (int) a; + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( + Clip.class, + ais.getFormat(), + ( (int) ais.getFrameLength() * + af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + ol.open(ais); + ol.loop( 0 ); + } catch ( Exception e ) { + System.err.println( e ); + } + } + if ( x > 230 && x < 290 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[0]; + carteInMano[0] = null; + pannello.repaint(); + return true; + } + if ( x > 300 && x < 360 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[1]; + carteInMano[1] = null; + pannello.repaint(); + return true; + } + if ( x > 370 && x < 430 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[2]; + carteInMano[2] = null; + pannello.repaint(); + return true; + } + } + return false; + } +} + + diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/Main.java b/JBriscola/all_versions/0.2/0.2 Beta 2/src/Main.java new file mode 100755 index 0000000..344fa20 --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2 Beta 2/src/Main.java @@ -0,0 +1,1069 @@ +/* +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 { + public static int semeBriscola, punteggio, punteggioCPU, mano, cartaDaPescare, cartaDaGiocare; + public static boolean toccaAllaCPU = false; + public static boolean CPUHaGiocato = false; + public static boolean haGiocatoPrima = true; + public static boolean sound = true; + public static Frame frame; + public static Color color = new Color( 0, 150, 0 ); + public static String version = "0.2 Beta 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 stringaNecessarioRiavviare = "E' necessario riavviare JBriscola se sono state\nmodificate impostazioni riguardanti la lingua.\nAlcune parti saranno comunque tradotte prima."; + 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 lang, soundString; + public static File[] suoni = new File[6]; + public static File suonoVinto, suonoPerso, suonoPareggio; + public static void main( String args[] ) { + settaOpzioni(); + 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 ); + } + public void mischia() { + mano = 0; + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + ImageIcon aux; + frame.mazzo = true; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + for ( int i = 0, k = 0; i < 10; i++ ) + for ( int j = 0; j < 4; j++, k++ ) + frame.arrayCarteMescolate[k] = frame.arrayCarte[i][j]; + 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; + } + char auxChar[] = frame.arrayCarteMescolate[39].toString().toCharArray(); + semeBriscola = auxChar[auxChar.length-5] - 49; + 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; + } + public void giocaCPU() { + if ( mano < 16 ) { + 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; + } + 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() ); + } + frame.giocata[1] = frame.carteCPU[cartaDaGiocare]; + frame.carteCPU[cartaDaGiocare] = null; + frame.pannello.repaint(); + CPUHaGiocato = true; + if ( frame.giocata[0] == null ) + toccaAllaCPU = false; + } + public void chiPrende() { + char aux[], auxCPU[]; + aux = frame.giocata[0].toString().toCharArray(); + auxCPU = frame.giocata[1].toString().toCharArray(); + 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 ) ); + } + 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; + } + public void giocatorePrende( boolean giocatore ) { + if ( giocatore ) { + toccaAllaCPU = CPUHaGiocato = false; + haGiocatoPrima = true; + } + else { + toccaAllaCPU = true; + CPUHaGiocato = haGiocatoPrima = false; + } + daiPunti( giocatore ); + if ( toccaAllaCPU ) + giocaCPU(); + } + 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++; + } + } + frame.pannello.repaint(); + frame.repaint(); + } + 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 ) ) ); + } + 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() { + 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() { + if ( frame.giocata[0] == null ) + return false; + int a = -1; + int b = -1; + int c = -1; + boolean laPrimaPuoAndareSopra = false; + boolean laSecondaPuoAndareSopra = false; + boolean laTerzaPuoAndareSopra = false; + char[] auxCPU1 = new char[1024]; + char[] auxCPU2 = new char[1024]; + char[] auxCPU3 = new char[1024]; + char[] aux = frame.giocata[0].toString().toCharArray(); + if ( aux[aux.length-7] - 48 == 1 ) + return false; + 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; + } + 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; + 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; + 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; + } + 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; + } + public static void settaOpzioni() { + lang = "it"; + soundString = "suono=si"; + int r = 0; + int g = 150; + int b = 0; + 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(); + r = scanner.nextInt(); + g = scanner.nextInt(); + b = scanner.nextInt(); + } catch ( NoSuchElementException e ) { } + } + else { + lang = "it"; + soundString = "suono=si"; + r = 0; + g = 150; + b = 0; + } + 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"; + stringaNecessarioRiavviare = "E' necessario riavviare JBriscola se sono state\nmodificate impostazioni riguardanti la lingua\nAlcune parti saranno comunque tradotte prima."; + 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"; + } + 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"; + stringaNecessarioRiavviare = "JBRISCOLAM RVRSVS INCIPERE NECESSE EST\nSI LINGVA PRAELATIONES NOVATAE SVNT.\nALIQVAE ANTE ID VERSA ERVNT"; + 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 = "SONUS"; + stringaPunteggio = "NUMERI"; + stringaSfondo = "COLOR"; + } + 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"; + stringaNecessarioRiavviare = "Se te ha cambia' la lengua te toca\nstusar su e impizar de novo al dugo\nPero' zerte robe le e' belche tradote."; + 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"; + } + 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"; + stringaNecessarioRiavviare = "Se ti ga cambia' la lengua te toca\nstusar su e impizar de novo al zugo\nPero' zerte robe le e' belche tradote."; + 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"; + } + sound = ( soundString.equals( "suono=si" ) ); + color = new Color( r, g, b ); + if ( frame != null ) { + frame.pannello.repaint(); + frame.pannello2.repaint(); + frame.repaint(); + } + } +} diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/OptionFrame.java b/JBriscola/all_versions/0.2/0.2 Beta 2/src/OptionFrame.java new file mode 100755 index 0000000..a93899f --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2 Beta 2/src/OptionFrame.java @@ -0,0 +1,129 @@ +/* +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.util.Formatter; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class OptionFrame extends JFrame { + public static Main main = new Main(); + public static Formatter formatter; + public static JButton ok, annulla, scegliColore; + public static JLabel lingua, sfondo; + public static JComboBox selezionaLingua; + public static JCheckBox suono; + public static JPanel[] pannello = new JPanel[5]; + public OptionFrame() { + super( "JBriscola - " + main.stringaModificaOpzioni ); + ok = new JButton( "OK" ); + ok.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + try { + formatter = new Formatter( "JBriscolaConfig.txt" ); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( OptionFrame.this, main.stringaImpossibileConfigurare + ex ); + } + String lang; + switch ( selezionaLingua.getSelectedIndex() ) { + case 0: + lang = "it"; + break; + case 1: + lang = "la"; + break; + case 2: + lang = "bl"; + break; + case 3: + lang = "bv"; + break; + default: + lang = "it"; + break; + } + String suonosiono; + if ( suono.isSelected() ) + suonosiono = "suono=si"; + else + suonosiono = "suono=no"; + formatter.format( lang ); + formatter.format( "\n" ); + formatter.format( suonosiono ); + formatter.format( "\n" ); + formatter.format( main.color.getRed() + " " + main.color.getGreen() + " " + main.color.getBlue() ); + formatter.close(); + main.settaOpzioni(); + OptionFrame.this.dispose(); + //JOptionPane.showMessageDialog( OptionFrame.this, main.stringaNecessarioRiavviare, "JBriscola 0.1", JOptionPane.INFORMATION_MESSAGE ); + } + }); + annulla = new JButton( main.stringaAnnulla ); + annulla.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + OptionFrame.this.dispose(); + } + }); + scegliColore = new JButton( " " ); + scegliColore.setBackground( main.color ); + scegliColore.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + Color colore = JColorChooser.showDialog( OptionFrame.this, "JBriscola " + main.version, main.color ); + if ( colore != null ) + main.color = colore; + OptionFrame.scegliColore.setBackground( main.color ); + } + } ); + lingua = new JLabel( main.stringaLingua ); + sfondo = new JLabel( main.stringaSfondo ); + String[] lingueDaSelezionare = { main.stringaIt, main.stringaLa, main.stringaBL, main.stringaBV }; + selezionaLingua = new JComboBox( lingueDaSelezionare ); + int linguaPreselezionata = 0; + if ( main.lang.equals( "it" ) ) + linguaPreselezionata = 0; + else if ( main.lang.equals( "la" ) ) + linguaPreselezionata = 1; + else if ( main.lang.equals( "bl" ) ) + linguaPreselezionata = 2; + else if ( main.lang.equals( "bv" ) ) + linguaPreselezionata = 3; + selezionaLingua.setSelectedIndex( linguaPreselezionata ); + suono = new JCheckBox( main.stringaSuono ); + suono.setSelected( main.sound ); + pannello[0] = new JPanel( new GridLayout( 3, 1 ) ); + pannello[1] = new JPanel( new FlowLayout() ); + pannello[2] = new JPanel( new FlowLayout() ); + pannello[3] = new JPanel( new FlowLayout() ); + pannello[4] = new JPanel( new FlowLayout() ); + pannello[4].add( ok ); + pannello[4].add( annulla ); + pannello[3].add( sfondo ); + pannello[3].add( scegliColore ); + pannello[2].add( suono ); + pannello[1].add( lingua ); + pannello[1].add( selezionaLingua ); + pannello[0].add( pannello[1] ); + pannello[0].add( pannello[2] ); + pannello[0].add( pannello[3] ); + add( pannello[0], BorderLayout.CENTER ); + add( pannello[4], BorderLayout.SOUTH ); + } +} diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/Pannello.java b/JBriscola/all_versions/0.2/0.2 Beta 2/src/Pannello.java new file mode 100755 index 0000000..24c6596 --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2 Beta 2/src/Pannello.java @@ -0,0 +1,54 @@ +/* +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 javax.swing.*; +import java.awt.*; + +public class Pannello extends JPanel { + public static Main main; + public static Color color; + public Pannello() { } + public void paint( Graphics g ) { + super.paint( g ); + setBackground( main.color ); + if ( main.frame.ultimaCarta != null ) + main.frame.ultimaCarta.paintIcon( this, g, 50, 180 ); + if ( main.frame.mazzo ) + main.frame.retro2.paintIcon( this, g, 17, 256 ); + if ( main.frame.carteCPU[0] != null ) + main.frame.retro1.paintIcon( this, g, 230, 5 ); + if ( main.frame.carteCPU[1] != null ) + main.frame.retro1.paintIcon( this, g, 300, 5 ); + if ( main.frame.carteCPU[2] != null ) + main.frame.retro1.paintIcon( this, g, 370, 5 ); + if ( main.frame.carteInMano[0] != null ) + main.frame.carteInMano[0].paintIcon( this, g, 230, 340 ); + if ( main.frame.carteInMano[1] != null ) + main.frame.carteInMano[1].paintIcon( this, g, 300, 340 ); + if ( main.frame.carteInMano[2] != null ) + main.frame.carteInMano[2].paintIcon( this, g, 370, 340 ); + if ( main.frame.giocata[0] != null ) + main.frame.giocata[0].paintIcon( this, g, 250, 200 ); + if ( main.frame.giocata[1] != null ) + main.frame.giocata[1].paintIcon( this, g, 325, 150 ); + } +} + diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-1.jpg new file mode 100755 index 0000000..ae43510 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-2.jpg new file mode 100755 index 0000000..3f7c75a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-3.jpg new file mode 100755 index 0000000..9e1ead7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-4.jpg new file mode 100755 index 0000000..710f879 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/1-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-1.jpg new file mode 100755 index 0000000..9aba45a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-2.jpg new file mode 100755 index 0000000..037eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-3.jpg new file mode 100755 index 0000000..8780b72 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-4.jpg new file mode 100755 index 0000000..587dc0f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/10-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-1.jpg new file mode 100755 index 0000000..5dcb7db Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-2.jpg new file mode 100755 index 0000000..ea9eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-3.jpg new file mode 100755 index 0000000..8cb22dd Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-4.jpg new file mode 100755 index 0000000..b3e7898 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/2-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-1.jpg new file mode 100755 index 0000000..dcb435c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-2.jpg new file mode 100755 index 0000000..1e5b6ec Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-3.jpg new file mode 100755 index 0000000..9202cfe Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-4.jpg new file mode 100755 index 0000000..5436a8d Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/3-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-1.jpg new file mode 100755 index 0000000..3bab6d5 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-2.jpg new file mode 100755 index 0000000..b4901a6 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-3.jpg new file mode 100755 index 0000000..d754ad8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-4.jpg new file mode 100755 index 0000000..3a54b96 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/4-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-1.jpg new file mode 100755 index 0000000..3f7ba1f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-2.jpg new file mode 100755 index 0000000..fcacb75 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-3.jpg new file mode 100755 index 0000000..ce32f9f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-4.jpg new file mode 100755 index 0000000..b86b09a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/5-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-1.jpg new file mode 100755 index 0000000..f90cd81 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-2.jpg new file mode 100755 index 0000000..cf2a67a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-3.jpg new file mode 100755 index 0000000..2cd2fe2 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-4.jpg new file mode 100755 index 0000000..73f410f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/6-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-1.jpg new file mode 100755 index 0000000..08cd397 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-2.jpg new file mode 100755 index 0000000..a168ff8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-3.jpg new file mode 100755 index 0000000..5cda411 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-4.jpg new file mode 100755 index 0000000..5d63229 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/7-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-1.jpg new file mode 100755 index 0000000..a6faa7b Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-2.jpg new file mode 100755 index 0000000..0d9edbb Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-3.jpg new file mode 100755 index 0000000..91f8354 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-4.jpg new file mode 100755 index 0000000..cc0089c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/8-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-1.jpg new file mode 100755 index 0000000..be9c6bf Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-2.jpg new file mode 100755 index 0000000..e25da4c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-3.jpg new file mode 100755 index 0000000..cd384f8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-4.jpg new file mode 100755 index 0000000..441210e Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/9-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/carte.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/carte.jpg new file mode 100755 index 0000000..838ffac Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/carte.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/retro1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/retro1.jpg new file mode 100755 index 0000000..9651b06 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/retro1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/retro2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/retro2.jpg new file mode 100755 index 0000000..c5d3925 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/img/retro2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/0.wav b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/0.wav new file mode 100755 index 0000000..67d9abd Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/0.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/1.wav b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/1.wav new file mode 100755 index 0000000..9357c97 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/1.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/2.wav b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/2.wav new file mode 100755 index 0000000..92b1541 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/2.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/3.wav b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/3.wav new file mode 100755 index 0000000..45a6e42 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/3.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/4.wav b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/4.wav new file mode 100755 index 0000000..1f7ec90 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/4.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/5.wav b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/5.wav new file mode 100755 index 0000000..3627f96 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/5.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/pareggio.wav b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/pareggio.wav new file mode 100755 index 0000000..ff978e6 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/pareggio.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/perso.wav b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/perso.wav new file mode 100755 index 0000000..a454ba4 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/perso.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/vinto.wav b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/vinto.wav new file mode 100755 index 0000000..a6f3ac5 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 2/src/sounds/vinto.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/Frame.java b/JBriscola/all_versions/0.2/0.2 Beta 3/src/Frame.java new file mode 100755 index 0000000..7c5efbb --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2 Beta 3/src/Frame.java @@ -0,0 +1,306 @@ +/* +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 javax.swing.*; +import javax.sound.sampled.*; +import java.io.*; +import java.awt.*; +import java.awt.event.*; + +public class Frame extends JFrame { + public static boolean mazzo; + public static Main main; + public static Pannello pannello; + public static JPanel pannello2; + public static JButton button; + public static JMenuBar barraMenu; + public static JMenu file, puntoInterrogativo; + public static JMenuItem nuovaPartita, opzioni, esci, informazioni, punti; + public static ImageIcon retro1, retro2, ultimaCarta; + public static ImageIcon[] giocata = new ImageIcon[2]; + public static ImageIcon[] carteInMano = new ImageIcon[3]; + public static ImageIcon[] carteCPU = new ImageIcon[3]; + public static ImageIcon[] arrayCarteMescolate = new ImageIcon[40]; + public static ImageIcon[][] arrayCarte = new ImageIcon[10][4]; + public Frame() { + super( "Tronto's JBriscola " + main.version ); + mazzo = true; + main = new Main(); + pannello = new Pannello(); + pannello2 = new JPanel( new FlowLayout() ); + button = new JButton( main.stringaBottonePrendi ); + button.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( giocata[0] != null && giocata[1] != null ) + main.mano++; + try { + main.chiPrende(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaPrimaGioca, "JBriscola " + main.version, JOptionPane.WARNING_MESSAGE ); + } + if ( main.mano == 16 ) + JOptionPane.showMessageDialog( Frame.this, main.stringaUltime4, "JBriscola " + main.version, JOptionPane.INFORMATION_MESSAGE ); + if ( main.mano == 17 ) { + mazzo = false; + ultimaCarta = null; + pannello.repaint(); + Frame.this.repaint(); + } + if ( main.mano == 20 ) { + String titolo = ""; + String suonoFinale = ""; + if ( main.punteggio > main.punteggioCPU ) { + titolo = main.stringaVinto; + suonoFinale = "sounds/perso.wav"; + } + if ( main.punteggio < main.punteggioCPU ) { + titolo = main.stringaPerso; + suonoFinale = "sounds/vinto.wav"; + } + if ( main.punteggio == main.punteggioCPU ) { + titolo = main.stringaPareggio; + suonoFinale = "sounds/pareggio.wav"; + } + if ( main.sound ) { + try { + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource( suonoFinale ) ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource( suonoFinale ) ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( + Clip.class, + ais.getFormat(), + ( (int) ais.getFrameLength() * + af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + ol.open(ais); + ol.loop( 0 ); + } catch ( Exception ex ) { + System.err.println( e ); + } + } + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, titolo, JOptionPane.PLAIN_MESSAGE ); + } + } + } ); + button.addKeyListener( new KeyAdapter() { + public void keyReleased( KeyEvent key ) { + switch ( key.getKeyCode() ) { + case KeyEvent.VK_1: + if ( mettiCarta( 231, 500 ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + break; + case KeyEvent.VK_2: + if ( mettiCarta( 301, 500 ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + break; + case KeyEvent.VK_3: + if ( mettiCarta( 371, 500 ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + break; + case KeyEvent.VK_F1: + JOptionPane.showMessageDialog( Frame.this, main.stringaTasti2, "JBriscola - " + main.stringaTasti, JOptionPane.INFORMATION_MESSAGE ); + break; + case KeyEvent.VK_F2: + if ( main.mano == 20 ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + } + break; + case KeyEvent.VK_F3: + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 150 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, + (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + break; + case KeyEvent.VK_F4: + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + "\n" + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.PLAIN_MESSAGE ); + break; + case KeyEvent.VK_F5: + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + break; + case KeyEvent.VK_Q: + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + break; + } + } + }); + barraMenu = new JMenuBar(); + file = new JMenu( "File" ); + nuovaPartita = new JMenuItem( main.stringaNuovaPartita ); + nuovaPartita.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + opzioni = new JMenuItem( main.stringaOpzioni ); + opzioni.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 150 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, + (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + } + }); + esci = new JMenuItem( main.stringaEsci ); + esci.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + } + }); + file.add( nuovaPartita ); + file.add( opzioni ); + file.addSeparator(); + file.add( esci ); + puntoInterrogativo = new JMenu( "?" ); + informazioni = new JMenuItem( main.stringaInformazioni ); + informazioni.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + } + } ); + punti = new JMenuItem( main.stringaPunteggio ); + punti.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + "\n" + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.PLAIN_MESSAGE ); + } + } ); + puntoInterrogativo.add( punti ); + puntoInterrogativo.add( informazioni ); + barraMenu.add( file ); + barraMenu.add( puntoInterrogativo ); + setJMenuBar( barraMenu ); + retro1 = new ImageIcon( ClassLoader.getSystemResource( "img/retro1.jpg" ) ); + retro2 = new ImageIcon( ClassLoader.getSystemResource( "img/retro2.jpg" ) ); + for (int i = 0; i < 10; i++) + for (int j = 0; j < 4; j++) + arrayCarte[i][j] = new ImageIcon( ClassLoader.getSystemResource( "img/" + (i+1) + "-" + (j+1) + ".jpg" ) ); + main.mischia(); + pannello2.add( button ); + setLayout( new BorderLayout() ); + add( pannello, BorderLayout.CENTER ); + add( pannello2, BorderLayout.SOUTH ); + addMouseListener( + new MouseAdapter() { + public void mouseClicked ( MouseEvent e ) { + if ( mettiCarta( e.getX(), e.getY() ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + } + } + ); + addWindowListener( + new WindowAdapter() { + public void windowClosing( WindowEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + System.exit( 0 ); + } + } + ); + } + public boolean mettiCarta( int x, int y ) { + if ( !main.toccaAllaCPU && giocata[0] == null ) { + if ( main.sound && + ( ( x > 230 && x < 290 && y > 340 && y < 566 && carteInMano[0] != null ) || + ( x > 300 && x < 360 && y > 340 && y < 566 && carteInMano[1] != null ) || + ( x > 370 && x < 430 && y > 340 && y < 566 && carteInMano[2] != null ) ) ) { + try { + double a = Math.random() * 6; + int i = (int) a; + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( + Clip.class, + ais.getFormat(), + ( (int) ais.getFrameLength() * + af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + ol.open(ais); + ol.loop( 0 ); + } catch ( Exception e ) { + System.err.println( e ); + } + } + if ( x > 230 && x < 290 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[0]; + carteInMano[0] = null; + pannello.repaint(); + return true; + } + if ( x > 300 && x < 360 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[1]; + carteInMano[1] = null; + pannello.repaint(); + return true; + } + if ( x > 370 && x < 430 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[2]; + carteInMano[2] = null; + pannello.repaint(); + return true; + } + } + return false; + } +} + + diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/Main.java b/JBriscola/all_versions/0.2/0.2 Beta 3/src/Main.java new file mode 100755 index 0000000..0994b6a --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2 Beta 3/src/Main.java @@ -0,0 +1,1080 @@ +/* +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 { + public static int semeBriscola, punteggio, punteggioCPU, mano, cartaDaPescare, cartaDaGiocare; + public static boolean toccaAllaCPU = false; + public static boolean CPUHaGiocato = false; + public static boolean haGiocatoPrima = true; + public static boolean sound = true; + public static Frame frame; + public static Color color = new Color( 0, 150, 0 ); + public static String version = "0.2 Beta 3"; + 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 stringaNecessarioRiavviare = "E' necessario riavviare JBriscola se sono state\nmodificate impostazioni riguardanti la lingua.\nAlcune parti saranno comunque tradotte prima."; + 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 stringaTasti2 = "1 Gioca la prima carta\n2 Gioca la seconda carta\n3 Gioca la terza carta\nF1 Visualizza questo messaggio\nF2 Nuova partita\nF3 Opzioni\nF4 Visualizza Punteggio\nF5 Informazioni\nq Esci"; + public static String lang, soundString; + public static File[] suoni = new File[6]; + public static File suonoVinto, suonoPerso, suonoPareggio; + public static void main( String args[] ) { + settaOpzioni(); + 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 ); + } + public void mischia() { + mano = 0; + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + ImageIcon aux; + frame.mazzo = true; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + for ( int i = 0, k = 0; i < 10; i++ ) + for ( int j = 0; j < 4; j++, k++ ) + frame.arrayCarteMescolate[k] = frame.arrayCarte[i][j]; + 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; + } + char auxChar[] = frame.arrayCarteMescolate[39].toString().toCharArray(); + semeBriscola = auxChar[auxChar.length-5] - 49; + 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; + } + public void giocaCPU() { + if ( mano < 16 ) { + 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; + } + 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() ); + } + frame.giocata[1] = frame.carteCPU[cartaDaGiocare]; + frame.carteCPU[cartaDaGiocare] = null; + frame.pannello.repaint(); + CPUHaGiocato = true; + if ( frame.giocata[0] == null ) + toccaAllaCPU = false; + } + public void chiPrende() { + char aux[], auxCPU[]; + aux = frame.giocata[0].toString().toCharArray(); + auxCPU = frame.giocata[1].toString().toCharArray(); + 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 ) ); + } + 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; + } + public void giocatorePrende( boolean giocatore ) { + if ( giocatore ) { + toccaAllaCPU = CPUHaGiocato = false; + haGiocatoPrima = true; + } + else { + toccaAllaCPU = true; + CPUHaGiocato = haGiocatoPrima = false; + } + daiPunti( giocatore ); + if ( toccaAllaCPU ) + giocaCPU(); + } + 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++; + } + } + frame.pannello.repaint(); + frame.repaint(); + } + 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 ) ) ); + } + 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() { + 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() { + if ( frame.giocata[0] == null ) + return false; + int a = -1; + int b = -1; + int c = -1; + boolean laPrimaPuoAndareSopra = false; + boolean laSecondaPuoAndareSopra = false; + boolean laTerzaPuoAndareSopra = false; + char[] auxCPU1 = new char[1024]; + char[] auxCPU2 = new char[1024]; + char[] auxCPU3 = new char[1024]; + char[] aux = frame.giocata[0].toString().toCharArray(); + if ( aux[aux.length-7] - 48 == 1 ) + return false; + 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; + } + 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; + 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; + 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; + } + 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; + } + public static void settaOpzioni() { + lang = "it"; + soundString = "suono=si"; + int r = 0; + int g = 150; + int b = 0; + 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(); + r = scanner.nextInt(); + g = scanner.nextInt(); + b = scanner.nextInt(); + } catch ( NoSuchElementException e ) { } + } + else { + lang = "it"; + soundString = "suono=si"; + r = 0; + g = 150; + b = 0; + } + 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"; + stringaNecessarioRiavviare = "E' necessario riavviare JBriscola se sono state\nmodificate impostazioni riguardanti la lingua\nAlcune parti saranno comunque tradotte prima."; + 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"; + stringaTasti2 = "1 Gioca la prima carta\n2 Gioca la seconda carta\n3 Gioca la terza carta\nF1 Visualizza questo messaggio\nF2 Nuova partita\nF3 Opzioni\nF4 Visualizza Punteggio\nF5 Informazioni\nq Esci"; + } + 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"; + stringaNecessarioRiavviare = "JBRISCOLAM RVRSVS INCIPERE NECESSE EST\nSI LINGVA PRAELATIONES NOVATAE SVNT.\nALIQVAE ANTE ID VERSA ERVNT"; + 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"; + stringaTasti2 = "1 PONE CHARTAM PRIMAM\n2 PONE CHARTAM SECUNDAM\n3 PONE CHARTAM TERTIAM\nF1 HEAC INFORMATIONES\nF2 NOVA LVSO\nF3 OPTIONES\nF4 NVMERI\nF5 INFORMATIONES\nq EXIRE"; + } + 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"; + stringaNecessarioRiavviare = "Se te ha cambia' la lengua te toca\nstusar su e impizar de novo al dugo\nPero' zerte robe le e' belche tradote."; + 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"; + stringaTasti2 = "1 Duga la prima carta\n2 Duga la seconda carta\n3 Duga la terza carta\nF1 Tasti rapidi\nF2 Taca n'altra partida\nF3 Opzioni\nF4 Varda i punti\nF5 Informazioni\nq Stusa su"; + } + 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"; + stringaNecessarioRiavviare = "Se ti ga cambia' la lengua te toca\nstusar su e impizar de novo al zugo\nPero' zerte robe le e' belche tradote."; + 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"; + stringaTasti2 = "1 Zuga la prima carta\n2 Zuga la seconda carta\n3 Zuga la terza carta\nF1 Tasti rapidi\nF2 N'altra partida\nF3 Opzioni\nF4 Varda i punti\nF5 Informazioni\nq Stusa su"; + + } + sound = ( soundString.equals( "suono=si" ) ); + color = new Color( r, g, b ); + if ( frame != null ) { + frame.pannello.repaint(); + frame.pannello2.repaint(); + frame.repaint(); + } + } +} diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/OptionFrame.java b/JBriscola/all_versions/0.2/0.2 Beta 3/src/OptionFrame.java new file mode 100755 index 0000000..a93899f --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2 Beta 3/src/OptionFrame.java @@ -0,0 +1,129 @@ +/* +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.util.Formatter; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class OptionFrame extends JFrame { + public static Main main = new Main(); + public static Formatter formatter; + public static JButton ok, annulla, scegliColore; + public static JLabel lingua, sfondo; + public static JComboBox selezionaLingua; + public static JCheckBox suono; + public static JPanel[] pannello = new JPanel[5]; + public OptionFrame() { + super( "JBriscola - " + main.stringaModificaOpzioni ); + ok = new JButton( "OK" ); + ok.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + try { + formatter = new Formatter( "JBriscolaConfig.txt" ); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( OptionFrame.this, main.stringaImpossibileConfigurare + ex ); + } + String lang; + switch ( selezionaLingua.getSelectedIndex() ) { + case 0: + lang = "it"; + break; + case 1: + lang = "la"; + break; + case 2: + lang = "bl"; + break; + case 3: + lang = "bv"; + break; + default: + lang = "it"; + break; + } + String suonosiono; + if ( suono.isSelected() ) + suonosiono = "suono=si"; + else + suonosiono = "suono=no"; + formatter.format( lang ); + formatter.format( "\n" ); + formatter.format( suonosiono ); + formatter.format( "\n" ); + formatter.format( main.color.getRed() + " " + main.color.getGreen() + " " + main.color.getBlue() ); + formatter.close(); + main.settaOpzioni(); + OptionFrame.this.dispose(); + //JOptionPane.showMessageDialog( OptionFrame.this, main.stringaNecessarioRiavviare, "JBriscola 0.1", JOptionPane.INFORMATION_MESSAGE ); + } + }); + annulla = new JButton( main.stringaAnnulla ); + annulla.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + OptionFrame.this.dispose(); + } + }); + scegliColore = new JButton( " " ); + scegliColore.setBackground( main.color ); + scegliColore.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + Color colore = JColorChooser.showDialog( OptionFrame.this, "JBriscola " + main.version, main.color ); + if ( colore != null ) + main.color = colore; + OptionFrame.scegliColore.setBackground( main.color ); + } + } ); + lingua = new JLabel( main.stringaLingua ); + sfondo = new JLabel( main.stringaSfondo ); + String[] lingueDaSelezionare = { main.stringaIt, main.stringaLa, main.stringaBL, main.stringaBV }; + selezionaLingua = new JComboBox( lingueDaSelezionare ); + int linguaPreselezionata = 0; + if ( main.lang.equals( "it" ) ) + linguaPreselezionata = 0; + else if ( main.lang.equals( "la" ) ) + linguaPreselezionata = 1; + else if ( main.lang.equals( "bl" ) ) + linguaPreselezionata = 2; + else if ( main.lang.equals( "bv" ) ) + linguaPreselezionata = 3; + selezionaLingua.setSelectedIndex( linguaPreselezionata ); + suono = new JCheckBox( main.stringaSuono ); + suono.setSelected( main.sound ); + pannello[0] = new JPanel( new GridLayout( 3, 1 ) ); + pannello[1] = new JPanel( new FlowLayout() ); + pannello[2] = new JPanel( new FlowLayout() ); + pannello[3] = new JPanel( new FlowLayout() ); + pannello[4] = new JPanel( new FlowLayout() ); + pannello[4].add( ok ); + pannello[4].add( annulla ); + pannello[3].add( sfondo ); + pannello[3].add( scegliColore ); + pannello[2].add( suono ); + pannello[1].add( lingua ); + pannello[1].add( selezionaLingua ); + pannello[0].add( pannello[1] ); + pannello[0].add( pannello[2] ); + pannello[0].add( pannello[3] ); + add( pannello[0], BorderLayout.CENTER ); + add( pannello[4], BorderLayout.SOUTH ); + } +} diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/Pannello.java b/JBriscola/all_versions/0.2/0.2 Beta 3/src/Pannello.java new file mode 100755 index 0000000..24c6596 --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2 Beta 3/src/Pannello.java @@ -0,0 +1,54 @@ +/* +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 javax.swing.*; +import java.awt.*; + +public class Pannello extends JPanel { + public static Main main; + public static Color color; + public Pannello() { } + public void paint( Graphics g ) { + super.paint( g ); + setBackground( main.color ); + if ( main.frame.ultimaCarta != null ) + main.frame.ultimaCarta.paintIcon( this, g, 50, 180 ); + if ( main.frame.mazzo ) + main.frame.retro2.paintIcon( this, g, 17, 256 ); + if ( main.frame.carteCPU[0] != null ) + main.frame.retro1.paintIcon( this, g, 230, 5 ); + if ( main.frame.carteCPU[1] != null ) + main.frame.retro1.paintIcon( this, g, 300, 5 ); + if ( main.frame.carteCPU[2] != null ) + main.frame.retro1.paintIcon( this, g, 370, 5 ); + if ( main.frame.carteInMano[0] != null ) + main.frame.carteInMano[0].paintIcon( this, g, 230, 340 ); + if ( main.frame.carteInMano[1] != null ) + main.frame.carteInMano[1].paintIcon( this, g, 300, 340 ); + if ( main.frame.carteInMano[2] != null ) + main.frame.carteInMano[2].paintIcon( this, g, 370, 340 ); + if ( main.frame.giocata[0] != null ) + main.frame.giocata[0].paintIcon( this, g, 250, 200 ); + if ( main.frame.giocata[1] != null ) + main.frame.giocata[1].paintIcon( this, g, 325, 150 ); + } +} + diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-1.jpg new file mode 100755 index 0000000..ae43510 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-2.jpg new file mode 100755 index 0000000..3f7c75a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-3.jpg new file mode 100755 index 0000000..9e1ead7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-4.jpg new file mode 100755 index 0000000..710f879 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/1-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-1.jpg new file mode 100755 index 0000000..9aba45a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-2.jpg new file mode 100755 index 0000000..037eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-3.jpg new file mode 100755 index 0000000..8780b72 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-4.jpg new file mode 100755 index 0000000..587dc0f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/10-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-1.jpg new file mode 100755 index 0000000..5dcb7db Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-2.jpg new file mode 100755 index 0000000..ea9eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-3.jpg new file mode 100755 index 0000000..8cb22dd Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-4.jpg new file mode 100755 index 0000000..b3e7898 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/2-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-1.jpg new file mode 100755 index 0000000..dcb435c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-2.jpg new file mode 100755 index 0000000..1e5b6ec Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-3.jpg new file mode 100755 index 0000000..9202cfe Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-4.jpg new file mode 100755 index 0000000..5436a8d Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/3-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-1.jpg new file mode 100755 index 0000000..3bab6d5 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-2.jpg new file mode 100755 index 0000000..b4901a6 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-3.jpg new file mode 100755 index 0000000..d754ad8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-4.jpg new file mode 100755 index 0000000..3a54b96 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/4-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-1.jpg new file mode 100755 index 0000000..3f7ba1f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-2.jpg new file mode 100755 index 0000000..fcacb75 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-3.jpg new file mode 100755 index 0000000..ce32f9f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-4.jpg new file mode 100755 index 0000000..b86b09a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/5-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-1.jpg new file mode 100755 index 0000000..f90cd81 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-2.jpg new file mode 100755 index 0000000..cf2a67a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-3.jpg new file mode 100755 index 0000000..2cd2fe2 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-4.jpg new file mode 100755 index 0000000..73f410f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/6-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-1.jpg new file mode 100755 index 0000000..08cd397 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-2.jpg new file mode 100755 index 0000000..a168ff8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-3.jpg new file mode 100755 index 0000000..5cda411 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-4.jpg new file mode 100755 index 0000000..5d63229 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/7-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-1.jpg new file mode 100755 index 0000000..a6faa7b Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-2.jpg new file mode 100755 index 0000000..0d9edbb Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-3.jpg new file mode 100755 index 0000000..91f8354 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-4.jpg new file mode 100755 index 0000000..cc0089c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/8-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-1.jpg new file mode 100755 index 0000000..be9c6bf Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-2.jpg new file mode 100755 index 0000000..e25da4c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-3.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-3.jpg new file mode 100755 index 0000000..cd384f8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-4.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-4.jpg new file mode 100755 index 0000000..441210e Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/9-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/carte.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/carte.jpg new file mode 100755 index 0000000..838ffac Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/carte.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/retro1.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/retro1.jpg new file mode 100755 index 0000000..9651b06 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/retro1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/retro2.jpg b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/retro2.jpg new file mode 100755 index 0000000..c5d3925 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/img/retro2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/0.wav b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/0.wav new file mode 100755 index 0000000..67d9abd Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/0.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/1.wav b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/1.wav new file mode 100755 index 0000000..9357c97 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/1.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/2.wav b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/2.wav new file mode 100755 index 0000000..92b1541 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/2.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/3.wav b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/3.wav new file mode 100755 index 0000000..45a6e42 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/3.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/4.wav b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/4.wav new file mode 100755 index 0000000..1f7ec90 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/4.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/5.wav b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/5.wav new file mode 100755 index 0000000..3627f96 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/5.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/pareggio.wav b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/pareggio.wav new file mode 100755 index 0000000..ff978e6 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/pareggio.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/perso.wav b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/perso.wav new file mode 100755 index 0000000..a454ba4 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/perso.wav differ diff --git a/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/vinto.wav b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/vinto.wav new file mode 100755 index 0000000..a6f3ac5 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2 Beta 3/src/sounds/vinto.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/Frame.java b/JBriscola/all_versions/0.2/0.2.1/src/Frame.java new file mode 100755 index 0000000..8379683 --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2.1/src/Frame.java @@ -0,0 +1,348 @@ +/* +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 javax.swing.*; +import javax.sound.sampled.*; +import java.io.*; +import java.net.*; +import java.awt.*; +import java.awt.event.*; + +public class Frame extends JFrame { + public static boolean mazzo; + public static Main main; + public static Pannello pannello; + public static JPanel pannello2; + public static JButton button; + public static JMenuBar barraMenu; + public static JMenu file, puntoInterrogativo; + public static JMenuItem nuovaPartita, opzioni, esci, informazioni, punti, aggiornamenti, tastiRapidi; + public static ImageIcon retro1, retro2, ultimaCarta; + public static ImageIcon[] giocata = new ImageIcon[2]; + public static ImageIcon[] carteInMano = new ImageIcon[3]; + public static ImageIcon[] carteCPU = new ImageIcon[3]; + public static ImageIcon[] arrayCarteMescolate = new ImageIcon[40]; + public static ImageIcon[][] arrayCarte = new ImageIcon[10][4]; + public Frame() { + super( "Tronto's JBriscola " + main.version ); + mazzo = true; + main = new Main(); + pannello = new Pannello(); + pannello2 = new JPanel( new FlowLayout() ); + button = new JButton( main.stringaBottonePrendi ); + button.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( giocata[0] != null && giocata[1] != null ) + main.mano++; + try { + main.chiPrende(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaPrimaGioca, "JBriscola " + main.version, JOptionPane.WARNING_MESSAGE ); + } + if ( main.mano == 16 ) + JOptionPane.showMessageDialog( Frame.this, main.stringaUltime4, "JBriscola " + main.version, JOptionPane.INFORMATION_MESSAGE ); + if ( main.mano == 17 ) { + mazzo = false; + ultimaCarta = null; + pannello.repaint(); + Frame.this.repaint(); + } + if ( main.mano == 20 ) { + String titolo = ""; + String suonoFinale = ""; + if ( main.punteggio > main.punteggioCPU ) { + titolo = main.stringaVinto; + suonoFinale = "sounds/perso.wav"; + } + if ( main.punteggio < main.punteggioCPU ) { + titolo = main.stringaPerso; + suonoFinale = "sounds/vinto.wav"; + } + if ( main.punteggio == main.punteggioCPU ) { + titolo = main.stringaPareggio; + suonoFinale = "sounds/pareggio.wav"; + } + if ( main.sound ) { + try { + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource( suonoFinale ) ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource( suonoFinale ) ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( + Clip.class, + ais.getFormat(), + ( (int) ais.getFrameLength() * + af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + ol.open(ais); + ol.loop( 0 ); + } catch ( Exception ex ) { + System.err.println( e ); + } + } + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, titolo, JOptionPane.PLAIN_MESSAGE ); + } + } + } ); + button.addKeyListener( new KeyAdapter() { + public void keyReleased( KeyEvent key ) { + if ( main.keys ) { + switch ( key.getKeyCode() ) { + case KeyEvent.VK_1: + if ( mettiCarta( 231, 500 ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + break; + case KeyEvent.VK_2: + if ( mettiCarta( 301, 500 ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + break; + case KeyEvent.VK_3: + if ( mettiCarta( 371, 500 ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + break; + case KeyEvent.VK_F1: + JOptionPane.showMessageDialog( Frame.this, main.stringaTasti2, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + break; + case KeyEvent.VK_F2: + if ( main.mano == 20 ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + } + break; + case KeyEvent.VK_F3: + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 200 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, + (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + break; + case KeyEvent.VK_F4: + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + "\n" + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.PLAIN_MESSAGE ); + break; + case KeyEvent.VK_F5: + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + break; + case KeyEvent.VK_F6: + String latest = main.version; + try { + URL latestIs = new URL( "http://porkynator.altervista.org/jbriscola-latest.is" ); + BufferedReader latestIsReader = new BufferedReader( new InputStreamReader( latestIs.openStream() ) ); + latest = latestIsReader.readLine(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaNoInternet, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + if ( latest.equals( main.version ) ) + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiNo, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + else + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiSi + "\n" + main.version + " ==> " + latest + "\n\n" + main.stringaScarica, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + break; + case KeyEvent.VK_Q: + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + break; + } + } + } + } ); + barraMenu = new JMenuBar(); + file = new JMenu( "File" ); + nuovaPartita = new JMenuItem( main.stringaNuovaPartita ); + nuovaPartita.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + opzioni = new JMenuItem( main.stringaOpzioni ); + opzioni.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 200 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, + (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + } + }); + esci = new JMenuItem( main.stringaEsci ); + esci.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + } + }); + file.add( nuovaPartita ); + file.add( opzioni ); + file.addSeparator(); + file.add( esci ); + puntoInterrogativo = new JMenu( "?" ); + informazioni = new JMenuItem( main.stringaInformazioni ); + informazioni.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + } + } ); + tastiRapidi = new JMenuItem( main.stringaTasti ); + tastiRapidi.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaTasti2, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + } + } ); + punti = new JMenuItem( main.stringaPunteggio ); + punti.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + "\n" + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.PLAIN_MESSAGE ); + } + } ); + aggiornamenti = new JMenuItem( main.stringaAggiornamenti ); + aggiornamenti.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + String latest = main.version; + try { + URL latestIs = new URL( "http://porkynator.altervista.org/jbriscola-latest.is" ); + BufferedReader latestIsReader = new BufferedReader( new InputStreamReader( latestIs.openStream() ) ); + latest = latestIsReader.readLine(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaNoInternet, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + if ( latest.equals( main.version ) ) + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiNo, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + else + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiSi + "\n" + main.version + " ==> " + latest + "\n\n" + main.stringaScarica, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + } + } ); + puntoInterrogativo.add( punti ); + puntoInterrogativo.add( tastiRapidi ); + puntoInterrogativo.add( informazioni ); + puntoInterrogativo.add( aggiornamenti ); + barraMenu.add( file ); + barraMenu.add( puntoInterrogativo ); + setJMenuBar( barraMenu ); + retro1 = new ImageIcon( ClassLoader.getSystemResource( "img/retro1.jpg" ) ); + retro2 = new ImageIcon( ClassLoader.getSystemResource( "img/retro2.jpg" ) ); + for (int i = 0; i < 10; i++) + for (int j = 0; j < 4; j++) + arrayCarte[i][j] = new ImageIcon( ClassLoader.getSystemResource( "img/" + (i+1) + "-" + (j+1) + ".jpg" ) ); + main.mischia(); + pannello2.add( button ); + setLayout( new BorderLayout() ); + add( pannello, BorderLayout.CENTER ); + add( pannello2, BorderLayout.SOUTH ); + addMouseListener( + new MouseAdapter() { + public void mouseClicked ( MouseEvent e ) { + if ( mettiCarta( e.getX(), e.getY() ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + } + } + ); + addWindowListener( + new WindowAdapter() { + public void windowClosing( WindowEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + System.exit( 0 ); + } + } + ); + } + public boolean mettiCarta( int x, int y ) { + if ( !main.toccaAllaCPU && giocata[0] == null ) { + if ( main.sound && + ( ( x > 230 && x < 290 && y > 340 && y < 566 && carteInMano[0] != null ) || + ( x > 300 && x < 360 && y > 340 && y < 566 && carteInMano[1] != null ) || + ( x > 370 && x < 430 && y > 340 && y < 566 && carteInMano[2] != null ) ) ) { + try { + double a = Math.random() * 6; + int i = (int) a; + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( + Clip.class, + ais.getFormat(), + ( (int) ais.getFrameLength() * + af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + ol.open(ais); + ol.loop( 0 ); + } catch ( Exception e ) { + System.err.println( e ); + } + } + if ( x > 230 && x < 290 && y > 340 && y < 566 && carteInMano[0] != null ) { + giocata[0] = carteInMano[0]; + carteInMano[0] = null; + pannello.repaint(); + return true; + } + if ( x > 300 && x < 360 && y > 340 && y < 566 && carteInMano[1] != null ) { + giocata[0] = carteInMano[1]; + carteInMano[1] = null; + pannello.repaint(); + return true; + } + if ( x > 370 && x < 430 && y > 340 && y < 566 && carteInMano[2] != null ) { + giocata[0] = carteInMano[2]; + carteInMano[2] = null; + pannello.repaint(); + return true; + } + } + return false; + } +} + + diff --git a/JBriscola/all_versions/0.2/0.2.1/src/Main.java b/JBriscola/all_versions/0.2/0.2.1/src/Main.java new file mode 100755 index 0000000..9c0cacf --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2.1/src/Main.java @@ -0,0 +1,1101 @@ +/* +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 { + public static int semeBriscola, punteggio, punteggioCPU, mano, cartaDaPescare, cartaDaGiocare; + 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; + public static Frame frame; + public static Color color = new Color( 0, 150, 0 ); + public static String version = "0.2.1"; + 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 stringaNecessarioRiavviare = "E' necessario riavviare JBriscola se sono state\nmodificate impostazioni riguardanti la lingua.\nAlcune parti saranno comunque tradotte prima."; + 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 String lang, soundString, keysString; + public static File[] suoni = new File[6]; + public static File suonoVinto, suonoPerso, suonoPareggio; + public static void main( String args[] ) { + settaOpzioni(); + 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 ); + } + public void mischia() { + mano = 0; + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + ImageIcon aux; + frame.mazzo = true; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + for ( int i = 0, k = 0; i < 10; i++ ) + for ( int j = 0; j < 4; j++, k++ ) + frame.arrayCarteMescolate[k] = frame.arrayCarte[i][j]; + 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; + } + char auxChar[] = frame.arrayCarteMescolate[39].toString().toCharArray(); + semeBriscola = auxChar[auxChar.length-5] - 49; + 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; + } + public void giocaCPU() { + if ( mano < 16 ) { + 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; + } + 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() ); + } + frame.giocata[1] = frame.carteCPU[cartaDaGiocare]; + frame.carteCPU[cartaDaGiocare] = null; + frame.pannello.repaint(); + CPUHaGiocato = true; + if ( frame.giocata[0] == null ) + toccaAllaCPU = false; + } + public void chiPrende() { + char aux[], auxCPU[]; + aux = frame.giocata[0].toString().toCharArray(); + auxCPU = frame.giocata[1].toString().toCharArray(); + 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 ) ); + } + 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; + } + public void giocatorePrende( boolean giocatore ) { + if ( giocatore ) { + toccaAllaCPU = CPUHaGiocato = false; + haGiocatoPrima = true; + } + else { + toccaAllaCPU = true; + CPUHaGiocato = haGiocatoPrima = false; + } + daiPunti( giocatore ); + if ( toccaAllaCPU ) + giocaCPU(); + } + 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++; + } + } + frame.pannello.repaint(); + frame.repaint(); + } + 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 ) ) ); + } + 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() { + 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() { + if ( frame.giocata[0] == null ) + return false; + int a = -1; + int b = -1; + int c = -1; + boolean laPrimaPuoAndareSopra = false; + boolean laSecondaPuoAndareSopra = false; + boolean laTerzaPuoAndareSopra = false; + char[] auxCPU1 = new char[1024]; + char[] auxCPU2 = new char[1024]; + char[] auxCPU3 = new char[1024]; + char[] aux = frame.giocata[0].toString().toCharArray(); + if ( aux[aux.length-7] - 48 == 1 ) + return false; + 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; + } + 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; + 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; + 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; + } + 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; + } + public static void settaOpzioni() { + lang = "it"; + soundString = "suono=si"; + keysString = "tasti=si"; + int r = 0; + int g = 150; + int b = 0; + 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 ) { } + } + 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"; + stringaNecessarioRiavviare = "E' necessario riavviare JBriscola se sono state\nmodificate impostazioni riguardanti la lingua\nAlcune parti saranno comunque tradotte prima."; + 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"; + stringaNecessarioRiavviare = "JBRISCOLAM RVRSVS INCIPERE NECESSE EST\nSI LINGVA PRAELATIONES NOVATAE SVNT.\nALIQVAE ANTE ID VERSA ERVNT"; + 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"; + stringaNecessarioRiavviare = "Se te ha cambia' la lengua te toca\nstusar su e impizar de novo al dugo\nPero' zerte robe le e' belche tradote."; + 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"; + stringaNecessarioRiavviare = "Se ti ga cambia' la lengua te toca\nstusar su e impizar de novo al zugo\nPero' zerte robe le e' belche tradote."; + 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; + } + 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(); + } + } +} diff --git a/JBriscola/all_versions/0.2/0.2.1/src/OptionFrame.java b/JBriscola/all_versions/0.2/0.2.1/src/OptionFrame.java new file mode 100755 index 0000000..f41606e --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2.1/src/OptionFrame.java @@ -0,0 +1,140 @@ +/* +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.util.Formatter; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class OptionFrame extends JFrame { + public static Main main = new Main(); + public static Formatter formatter; + public static JButton ok, annulla, scegliColore; + public static JLabel lingua, sfondo; + public static JComboBox selezionaLingua; + public static JCheckBox suono, tastiRapidi; + public static JPanel[] pannello = new JPanel[6]; + public OptionFrame() { + super( "JBriscola - " + main.stringaModificaOpzioni ); + ok = new JButton( "OK" ); + ok.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + try { + formatter = new Formatter( "JBriscolaConfig.txt" ); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( OptionFrame.this, main.stringaImpossibileConfigurare + ex, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + String lang; + switch ( selezionaLingua.getSelectedIndex() ) { + case 0: + lang = "it"; + break; + case 1: + lang = "la"; + break; + case 2: + lang = "bl"; + break; + case 3: + lang = "bv"; + break; + default: + lang = "it"; + break; + } + String suonosiono, tastisiono; + if ( suono.isSelected() ) + suonosiono = "suono=si"; + else + suonosiono = "suono=no"; + if ( tastiRapidi.isSelected() ) + tastisiono = "tasti=si"; + else + tastisiono = "tasti=no"; + formatter.format( lang ); + formatter.format( "\n" ); + formatter.format( suonosiono ); + formatter.format( "\n" ); + formatter.format( tastisiono ); + formatter.format( "\n" ); + formatter.format( main.color.getRed() + " " + main.color.getGreen() + " " + main.color.getBlue() ); + formatter.close(); + main.settaOpzioni(); + OptionFrame.this.dispose(); + //JOptionPane.showMessageDialog( OptionFrame.this, main.stringaNecessarioRiavviare, "JBriscola 0.1", JOptionPane.INFORMATION_MESSAGE ); + } + }); + annulla = new JButton( main.stringaAnnulla ); + annulla.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + OptionFrame.this.dispose(); + } + }); + scegliColore = new JButton( " " ); + scegliColore.setBackground( main.color ); + scegliColore.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + Color colore = JColorChooser.showDialog( OptionFrame.this, "JBriscola " + main.version, main.color ); + if ( colore != null ) + main.color = colore; + OptionFrame.scegliColore.setBackground( main.color ); + } + } ); + lingua = new JLabel( main.stringaLingua ); + sfondo = new JLabel( main.stringaSfondo ); + String[] lingueDaSelezionare = { main.stringaIt, main.stringaLa, main.stringaBL, main.stringaBV }; + selezionaLingua = new JComboBox( lingueDaSelezionare ); + int linguaPreselezionata = 0; + if ( main.lang.equals( "it" ) ) + linguaPreselezionata = 0; + else if ( main.lang.equals( "la" ) ) + linguaPreselezionata = 1; + else if ( main.lang.equals( "bl" ) ) + linguaPreselezionata = 2; + else if ( main.lang.equals( "bv" ) ) + linguaPreselezionata = 3; + selezionaLingua.setSelectedIndex( linguaPreselezionata ); + suono = new JCheckBox( main.stringaSuono ); + suono.setSelected( main.sound ); + tastiRapidi = new JCheckBox( main.stringaTasti ); + tastiRapidi.setSelected( main.keys ); + pannello[0] = new JPanel( new GridLayout( 4, 1 ) ); + pannello[1] = new JPanel( new FlowLayout() ); + pannello[2] = new JPanel( new FlowLayout() ); + pannello[3] = new JPanel( new FlowLayout() ); + pannello[4] = new JPanel( new FlowLayout() ); + pannello[5] = new JPanel( new FlowLayout() ); + pannello[5].add( ok ); + pannello[5].add( annulla ); + pannello[4].add( sfondo ); + pannello[4].add( scegliColore ); + pannello[3].add( tastiRapidi ); + pannello[2].add( suono ); + pannello[1].add( lingua ); + pannello[1].add( selezionaLingua ); + pannello[0].add( pannello[1] ); + pannello[0].add( pannello[2] ); + pannello[0].add( pannello[3] ); + pannello[0].add( pannello[4] ); + add( pannello[0], BorderLayout.CENTER ); + add( pannello[5], BorderLayout.SOUTH ); + } +} diff --git a/JBriscola/all_versions/0.2/0.2.1/src/Pannello.java b/JBriscola/all_versions/0.2/0.2.1/src/Pannello.java new file mode 100755 index 0000000..24c6596 --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2.1/src/Pannello.java @@ -0,0 +1,54 @@ +/* +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 javax.swing.*; +import java.awt.*; + +public class Pannello extends JPanel { + public static Main main; + public static Color color; + public Pannello() { } + public void paint( Graphics g ) { + super.paint( g ); + setBackground( main.color ); + if ( main.frame.ultimaCarta != null ) + main.frame.ultimaCarta.paintIcon( this, g, 50, 180 ); + if ( main.frame.mazzo ) + main.frame.retro2.paintIcon( this, g, 17, 256 ); + if ( main.frame.carteCPU[0] != null ) + main.frame.retro1.paintIcon( this, g, 230, 5 ); + if ( main.frame.carteCPU[1] != null ) + main.frame.retro1.paintIcon( this, g, 300, 5 ); + if ( main.frame.carteCPU[2] != null ) + main.frame.retro1.paintIcon( this, g, 370, 5 ); + if ( main.frame.carteInMano[0] != null ) + main.frame.carteInMano[0].paintIcon( this, g, 230, 340 ); + if ( main.frame.carteInMano[1] != null ) + main.frame.carteInMano[1].paintIcon( this, g, 300, 340 ); + if ( main.frame.carteInMano[2] != null ) + main.frame.carteInMano[2].paintIcon( this, g, 370, 340 ); + if ( main.frame.giocata[0] != null ) + main.frame.giocata[0].paintIcon( this, g, 250, 200 ); + if ( main.frame.giocata[1] != null ) + main.frame.giocata[1].paintIcon( this, g, 325, 150 ); + } +} + diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/1-1.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/1-1.jpg new file mode 100755 index 0000000..ae43510 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/1-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/1-2.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/1-2.jpg new file mode 100755 index 0000000..3f7c75a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/1-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/1-3.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/1-3.jpg new file mode 100755 index 0000000..9e1ead7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/1-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/1-4.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/1-4.jpg new file mode 100755 index 0000000..710f879 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/1-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/10-1.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/10-1.jpg new file mode 100755 index 0000000..9aba45a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/10-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/10-2.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/10-2.jpg new file mode 100755 index 0000000..037eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/10-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/10-3.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/10-3.jpg new file mode 100755 index 0000000..8780b72 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/10-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/10-4.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/10-4.jpg new file mode 100755 index 0000000..587dc0f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/10-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/2-1.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/2-1.jpg new file mode 100755 index 0000000..5dcb7db Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/2-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/2-2.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/2-2.jpg new file mode 100755 index 0000000..ea9eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/2-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/2-3.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/2-3.jpg new file mode 100755 index 0000000..8cb22dd Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/2-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/2-4.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/2-4.jpg new file mode 100755 index 0000000..b3e7898 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/2-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/3-1.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/3-1.jpg new file mode 100755 index 0000000..dcb435c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/3-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/3-2.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/3-2.jpg new file mode 100755 index 0000000..1e5b6ec Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/3-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/3-3.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/3-3.jpg new file mode 100755 index 0000000..9202cfe Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/3-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/3-4.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/3-4.jpg new file mode 100755 index 0000000..5436a8d Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/3-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/4-1.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/4-1.jpg new file mode 100755 index 0000000..3bab6d5 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/4-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/4-2.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/4-2.jpg new file mode 100755 index 0000000..b4901a6 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/4-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/4-3.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/4-3.jpg new file mode 100755 index 0000000..d754ad8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/4-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/4-4.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/4-4.jpg new file mode 100755 index 0000000..3a54b96 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/4-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/5-1.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/5-1.jpg new file mode 100755 index 0000000..3f7ba1f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/5-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/5-2.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/5-2.jpg new file mode 100755 index 0000000..fcacb75 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/5-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/5-3.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/5-3.jpg new file mode 100755 index 0000000..ce32f9f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/5-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/5-4.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/5-4.jpg new file mode 100755 index 0000000..b86b09a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/5-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/6-1.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/6-1.jpg new file mode 100755 index 0000000..f90cd81 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/6-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/6-2.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/6-2.jpg new file mode 100755 index 0000000..cf2a67a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/6-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/6-3.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/6-3.jpg new file mode 100755 index 0000000..2cd2fe2 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/6-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/6-4.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/6-4.jpg new file mode 100755 index 0000000..73f410f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/6-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/7-1.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/7-1.jpg new file mode 100755 index 0000000..08cd397 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/7-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/7-2.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/7-2.jpg new file mode 100755 index 0000000..a168ff8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/7-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/7-3.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/7-3.jpg new file mode 100755 index 0000000..5cda411 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/7-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/7-4.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/7-4.jpg new file mode 100755 index 0000000..5d63229 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/7-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/8-1.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/8-1.jpg new file mode 100755 index 0000000..a6faa7b Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/8-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/8-2.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/8-2.jpg new file mode 100755 index 0000000..0d9edbb Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/8-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/8-3.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/8-3.jpg new file mode 100755 index 0000000..91f8354 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/8-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/8-4.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/8-4.jpg new file mode 100755 index 0000000..cc0089c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/8-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/9-1.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/9-1.jpg new file mode 100755 index 0000000..be9c6bf Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/9-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/9-2.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/9-2.jpg new file mode 100755 index 0000000..e25da4c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/9-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/9-3.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/9-3.jpg new file mode 100755 index 0000000..cd384f8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/9-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/9-4.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/9-4.jpg new file mode 100755 index 0000000..441210e Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/9-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/carte.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/carte.jpg new file mode 100755 index 0000000..838ffac Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/carte.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/retro1.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/retro1.jpg new file mode 100755 index 0000000..9651b06 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/retro1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/img/retro2.jpg b/JBriscola/all_versions/0.2/0.2.1/src/img/retro2.jpg new file mode 100755 index 0000000..c5d3925 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/img/retro2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/sounds/0.wav b/JBriscola/all_versions/0.2/0.2.1/src/sounds/0.wav new file mode 100755 index 0000000..67d9abd Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/sounds/0.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/sounds/1.wav b/JBriscola/all_versions/0.2/0.2.1/src/sounds/1.wav new file mode 100755 index 0000000..9357c97 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/sounds/1.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/sounds/2.wav b/JBriscola/all_versions/0.2/0.2.1/src/sounds/2.wav new file mode 100755 index 0000000..92b1541 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/sounds/2.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/sounds/3.wav b/JBriscola/all_versions/0.2/0.2.1/src/sounds/3.wav new file mode 100755 index 0000000..45a6e42 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/sounds/3.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/sounds/4.wav b/JBriscola/all_versions/0.2/0.2.1/src/sounds/4.wav new file mode 100755 index 0000000..1f7ec90 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/sounds/4.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/sounds/5.wav b/JBriscola/all_versions/0.2/0.2.1/src/sounds/5.wav new file mode 100755 index 0000000..3627f96 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/sounds/5.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/sounds/pareggio.wav b/JBriscola/all_versions/0.2/0.2.1/src/sounds/pareggio.wav new file mode 100755 index 0000000..ff978e6 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/sounds/pareggio.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/sounds/perso.wav b/JBriscola/all_versions/0.2/0.2.1/src/sounds/perso.wav new file mode 100755 index 0000000..a454ba4 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/sounds/perso.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.1/src/sounds/vinto.wav b/JBriscola/all_versions/0.2/0.2.1/src/sounds/vinto.wav new file mode 100755 index 0000000..a6f3ac5 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.1/src/sounds/vinto.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/Frame.java b/JBriscola/all_versions/0.2/0.2.2/src/Frame.java new file mode 100755 index 0000000..bea69a4 --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2.2/src/Frame.java @@ -0,0 +1,432 @@ +/* +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 javax.swing.*; +import javax.sound.sampled.*; +import java.io.*; +import java.net.*; +import java.awt.*; +import java.awt.event.*; + +public class Frame extends JFrame { + + /* Booleana per determinare se disegnare il mazzo di carte o no (se + * è l'ultima mano). */ + public static boolean mazzo; + + public static Main main; + + /* Menu, bottoni, pannelli e componenti vari. */ + public static Pannello pannello; + public static JPanel pannello2; + public static JButton button; + public static JMenuBar barraMenu; + public static JMenu file, puntoInterrogativo; + public static JMenuItem nuovaPartita, opzioni, esci, informazioni, punti, aggiornamenti, tastiRapidi; + + /* Immagini delle carte. */ + public static ImageIcon retro1, retro2, ultimaCarta; + public static ImageIcon[] giocata = new ImageIcon[2]; + public static ImageIcon[] carteInMano = new ImageIcon[3]; + public static ImageIcon[] carteCPU = new ImageIcon[3]; + public static ImageIcon[] arrayCarteMescolate = new ImageIcon[40]; + public static ImageIcon[][] arrayCarte = new ImageIcon[10][4]; + + public Frame() { + + super( "Tronto's JBriscola " + main.version ); + + mazzo = true; + main = new Main(); + pannello = new Pannello(); + pannello2 = new JPanel( new FlowLayout() ); + + button = new JButton( main.stringaBottonePrendi ); + button.addActionListener( new ActionListener() { + + /* Quando viene premuto il bottone per prendere/lasciare le carte, + * valuta innanzitutto se il giocatore ha giocato, e poi a chi + * darle ed eventualmente, se è finita la partita, a caricare + * il suono adatto. */ + public void actionPerformed( ActionEvent e ) { + + if ( giocata[0] != null && giocata[1] != null ) + main.mano++; + + try { + main.chiPrende(); + } catch ( Exception ex ) { + /* Avvisa di giocare una carta. */ + JOptionPane.showMessageDialog( Frame.this, main.stringaPrimaGioca, "JBriscola " + main.version, JOptionPane.WARNING_MESSAGE ); + } + + if ( main.mano == 16 ) + /* Avvisa che si è arrivati alla quartultima mano. */ + JOptionPane.showMessageDialog( Frame.this, main.stringaUltime4, "JBriscola " + main.version, JOptionPane.INFORMATION_MESSAGE ); + + /* Non disegna più la briscola e il mazzo se sono già state + * pescate tutte le carte. */ + if ( main.mano == 17 ) { + mazzo = false; + ultimaCarta = null; + pannello.repaint(); + Frame.this.repaint(); + } + + /* Mostra il punteggio e carica i suoni se è finita la partita. */ + if ( main.mano == 20 ) { + + String titolo = ""; + String suonoFinale = ""; + + if ( main.punteggio > main.punteggioCPU ) { + titolo = main.stringaVinto; + suonoFinale = "sounds/perso.wav"; + } + if ( main.punteggio < main.punteggioCPU ) { + titolo = main.stringaPerso; + suonoFinale = "sounds/vinto.wav"; + } + if ( main.punteggio == main.punteggioCPU ) { + titolo = main.stringaPareggio; + suonoFinale = "sounds/pareggio.wav"; + } + + if ( main.sound ) { + try { + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource( suonoFinale ) ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource( suonoFinale ) ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( Clip.class, ais.getFormat(), ( (int) ais.getFrameLength() * af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + ol.open(ais); + ol.loop( 0 ); + } catch ( Exception ex ) { + System.err.println( e ); + } + } + + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, titolo, JOptionPane.PLAIN_MESSAGE ); + } + } + } ); + button.addKeyListener( new KeyAdapter() { + /* Aggiunge il keyListener per le scorciatoie da tastiera. Dato + * che il bottone prendi/lascia è l'unico componente effettivo + * della finestra, avrà obbligatoriamente il focus ed è necessario + * che sia lui a gestire gli eventi della tastiera. */ + public void keyReleased( KeyEvent key ) { + + if ( main.keys ) { + switch ( key.getKeyCode() ) { + case KeyEvent.VK_1: + if ( mettiCarta( 231, 500 ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + break; + + case KeyEvent.VK_2: + if ( mettiCarta( 301, 500 ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + break; + + case KeyEvent.VK_3: + if ( mettiCarta( 371, 500 ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + break; + + case KeyEvent.VK_F1: + JOptionPane.showMessageDialog( Frame.this, main.stringaTasti2, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + break; + + case KeyEvent.VK_F2: + if ( main.mano == 20 ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + } + break; + + case KeyEvent.VK_F3: + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 200 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + break; + case KeyEvent.VK_F4: + + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + "\n" + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.PLAIN_MESSAGE ); + break; + case KeyEvent.VK_F5: + + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + break; + case KeyEvent.VK_F6: + + String latest = main.version; + try { + URL latestIs = new URL( "http://porkynator.altervista.org/jbriscola-latest.is" ); + BufferedReader latestIsReader = new BufferedReader( new InputStreamReader( latestIs.openStream() ) ); + latest = latestIsReader.readLine(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaNoInternet, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + if ( latest.equals( main.version ) ) + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiNo, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + else + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiSi + "\n" + main.version + " ==> " + latest + "\n\n" + main.stringaScarica, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + break; + case KeyEvent.VK_Q: + + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + break; + } + } + } + } ); + + barraMenu = new JMenuBar(); + + file = new JMenu( "File" ); + + nuovaPartita = new JMenuItem( main.stringaNuovaPartita ); + nuovaPartita.addActionListener( new ActionListener() { + /* Avvia una nuova partita, chiedendo prima conferma se ce n'è + * già una in corso. */ + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + + opzioni = new JMenuItem( main.stringaOpzioni ); + opzioni.addActionListener( new ActionListener() { + /* Apre una OptionFrame per modificare le opzioni. */ + public void actionPerformed( ActionEvent e ) { + + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 200 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + } + }); + + esci = new JMenuItem( main.stringaEsci ); + esci.addActionListener( new ActionListener() { + /* Ciede conferma prima di uscire. */ + public void actionPerformed( ActionEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + } + }); + + file.add( nuovaPartita ); + file.add( opzioni ); + file.addSeparator(); + file.add( esci ); + + puntoInterrogativo = new JMenu( "?" ); + + informazioni = new JMenuItem( main.stringaInformazioni ); + informazioni.addActionListener( new ActionListener() { + /* Visualizza le informazioni. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + } + } ); + + tastiRapidi = new JMenuItem( main.stringaTasti ); + tastiRapidi.addActionListener( new ActionListener() { + /* Visualizza i tasti rapidi. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaTasti2, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + } + } ); + + punti = new JMenuItem( main.stringaPunteggio ); + punti.addActionListener( new ActionListener() { + /* Visualizza il punteggio. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + "\n" + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.PLAIN_MESSAGE ); + } + } ); + + aggiornamenti = new JMenuItem( main.stringaAggiornamenti ); + aggiornamenti.addActionListener( new ActionListener() { + /* Cerca aggiornamenti sul sito http://porkynator.altervista.org, + * confrontando la versione del programma con quella scritta nel + * file jbriscola-latest.is (online). */ + public void actionPerformed( ActionEvent e ) { + String latest = main.version; + try { + URL latestIs = new URL( "http://porkynator.altervista.org/jbriscola-latest.is" ); + BufferedReader latestIsReader = new BufferedReader( new InputStreamReader( latestIs.openStream() ) ); + latest = latestIsReader.readLine(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaNoInternet, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + if ( latest.equals( main.version ) ) + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiNo, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + else + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiSi + "\n" + main.version + " ==> " + latest + "\n\n" + main.stringaScarica, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + } + } ); + + puntoInterrogativo.add( punti ); + puntoInterrogativo.add( tastiRapidi ); + puntoInterrogativo.add( informazioni ); + puntoInterrogativo.add( aggiornamenti ); + + barraMenu.add( file ); + barraMenu.add( puntoInterrogativo ); + + setJMenuBar( barraMenu ); + + /* Inizializza le immagini del retro delle carte. */ + retro1 = new ImageIcon( ClassLoader.getSystemResource( "img/retro1.jpg" ) ); + retro2 = new ImageIcon( ClassLoader.getSystemResource( "img/retro2.jpg" ) ); + + /* Inizializza tutte le immagini delle carte scorrendo l'array bidimensionale. */ + for (int i = 0; i < 10; i++) + for (int j = 0; j < 4; j++) + arrayCarte[i][j] = new ImageIcon( ClassLoader.getSystemResource( "img/" + (i+1) + "-" + (j+1) + ".jpg" ) ); + + /* Mischia le carte. */ + main.mischia(); + + /* Aggiunge i vari componenti. */ + pannello2.add( button ); + setLayout( new BorderLayout() ); + add( pannello, BorderLayout.CENTER ); + add( pannello2, BorderLayout.SOUTH ); + + /* Chiama il metodo mettiCarta se l'utente clicca. */ + addMouseListener( + new MouseAdapter() { + public void mouseClicked ( MouseEvent e ) { + if ( mettiCarta( e.getX(), e.getY() ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + } + } + ); + + /* Chiede conferma prima di uscire quando viene chiusa la finestra. */ + addWindowListener( + new WindowAdapter() { + public void windowClosing( WindowEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + System.exit( 0 ); + } + } + ); + } + + /* Se il giocatore ha cliccato su una carta la gioca e riproduce un suono casuale. */ + public boolean mettiCarta( int x, int y ) { + + if ( !main.toccaAllaCPU && giocata[0] == null ) { + if ( main.sound && + ( ( x > 230 && x < 290 && y > 340 && y < 566 && carteInMano[0] != null ) || + ( x > 300 && x < 360 && y > 340 && y < 566 && carteInMano[1] != null ) || + ( x > 370 && x < 430 && y > 340 && y < 566 && carteInMano[2] != null ) ) ) { + try { + + double a = Math.random() * 6; + int i = (int) a; + + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( Clip.class, ais.getFormat(), ( (int) ais.getFrameLength() * af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + + ol.open(ais); + ol.loop( 0 ); + + } catch ( Exception e ) { + System.err.println( e ); + } + } + + if ( x > 230 && x < 290 && y > 340 && y < 566 && carteInMano[0] != null ) { + giocata[0] = carteInMano[0]; + carteInMano[0] = null; + pannello.repaint(); + return true; + } + + if ( x > 300 && x < 360 && y > 340 && y < 566 && carteInMano[1] != null ) { + giocata[0] = carteInMano[1]; + carteInMano[1] = null; + pannello.repaint(); + return true; + } + + if ( x > 370 && x < 430 && y > 340 && y < 566 && carteInMano[2] != null ) { + giocata[0] = carteInMano[2]; + carteInMano[2] = null; + pannello.repaint(); + return true; + } + } + + return false; + } +} + + 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(); + } + } +} diff --git a/JBriscola/all_versions/0.2/0.2.2/src/OptionFrame.java b/JBriscola/all_versions/0.2/0.2.2/src/OptionFrame.java new file mode 100755 index 0000000..d89745b --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2.2/src/OptionFrame.java @@ -0,0 +1,169 @@ +/* +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.util.Formatter; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class OptionFrame extends JFrame { + + public static Main main = new Main(); + public static Formatter formatter; + public static JButton ok, annulla, scegliColore; + public static JLabel lingua, sfondo; + public static JComboBox selezionaLingua; + public static JCheckBox suono, tastiRapidi; + public static JPanel[] pannello = new JPanel[6]; + + public OptionFrame() { + + super( "JBriscola - " + main.stringaModificaOpzioni ); + + ok = new JButton( "OK" ); + ok.addActionListener( new ActionListener() { + + /* Quando le modifiche vengono confermate premendo ok, viene scritto + * il file di configurazione (o aggiornato) se possibile, e modificate + * le impostazioni attuali. */ + public void actionPerformed( ActionEvent e ) { + + try { + formatter = new Formatter( "JBriscolaConfig.txt" ); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( OptionFrame.this, main.stringaImpossibileConfigurare + ex, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + + String lang; + + switch ( selezionaLingua.getSelectedIndex() ) { + case 0: + lang = "it"; + break; + case 1: + lang = "la"; + break; + case 2: + lang = "bl"; + break; + case 3: + lang = "bv"; + break; + case 4: + lang = "en"; + break; + default: + lang = "it"; + break; + } + + String suonosiono, tastisiono; + + if ( suono.isSelected() ) + suonosiono = "suono=si"; + else + suonosiono = "suono=no"; + if ( tastiRapidi.isSelected() ) + tastisiono = "tasti=si"; + else + tastisiono = "tasti=no"; + + formatter.format( lang ); + formatter.format( "\n" ); + formatter.format( suonosiono ); + formatter.format( "\n" ); + formatter.format( tastisiono ); + formatter.format( "\n" ); + formatter.format( main.color.getRed() + " " + main.color.getGreen() + " " + main.color.getBlue() ); + formatter.close(); + + main.settaOpzioni(); + + OptionFrame.this.dispose(); + } + }); + + annulla = new JButton( main.stringaAnnulla ); + annulla.addActionListener( new ActionListener() { + /* Se l'utente annulla viene chiusa la finestra senza fare nulla. */ + public void actionPerformed( ActionEvent e ) { + OptionFrame.this.dispose(); + } + }); + + scegliColore = new JButton( " " ); + scegliColore.setBackground( main.color ); + scegliColore.addActionListener( new ActionListener() { + /* Permette di scegliere il colore dello sfondo. */ + public void actionPerformed( ActionEvent e ) { + Color colore = JColorChooser.showDialog( OptionFrame.this, "JBriscola " + main.version, main.color ); + if ( colore != null ) + main.color = colore; + OptionFrame.scegliColore.setBackground( main.color ); + } + } ); + + /* Vengono impostati e disegnati i vari componenti. */ + lingua = new JLabel( main.stringaLingua ); + sfondo = new JLabel( main.stringaSfondo ); + String[] lingueDaSelezionare = { main.stringaIt, main.stringaLa, main.stringaBL, main.stringaBV, main.stringaEN }; + selezionaLingua = new JComboBox( lingueDaSelezionare ); + int linguaPreselezionata = 0; + + if ( main.lang.equals( "it" ) ) + linguaPreselezionata = 0; + else if ( main.lang.equals( "la" ) ) + linguaPreselezionata = 1; + else if ( main.lang.equals( "bl" ) ) + linguaPreselezionata = 2; + else if ( main.lang.equals( "bv" ) ) + linguaPreselezionata = 3; + else if ( main.lang.equals( "en" ) ) + linguaPreselezionata = 4; + + selezionaLingua.setSelectedIndex( linguaPreselezionata ); + suono = new JCheckBox( main.stringaSuono ); + suono.setSelected( main.sound ); + tastiRapidi = new JCheckBox( main.stringaTasti ); + tastiRapidi.setSelected( main.keys ); + + pannello[0] = new JPanel( new GridLayout( 4, 1 ) ); + pannello[1] = new JPanel( new FlowLayout() ); + pannello[2] = new JPanel( new FlowLayout() ); + pannello[3] = new JPanel( new FlowLayout() ); + pannello[4] = new JPanel( new FlowLayout() ); + pannello[5] = new JPanel( new FlowLayout() ); + pannello[5].add( ok ); + pannello[5].add( annulla ); + pannello[4].add( sfondo ); + pannello[4].add( scegliColore ); + pannello[3].add( tastiRapidi ); + pannello[2].add( suono ); + pannello[1].add( lingua ); + pannello[1].add( selezionaLingua ); + pannello[0].add( pannello[1] ); + pannello[0].add( pannello[2] ); + pannello[0].add( pannello[3] ); + pannello[0].add( pannello[4] ); + add( pannello[0], BorderLayout.CENTER ); + add( pannello[5], BorderLayout.SOUTH ); + } +} diff --git a/JBriscola/all_versions/0.2/0.2.2/src/Pannello.java b/JBriscola/all_versions/0.2/0.2.2/src/Pannello.java new file mode 100755 index 0000000..0de79f6 --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2.2/src/Pannello.java @@ -0,0 +1,56 @@ +/* +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 javax.swing.*; +import java.awt.*; + +/* Questa classe dispone semplicemente le carte + * sulla finestra e imposta la sfondo. */ +public class Pannello extends JPanel { + public static Main main; + public static Color color; + public Pannello() { } + public void paint( Graphics g ) { + super.paint( g ); + setBackground( main.color ); + if ( main.frame.ultimaCarta != null ) + main.frame.ultimaCarta.paintIcon( this, g, 50, 180 ); + if ( main.frame.mazzo ) + main.frame.retro2.paintIcon( this, g, 17, 256 ); + if ( main.frame.carteCPU[0] != null ) + main.frame.retro1.paintIcon( this, g, 230, 5 ); + if ( main.frame.carteCPU[1] != null ) + main.frame.retro1.paintIcon( this, g, 300, 5 ); + if ( main.frame.carteCPU[2] != null ) + main.frame.retro1.paintIcon( this, g, 370, 5 ); + if ( main.frame.carteInMano[0] != null ) + main.frame.carteInMano[0].paintIcon( this, g, 230, 340 ); + if ( main.frame.carteInMano[1] != null ) + main.frame.carteInMano[1].paintIcon( this, g, 300, 340 ); + if ( main.frame.carteInMano[2] != null ) + main.frame.carteInMano[2].paintIcon( this, g, 370, 340 ); + if ( main.frame.giocata[0] != null ) + main.frame.giocata[0].paintIcon( this, g, 250, 200 ); + if ( main.frame.giocata[1] != null ) + main.frame.giocata[1].paintIcon( this, g, 325, 150 ); + } +} + diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/1-1.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/1-1.jpg new file mode 100755 index 0000000..ae43510 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/1-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/1-2.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/1-2.jpg new file mode 100755 index 0000000..3f7c75a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/1-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/1-3.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/1-3.jpg new file mode 100755 index 0000000..9e1ead7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/1-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/1-4.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/1-4.jpg new file mode 100755 index 0000000..710f879 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/1-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/10-1.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/10-1.jpg new file mode 100755 index 0000000..9aba45a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/10-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/10-2.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/10-2.jpg new file mode 100755 index 0000000..037eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/10-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/10-3.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/10-3.jpg new file mode 100755 index 0000000..8780b72 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/10-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/10-4.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/10-4.jpg new file mode 100755 index 0000000..587dc0f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/10-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/2-1.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/2-1.jpg new file mode 100755 index 0000000..5dcb7db Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/2-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/2-2.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/2-2.jpg new file mode 100755 index 0000000..ea9eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/2-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/2-3.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/2-3.jpg new file mode 100755 index 0000000..8cb22dd Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/2-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/2-4.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/2-4.jpg new file mode 100755 index 0000000..b3e7898 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/2-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/3-1.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/3-1.jpg new file mode 100755 index 0000000..dcb435c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/3-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/3-2.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/3-2.jpg new file mode 100755 index 0000000..1e5b6ec Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/3-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/3-3.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/3-3.jpg new file mode 100755 index 0000000..9202cfe Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/3-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/3-4.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/3-4.jpg new file mode 100755 index 0000000..5436a8d Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/3-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/4-1.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/4-1.jpg new file mode 100755 index 0000000..3bab6d5 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/4-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/4-2.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/4-2.jpg new file mode 100755 index 0000000..b4901a6 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/4-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/4-3.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/4-3.jpg new file mode 100755 index 0000000..d754ad8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/4-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/4-4.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/4-4.jpg new file mode 100755 index 0000000..3a54b96 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/4-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/5-1.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/5-1.jpg new file mode 100755 index 0000000..3f7ba1f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/5-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/5-2.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/5-2.jpg new file mode 100755 index 0000000..fcacb75 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/5-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/5-3.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/5-3.jpg new file mode 100755 index 0000000..ce32f9f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/5-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/5-4.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/5-4.jpg new file mode 100755 index 0000000..b86b09a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/5-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/6-1.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/6-1.jpg new file mode 100755 index 0000000..f90cd81 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/6-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/6-2.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/6-2.jpg new file mode 100755 index 0000000..cf2a67a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/6-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/6-3.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/6-3.jpg new file mode 100755 index 0000000..2cd2fe2 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/6-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/6-4.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/6-4.jpg new file mode 100755 index 0000000..73f410f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/6-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/7-1.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/7-1.jpg new file mode 100755 index 0000000..08cd397 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/7-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/7-2.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/7-2.jpg new file mode 100755 index 0000000..a168ff8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/7-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/7-3.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/7-3.jpg new file mode 100755 index 0000000..5cda411 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/7-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/7-4.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/7-4.jpg new file mode 100755 index 0000000..5d63229 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/7-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/8-1.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/8-1.jpg new file mode 100755 index 0000000..a6faa7b Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/8-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/8-2.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/8-2.jpg new file mode 100755 index 0000000..0d9edbb Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/8-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/8-3.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/8-3.jpg new file mode 100755 index 0000000..91f8354 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/8-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/8-4.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/8-4.jpg new file mode 100755 index 0000000..cc0089c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/8-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/9-1.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/9-1.jpg new file mode 100755 index 0000000..be9c6bf Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/9-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/9-2.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/9-2.jpg new file mode 100755 index 0000000..e25da4c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/9-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/9-3.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/9-3.jpg new file mode 100755 index 0000000..cd384f8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/9-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/9-4.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/9-4.jpg new file mode 100755 index 0000000..441210e Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/9-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/carte.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/carte.jpg new file mode 100755 index 0000000..838ffac Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/carte.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/retro1.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/retro1.jpg new file mode 100755 index 0000000..9651b06 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/retro1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/img/retro2.jpg b/JBriscola/all_versions/0.2/0.2.2/src/img/retro2.jpg new file mode 100755 index 0000000..c5d3925 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/img/retro2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/sounds/0.wav b/JBriscola/all_versions/0.2/0.2.2/src/sounds/0.wav new file mode 100755 index 0000000..67d9abd Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/sounds/0.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/sounds/1.wav b/JBriscola/all_versions/0.2/0.2.2/src/sounds/1.wav new file mode 100755 index 0000000..9357c97 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/sounds/1.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/sounds/2.wav b/JBriscola/all_versions/0.2/0.2.2/src/sounds/2.wav new file mode 100755 index 0000000..92b1541 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/sounds/2.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/sounds/3.wav b/JBriscola/all_versions/0.2/0.2.2/src/sounds/3.wav new file mode 100755 index 0000000..45a6e42 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/sounds/3.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/sounds/4.wav b/JBriscola/all_versions/0.2/0.2.2/src/sounds/4.wav new file mode 100755 index 0000000..1f7ec90 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/sounds/4.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/sounds/5.wav b/JBriscola/all_versions/0.2/0.2.2/src/sounds/5.wav new file mode 100755 index 0000000..3627f96 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/sounds/5.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/sounds/pareggio.wav b/JBriscola/all_versions/0.2/0.2.2/src/sounds/pareggio.wav new file mode 100755 index 0000000..ff978e6 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/sounds/pareggio.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/sounds/perso.wav b/JBriscola/all_versions/0.2/0.2.2/src/sounds/perso.wav new file mode 100755 index 0000000..a454ba4 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/sounds/perso.wav differ diff --git a/JBriscola/all_versions/0.2/0.2.2/src/sounds/vinto.wav b/JBriscola/all_versions/0.2/0.2.2/src/sounds/vinto.wav new file mode 100755 index 0000000..a6f3ac5 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2.2/src/sounds/vinto.wav differ diff --git a/JBriscola/all_versions/0.2/0.2/src/Frame.java b/JBriscola/all_versions/0.2/0.2/src/Frame.java new file mode 100755 index 0000000..7ae52fe --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2/src/Frame.java @@ -0,0 +1,308 @@ +/* +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 javax.swing.*; +import javax.sound.sampled.*; +import java.io.*; +import java.awt.*; +import java.awt.event.*; + +public class Frame extends JFrame { + public static boolean mazzo; + public static Main main; + public static Pannello pannello; + public static JPanel pannello2; + public static JButton button; + public static JMenuBar barraMenu; + public static JMenu file, puntoInterrogativo; + public static JMenuItem nuovaPartita, opzioni, esci, informazioni, punti; + public static ImageIcon retro1, retro2, ultimaCarta; + public static ImageIcon[] giocata = new ImageIcon[2]; + public static ImageIcon[] carteInMano = new ImageIcon[3]; + public static ImageIcon[] carteCPU = new ImageIcon[3]; + public static ImageIcon[] arrayCarteMescolate = new ImageIcon[40]; + public static ImageIcon[][] arrayCarte = new ImageIcon[10][4]; + public Frame() { + super( "Tronto's JBriscola " + main.version ); + mazzo = true; + main = new Main(); + pannello = new Pannello(); + pannello2 = new JPanel( new FlowLayout() ); + button = new JButton( main.stringaBottonePrendi ); + button.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( giocata[0] != null && giocata[1] != null ) + main.mano++; + try { + main.chiPrende(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaPrimaGioca, "JBriscola " + main.version, JOptionPane.WARNING_MESSAGE ); + } + if ( main.mano == 16 ) + JOptionPane.showMessageDialog( Frame.this, main.stringaUltime4, "JBriscola " + main.version, JOptionPane.INFORMATION_MESSAGE ); + if ( main.mano == 17 ) { + mazzo = false; + ultimaCarta = null; + pannello.repaint(); + Frame.this.repaint(); + } + if ( main.mano == 20 ) { + String titolo = ""; + String suonoFinale = ""; + if ( main.punteggio > main.punteggioCPU ) { + titolo = main.stringaVinto; + suonoFinale = "sounds/perso.wav"; + } + if ( main.punteggio < main.punteggioCPU ) { + titolo = main.stringaPerso; + suonoFinale = "sounds/vinto.wav"; + } + if ( main.punteggio == main.punteggioCPU ) { + titolo = main.stringaPareggio; + suonoFinale = "sounds/pareggio.wav"; + } + if ( main.sound ) { + try { + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource( suonoFinale ) ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource( suonoFinale ) ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( + Clip.class, + ais.getFormat(), + ( (int) ais.getFrameLength() * + af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + ol.open(ais); + ol.loop( 0 ); + } catch ( Exception ex ) { + System.err.println( e ); + } + } + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, titolo, JOptionPane.PLAIN_MESSAGE ); + } + } + } ); + button.addKeyListener( new KeyAdapter() { + public void keyReleased( KeyEvent key ) { + if ( main.keys ) { + switch ( key.getKeyCode() ) { + case KeyEvent.VK_1: + if ( mettiCarta( 231, 500 ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + break; + case KeyEvent.VK_2: + if ( mettiCarta( 301, 500 ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + break; + case KeyEvent.VK_3: + if ( mettiCarta( 371, 500 ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + break; + case KeyEvent.VK_F1: + JOptionPane.showMessageDialog( Frame.this, main.stringaTasti2, "JBriscola - " + main.stringaTasti, JOptionPane.INFORMATION_MESSAGE ); + break; + case KeyEvent.VK_F2: + if ( main.mano == 20 ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + } + break; + case KeyEvent.VK_F3: + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 200 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, + (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + break; + case KeyEvent.VK_F4: + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + "\n" + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.PLAIN_MESSAGE ); + break; + case KeyEvent.VK_F5: + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + break; + case KeyEvent.VK_Q: + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + break; + } + } + } + } ); + barraMenu = new JMenuBar(); + file = new JMenu( "File" ); + nuovaPartita = new JMenuItem( main.stringaNuovaPartita ); + nuovaPartita.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + opzioni = new JMenuItem( main.stringaOpzioni ); + opzioni.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 200 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, + (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + } + }); + esci = new JMenuItem( main.stringaEsci ); + esci.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + } + }); + file.add( nuovaPartita ); + file.add( opzioni ); + file.addSeparator(); + file.add( esci ); + puntoInterrogativo = new JMenu( "?" ); + informazioni = new JMenuItem( main.stringaInformazioni ); + informazioni.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + } + } ); + punti = new JMenuItem( main.stringaPunteggio ); + punti.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + "\n" + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.PLAIN_MESSAGE ); + } + } ); + puntoInterrogativo.add( punti ); + puntoInterrogativo.add( informazioni ); + barraMenu.add( file ); + barraMenu.add( puntoInterrogativo ); + setJMenuBar( barraMenu ); + retro1 = new ImageIcon( ClassLoader.getSystemResource( "img/retro1.jpg" ) ); + retro2 = new ImageIcon( ClassLoader.getSystemResource( "img/retro2.jpg" ) ); + for (int i = 0; i < 10; i++) + for (int j = 0; j < 4; j++) + arrayCarte[i][j] = new ImageIcon( ClassLoader.getSystemResource( "img/" + (i+1) + "-" + (j+1) + ".jpg" ) ); + main.mischia(); + pannello2.add( button ); + setLayout( new BorderLayout() ); + add( pannello, BorderLayout.CENTER ); + add( pannello2, BorderLayout.SOUTH ); + addMouseListener( + new MouseAdapter() { + public void mouseClicked ( MouseEvent e ) { + if ( mettiCarta( e.getX(), e.getY() ) ) { + if ( !main.CPUHaGiocato ) + main.giocaCPU(); + } + } + } + ); + addWindowListener( + new WindowAdapter() { + public void windowClosing( WindowEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + System.exit( 0 ); + } + } + ); + } + public boolean mettiCarta( int x, int y ) { + if ( !main.toccaAllaCPU && giocata[0] == null ) { + if ( main.sound && + ( ( x > 230 && x < 290 && y > 340 && y < 566 && carteInMano[0] != null ) || + ( x > 300 && x < 360 && y > 340 && y < 566 && carteInMano[1] != null ) || + ( x > 370 && x < 430 && y > 340 && y < 566 && carteInMano[2] != null ) ) ) { + try { + double a = Math.random() * 6; + int i = (int) a; + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( + Clip.class, + ais.getFormat(), + ( (int) ais.getFrameLength() * + af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + ol.open(ais); + ol.loop( 0 ); + } catch ( Exception e ) { + System.err.println( e ); + } + } + if ( x > 230 && x < 290 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[0]; + carteInMano[0] = null; + pannello.repaint(); + return true; + } + if ( x > 300 && x < 360 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[1]; + carteInMano[1] = null; + pannello.repaint(); + return true; + } + if ( x > 370 && x < 430 && y > 340 && y < 566 ) { + giocata[0] = carteInMano[2]; + carteInMano[2] = null; + pannello.repaint(); + return true; + } + } + return false; + } +} + + diff --git a/JBriscola/all_versions/0.2/0.2/src/Main.java b/JBriscola/all_versions/0.2/0.2/src/Main.java new file mode 100755 index 0000000..e0587e1 --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2/src/Main.java @@ -0,0 +1,1077 @@ +/* +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 { + public static int semeBriscola, punteggio, punteggioCPU, mano, cartaDaPescare, cartaDaGiocare; + 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; + public static Frame frame; + public static Color color = new Color( 0, 150, 0 ); + public static String version = "0.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 stringaNecessarioRiavviare = "E' necessario riavviare JBriscola se sono state\nmodificate impostazioni riguardanti la lingua.\nAlcune parti saranno comunque tradotte prima."; + 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 stringaTasti2 = "1 Gioca la prima carta\n2 Gioca la seconda carta\n3 Gioca la terza carta\nF1 Visualizza questo messaggio\nF2 Nuova partita\nF3 Opzioni\nF4 Visualizza Punteggio\nF5 Informazioni\nq Esci"; + public static String lang, soundString, keysString; + public static File[] suoni = new File[6]; + public static File suonoVinto, suonoPerso, suonoPareggio; + public static void main( String args[] ) { + settaOpzioni(); + 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 ); + } + public void mischia() { + mano = 0; + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + ImageIcon aux; + frame.mazzo = true; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + for ( int i = 0, k = 0; i < 10; i++ ) + for ( int j = 0; j < 4; j++, k++ ) + frame.arrayCarteMescolate[k] = frame.arrayCarte[i][j]; + 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; + } + char auxChar[] = frame.arrayCarteMescolate[39].toString().toCharArray(); + semeBriscola = auxChar[auxChar.length-5] - 49; + 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; + } + public void giocaCPU() { + if ( mano < 16 ) { + 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; + } + 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() ); + } + frame.giocata[1] = frame.carteCPU[cartaDaGiocare]; + frame.carteCPU[cartaDaGiocare] = null; + frame.pannello.repaint(); + CPUHaGiocato = true; + if ( frame.giocata[0] == null ) + toccaAllaCPU = false; + } + public void chiPrende() { + char aux[], auxCPU[]; + aux = frame.giocata[0].toString().toCharArray(); + auxCPU = frame.giocata[1].toString().toCharArray(); + 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 ) ); + } + 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; + } + public void giocatorePrende( boolean giocatore ) { + if ( giocatore ) { + toccaAllaCPU = CPUHaGiocato = false; + haGiocatoPrima = true; + } + else { + toccaAllaCPU = true; + CPUHaGiocato = haGiocatoPrima = false; + } + daiPunti( giocatore ); + if ( toccaAllaCPU ) + giocaCPU(); + } + 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++; + } + } + frame.pannello.repaint(); + frame.repaint(); + } + 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 ) ) ); + } + 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() { + 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() { + if ( frame.giocata[0] == null ) + return false; + int a = -1; + int b = -1; + int c = -1; + boolean laPrimaPuoAndareSopra = false; + boolean laSecondaPuoAndareSopra = false; + boolean laTerzaPuoAndareSopra = false; + char[] auxCPU1 = new char[1024]; + char[] auxCPU2 = new char[1024]; + char[] auxCPU3 = new char[1024]; + char[] aux = frame.giocata[0].toString().toCharArray(); + if ( aux[aux.length-7] - 48 == 1 ) + return false; + 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; + } + 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; + 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; + 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; + } + 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; + } + public static void settaOpzioni() { + lang = "it"; + soundString = "suono=si"; + keysString = "tasti=si"; + int r = 0; + int g = 150; + int b = 0; + 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 ) { } + } + 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"; + stringaNecessarioRiavviare = "E' necessario riavviare JBriscola se sono state\nmodificate impostazioni riguardanti la lingua\nAlcune parti saranno comunque tradotte prima."; + 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"; + stringaTasti2 = "1 Gioca la prima carta\n2 Gioca la seconda carta\n3 Gioca la terza carta\nF1 Visualizza questo messaggio\nF2 Nuova partita\nF3 Opzioni\nF4 Visualizza Punteggio\nF5 Informazioni\nq Esci"; + } + 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"; + stringaNecessarioRiavviare = "JBRISCOLAM RVRSVS INCIPERE NECESSE EST\nSI LINGVA PRAELATIONES NOVATAE SVNT.\nALIQVAE ANTE ID VERSA ERVNT"; + 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"; + stringaTasti2 = "1 PONE CHARTAM PRIMAM\n2 PONE CHARTAM SECUNDAM\n3 PONE CHARTAM TERTIAM\nF1 HEAC INFORMATIONES\nF2 NOVA LVSO\nF3 OPTIONES\nF4 NVMERI\nF5 INFORMATIONES\nq EXIRE"; + } + 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"; + stringaNecessarioRiavviare = "Se te ha cambia' la lengua te toca\nstusar su e impizar de novo al dugo\nPero' zerte robe le e' belche tradote."; + 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"; + stringaTasti2 = "1 Duga la prima carta\n2 Duga la seconda carta\n3 Duga la terza carta\nF1 Tasti rapidi\nF2 Taca n'altra partida\nF3 Opzioni\nF4 Varda i punti\nF5 Informazioni\nq Stusa su"; + } + 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"; + stringaNecessarioRiavviare = "Se ti ga cambia' la lengua te toca\nstusar su e impizar de novo al zugo\nPero' zerte robe le e' belche tradote."; + 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"; + stringaTasti2 = "1 Zuga la prima carta\n2 Zuga la seconda carta\n3 Zuga la terza carta\nF1 Tasti rapidi\nF2 N'altra partida\nF3 Opzioni\nF4 Varda i punti\nF5 Informazioni\nq Stusa su"; + + } + 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(); + } + } +} diff --git a/JBriscola/all_versions/0.2/0.2/src/OptionFrame.java b/JBriscola/all_versions/0.2/0.2/src/OptionFrame.java new file mode 100755 index 0000000..9876af8 --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2/src/OptionFrame.java @@ -0,0 +1,140 @@ +/* +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.util.Formatter; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class OptionFrame extends JFrame { + public static Main main = new Main(); + public static Formatter formatter; + public static JButton ok, annulla, scegliColore; + public static JLabel lingua, sfondo; + public static JComboBox selezionaLingua; + public static JCheckBox suono, tastiRapidi; + public static JPanel[] pannello = new JPanel[6]; + public OptionFrame() { + super( "JBriscola - " + main.stringaModificaOpzioni ); + ok = new JButton( "OK" ); + ok.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + try { + formatter = new Formatter( "JBriscolaConfig.txt" ); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( OptionFrame.this, main.stringaImpossibileConfigurare + ex ); + } + String lang; + switch ( selezionaLingua.getSelectedIndex() ) { + case 0: + lang = "it"; + break; + case 1: + lang = "la"; + break; + case 2: + lang = "bl"; + break; + case 3: + lang = "bv"; + break; + default: + lang = "it"; + break; + } + String suonosiono, tastisiono; + if ( suono.isSelected() ) + suonosiono = "suono=si"; + else + suonosiono = "suono=no"; + if ( tastiRapidi.isSelected() ) + tastisiono = "tasti=si"; + else + tastisiono = "tasti=no"; + formatter.format( lang ); + formatter.format( "\n" ); + formatter.format( suonosiono ); + formatter.format( "\n" ); + formatter.format( tastisiono ); + formatter.format( "\n" ); + formatter.format( main.color.getRed() + " " + main.color.getGreen() + " " + main.color.getBlue() ); + formatter.close(); + main.settaOpzioni(); + OptionFrame.this.dispose(); + //JOptionPane.showMessageDialog( OptionFrame.this, main.stringaNecessarioRiavviare, "JBriscola 0.1", JOptionPane.INFORMATION_MESSAGE ); + } + }); + annulla = new JButton( main.stringaAnnulla ); + annulla.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + OptionFrame.this.dispose(); + } + }); + scegliColore = new JButton( " " ); + scegliColore.setBackground( main.color ); + scegliColore.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + Color colore = JColorChooser.showDialog( OptionFrame.this, "JBriscola " + main.version, main.color ); + if ( colore != null ) + main.color = colore; + OptionFrame.scegliColore.setBackground( main.color ); + } + } ); + lingua = new JLabel( main.stringaLingua ); + sfondo = new JLabel( main.stringaSfondo ); + String[] lingueDaSelezionare = { main.stringaIt, main.stringaLa, main.stringaBL, main.stringaBV }; + selezionaLingua = new JComboBox( lingueDaSelezionare ); + int linguaPreselezionata = 0; + if ( main.lang.equals( "it" ) ) + linguaPreselezionata = 0; + else if ( main.lang.equals( "la" ) ) + linguaPreselezionata = 1; + else if ( main.lang.equals( "bl" ) ) + linguaPreselezionata = 2; + else if ( main.lang.equals( "bv" ) ) + linguaPreselezionata = 3; + selezionaLingua.setSelectedIndex( linguaPreselezionata ); + suono = new JCheckBox( main.stringaSuono ); + suono.setSelected( main.sound ); + tastiRapidi = new JCheckBox( main.stringaTasti ); + tastiRapidi.setSelected( main.keys ); + pannello[0] = new JPanel( new GridLayout( 4, 1 ) ); + pannello[1] = new JPanel( new FlowLayout() ); + pannello[2] = new JPanel( new FlowLayout() ); + pannello[3] = new JPanel( new FlowLayout() ); + pannello[4] = new JPanel( new FlowLayout() ); + pannello[5] = new JPanel( new FlowLayout() ); + pannello[5].add( ok ); + pannello[5].add( annulla ); + pannello[4].add( sfondo ); + pannello[4].add( scegliColore ); + pannello[3].add( tastiRapidi ); + pannello[2].add( suono ); + pannello[1].add( lingua ); + pannello[1].add( selezionaLingua ); + pannello[0].add( pannello[1] ); + pannello[0].add( pannello[2] ); + pannello[0].add( pannello[3] ); + pannello[0].add( pannello[4] ); + add( pannello[0], BorderLayout.CENTER ); + add( pannello[5], BorderLayout.SOUTH ); + } +} diff --git a/JBriscola/all_versions/0.2/0.2/src/Pannello.java b/JBriscola/all_versions/0.2/0.2/src/Pannello.java new file mode 100755 index 0000000..24c6596 --- /dev/null +++ b/JBriscola/all_versions/0.2/0.2/src/Pannello.java @@ -0,0 +1,54 @@ +/* +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 javax.swing.*; +import java.awt.*; + +public class Pannello extends JPanel { + public static Main main; + public static Color color; + public Pannello() { } + public void paint( Graphics g ) { + super.paint( g ); + setBackground( main.color ); + if ( main.frame.ultimaCarta != null ) + main.frame.ultimaCarta.paintIcon( this, g, 50, 180 ); + if ( main.frame.mazzo ) + main.frame.retro2.paintIcon( this, g, 17, 256 ); + if ( main.frame.carteCPU[0] != null ) + main.frame.retro1.paintIcon( this, g, 230, 5 ); + if ( main.frame.carteCPU[1] != null ) + main.frame.retro1.paintIcon( this, g, 300, 5 ); + if ( main.frame.carteCPU[2] != null ) + main.frame.retro1.paintIcon( this, g, 370, 5 ); + if ( main.frame.carteInMano[0] != null ) + main.frame.carteInMano[0].paintIcon( this, g, 230, 340 ); + if ( main.frame.carteInMano[1] != null ) + main.frame.carteInMano[1].paintIcon( this, g, 300, 340 ); + if ( main.frame.carteInMano[2] != null ) + main.frame.carteInMano[2].paintIcon( this, g, 370, 340 ); + if ( main.frame.giocata[0] != null ) + main.frame.giocata[0].paintIcon( this, g, 250, 200 ); + if ( main.frame.giocata[1] != null ) + main.frame.giocata[1].paintIcon( this, g, 325, 150 ); + } +} + diff --git a/JBriscola/all_versions/0.2/0.2/src/img/1-1.jpg b/JBriscola/all_versions/0.2/0.2/src/img/1-1.jpg new file mode 100755 index 0000000..ae43510 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/1-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/1-2.jpg b/JBriscola/all_versions/0.2/0.2/src/img/1-2.jpg new file mode 100755 index 0000000..3f7c75a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/1-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/1-3.jpg b/JBriscola/all_versions/0.2/0.2/src/img/1-3.jpg new file mode 100755 index 0000000..9e1ead7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/1-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/1-4.jpg b/JBriscola/all_versions/0.2/0.2/src/img/1-4.jpg new file mode 100755 index 0000000..710f879 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/1-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/10-1.jpg b/JBriscola/all_versions/0.2/0.2/src/img/10-1.jpg new file mode 100755 index 0000000..9aba45a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/10-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/10-2.jpg b/JBriscola/all_versions/0.2/0.2/src/img/10-2.jpg new file mode 100755 index 0000000..037eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/10-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/10-3.jpg b/JBriscola/all_versions/0.2/0.2/src/img/10-3.jpg new file mode 100755 index 0000000..8780b72 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/10-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/10-4.jpg b/JBriscola/all_versions/0.2/0.2/src/img/10-4.jpg new file mode 100755 index 0000000..587dc0f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/10-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/2-1.jpg b/JBriscola/all_versions/0.2/0.2/src/img/2-1.jpg new file mode 100755 index 0000000..5dcb7db Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/2-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/2-2.jpg b/JBriscola/all_versions/0.2/0.2/src/img/2-2.jpg new file mode 100755 index 0000000..ea9eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/2-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/2-3.jpg b/JBriscola/all_versions/0.2/0.2/src/img/2-3.jpg new file mode 100755 index 0000000..8cb22dd Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/2-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/2-4.jpg b/JBriscola/all_versions/0.2/0.2/src/img/2-4.jpg new file mode 100755 index 0000000..b3e7898 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/2-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/3-1.jpg b/JBriscola/all_versions/0.2/0.2/src/img/3-1.jpg new file mode 100755 index 0000000..dcb435c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/3-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/3-2.jpg b/JBriscola/all_versions/0.2/0.2/src/img/3-2.jpg new file mode 100755 index 0000000..1e5b6ec Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/3-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/3-3.jpg b/JBriscola/all_versions/0.2/0.2/src/img/3-3.jpg new file mode 100755 index 0000000..9202cfe Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/3-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/3-4.jpg b/JBriscola/all_versions/0.2/0.2/src/img/3-4.jpg new file mode 100755 index 0000000..5436a8d Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/3-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/4-1.jpg b/JBriscola/all_versions/0.2/0.2/src/img/4-1.jpg new file mode 100755 index 0000000..3bab6d5 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/4-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/4-2.jpg b/JBriscola/all_versions/0.2/0.2/src/img/4-2.jpg new file mode 100755 index 0000000..b4901a6 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/4-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/4-3.jpg b/JBriscola/all_versions/0.2/0.2/src/img/4-3.jpg new file mode 100755 index 0000000..d754ad8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/4-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/4-4.jpg b/JBriscola/all_versions/0.2/0.2/src/img/4-4.jpg new file mode 100755 index 0000000..3a54b96 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/4-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/5-1.jpg b/JBriscola/all_versions/0.2/0.2/src/img/5-1.jpg new file mode 100755 index 0000000..3f7ba1f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/5-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/5-2.jpg b/JBriscola/all_versions/0.2/0.2/src/img/5-2.jpg new file mode 100755 index 0000000..fcacb75 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/5-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/5-3.jpg b/JBriscola/all_versions/0.2/0.2/src/img/5-3.jpg new file mode 100755 index 0000000..ce32f9f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/5-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/5-4.jpg b/JBriscola/all_versions/0.2/0.2/src/img/5-4.jpg new file mode 100755 index 0000000..b86b09a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/5-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/6-1.jpg b/JBriscola/all_versions/0.2/0.2/src/img/6-1.jpg new file mode 100755 index 0000000..f90cd81 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/6-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/6-2.jpg b/JBriscola/all_versions/0.2/0.2/src/img/6-2.jpg new file mode 100755 index 0000000..cf2a67a Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/6-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/6-3.jpg b/JBriscola/all_versions/0.2/0.2/src/img/6-3.jpg new file mode 100755 index 0000000..2cd2fe2 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/6-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/6-4.jpg b/JBriscola/all_versions/0.2/0.2/src/img/6-4.jpg new file mode 100755 index 0000000..73f410f Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/6-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/7-1.jpg b/JBriscola/all_versions/0.2/0.2/src/img/7-1.jpg new file mode 100755 index 0000000..08cd397 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/7-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/7-2.jpg b/JBriscola/all_versions/0.2/0.2/src/img/7-2.jpg new file mode 100755 index 0000000..a168ff8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/7-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/7-3.jpg b/JBriscola/all_versions/0.2/0.2/src/img/7-3.jpg new file mode 100755 index 0000000..5cda411 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/7-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/7-4.jpg b/JBriscola/all_versions/0.2/0.2/src/img/7-4.jpg new file mode 100755 index 0000000..5d63229 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/7-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/8-1.jpg b/JBriscola/all_versions/0.2/0.2/src/img/8-1.jpg new file mode 100755 index 0000000..a6faa7b Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/8-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/8-2.jpg b/JBriscola/all_versions/0.2/0.2/src/img/8-2.jpg new file mode 100755 index 0000000..0d9edbb Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/8-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/8-3.jpg b/JBriscola/all_versions/0.2/0.2/src/img/8-3.jpg new file mode 100755 index 0000000..91f8354 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/8-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/8-4.jpg b/JBriscola/all_versions/0.2/0.2/src/img/8-4.jpg new file mode 100755 index 0000000..cc0089c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/8-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/9-1.jpg b/JBriscola/all_versions/0.2/0.2/src/img/9-1.jpg new file mode 100755 index 0000000..be9c6bf Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/9-1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/9-2.jpg b/JBriscola/all_versions/0.2/0.2/src/img/9-2.jpg new file mode 100755 index 0000000..e25da4c Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/9-2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/9-3.jpg b/JBriscola/all_versions/0.2/0.2/src/img/9-3.jpg new file mode 100755 index 0000000..cd384f8 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/9-3.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/9-4.jpg b/JBriscola/all_versions/0.2/0.2/src/img/9-4.jpg new file mode 100755 index 0000000..441210e Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/9-4.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/carte.jpg b/JBriscola/all_versions/0.2/0.2/src/img/carte.jpg new file mode 100755 index 0000000..838ffac Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/carte.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/retro1.jpg b/JBriscola/all_versions/0.2/0.2/src/img/retro1.jpg new file mode 100755 index 0000000..9651b06 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/retro1.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/img/retro2.jpg b/JBriscola/all_versions/0.2/0.2/src/img/retro2.jpg new file mode 100755 index 0000000..c5d3925 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/img/retro2.jpg differ diff --git a/JBriscola/all_versions/0.2/0.2/src/sounds/0.wav b/JBriscola/all_versions/0.2/0.2/src/sounds/0.wav new file mode 100755 index 0000000..67d9abd Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/sounds/0.wav differ diff --git a/JBriscola/all_versions/0.2/0.2/src/sounds/1.wav b/JBriscola/all_versions/0.2/0.2/src/sounds/1.wav new file mode 100755 index 0000000..9357c97 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/sounds/1.wav differ diff --git a/JBriscola/all_versions/0.2/0.2/src/sounds/2.wav b/JBriscola/all_versions/0.2/0.2/src/sounds/2.wav new file mode 100755 index 0000000..92b1541 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/sounds/2.wav differ diff --git a/JBriscola/all_versions/0.2/0.2/src/sounds/3.wav b/JBriscola/all_versions/0.2/0.2/src/sounds/3.wav new file mode 100755 index 0000000..45a6e42 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/sounds/3.wav differ diff --git a/JBriscola/all_versions/0.2/0.2/src/sounds/4.wav b/JBriscola/all_versions/0.2/0.2/src/sounds/4.wav new file mode 100755 index 0000000..1f7ec90 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/sounds/4.wav differ diff --git a/JBriscola/all_versions/0.2/0.2/src/sounds/5.wav b/JBriscola/all_versions/0.2/0.2/src/sounds/5.wav new file mode 100755 index 0000000..3627f96 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/sounds/5.wav differ diff --git a/JBriscola/all_versions/0.2/0.2/src/sounds/pareggio.wav b/JBriscola/all_versions/0.2/0.2/src/sounds/pareggio.wav new file mode 100755 index 0000000..ff978e6 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/sounds/pareggio.wav differ diff --git a/JBriscola/all_versions/0.2/0.2/src/sounds/perso.wav b/JBriscola/all_versions/0.2/0.2/src/sounds/perso.wav new file mode 100755 index 0000000..a454ba4 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/sounds/perso.wav differ diff --git a/JBriscola/all_versions/0.2/0.2/src/sounds/vinto.wav b/JBriscola/all_versions/0.2/0.2/src/sounds/vinto.wav new file mode 100755 index 0000000..a6f3ac5 Binary files /dev/null and b/JBriscola/all_versions/0.2/0.2/src/sounds/vinto.wav differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/Frame.java b/JBriscola/all_versions/0.3/0.3.1/src/Frame.java new file mode 100755 index 0000000..21c4858 --- /dev/null +++ b/JBriscola/all_versions/0.3/0.3.1/src/Frame.java @@ -0,0 +1,523 @@ +/* +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 javax.swing.*; +import javax.sound.sampled.*; +import java.io.*; +import java.net.*; +import java.awt.*; +import java.awt.event.*; + +public class Frame extends JFrame { + + /* Booleana per determinare se disegnare il mazzo di carte o no (se + * è l'ultima mano). */ + public static boolean mazzo; + + public static Main main; + + /* Menu, bottoni, pannelli e componenti vari. */ + public static Pannello pannello; + public static JPanel pannello2; + public static JButton button; + public static JMenuBar barraMenu; + public static JMenu file, puntoInterrogativo; + public static JMenuItem nuovaPartita, nuovaPartitaAiTrenta, opzioni, esci, informazioni, punti, aggiornamenti, trucchi, tastiRapidi, briscola; + + /* Immagini delle carte. */ + public static ImageIcon retro1, retro2, ultimaCarta; + public static ImageIcon[] giocata = new ImageIcon[2]; + public static ImageIcon[] carteInMano = new ImageIcon[3]; + public static ImageIcon[] carteCPU = new ImageIcon[3]; + public static ImageIcon[] arrayCarteMescolate = new ImageIcon[40]; + public static ImageIcon[][] arrayCarte = new ImageIcon[10][4]; + + public Frame() { + + super( "Tronto's JBriscola " + main.version ); + + mazzo = true; + main = new Main(); + pannello = new Pannello(); + pannello2 = new JPanel( new FlowLayout() ); + + button = new JButton( main.stringaBottonePrendi ); + button.addActionListener( new ActionListener() { + + /* Quando viene premuto il bottone per prendere/lasciare le carte, + * valuta innanzitutto se il giocatore ha giocato, poi a chi + * darle ed eventualmente, se è finita la partita, a caricare + * il suono adatto. */ + public void actionPerformed( ActionEvent e ) { + + if ( giocata[0] != null && giocata[1] != null ) + main.mano++; + + try { + main.chiPrende(); + } catch ( Exception ex ) { + /* Avvisa di giocare una carta. */ + JOptionPane.showMessageDialog( Frame.this, main.stringaPrimaGioca, "JBriscola " + main.version, JOptionPane.WARNING_MESSAGE ); + } + + /* Avvisa che si è arrivati alla quartultima mano. */ + if ( main.mano == 16 ) + JOptionPane.showMessageDialog( Frame.this, main.stringaUltime4, "JBriscola " + main.version, JOptionPane.INFORMATION_MESSAGE ); + + /* Non disegna più la briscola e il mazzo se sono già state + * pescate tutte le carte. */ + if ( main.mano == 17 ) { + mazzo = false; + ultimaCarta = null; + pannello.repaint(); + Frame.this.repaint(); + } + + /* Mostra il punteggio e carica i suoni se è finita la partita. */ + if ( main.mano == 20 || + ( main.aiTrenta && + ( ( main.punteggio >= 30 || main.punteggioCPU >= 30 ) ) ) ) { + + String titolo = ""; + String suonoFinale = ""; + + if ( main.punteggio > main.punteggioCPU ) { + titolo = main.stringaVinto; + suonoFinale = "sounds/perso.wav"; + } + if ( main.punteggio < main.punteggioCPU ) { + titolo = main.stringaPerso; + suonoFinale = "sounds/vinto.wav"; + } + if ( main.punteggio == main.punteggioCPU ) { + titolo = main.stringaPareggio; + suonoFinale = "sounds/pareggio.wav"; + } + + if ( main.sound ) { + try { + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource( suonoFinale ) ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource( suonoFinale ) ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( Clip.class, ais.getFormat(), ( (int) ais.getFrameLength() * af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + ol.open(ais); + ol.loop( 0 ); + } catch ( Exception ex ) { + System.err.println( e ); + } + } + + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, titolo, JOptionPane.INFORMATION_MESSAGE ); + + main.pulisciTavolo(); + + } + if ( main.toccaAllaCPU ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + } ); + button.addKeyListener( new KeyAdapter() { + /* Aggiunge il keyListener per le scorciatoie da tastiera. Dato + * che il bottone prendi/lascia è l'unico componente effettivo + * della finestra, avrà obbligatoriamente il focus ed è necessario + * che sia lui a gestire gli eventi della tastiera. */ + public void keyReleased( KeyEvent key ) { + + if ( main.keys ) { + switch ( key.getKeyCode() ) { + case KeyEvent.VK_1: + if ( mettiCarta( 231, 500 ) ) { + if ( !main.CPUHaGiocato ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + break; + + case KeyEvent.VK_2: + if ( mettiCarta( 301, 500 ) ) { + if ( !main.CPUHaGiocato ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + break; + + case KeyEvent.VK_3: + if ( mettiCarta( 371, 500 ) ) { + if ( !main.CPUHaGiocato ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + break; + + case KeyEvent.VK_F1: + JOptionPane.showMessageDialog( Frame.this, main.stringaTasti2, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + break; + + case KeyEvent.VK_F2: + if ( main.mano == 20 ) { + main.aiTrenta = false; + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.aiTrenta = false; + main.mischia(); + pannello.repaint(); + repaint(); + } + } + break; + + case KeyEvent.VK_F3: + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 200 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + break; + + case KeyEvent.VK_F4: + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.INFORMATION_MESSAGE ); + break; + + case KeyEvent.VK_F5: + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + break; + + case KeyEvent.VK_F6: + String latest = main.version; + try { + URL latestIs = new URL( "http://porkynator.altervista.org/jbriscola-latest.is" ); + BufferedReader latestIsReader = new BufferedReader( new InputStreamReader( latestIs.openStream() ) ); + latest = latestIsReader.readLine(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaNoInternet, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + if ( latest.equals( main.version ) ) + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiNo, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + else + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiSi + "\n" + main.version + " ==> " + latest + "\n\n" + main.stringaScarica, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + break; + + case KeyEvent.VK_F7: + if ( main.mano == 20 ) { + main.aiTrenta = true; + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.aiTrenta = true; + main.mischia(); + pannello.repaint(); + repaint(); + } + } + break; + + case KeyEvent.VK_F8: + main.trucco( JOptionPane.showInputDialog( Frame.this, main.stringaInserisciCodice, "JBriscola - " + main.version, JOptionPane.PLAIN_MESSAGE ) ); + break; + + case KeyEvent.VK_Q: + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + break; + } + } + } + } ); + + barraMenu = new JMenuBar(); + + file = new JMenu( "File" ); + + nuovaPartita = new JMenuItem( main.stringaNuovaPartita ); + nuovaPartita.addActionListener( new ActionListener() { + /* Avvia una nuova partita, chiedendo prima conferma se ce n'è + * già una in corso. */ + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.aiTrenta = false; + main.mischia(); + pannello.repaint(); + repaint(); + } + + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.aiTrenta = false; + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + + nuovaPartitaAiTrenta = new JMenuItem( main.stringaNuovaPartitaAiTrenta ); + nuovaPartitaAiTrenta.addActionListener( new ActionListener() { + /* Avvia una nuova partita ai 30, chiedendo prima conferma se + * ce n'è già una in corso. */ + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.aiTrenta = true; + main.mischia(); + pannello.repaint(); + repaint(); + } + + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.aiTrenta = true; + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + + trucchi = new JMenuItem( main.stringaTrucchi ); + trucchi.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + /* Esegue il trucco */ + main.trucco( JOptionPane.showInputDialog( Frame.this, main.stringaInserisciCodice, "JBriscola - " + main.version, JOptionPane.PLAIN_MESSAGE ) ); + } + } ); + + opzioni = new JMenuItem( main.stringaOpzioni ); + opzioni.addActionListener( new ActionListener() { + /* Apre una OptionFrame per modificare le opzioni. */ + public void actionPerformed( ActionEvent e ) { + + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 200 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + } + }); + + esci = new JMenuItem( main.stringaEsci ); + esci.addActionListener( new ActionListener() { + /* Ciede conferma prima di uscire. */ + public void actionPerformed( ActionEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + } + }); + + file.add( nuovaPartita ); + file.add( nuovaPartitaAiTrenta ); + file.add( trucchi ); + file.add( opzioni ); + file.addSeparator(); + file.add( esci ); + + puntoInterrogativo = new JMenu( "?" ); + + informazioni = new JMenuItem( main.stringaInformazioni ); + informazioni.addActionListener( new ActionListener() { + /* Visualizza le informazioni. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + } + } ); + + tastiRapidi = new JMenuItem( main.stringaTasti ); + tastiRapidi.addActionListener( new ActionListener() { + /* Visualizza i tasti rapidi. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaTasti2, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + } + } ); + + briscola = new JMenuItem( main.stringaBriscola ); + briscola.addActionListener( new ActionListener() { + /* Visualizza il seme di briscola corrente. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaBriscola + ": " + main.semi[main.semeBriscola], "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + } + }); + + punti = new JMenuItem( main.stringaPunteggio ); + punti.addActionListener( new ActionListener() { + /* Visualizza il punteggio. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.INFORMATION_MESSAGE ); + } + } ); + + aggiornamenti = new JMenuItem( main.stringaAggiornamenti ); + aggiornamenti.addActionListener( new ActionListener() { + /* Cerca aggiornamenti sul sito http://porkynator.altervista.org, + * confrontando la versione del programma con quella scritta nel + * file jbriscola-latest.is (online). */ + public void actionPerformed( ActionEvent e ) { + String latest = main.version; + try { + URL latestIs = new URL( "http://porkynator.altervista.org/jbriscola-latest.is" ); + BufferedReader latestIsReader = new BufferedReader( new InputStreamReader( latestIs.openStream() ) ); + latest = latestIsReader.readLine(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaNoInternet, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + if ( latest.equals( main.version ) ) + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiNo, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + else + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiSi + "\n" + main.version + " ==> " + latest + "\n\n" + main.stringaScarica, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + } + } ); + + puntoInterrogativo.add( punti ); + puntoInterrogativo.add( briscola ); + puntoInterrogativo.add( tastiRapidi ); + puntoInterrogativo.add( informazioni ); + puntoInterrogativo.add( aggiornamenti ); + + barraMenu.add( file ); + barraMenu.add( puntoInterrogativo ); + + setJMenuBar( barraMenu ); + + /* Inizializza le immagini del retro delle carte. */ + retro1 = new ImageIcon( ClassLoader.getSystemResource( "img/retro1.jpg" ) ); + retro2 = new ImageIcon( ClassLoader.getSystemResource( "img/retro2.jpg" ) ); + + /* Inizializza tutte le immagini delle carte scorrendo l'array bidimensionale. */ + for (int i = 0; i < 10; i++) + for (int j = 0; j < 4; j++) + arrayCarte[i][j] = new ImageIcon( ClassLoader.getSystemResource( "img/" + (i+1) + "-" + (j+1) + ".jpg" ) ); + + /* Mischia le carte. */ + main.mischia(); + + /* Aggiunge i vari componenti. */ + pannello2.add( button ); + setLayout( new BorderLayout() ); + add( pannello, BorderLayout.CENTER ); + add( pannello2, BorderLayout.SOUTH ); + + /* Chiama il metodo mettiCarta se l'utente clicca. */ + addMouseListener( + new MouseAdapter() { + public void mouseClicked ( MouseEvent e ) { + if ( mettiCarta( e.getX(), e.getY() ) ) { + if ( !main.CPUHaGiocato ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + } + } + ); + + /* Chiede conferma prima di uscire quando viene chiusa la finestra. */ + addWindowListener( + new WindowAdapter() { + public void windowClosing( WindowEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + System.exit( 0 ); + } + } + ); + } + + /* Se il giocatore ha cliccato su una carta la gioca e riproduce un suono casuale. */ + public boolean mettiCarta( int x, int y ) { + + if ( !main.toccaAllaCPU && giocata[0] == null ) { + if ( main.sound && + ( ( x > 230 && x < 290 && y > 340 && y < 566 && carteInMano[0] != null ) || + ( x > 300 && x < 360 && y > 340 && y < 566 && carteInMano[1] != null ) || + ( x > 370 && x < 430 && y > 340 && y < 566 && carteInMano[2] != null ) ) ) { + try { + + double a = Math.random() * 6; + int i = (int) a; + + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( Clip.class, ais.getFormat(), ( (int) ais.getFrameLength() * af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + + ol.open(ais); + ol.loop( 0 ); + + } catch ( Exception e ) { + System.err.println( e ); + } + } + + if ( x > 230 && x < 290 && y > 340 && y < 566 && carteInMano[0] != null ) { + giocata[0] = carteInMano[0]; + carteInMano[0] = null; + pannello.repaint(); + return true; + } + + if ( x > 300 && x < 360 && y > 340 && y < 566 && carteInMano[1] != null ) { + giocata[0] = carteInMano[1]; + carteInMano[1] = null; + pannello.repaint(); + return true; + } + + if ( x > 370 && x < 430 && y > 340 && y < 566 && carteInMano[2] != null ) { + giocata[0] = carteInMano[2]; + carteInMano[2] = null; + pannello.repaint(); + return true; + } + } + + return false; + } +} + + diff --git a/JBriscola/all_versions/0.3/0.3.1/src/Main.java b/JBriscola/all_versions/0.3/0.3.1/src/Main.java new file mode 100755 index 0000000..467e724 --- /dev/null +++ b/JBriscola/all_versions/0.3/0.3.1/src/Main.java @@ -0,0 +1,1637 @@ +/* +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 { + + /*Costanti per i semi e i valori delle carte*/ + public static final int COPPE = 0; + public static final int BASTONI = 1; + public static final int DENARI = 2; + public static final int SPADE = 3; + public static final int RE = 0; + public static final int ASSO = 1; + public static final int DUE = 2; + public static final int TRE = 3; + public static final int QUATTRO = 4; + public static final int CINQUE = 5; + public static final int SEI = 6; + public static final int SETTE = 7; + public static final int FANTE = 8; + public static final int CAVALLO = 9; + + /* 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). + * aiTrenta serve per determinare se la partida che si sta giocando è + * normale o ai 30. + * carteScoperte serve se viene attivato il trucco per mostrare le + * carte della CPU. + * 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 aiTrenta = false; + public static boolean carteScoperte = false; + 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.3.1"; + public static String semi[] = { "Bastoni", "Coppe", "Denari", "Spade" }; + public static String stringaBriscola = "Briscola"; + 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 stringaNuovaPartitaAiTrenta = "Nuova Partita Ai 30"; + 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 stringaTrucchi = "Trucchi"; + public static String stringaInserisciCodice = "Inserisci il codice:"; + public static String stringaTruccoAttivato = "Trucco attivato!"; + public static String stringaTruccoSbagliato = "Trucco non valido"; + public static String stringaCheCartaVuoi = "E allora che carta vuoi?"; + 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 + "\nF7 " + stringaNuovaPartitaAiTrenta + "\nF8 " + stringaTrucchi + "\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() { + + ImageIcon aux; + + mano = 0; + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + frame.mazzo = true; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + frame.mazzo = 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 */ + semeBriscola = seme( frame.arrayCarteMescolate[39] ); + + /* 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; + } + + /* Viene chiamato a fine partita. */ + public void pulisciTavolo() { + + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + + frame.mazzo = false; + frame.ultimaCarta = null; + for ( int i = 0; i < 3; i++ ) { + frame.carteCPU[i] = null; + frame.carteInMano[i] = null; + } + + frame.pannello.repaint(); + frame.repaint(); + + } + + /* Fa giocare la CPU. Questo metodo contiene l'intelligenza artificiale + * del gioco. Ho preferito non commentare molto 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() { + + /* Nelle prime 16 mani ragiona in maniera diversa*/ + 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 ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } + } + } + + /* Nella penultima mano (prima di pescare l'ultima carta) */ + else if ( mano == 16 ) { + + /* Valuta cosa fare se il giocatore non ha ancora giocato. */ + if ( frame.giocata[0] == null ) { + if ( valore( frame.ultimaCarta ) == TRE || valore( frame.ultimaCarta ) == ASSO ) { + 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; + } + } + + /* Valuta cosa fare quando invece il giocatore ha giocato */ + else { + if ( valore( frame.ultimaCarta ) == TRE || valore( frame.ultimaCarta ) == ASSO ) { + 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 ) { + + /* Valuta cosa fare se il giocatore non ha ancora giocato. */ + 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() ); + } + } + + /* 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 == 18 ) { + + /* Valuta cosa fare se il giocatore non ha ancora giocato. */ + 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() ); + } + + /* 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() ); + } + } + + /* All'ultima mano è inutile ragionare, dato che ha una sola carta */ + } 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; + } + + /* Fa giocare una partita ai 30. È analogo al metodo precedente, cambia + * solo la tecnica di gioco, quindi non è commentato. */ + public void giocaCPUAiTrenta() { + + if ( punteggio <= 20 ) { + + 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 ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiPunti() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } else if ( haMessoPunti() ) { + if ( vaiSopra() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } else if ( haTagliato() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } else if ( haMessoBriscolaAlta() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } 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 ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } + } + } + + else { + + if ( frame.giocata[0] == null ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiTre() ); + else if ( vaiCarico() ); + else; + } + + /* Valuta cosa fare quando invece il giocatore ha giocato */ + else { + if ( haLisciato() ) { + if ( vaiSopra() ); + else if ( vaiLiscio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } else if ( haMessoPunti() ) { + if ( vaiSopra() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } else if ( haTagliato() ) { + if ( vaiLiscio() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } else if ( haMessoBriscolaAlta() ) { + if ( vaiLiscio() ); + else if ( vaiTre() ); + else if ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } 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 ( vaiTaglio() ); + else if ( vaiPunti() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + } else if ( haCaricato() ) { + if ( vaiSopra() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiAsso() ); + 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() { + + /* Chiama il metodo giocatorePrende( boolean giocatore ) con parametro + * true se ha preso il giocatore, false se ha preso la CPU */ + giocatorePrende( ( (seme( frame.giocata[0] ) == semeBriscola) && (seme( frame.giocata[1] ) != semeBriscola) ) + || ( (seme( frame.giocata[0] ) == seme( frame.giocata[1] )) && laPrimaEPiuAlta( valore( frame.giocata[0] ), valore( frame.giocata[1] )) ) + || ( (seme( frame.giocata[1] ) != semeBriscola) && (seme( frame.giocata[0] ) != seme( frame.giocata[1] )) && 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 ); + } + + /* Da i punti (true al giocatore, false alla CPU) e fa pescare le carte*/ + public void daiPunti( boolean giocatore ) { + + int punti = 0; + + switch( valore( frame.giocata[0] ) ) { + 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( valore( frame.giocata[1] ) ) { + 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.*/ + public boolean haLisciato() { + return ( (frame.giocata[0] != null) && (seme( frame.giocata[0] ) != semeBriscola) && + (valore( frame.giocata[0] ) != RE ) && (valore( frame.giocata[0] ) != ASSO ) && + (valore( frame.giocata[0] ) != TRE ) && (valore( frame.giocata[0] ) < FANTE ) ); + } + + public boolean haMessoPunti() { + return ( (frame.giocata[0] != null) && (seme( frame.giocata[0] ) != semeBriscola) && + ( (valore( frame.giocata[0] ) == RE ) || (valore( frame.giocata[0] ) == FANTE ) || + (valore( frame.giocata[0] ) == CAVALLO ) ) ); + } + + public boolean haTagliato() { + return ( (frame.giocata[0] != null) && (seme( frame.giocata[0] ) == semeBriscola) && + (valore( frame.giocata[0] ) == RE) && (valore( frame.giocata[0] ) != ASSO) && + (valore( frame.giocata[0] ) == TRE) && (valore( frame.giocata[0] ) <= SETTE) ); + } + + public boolean haMessoBriscolaAlta() { + return ( (frame.giocata[0] != null) && (seme( frame.giocata[0] ) == semeBriscola) && + ( (valore( frame.giocata[0] ) == RE ) || (valore( frame.giocata[0] ) == FANTE ) || + (valore( frame.giocata[0] ) == CAVALLO ) ) ); + } + + public boolean haMessoTre() { + return ( (frame.giocata[0] != null) && (seme( frame.giocata[0] ) == semeBriscola) && + (valore( frame.giocata[0] ) == TRE) ); + } + + public boolean haMessoAsso() { + return ( (frame.giocata[0] != null) && (seme( frame.giocata[0] ) == semeBriscola) && + (valore( frame.giocata[0] ) == ASSO) ); + } + + public boolean haCaricato() { + return ( (frame.giocata[0] != null) && (seme( frame.giocata[0] ) != semeBriscola) && + ( (valore( frame.giocata[0] ) == ASSO) || (valore( frame.giocata[0] ) == TRE) ) ); + } + + /* 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() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && + (valore( frame.carteCPU[i] ) != RE) && (valore( frame.carteCPU[i] ) != ASSO) && + (valore( frame.carteCPU[i] ) != TRE) && (valore( frame.carteCPU[i] ) < FANTE) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + + public boolean vaiPunti() { + /* Cerca di dare punti, cercando di darne il meno possibile (meglio + * un fante di re). */ + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == FANTE ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == CAVALLO ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == RE ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiTaglio() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( seme( frame.carteCPU[i] ) == semeBriscola && + (valore( frame.carteCPU[i] ) != RE) && (valore( frame.carteCPU[i] ) != ASSO) && + (valore( frame.carteCPU[i] ) != TRE) && (valore( frame.carteCPU[i] ) < FANTE) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiBriscolaAlta() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && (valore( frame.carteCPU[i] ) == FANTE) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && (valore( frame.carteCPU[i] ) == CAVALLO) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && (valore( frame.carteCPU[i] ) == RE) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiTre() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( seme( frame.carteCPU[i] ) == semeBriscola && (valore( frame.carteCPU[i] ) == TRE) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiAsso() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( seme( frame.carteCPU[i] ) == semeBriscola && (valore( frame.carteCPU[i] ) == ASSO) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiCarico() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == TRE) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == ASSO) ) { + 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; + + /* Se il giocatore ha giocato un asso, restituisce direttamente false. */ + if ( valore( frame.giocata[0] ) == ASSO ) + 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 ) { + a = valore( frame.carteCPU[0] ); + if ( (seme( frame.carteCPU[0] ) == seme( frame.giocata[0] )) && laPrimaEPiuAlta( a, valore( frame.giocata[0] ) ) ) + laPrimaPuoAndareSopra = true; + } + + if ( frame.carteCPU[1] != null ) { + b = valore( frame.carteCPU[1] ); + if ( (seme( frame.carteCPU[1] ) == seme( frame.giocata[0] )) && laPrimaEPiuAlta( b, valore( frame.giocata[0] ) ) ) + laSecondaPuoAndareSopra = true; + } + + if ( frame.carteCPU[2] != null ) { + c = valore( frame.carteCPU[2] ); + if ( (seme( frame.carteCPU[2] ) == seme( frame.giocata[0] )) && laPrimaEPiuAlta( c, valore( frame.giocata[0] ) ) ) + 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?! */ + if ( ( valore( frame.carteCPU[cartaDaGiocare] ) != RE ) && ( valore( frame.carteCPU[cartaDaGiocare] ) != ASSO ) && + ( valore( frame.carteCPU[cartaDaGiocare] ) != TRE ) && ( valore( frame.carteCPU[cartaDaGiocare] ) <= SETTE ) ) + return false; + + return true; + } + + /* I metodi seguenti valutano le carte che la CPU ha in mano. */ + public boolean hoCarico() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && + ( ( valore( frame.carteCPU[i] ) == ASSO ) || ( valore( frame.carteCPU[i] ) == TRE ) ) ) { + return true; + } + } + } + + return false; + } + public boolean hoAsso() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && (valore( frame.carteCPU[i] ) == ASSO ) ) { + return true; + } + } + } + + return false; + } + public boolean hoTre() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && (valore( frame.carteCPU[i] ) == TRE ) ) { + return true; + } + } + } + + return false; + } + public boolean hoBriscolaAlta() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && + ( (valore( frame.carteCPU[i] ) == RE) || (valore( frame.carteCPU[i] ) == FANTE) || (valore( frame.carteCPU[i] ) == CAVALLO) ) ) { + return true; + } + } + } + + return false; + } + public boolean hoTaglio() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && + (valore( frame.carteCPU[i] ) < FANTE ) && (valore( frame.carteCPU[i] ) != TRE ) + && (valore( frame.carteCPU[i] ) != ASSO ) && (valore( frame.carteCPU[i] ) != RE ) ) { + return true; + } + } + } + + return false; + } + + /* Restituisce il seme della carta passata come parametro */ + public static int seme( ImageIcon carta ) { + char aux[] = carta.toString().toCharArray(); + return aux[aux.length-5] - 49; + } + + /* Restituisce il valore della carta */ + public static int valore( ImageIcon carta ) { + char aux[] = carta.toString().toCharArray(); + return aux[aux.length-7] - 48; + } + + /* I vari trucchi del gioco. */ + public static void trucco( String trucco ) { + + byte[] truccoByte = trucco.getBytes(); + char[] truccoChar = new char[ truccoByte.length ]; + for ( int i = 0; i < truccoChar.length; i++ ) + truccoChar[i] = (char)truccoByte[i]; + + String attivato = stringaTruccoSbagliato; + + /* Carta che vuoi dove vuoi. Esempio: x251 sostituisce + * la terza carta (2) con il 6 (5) di coppe (1). */ + if ( truccoChar[0] == 'x' && truccoChar.length == 4 ) { + + attivato = stringaTruccoAttivato; + + String aS = "" + truccoChar[1]; + String xS = "" + truccoChar[2]; + String yS = "" + truccoChar[3]; + + int a, x, y; + + try { + + a = Integer.parseInt( aS ); + x = Integer.parseInt( xS ); + y = Integer.parseInt( yS ); + + frame.carteInMano[a] = frame.arrayCarte[x][y]; + + } catch ( Exception e ) { + attivato = stringaTruccoSbagliato; + } + } + + /* Mostra le carte del computer. */ + if ( trucco.equalsIgnoreCase( "Kill Devil Hill" ) ) { + + attivato = stringaTruccoAttivato; + + carteScoperte = true; + + } + + /* Scambia le carte con il computer. */ + if ( trucco.equalsIgnoreCase( "Darkside of Aquarius" ) ) { + + attivato = stringaTruccoAttivato; + + ImageIcon aux = null; + + for ( int i = 0; i < 3; i++ ) { + + aux = frame.carteInMano[i]; + frame.carteInMano[i] = frame.carteCPU[i]; + frame.carteCPU[i] = aux; + + } + } + + /* Cambia il seme di briscola con uno a caso, senza dire quale. + * L'ultima carta non cambia. È possibile comunque capire + * qual'è la briscola dal menu ?->Briscola*/ + if ( trucco.equalsIgnoreCase( "Change of Heart" ) ) { + + attivato = stringaTruccoAttivato; + + semeBriscola = (int) ( Math.random() * 4 ); + + } + + /* Asso Tre e Re di Briscola tutti in mano (anche in caso di doppioni). */ + if ( trucco.equalsIgnoreCase( "Tears of The Dragon" ) ) { + + attivato = stringaTruccoAttivato; + + frame.carteInMano[0] = frame.arrayCarte[9][semeBriscola]; + frame.carteInMano[1] = frame.arrayCarte[2][semeBriscola]; + frame.carteInMano[2] = frame.arrayCarte[0][semeBriscola]; + + } + + /* Tre assi di briscola. */ + if ( trucco.equalsIgnoreCase( "Navigate The Seas of The Sun" ) ) { + + attivato = stringaTruccoAttivato; + + frame.carteInMano[0] = frame.arrayCarte[0][semeBriscola]; + frame.carteInMano[1] = frame.arrayCarte[0][semeBriscola]; + frame.carteInMano[2] = frame.arrayCarte[0][semeBriscola]; + + } + + /* Fa finire la partita al prossimo piglio. */ + if ( trucco.equalsIgnoreCase( "Omega" ) ) { + + attivato = stringaTruccoAttivato; + + mano = 19; + + } + + JOptionPane.showMessageDialog( frame, attivato, "JBriscola - " + version, JOptionPane.INFORMATION_MESSAGE ); + frame.pannello.repaint(); + frame.repaint(); + + } + + /* 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" ) ) { + semi[0] = "Bastoni"; + semi[1] = "Coppe"; + semi[2] = "Denari"; + semi[3] = "Spade"; + stringaBriscola = "Briscola"; + 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"; + stringaNuovaPartitaAiTrenta = "Nuova Partita Ai 30"; + 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"; + stringaTrucchi = "Trucchi"; + stringaInserisciCodice = "Inserisci il codice:"; + stringaTruccoAttivato = "Trucco attivato!"; + stringaTruccoSbagliato = "Trucco non valido"; + stringaCheCartaVuoi = "E allora che carta vuoi?"; + 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 + "\nF7 " + stringaNuovaPartitaAiTrenta + "\nF8 " + stringaTrucchi + "\nq " + stringaEsci; + } + else if ( lang.equals( "la" ) ) { + semi[0] = "BACULI"; + semi[1] = "CALICES"; + semi[2] = "DENARII"; + semi[3] = "GLADII"; + stringaBriscola = "BRISCOLA"; + 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"; + stringaNuovaPartitaAiTrenta = "NOVA LVSO XXX"; + 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"; + stringaTrucchi = "CODICES"; + stringaInserisciCodice = "CODICEM INSCRIBE:"; + stringaTruccoAttivato = "CODEX INCIPIVIT!"; + stringaTruccoSbagliato = "ERROR CODICIS"; + stringaCheCartaVuoi = "QUAM CHARTAM VOLIS?"; + 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 + "\nF7 " + stringaNuovaPartitaAiTrenta + "\nF8 " + stringaTrucchi + "\nq " + stringaEsci; + } + if ( lang.equals( "bl" ) ) { + semi[0] = "Bastoi"; + semi[1] = "Coppe"; + semi[2] = "Danari"; + semi[3] = "Spade"; + stringaBriscola = "Briscola"; + 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"; + stringaNuovaPartitaAiTrenta = "Taca na partida ai 30"; + 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"; + stringaTrucchi = "Truchi"; + stringaInserisciCodice = "Scrivi al codice:"; + stringaTruccoAttivato = "Truco ativa'!"; + stringaTruccoSbagliato = "Truco sbaia'"; + stringaCheCartaVuoi = "Che carta utu alora?"; + 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 + "\nF7 " + stringaNuovaPartitaAiTrenta + "\nF8 " + stringaTrucchi + "\nq " + stringaEsci; + } + if ( lang.equals( "bv" ) ) { + semi[0] = "Bastoni"; + semi[1] = "Coppe"; + semi[2] = "Danari"; + semi[3] = "Spade"; + stringaBriscola = "Briscola"; + 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"; + stringaNuovaPartitaAiTrenta = "Na Partida ai 30"; + 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 ghe xe na versione pi nova"; + stringaTrucchi = "Truchi"; + stringaInserisciCodice = "Scrivi al codice:"; + stringaTruccoAttivato = "Truco ativa'!"; + stringaTruccoSbagliato = "Truco sbaia'"; + stringaCheCartaVuoi = "Che carta utu alora?"; + 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 + "\nF7 " + stringaNuovaPartitaAiTrenta + "\nF8 " + stringaTrucchi + "\nq " + stringaEsci; + } + if ( lang.equals( "en" ) ) { + semi[0] = "Sticks"; + semi[1] = "Cups"; + semi[2] = "Golds"; + semi[3] = "Swords"; + stringaBriscola = "Briscola"; + 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"; + stringaNuovaPartitaAiTrenta = "New Game - 30 Points"; + 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"; + stringaTrucchi = "Cheats"; + stringaInserisciCodice = "Insert cheat:"; + stringaTruccoAttivato = "Cheat actived!"; + stringaTruccoSbagliato = "Wrong cheat"; + stringaCheCartaVuoi = "So what card do you want?"; + 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 + "\nF7 " + stringaNuovaPartitaAiTrenta + "\nF8 " + stringaTrucchi + "\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(); + } + } +} diff --git a/JBriscola/all_versions/0.3/0.3.1/src/OptionFrame.java b/JBriscola/all_versions/0.3/0.3.1/src/OptionFrame.java new file mode 100755 index 0000000..d89745b --- /dev/null +++ b/JBriscola/all_versions/0.3/0.3.1/src/OptionFrame.java @@ -0,0 +1,169 @@ +/* +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.util.Formatter; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class OptionFrame extends JFrame { + + public static Main main = new Main(); + public static Formatter formatter; + public static JButton ok, annulla, scegliColore; + public static JLabel lingua, sfondo; + public static JComboBox selezionaLingua; + public static JCheckBox suono, tastiRapidi; + public static JPanel[] pannello = new JPanel[6]; + + public OptionFrame() { + + super( "JBriscola - " + main.stringaModificaOpzioni ); + + ok = new JButton( "OK" ); + ok.addActionListener( new ActionListener() { + + /* Quando le modifiche vengono confermate premendo ok, viene scritto + * il file di configurazione (o aggiornato) se possibile, e modificate + * le impostazioni attuali. */ + public void actionPerformed( ActionEvent e ) { + + try { + formatter = new Formatter( "JBriscolaConfig.txt" ); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( OptionFrame.this, main.stringaImpossibileConfigurare + ex, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + + String lang; + + switch ( selezionaLingua.getSelectedIndex() ) { + case 0: + lang = "it"; + break; + case 1: + lang = "la"; + break; + case 2: + lang = "bl"; + break; + case 3: + lang = "bv"; + break; + case 4: + lang = "en"; + break; + default: + lang = "it"; + break; + } + + String suonosiono, tastisiono; + + if ( suono.isSelected() ) + suonosiono = "suono=si"; + else + suonosiono = "suono=no"; + if ( tastiRapidi.isSelected() ) + tastisiono = "tasti=si"; + else + tastisiono = "tasti=no"; + + formatter.format( lang ); + formatter.format( "\n" ); + formatter.format( suonosiono ); + formatter.format( "\n" ); + formatter.format( tastisiono ); + formatter.format( "\n" ); + formatter.format( main.color.getRed() + " " + main.color.getGreen() + " " + main.color.getBlue() ); + formatter.close(); + + main.settaOpzioni(); + + OptionFrame.this.dispose(); + } + }); + + annulla = new JButton( main.stringaAnnulla ); + annulla.addActionListener( new ActionListener() { + /* Se l'utente annulla viene chiusa la finestra senza fare nulla. */ + public void actionPerformed( ActionEvent e ) { + OptionFrame.this.dispose(); + } + }); + + scegliColore = new JButton( " " ); + scegliColore.setBackground( main.color ); + scegliColore.addActionListener( new ActionListener() { + /* Permette di scegliere il colore dello sfondo. */ + public void actionPerformed( ActionEvent e ) { + Color colore = JColorChooser.showDialog( OptionFrame.this, "JBriscola " + main.version, main.color ); + if ( colore != null ) + main.color = colore; + OptionFrame.scegliColore.setBackground( main.color ); + } + } ); + + /* Vengono impostati e disegnati i vari componenti. */ + lingua = new JLabel( main.stringaLingua ); + sfondo = new JLabel( main.stringaSfondo ); + String[] lingueDaSelezionare = { main.stringaIt, main.stringaLa, main.stringaBL, main.stringaBV, main.stringaEN }; + selezionaLingua = new JComboBox( lingueDaSelezionare ); + int linguaPreselezionata = 0; + + if ( main.lang.equals( "it" ) ) + linguaPreselezionata = 0; + else if ( main.lang.equals( "la" ) ) + linguaPreselezionata = 1; + else if ( main.lang.equals( "bl" ) ) + linguaPreselezionata = 2; + else if ( main.lang.equals( "bv" ) ) + linguaPreselezionata = 3; + else if ( main.lang.equals( "en" ) ) + linguaPreselezionata = 4; + + selezionaLingua.setSelectedIndex( linguaPreselezionata ); + suono = new JCheckBox( main.stringaSuono ); + suono.setSelected( main.sound ); + tastiRapidi = new JCheckBox( main.stringaTasti ); + tastiRapidi.setSelected( main.keys ); + + pannello[0] = new JPanel( new GridLayout( 4, 1 ) ); + pannello[1] = new JPanel( new FlowLayout() ); + pannello[2] = new JPanel( new FlowLayout() ); + pannello[3] = new JPanel( new FlowLayout() ); + pannello[4] = new JPanel( new FlowLayout() ); + pannello[5] = new JPanel( new FlowLayout() ); + pannello[5].add( ok ); + pannello[5].add( annulla ); + pannello[4].add( sfondo ); + pannello[4].add( scegliColore ); + pannello[3].add( tastiRapidi ); + pannello[2].add( suono ); + pannello[1].add( lingua ); + pannello[1].add( selezionaLingua ); + pannello[0].add( pannello[1] ); + pannello[0].add( pannello[2] ); + pannello[0].add( pannello[3] ); + pannello[0].add( pannello[4] ); + add( pannello[0], BorderLayout.CENTER ); + add( pannello[5], BorderLayout.SOUTH ); + } +} diff --git a/JBriscola/all_versions/0.3/0.3.1/src/Pannello.java b/JBriscola/all_versions/0.3/0.3.1/src/Pannello.java new file mode 100755 index 0000000..ca9e9c6 --- /dev/null +++ b/JBriscola/all_versions/0.3/0.3.1/src/Pannello.java @@ -0,0 +1,88 @@ +/* +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 javax.swing.*; +import java.awt.*; + +/* Questa classe dispone semplicemente le carte + * sulla finestra e imposta la sfondo. */ +public class Pannello extends JPanel { + + public static Main main; + + public static Color color; + + public Pannello() { } + + public void paint( Graphics g ) { + + super.paint( g ); + + setBackground( main.color ); + + if ( main.frame.ultimaCarta != null ) + main.frame.ultimaCarta.paintIcon( this, g, 50, 180 ); + + if ( main.frame.mazzo ) + main.frame.retro2.paintIcon( this, g, 17, 256 ); + + if ( main.carteScoperte ) { + + if ( main.frame.carteCPU[0] != null ) + main.frame.carteCPU[0].paintIcon( this, g, 230, 5 ); + + if ( main.frame.carteCPU[1] != null ) + main.frame.carteCPU[1].paintIcon( this, g, 300, 5 ); + + if ( main.frame.carteCPU[2] != null ) + main.frame.carteCPU[2].paintIcon( this, g, 370, 5 ); + + } else { + + if ( main.frame.carteCPU[0] != null ) + main.frame.retro1.paintIcon( this, g, 230, 5 ); + + if ( main.frame.carteCPU[1] != null ) + main.frame.retro1.paintIcon( this, g, 300, 5 ); + + if ( main.frame.carteCPU[2] != null ) + main.frame.retro1.paintIcon( this, g, 370, 5 ); + + } + + if ( main.frame.carteInMano[0] != null ) + main.frame.carteInMano[0].paintIcon( this, g, 230, 340 ); + + if ( main.frame.carteInMano[1] != null ) + main.frame.carteInMano[1].paintIcon( this, g, 300, 340 ); + + if ( main.frame.carteInMano[2] != null ) + main.frame.carteInMano[2].paintIcon( this, g, 370, 340 ); + + if ( main.frame.giocata[0] != null ) + main.frame.giocata[0].paintIcon( this, g, 250, 200 ); + + if ( main.frame.giocata[1] != null ) + main.frame.giocata[1].paintIcon( this, g, 325, 150 ); + + } +} + diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/1-1.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/1-1.jpg new file mode 100755 index 0000000..ae43510 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/1-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/1-2.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/1-2.jpg new file mode 100755 index 0000000..3f7c75a Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/1-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/1-3.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/1-3.jpg new file mode 100755 index 0000000..9e1ead7 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/1-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/1-4.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/1-4.jpg new file mode 100755 index 0000000..710f879 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/1-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/10-1.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/10-1.jpg new file mode 100755 index 0000000..9aba45a Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/10-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/10-2.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/10-2.jpg new file mode 100755 index 0000000..037eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/10-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/10-3.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/10-3.jpg new file mode 100755 index 0000000..8780b72 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/10-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/10-4.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/10-4.jpg new file mode 100755 index 0000000..587dc0f Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/10-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/2-1.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/2-1.jpg new file mode 100755 index 0000000..5dcb7db Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/2-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/2-2.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/2-2.jpg new file mode 100755 index 0000000..ea9eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/2-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/2-3.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/2-3.jpg new file mode 100755 index 0000000..8cb22dd Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/2-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/2-4.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/2-4.jpg new file mode 100755 index 0000000..b3e7898 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/2-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/3-1.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/3-1.jpg new file mode 100755 index 0000000..dcb435c Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/3-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/3-2.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/3-2.jpg new file mode 100755 index 0000000..1e5b6ec Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/3-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/3-3.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/3-3.jpg new file mode 100755 index 0000000..9202cfe Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/3-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/3-4.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/3-4.jpg new file mode 100755 index 0000000..5436a8d Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/3-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/4-1.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/4-1.jpg new file mode 100755 index 0000000..3bab6d5 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/4-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/4-2.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/4-2.jpg new file mode 100755 index 0000000..b4901a6 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/4-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/4-3.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/4-3.jpg new file mode 100755 index 0000000..d754ad8 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/4-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/4-4.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/4-4.jpg new file mode 100755 index 0000000..3a54b96 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/4-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/5-1.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/5-1.jpg new file mode 100755 index 0000000..3f7ba1f Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/5-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/5-2.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/5-2.jpg new file mode 100755 index 0000000..fcacb75 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/5-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/5-3.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/5-3.jpg new file mode 100755 index 0000000..ce32f9f Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/5-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/5-4.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/5-4.jpg new file mode 100755 index 0000000..b86b09a Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/5-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/6-1.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/6-1.jpg new file mode 100755 index 0000000..f90cd81 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/6-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/6-2.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/6-2.jpg new file mode 100755 index 0000000..cf2a67a Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/6-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/6-3.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/6-3.jpg new file mode 100755 index 0000000..2cd2fe2 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/6-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/6-4.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/6-4.jpg new file mode 100755 index 0000000..73f410f Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/6-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/7-1.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/7-1.jpg new file mode 100755 index 0000000..08cd397 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/7-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/7-2.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/7-2.jpg new file mode 100755 index 0000000..a168ff8 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/7-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/7-3.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/7-3.jpg new file mode 100755 index 0000000..5cda411 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/7-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/7-4.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/7-4.jpg new file mode 100755 index 0000000..5d63229 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/7-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/8-1.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/8-1.jpg new file mode 100755 index 0000000..a6faa7b Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/8-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/8-2.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/8-2.jpg new file mode 100755 index 0000000..0d9edbb Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/8-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/8-3.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/8-3.jpg new file mode 100755 index 0000000..91f8354 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/8-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/8-4.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/8-4.jpg new file mode 100755 index 0000000..cc0089c Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/8-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/9-1.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/9-1.jpg new file mode 100755 index 0000000..be9c6bf Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/9-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/9-2.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/9-2.jpg new file mode 100755 index 0000000..e25da4c Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/9-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/9-3.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/9-3.jpg new file mode 100755 index 0000000..cd384f8 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/9-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/9-4.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/9-4.jpg new file mode 100755 index 0000000..441210e Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/9-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/Thumbs.db b/JBriscola/all_versions/0.3/0.3.1/src/img/Thumbs.db new file mode 100755 index 0000000..d9b6bc5 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/Thumbs.db differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/carte.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/carte.jpg new file mode 100755 index 0000000..838ffac Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/carte.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/retro1.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/retro1.jpg new file mode 100755 index 0000000..9651b06 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/retro1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/img/retro2.jpg b/JBriscola/all_versions/0.3/0.3.1/src/img/retro2.jpg new file mode 100755 index 0000000..c5d3925 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/img/retro2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/sounds/0.wav b/JBriscola/all_versions/0.3/0.3.1/src/sounds/0.wav new file mode 100755 index 0000000..67d9abd Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/sounds/0.wav differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/sounds/1.wav b/JBriscola/all_versions/0.3/0.3.1/src/sounds/1.wav new file mode 100755 index 0000000..9357c97 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/sounds/1.wav differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/sounds/2.wav b/JBriscola/all_versions/0.3/0.3.1/src/sounds/2.wav new file mode 100755 index 0000000..92b1541 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/sounds/2.wav differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/sounds/3.wav b/JBriscola/all_versions/0.3/0.3.1/src/sounds/3.wav new file mode 100755 index 0000000..45a6e42 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/sounds/3.wav differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/sounds/4.wav b/JBriscola/all_versions/0.3/0.3.1/src/sounds/4.wav new file mode 100755 index 0000000..1f7ec90 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/sounds/4.wav differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/sounds/5.wav b/JBriscola/all_versions/0.3/0.3.1/src/sounds/5.wav new file mode 100755 index 0000000..3627f96 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/sounds/5.wav differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/sounds/pareggio.wav b/JBriscola/all_versions/0.3/0.3.1/src/sounds/pareggio.wav new file mode 100755 index 0000000..ff978e6 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/sounds/pareggio.wav differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/sounds/perso.wav b/JBriscola/all_versions/0.3/0.3.1/src/sounds/perso.wav new file mode 100755 index 0000000..a454ba4 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/sounds/perso.wav differ diff --git a/JBriscola/all_versions/0.3/0.3.1/src/sounds/vinto.wav b/JBriscola/all_versions/0.3/0.3.1/src/sounds/vinto.wav new file mode 100755 index 0000000..a6f3ac5 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.1/src/sounds/vinto.wav differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/CartePassateFrame.java b/JBriscola/all_versions/0.3/0.3.2/src/CartePassateFrame.java new file mode 100755 index 0000000..c1d90ef --- /dev/null +++ b/JBriscola/all_versions/0.3/0.3.2/src/CartePassateFrame.java @@ -0,0 +1,39 @@ +/* +Copyright 2009-2010 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 javax.swing.*; +import java.awt.*; + +public class CartePassateFrame extends JFrame { + + public static Main main = new Main(); + public static PannelloCartePassate pannelloCP = new PannelloCartePassate(); + + CartePassateFrame() { + super( "JBriscola - " + main.stringaCartePassate ); + pannelloCP.repaint(); + add( pannelloCP ); + } + +} + + + diff --git a/JBriscola/all_versions/0.3/0.3.2/src/Frame.java b/JBriscola/all_versions/0.3/0.3.2/src/Frame.java new file mode 100755 index 0000000..c211cab --- /dev/null +++ b/JBriscola/all_versions/0.3/0.3.2/src/Frame.java @@ -0,0 +1,552 @@ +/* +Copyright 2009-2010 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 javax.swing.*; +import javax.sound.sampled.*; +import java.io.*; +import java.net.*; +import java.awt.*; +import java.awt.event.*; + +public class Frame extends JFrame { + + /* Booleana per determinare se disegnare il mazzo di carte o no (se + * è l'ultima mano). */ + public static boolean mazzo; + + public static Main main; + + /* Menu, bottoni, pannelli e componenti vari. */ + public static Pannello pannello; + public static JPanel pannello2; + public static JButton button; + public static JMenuBar barraMenu; + public static JMenu file, puntoInterrogativo; + public static JMenuItem nuovaPartita, nuovaPartitaAiTrenta, opzioni, esci, informazioni, punti, cartePassate, aggiornamenti, trucchi, tastiRapidi, briscola; + + /* Immagini delle carte. */ + public static ImageIcon retro1, retro2, ultimaCarta; + public static ImageIcon[] giocata = new ImageIcon[2]; + public static ImageIcon[] carteInMano = new ImageIcon[3]; + public static ImageIcon[] carteCPU = new ImageIcon[3]; + public static ImageIcon[] arrayCarteMescolate = new ImageIcon[40]; + public static ImageIcon[] arrayCartePassate = new ImageIcon[40]; + public static ImageIcon[][] arrayCarte = new ImageIcon[10][4]; + + public Frame() { + + super( "Tronto's JBriscola " + main.version ); + + mazzo = true; + main = new Main(); + pannello = new Pannello(); + pannello2 = new JPanel( new FlowLayout() ); + + button = new JButton( main.stringaBottonePrendi ); + button.addActionListener( new ActionListener() { + + /* Quando viene premuto il bottone per prendere/lasciare le carte, + * valuta innanzitutto se il giocatore ha giocato, poi a chi + * darle ed eventualmente, se è finita la partita, a caricare + * il suono adatto. */ + public void actionPerformed( ActionEvent e ) { + + arrayCartePassate[main.mano*2] = giocata[0]; + arrayCartePassate[main.mano*2+1] = giocata[1]; + + if ( giocata[0] != null && giocata[1] != null ) + main.mano++; + + try { + main.chiPrende(); + } catch ( Exception ex ) { + /* Avvisa di giocare una carta. */ + JOptionPane.showMessageDialog( Frame.this, main.stringaPrimaGioca, "JBriscola " + main.version, JOptionPane.WARNING_MESSAGE ); + } + + /* Avvisa che si è arrivati alla quartultima mano. */ + if ( main.mano == 16 ) + JOptionPane.showMessageDialog( Frame.this, main.stringaUltime4, "JBriscola " + main.version, JOptionPane.INFORMATION_MESSAGE ); + + /* Non disegna più la briscola e il mazzo se sono già state + * pescate tutte le carte. */ + if ( main.mano == 17 ) { + mazzo = false; + ultimaCarta = null; + pannello.repaint(); + Frame.this.repaint(); + } + + /* Mostra il punteggio e carica i suoni se è finita la partita. */ + if ( main.mano == 20 || + ( main.aiTrenta && + ( ( main.punteggio >= 30 || main.punteggioCPU >= 30 ) ) ) ) { + + String titolo = ""; + String suonoFinale = ""; + + if ( main.punteggio > main.punteggioCPU ) { + titolo = main.stringaVinto; + suonoFinale = "sounds/perso.wav"; + } + if ( main.punteggio < main.punteggioCPU ) { + titolo = main.stringaPerso; + suonoFinale = "sounds/vinto.wav"; + } + if ( main.punteggio == main.punteggioCPU ) { + titolo = main.stringaPareggio; + suonoFinale = "sounds/pareggio.wav"; + } + + if ( main.sound ) { + try { + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource( suonoFinale ) ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource( suonoFinale ) ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( Clip.class, ais.getFormat(), ( (int) ais.getFrameLength() * af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + ol.open(ais); + ol.loop( 0 ); + } catch ( Exception ex ) { + System.err.println( e ); + } + } + + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, titolo, JOptionPane.INFORMATION_MESSAGE ); + + main.pulisciTavolo(); + + } + if ( main.toccaAllaCPU ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + } ); + button.addKeyListener( new KeyAdapter() { + /* Aggiunge il keyListener per le scorciatoie da tastiera. Dato + * che il bottone prendi/lascia è l'unico componente effettivo + * della finestra, avrà obbligatoriamente il focus ed è necessario + * che sia lui a gestire gli eventi della tastiera. */ + public void keyReleased( KeyEvent key ) { + + if ( main.keys ) { + switch ( key.getKeyCode() ) { + case KeyEvent.VK_1: + if ( mettiCarta( 231, 500 ) ) { + if ( !main.CPUHaGiocato ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + break; + + case KeyEvent.VK_2: + if ( mettiCarta( 301, 500 ) ) { + if ( !main.CPUHaGiocato ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + break; + + case KeyEvent.VK_3: + if ( mettiCarta( 371, 500 ) ) { + if ( !main.CPUHaGiocato ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + break; + + case KeyEvent.VK_F1: + JOptionPane.showMessageDialog( Frame.this, main.stringaTasti2, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + break; + + case KeyEvent.VK_F2: + if ( main.mano == 20 ) { + main.aiTrenta = false; + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.aiTrenta = false; + main.mischia(); + pannello.repaint(); + repaint(); + } + } + break; + + case KeyEvent.VK_F3: + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 200 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + break; + + case KeyEvent.VK_F4: + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.INFORMATION_MESSAGE ); + break; + + case KeyEvent.VK_F5: + CartePassateFrame cartePassateFrame = new CartePassateFrame(); + cartePassateFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + cartePassateFrame.setResizable( false ); + cartePassateFrame.setAlwaysOnTop( true ); + cartePassateFrame.setSize( 700, 560 ); + cartePassateFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 700) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - 560) / 2); + cartePassateFrame.setVisible( true ); + break; + + case KeyEvent.VK_F6: + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + break; + + case KeyEvent.VK_F7: + String latest = main.version; + try { + URL latestIs = new URL( "http://porkynator.altervista.org/jbriscola-latest.is" ); + BufferedReader latestIsReader = new BufferedReader( new InputStreamReader( latestIs.openStream() ) ); + latest = latestIsReader.readLine(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaNoInternet, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + if ( latest.equals( main.version ) ) + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiNo, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + else + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiSi + "\n" + main.version + " ==> " + latest + "\n\n" + main.stringaScarica, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + break; + + case KeyEvent.VK_F8: + if ( main.mano == 20 ) { + main.aiTrenta = true; + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.aiTrenta = true; + main.mischia(); + pannello.repaint(); + repaint(); + } + } + break; + + case KeyEvent.VK_F9: + main.trucco( JOptionPane.showInputDialog( Frame.this, main.stringaInserisciCodice, "JBriscola - " + main.version, JOptionPane.PLAIN_MESSAGE ) ); + break; + + case KeyEvent.VK_Q: + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + break; + } + } + } + } ); + + barraMenu = new JMenuBar(); + + file = new JMenu( "File" ); + + nuovaPartita = new JMenuItem( main.stringaNuovaPartita ); + nuovaPartita.addActionListener( new ActionListener() { + /* Avvia una nuova partita, chiedendo prima conferma se ce n'è + * già una in corso. */ + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.aiTrenta = false; + main.mischia(); + pannello.repaint(); + repaint(); + } + + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.aiTrenta = false; + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + + nuovaPartitaAiTrenta = new JMenuItem( main.stringaNuovaPartitaAiTrenta ); + nuovaPartitaAiTrenta.addActionListener( new ActionListener() { + /* Avvia una nuova partita ai 30, chiedendo prima conferma se + * ce n'è già una in corso. */ + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.aiTrenta = true; + main.mischia(); + pannello.repaint(); + repaint(); + } + + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.aiTrenta = true; + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + + trucchi = new JMenuItem( main.stringaTrucchi ); + trucchi.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + /* Esegue il trucco */ + main.trucco( JOptionPane.showInputDialog( Frame.this, main.stringaInserisciCodice, "JBriscola - " + main.version, JOptionPane.PLAIN_MESSAGE ) ); + } + } ); + + opzioni = new JMenuItem( main.stringaOpzioni ); + opzioni.addActionListener( new ActionListener() { + /* Apre una OptionFrame per modificare le opzioni. */ + public void actionPerformed( ActionEvent e ) { + + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 200 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + } + }); + + esci = new JMenuItem( main.stringaEsci ); + esci.addActionListener( new ActionListener() { + /* Ciede conferma prima di uscire. */ + public void actionPerformed( ActionEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + } + }); + + file.add( nuovaPartita ); + file.add( nuovaPartitaAiTrenta ); + file.add( trucchi ); + file.add( opzioni ); + file.addSeparator(); + file.add( esci ); + + puntoInterrogativo = new JMenu( "?" ); + + informazioni = new JMenuItem( main.stringaInformazioni ); + informazioni.addActionListener( new ActionListener() { + /* Visualizza le informazioni. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + } + } ); + + tastiRapidi = new JMenuItem( main.stringaTasti ); + tastiRapidi.addActionListener( new ActionListener() { + /* Visualizza i tasti rapidi. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaTasti2, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + } + } ); + + briscola = new JMenuItem( main.stringaBriscola ); + briscola.addActionListener( new ActionListener() { + /* Visualizza il seme di briscola corrente. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaBriscola + ": " + main.semi[main.semeBriscola], "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + } + }); + + punti = new JMenuItem( main.stringaPunteggio ); + punti.addActionListener( new ActionListener() { + /* Visualizza il punteggio. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.INFORMATION_MESSAGE ); + } + } ); + + cartePassate = new JMenuItem( main.stringaCartePassate ); + cartePassate.addActionListener( new ActionListener() { + /*Visualizza le carte passate*/ + public void actionPerformed( ActionEvent e ) { + CartePassateFrame cartePassateFrame = new CartePassateFrame(); + cartePassateFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + cartePassateFrame.setResizable( false ); + cartePassateFrame.setAlwaysOnTop( true ); + cartePassateFrame.setSize( 700, 560 ); + cartePassateFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 700) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - 560) / 2); + cartePassateFrame.setVisible( true ); + } + } ); + + aggiornamenti = new JMenuItem( main.stringaAggiornamenti ); + aggiornamenti.addActionListener( new ActionListener() { + /* Cerca aggiornamenti sul sito http://porkynator.altervista.org, + * confrontando la versione del programma con quella scritta nel + * file jbriscola-latest.is (online). */ + public void actionPerformed( ActionEvent e ) { + String latest = main.version; + try { + URL latestIs = new URL( "http://porkynator.altervista.org/jbriscola-latest.is" ); + BufferedReader latestIsReader = new BufferedReader( new InputStreamReader( latestIs.openStream() ) ); + latest = latestIsReader.readLine(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaNoInternet, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + if ( latest.equals( main.version ) ) + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiNo, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + else + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiSi + "\n" + main.version + " ==> " + latest + "\n\n" + main.stringaScarica, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + } + } ); + + puntoInterrogativo.add( punti ); + puntoInterrogativo.add( cartePassate ); + puntoInterrogativo.add( briscola ); + puntoInterrogativo.add( tastiRapidi ); + puntoInterrogativo.add( informazioni ); + puntoInterrogativo.add( aggiornamenti ); + + barraMenu.add( file ); + barraMenu.add( puntoInterrogativo ); + + setJMenuBar( barraMenu ); + + /* Inizializza le immagini del retro delle carte. */ + retro1 = new ImageIcon( ClassLoader.getSystemResource( "img/retro1.jpg" ) ); + retro2 = new ImageIcon( ClassLoader.getSystemResource( "img/retro2.jpg" ) ); + + /* Inizializza tutte le immagini delle carte scorrendo l'array bidimensionale. */ + for (int i = 0; i < 10; i++) + for (int j = 0; j < 4; j++) + arrayCarte[i][j] = new ImageIcon( ClassLoader.getSystemResource( "img/" + (i+1) + "-" + (j+1) + ".jpg" ) ); + + /* Mischia le carte. */ + main.mischia(); + + /* Aggiunge i vari componenti. */ + pannello2.add( button ); + setLayout( new BorderLayout() ); + add( pannello, BorderLayout.CENTER ); + add( pannello2, BorderLayout.SOUTH ); + + /* Chiama il metodo mettiCarta se l'utente clicca. */ + addMouseListener( + new MouseAdapter() { + public void mouseClicked ( MouseEvent e ) { + if ( mettiCarta( e.getX(), e.getY() ) ) { + if ( !main.CPUHaGiocato ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + } + } + ); + + /* Chiede conferma prima di uscire quando viene chiusa la finestra. */ + addWindowListener( + new WindowAdapter() { + public void windowClosing( WindowEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + System.exit( 0 ); + } + } + ); + } + + /* Se il giocatore ha cliccato su una carta la gioca e riproduce un suono casuale. */ + public boolean mettiCarta( int x, int y ) { + + if ( !main.toccaAllaCPU && giocata[0] == null ) { + if ( main.sound && + ( ( x > 230 && x < 290 && y > 340 && y < 566 && carteInMano[0] != null ) || + ( x > 300 && x < 360 && y > 340 && y < 566 && carteInMano[1] != null ) || + ( x > 370 && x < 430 && y > 340 && y < 566 && carteInMano[2] != null ) ) ) { + try { + + double a = Math.random() * 6; + int i = (int) a; + + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( Clip.class, ais.getFormat(), ( (int) ais.getFrameLength() * af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + + ol.open(ais); + ol.loop( 0 ); + + } catch ( Exception e ) { + System.err.println( e ); + } + } + + if ( x > 230 && x < 290 && y > 340 && y < 566 && carteInMano[0] != null ) { + giocata[0] = carteInMano[0]; + carteInMano[0] = null; + pannello.repaint(); + return true; + } + + if ( x > 300 && x < 360 && y > 340 && y < 566 && carteInMano[1] != null ) { + giocata[0] = carteInMano[1]; + carteInMano[1] = null; + pannello.repaint(); + return true; + } + + if ( x > 370 && x < 430 && y > 340 && y < 566 && carteInMano[2] != null ) { + giocata[0] = carteInMano[2]; + carteInMano[2] = null; + pannello.repaint(); + return true; + } + } + + return false; + } +} + + diff --git a/JBriscola/all_versions/0.3/0.3.2/src/Main.java b/JBriscola/all_versions/0.3/0.3.2/src/Main.java new file mode 100755 index 0000000..3760a0d --- /dev/null +++ b/JBriscola/all_versions/0.3/0.3.2/src/Main.java @@ -0,0 +1,2086 @@ +/* +Copyright 2009-2010 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 { + + /*Costanti per i semi e i valori delle carte*/ + public static final int COPPE = 0; + public static final int BASTONI = 1; + public static final int DENARI = 2; + public static final int SPADE = 3; + public static final int RE = 0; + public static final int ASSO = 1; + public static final int DUE = 2; + public static final int TRE = 3; + public static final int QUATTRO = 4; + public static final int CINQUE = 5; + public static final int SEI = 6; + public static final int SETTE = 7; + public static final int FANTE = 8; + public static final int CAVALLO = 9; + + /* 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). + * aiTrenta serve per determinare se la partida che si sta giocando è + * normale o ai 30. + * carteScoperte serve se viene attivato il trucco per mostrare le + * carte della CPU. + * 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 aiTrenta = false; + public static boolean carteScoperte = false; + 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.3.2"; + public static String semi[] = { "Bastoni", "Coppe", "Denari", "Spade" }; + public static String stringaBriscola = "Briscola"; + 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 stringaNuovaPartitaAiTrenta = "Nuova Partita Ai 30"; + 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 stringaCartePassate = "Carte Passate"; + public static String stringaSfondo = "Sfondo"; + public static String stringaTasti = "Tasti rapidi"; + public static String stringaAggiornamenti = "Cerca aggiornamenti"; + public static String stringaTrucchi = "Trucchi"; + public static String stringaInserisciCodice = "Inserisci il codice:"; + public static String stringaTruccoAttivato = "Trucco attivato!"; + public static String stringaTruccoSbagliato = "Trucco non valido"; + public static String stringaCheCartaVuoi = "E allora che carta vuoi?"; + 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 " + stringaCartePassate + "\nF6 " + stringaInformazioni + "\nF7 " + stringaAggiornamenti + "\nF8 " + stringaNuovaPartitaAiTrenta + "\nF9 " + stringaTrucchi + "\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() { + + ImageIcon aux; + + mano = 0; + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + frame.mazzo = true; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + frame.mazzo = 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 */ + semeBriscola = seme( frame.arrayCarteMescolate[39] ); + + /* 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; + } + + /* Viene chiamato a fine partita. */ + public void pulisciTavolo() { + + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + + frame.mazzo = false; + frame.ultimaCarta = null; + for ( int i = 0; i < 3; i++ ) { + frame.carteCPU[i] = null; + frame.carteInMano[i] = null; + } + + for ( int i = 0; i < 40; i++ ) + frame.arrayCartePassate[i] = null; + + frame.pannello.repaint(); + frame.repaint(); + + } + + /* Fa giocare la CPU. Questo metodo contiene l'intelligenza artificiale + * del gioco. Ho preferito non commentare molto 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() { + + /* Nelle prime 16 mani ragiona in maniera diversa*/ + if ( mano < 16 ) { + + /* Valuta cosa fare se il giocatore non ha ancora giocato. */ + if ( !haGiocato() ) { + if ( vaiPuntiConCarichiPassati() ); + else if ( vaiLiscioConCarichiPassati() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + 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 ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + 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 ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiTaglio() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haTagliato() ) { + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoBriscolaAlta() ) { + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + 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 ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + } else if ( haMessoAsso() ) { + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + 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 ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } + } + } + + /* Nella penultima mano (prima di pescare l'ultima carta) */ + else if ( mano == 16 ) { + + /* Valuta cosa fare se il giocatore non ha ancora giocato. */ + if ( !haGiocato() ) { + if ( valore( frame.ultimaCarta ) == TRE || valore( frame.ultimaCarta ) == ASSO ) { + + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiCarico() ); + else if ( vaiPunti() ); + else if ( vaiLiscio() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTre() ); + else if ( vaiAsso() ); + else; + } else { + if ( vaiPuntiConCarichiPassati() ); + else if ( vaiLiscioConCarichiPassati() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + 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 ( valore( frame.ultimaCarta ) == TRE || valore( frame.ultimaCarta ) == ASSO ) { + if ( haCaricato() ) { + if ( vaiSopra() ); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + 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 ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + 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 ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + 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 ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoBriscolaAlta() ) { + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else 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 ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + } else if ( haMessoAsso() ) { + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else 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 ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } + } + } + + } else if ( mano == 17 ) { + /* AVVISO: nelle ultime 3 mani, la CPU "guarda" le carte al giocatore; + * Questa non è una scorrettezza, ma semplicemente un metodo per sem- + * plificare i passaggi: il computer potrebbe comunque dedurre le carte + * che ha in mano il giocatore controllando le proprie carte e quelle + * che sono già passate. */ + + /* Valuta cosa fare se il giocatore non ha ancora giocato. */ + if ( !haGiocato() ) { + if ( hoLaBriscolaPiuAltaInGioco() && hoLaSecondaBriscolaPiuAltaInGioco() ) + vaiSecondaBriscolaPiuAltaInGioco(); + else { + if ( vaiLiscioConCarichiPassati() ); + else if ( vaiPuntiConCarichiPassati() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + } + } + + /* Valuta cosa fare quando invece il giocatore ha giocato */ + else { + if ( haLisciato() ) { + if ( vaiSopra() ); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + 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 ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + 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 ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoBriscolaAlta() ) { + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else 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 ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + } else if ( haMessoAsso() ) { + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + } else if ( haCaricato() ) { + if ( vaiSopra() ); + else if ( piuAltaInGioco() == ASSO && luiHaLaBriscolaPiuAltaInGioco() && hoTre() ) + vaiTre(); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( piuAltaInGioco() == ASSO && !luiHaLaSecondaBriscolaPiuAltaInGioco() && hoAsso() ) + vaiAsso(); + else if ( vaiTre() ); + else if ( vaiAsso() ); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } + } + + } else if ( mano == 18 ) { + + /* Valuta cosa fare se il giocatore non ha ancora giocato. */ + if ( !haGiocato() ) { + if ( hoLaBriscolaPiuAltaInGioco() ) + vaiBriscolaPiuAltaInGioco(); + else + if ( hoLaSecondaBriscolaPiuAltaInGioco() ) + vaiNon( secondaPiuAltaInGioco(), semeBriscola ); + else + if ( luiHaTutteBriscole() ) + vaiPrima(); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiLiscioConCarichiPassati() ); + else if ( vaiPuntiConCarichiPassati() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + } + + /* Valuta cosa fare quando invece il giocatore ha giocato */ + else { + if ( haLisciato() ) { + if ( luiHaLaBriscolaPiuAltaInGioco() && hoLaSecondaBriscolaPiuAltaInGioco() ) + vaiSecondaBriscolaPiuAltaInGioco(); + else if ( vaiSopra() ); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + 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 ( luiHaLaBriscolaPiuAltaInGioco() && hoLaSecondaBriscolaPiuAltaInGioco() ) + vaiSecondaBriscolaPiuAltaInGioco(); + else if ( vaiSopra() ); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiTaglio() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haTagliato() ) { + if ( luiHaLaBriscolaPiuAltaInGioco() && hoLaSecondaBriscolaPiuAltaInGioco() ) + vaiSecondaBriscolaPiuAltaInGioco(); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiAsso() ); + } else if ( haMessoBriscolaAlta() ) { + if ( luiHaLaBriscolaPiuAltaInGioco() && hoLaSecondaBriscolaPiuAltaInGioco() ) + vaiSecondaBriscolaPiuAltaInGioco(); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiTaglio() ); + else if ( vaiSopra() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } else if ( haMessoTre() ) { + if ( vaiAsso() ); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + } else if ( haMessoAsso() ) { + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + } else if ( haCaricato() ) { + if ( vaiSopra() ); + else if ( luiHaLaBriscolaPiuAltaInGioco() && hoLaSecondaBriscolaPiuAltaInGioco() ) + vaiSecondaBriscolaPiuAltaInGioco(); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiTaglio() ); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } + } + + /* All'ultima mano è inutile ragionare, dato che ha una sola carta */ + } else vaiPrima(); + + /* 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 ( !haGiocato() ) + toccaAllaCPU = false; + } + + /* Fa giocare una partita ai 30. È analogo al metodo precedente, cambia + * solo la tecnica di gioco, quindi non è commentato. */ + public void giocaCPUAiTrenta() { + + if ( punteggio <= 20 ) { + + if ( !haGiocato() ) { + if ( vaiPuntiConCarichiPassati() ); + else if ( vaiPunti() ); + else if ( vaiLiscioConCarichiPassati() ); + 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 ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } else if ( haMessoPunti() ) { + if ( vaiSopra() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } else if ( haTagliato() ) { + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } else if ( haMessoBriscolaAlta() ) { + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } else if ( haMessoTre() ) { + if ( vaiAsso() ); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + } else if ( haMessoAsso() ) { + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + 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 ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } + } + } + + else { + + if ( !haGiocato() ) { + if ( vaiLiscioConCarichiPassati() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiPassati() ); + else if ( vaiPunti() ); + 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 ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } else if ( haMessoPunti() ) { + if ( vaiSopra() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } else if ( haTagliato() ) { + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } else if ( haMessoBriscolaAlta() ) { + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiTre() ); + else if ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } else if ( haMessoTre() ) { + if ( vaiAsso() ); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + } else if ( haMessoAsso() ) { + if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiTaglio() ); + else if ( vaiPuntiConCarichiInGioco() ); + else if ( vaiPunti() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + } else if ( haCaricato() ) { + if ( vaiSopra() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiLiscioConCarichiInGioco() ); + else if ( vaiLiscio() ); + else if ( vaiPuntiConCarichiInGioco() ); + 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 ( !haGiocato() ) + toccaAllaCPU = false; + } + + /* Determina se ha preso la CPU o il giocatore*/ + public void chiPrende() { + + /* Chiama il metodo giocatorePrende( boolean giocatore ) con parametro + * true se ha preso il giocatore, false se ha preso la CPU */ + giocatorePrende( ( (seme( frame.giocata[0] ) == semeBriscola) && (seme( frame.giocata[1] ) != semeBriscola) ) + || ( (seme( frame.giocata[0] ) == seme( frame.giocata[1] )) && laPrimaEPiuAlta( valore( frame.giocata[0] ), valore( frame.giocata[1] )) ) + || ( (seme( frame.giocata[1] ) != semeBriscola) && (seme( frame.giocata[0] ) != seme( frame.giocata[1] )) && 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 ); + } + + /* Da i punti (true al giocatore, false alla CPU) e fa pescare le carte*/ + public void daiPunti( boolean giocatore ) { + + int punti = 0; + + switch( valore( frame.giocata[0] ) ) { + 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( valore( frame.giocata[1] ) ) { + 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(); + } + + /* Ritorna true se il giocatore ha giocato */ + public boolean haGiocato() { + return frame.giocata[0] != null; + } + + /* Vari metodi che determinano che tipo di carta ha giocato il giocatore.*/ + public boolean haLisciato() { + return ( (haGiocato()) && (seme( frame.giocata[0] ) != semeBriscola) && + (valore( frame.giocata[0] ) != RE ) && (valore( frame.giocata[0] ) != ASSO ) && + (valore( frame.giocata[0] ) != TRE ) && (valore( frame.giocata[0] ) < FANTE ) ); + } + + public boolean haMessoPunti() { + return ( (haGiocato()) && (seme( frame.giocata[0] ) != semeBriscola) && + ( (valore( frame.giocata[0] ) == RE ) || (valore( frame.giocata[0] ) == FANTE ) || + (valore( frame.giocata[0] ) == CAVALLO ) ) ); + } + + public boolean haTagliato() { + return ( (haGiocato()) && (seme( frame.giocata[0] ) == semeBriscola) && + (valore( frame.giocata[0] ) == RE) && (valore( frame.giocata[0] ) != ASSO) && + (valore( frame.giocata[0] ) == TRE) && (valore( frame.giocata[0] ) <= SETTE) ); + } + + public boolean haMessoBriscolaAlta() { + return ( (haGiocato()) && (seme( frame.giocata[0] ) == semeBriscola) && + ( (valore( frame.giocata[0] ) == RE ) || (valore( frame.giocata[0] ) == FANTE ) || + (valore( frame.giocata[0] ) == CAVALLO ) ) ); + } + + public boolean haMessoTre() { + return ( (haGiocato()) && (seme( frame.giocata[0] ) == semeBriscola) && + (valore( frame.giocata[0] ) == TRE) ); + } + + public boolean haMessoAsso() { + return ( (haGiocato()) && (seme( frame.giocata[0] ) == semeBriscola) && + (valore( frame.giocata[0] ) == ASSO) ); + } + + public boolean haCaricato() { + return ( (haGiocato()) && (seme( frame.giocata[0] ) != semeBriscola) && + ( (valore( frame.giocata[0] ) == ASSO) || (valore( frame.giocata[0] ) == TRE) ) ); + } + + /* I metodi seguenti cercano di andare liscio - dare punti - mettere + * un taglio - ecc... e restituiscono true se hanno avuto successo, + * false altrimenti. Le varianti -ConCarichiPassati e -ConCarichiInGioco + * cercano, rispettivamente, di giocare un seme i cui carichi siano già + * passati o ancora in gioco.*/ + public boolean vaiLiscio() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && + (valore( frame.carteCPU[i] ) != RE) && (valore( frame.carteCPU[i] ) != ASSO) && + (valore( frame.carteCPU[i] ) != TRE) && (valore( frame.carteCPU[i] ) < FANTE) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + + public boolean vaiLiscioConCarichiPassati() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && + (valore( frame.carteCPU[i] ) != RE) && (valore( frame.carteCPU[i] ) != ASSO) && + (valore( frame.carteCPU[i] ) != TRE) && (valore( frame.carteCPU[i] ) < FANTE) + && sonoPassatiICarichi( seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && + (valore( frame.carteCPU[i] ) != RE) && (valore( frame.carteCPU[i] ) != ASSO) && + (valore( frame.carteCPU[i] ) != TRE) && (valore( frame.carteCPU[i] ) < FANTE) + && ePassato( ASSO, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && + (valore( frame.carteCPU[i] ) != RE) && (valore( frame.carteCPU[i] ) != ASSO) && + (valore( frame.carteCPU[i] ) != TRE) && (valore( frame.carteCPU[i] ) < FANTE) + && ePassato( TRE, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + + public boolean vaiLiscioConCarichiInGioco() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && + (valore( frame.carteCPU[i] ) != RE) && (valore( frame.carteCPU[i] ) != ASSO) && + (valore( frame.carteCPU[i] ) != TRE) && (valore( frame.carteCPU[i] ) < FANTE) + && !sonoPassatiICarichi( seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && + (valore( frame.carteCPU[i] ) != RE) && (valore( frame.carteCPU[i] ) != ASSO) && + (valore( frame.carteCPU[i] ) != TRE) && (valore( frame.carteCPU[i] ) < FANTE) + && !ePassato( ASSO, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && + (valore( frame.carteCPU[i] ) != RE) && (valore( frame.carteCPU[i] ) != ASSO) && + (valore( frame.carteCPU[i] ) != TRE) && (valore( frame.carteCPU[i] ) < FANTE) + && !ePassato( TRE, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + + public boolean vaiPunti() { + /* Cerca di dare punti, cercando di darne il meno possibile (meglio + * un fante di re). */ + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == FANTE ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == CAVALLO ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == RE ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + + public boolean vaiPuntiConCarichiPassati() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == FANTE ) + && sonoPassatiICarichi( seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == FANTE ) + && ePassato( ASSO, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == FANTE ) + && ePassato( TRE, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } + } + } + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == CAVALLO ) + && sonoPassatiICarichi( seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == CAVALLO ) + && ePassato( ASSO, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == CAVALLO ) + && ePassato( TRE, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } + } + } + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == RE ) + && sonoPassatiICarichi( seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == RE ) + && ePassato( ASSO, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == RE ) + && ePassato( TRE, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + + public boolean vaiPuntiConCarichiInGioco() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == FANTE ) + && !sonoPassatiICarichi( seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == FANTE ) + && !ePassato( ASSO, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == FANTE ) + && !ePassato( TRE, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } + } + } + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == CAVALLO ) + && !sonoPassatiICarichi( seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == CAVALLO ) + && !ePassato( ASSO, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == CAVALLO ) + && !ePassato( TRE, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } + } + } + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == RE ) + && !sonoPassatiICarichi( seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == RE ) + && !ePassato( ASSO, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } else if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == RE ) + && !ePassato( TRE, seme( frame.carteCPU[i] ) ) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + + public boolean vaiTaglio() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( seme( frame.carteCPU[i] ) == semeBriscola && + (valore( frame.carteCPU[i] ) != RE) && (valore( frame.carteCPU[i] ) != ASSO) && + (valore( frame.carteCPU[i] ) != TRE) && (valore( frame.carteCPU[i] ) < FANTE) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiBriscolaAlta() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && (valore( frame.carteCPU[i] ) == FANTE) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && (valore( frame.carteCPU[i] ) == CAVALLO) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && (valore( frame.carteCPU[i] ) == RE) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiTre() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( seme( frame.carteCPU[i] ) == semeBriscola && (valore( frame.carteCPU[i] ) == TRE) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiAsso() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( seme( frame.carteCPU[i] ) == semeBriscola && (valore( frame.carteCPU[i] ) == ASSO) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + public boolean vaiCarico() { + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == ASSO) ) { + cartaDaGiocare = i; + return true; + } + } + } + + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && (valore( frame.carteCPU[i] ) == TRE) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + + /* Gioca una carta diversa da quella passata come parametro */ + public boolean vaiNon( int valore, int seme ) { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( seme( frame.carteCPU[i] ) != seme && valore( frame.carteCPU[i] ) != valore ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + + /* Gioca la prima carta che trova */ + public boolean vaiPrima() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + cartaDaGiocare = i; + return true; + } + } + + return false; + } + + /* Metodi per l'ultima mano */ + public boolean vaiBriscolaPiuAltaInGioco() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && (valore( frame.carteCPU[i] ) == piuAltaInGioco()) ) { + cartaDaGiocare = i; + return true; + } + } + } + + return false; + } + + public boolean vaiSecondaBriscolaPiuAltaInGioco() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && (valore( frame.carteCPU[i] ) == secondaPiuAltaInGioco()) ) { + 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 ( !haGiocato() ) + 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; + + /* Se il giocatore ha giocato un asso, restituisce direttamente false. */ + if ( valore( frame.giocata[0] ) == ASSO ) + 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 ) { + a = valore( frame.carteCPU[0] ); + if ( (seme( frame.carteCPU[0] ) == seme( frame.giocata[0] )) && laPrimaEPiuAlta( a, valore( frame.giocata[0] ) ) ) + laPrimaPuoAndareSopra = true; + } + + if ( frame.carteCPU[1] != null ) { + b = valore( frame.carteCPU[1] ); + if ( (seme( frame.carteCPU[1] ) == seme( frame.giocata[0] )) && laPrimaEPiuAlta( b, valore( frame.giocata[0] ) ) ) + laSecondaPuoAndareSopra = true; + } + + if ( frame.carteCPU[2] != null ) { + c = valore( frame.carteCPU[2] ); + if ( (seme( frame.carteCPU[2] ) == seme( frame.giocata[0] )) && laPrimaEPiuAlta( c, valore( frame.giocata[0] ) ) ) + 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?! */ + if ( ( valore( frame.carteCPU[cartaDaGiocare] ) != RE ) && ( valore( frame.carteCPU[cartaDaGiocare] ) != ASSO ) && + ( valore( frame.carteCPU[cartaDaGiocare] ) != TRE ) && ( valore( frame.carteCPU[cartaDaGiocare] ) <= SETTE ) ) + return false; + + return true; + } + + /* I metodi seguenti valutano le carte che la CPU ha in mano. */ + public boolean hoCarico() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) != semeBriscola) && + ( ( valore( frame.carteCPU[i] ) == ASSO ) || ( valore( frame.carteCPU[i] ) == TRE ) ) ) { + return true; + } + } + } + + return false; + } + public boolean hoAsso() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && (valore( frame.carteCPU[i] ) == ASSO ) ) { + return true; + } + } + } + + return false; + } + public boolean hoTre() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && (valore( frame.carteCPU[i] ) == TRE ) ) { + return true; + } + } + } + + return false; + } + public boolean hoBriscolaAlta() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && + ( (valore( frame.carteCPU[i] ) == RE) || (valore( frame.carteCPU[i] ) == FANTE) || (valore( frame.carteCPU[i] ) == CAVALLO) ) ) { + return true; + } + } + } + + return false; + } + public boolean hoTaglio() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && + (valore( frame.carteCPU[i] ) < FANTE ) && (valore( frame.carteCPU[i] ) != TRE ) + && (valore( frame.carteCPU[i] ) != ASSO ) && (valore( frame.carteCPU[i] ) != RE ) ) { + return true; + } + } + } + + return false; + } + + /* Metodi per l'ultima mano */ + public boolean hoLaBriscolaPiuAltaInGioco() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && (valore( frame.carteCPU[i] ) == piuAltaInGioco()) ) + return true; + } + } + + return false; + } + public boolean hoLaSecondaBriscolaPiuAltaInGioco() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteCPU[i] != null ) { + if ( (seme( frame.carteCPU[i] ) == semeBriscola) && (valore( frame.carteCPU[i] ) == secondaPiuAltaInGioco()) ) + return true; + } + } + + return false; + } + public boolean luiHaLaBriscolaPiuAltaInGioco() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteInMano[i] != null ) { + if ( (seme( frame.carteInMano[i] ) == semeBriscola) && (valore( frame.carteInMano[i] ) == piuAltaInGioco()) ) + return true; + } + } + + return false; + } + public boolean luiHaLaSecondaBriscolaPiuAltaInGioco() { + for ( int i = 0; i < 3; i++ ) { + if ( frame.carteInMano[i] != null ) { + if ( (seme( frame.carteInMano[i] ) == semeBriscola) && (valore( frame.carteInMano[i] ) == secondaPiuAltaInGioco()) ) + return true; + } + } + + return false; + } + public boolean luiHaTutteBriscole() { + if ( frame.carteInMano[0] != null && seme( frame.carteInMano[0] ) != semeBriscola ) return false; + else if ( frame.carteInMano[1] != null && seme( frame.carteInMano[1] ) != semeBriscola ) return false; + else if ( frame.carteInMano[2] != null && seme( frame.carteInMano[2] ) != semeBriscola ) return false; + else return true; + } + + /* Restituisce il seme della carta passata come parametro */ + public static int seme( ImageIcon carta ) { + char aux[] = carta.toString().toCharArray(); + return aux[aux.length-5] - 49; + } + + /* Restituisce il valore della carta */ + public static int valore( ImageIcon carta ) { + char aux[] = carta.toString().toCharArray(); + return aux[aux.length-7] - 48; + } + + /* Controlla se una carta è già passata */ + public static boolean ePassato( int valore, int seme ) { + for ( int i = 0; ; i++ ) { + if ( frame.arrayCartePassate[i] == null ) { + for ( int j = 0; j < 3; j++ ) + if ( frame.carteCPU[j] != null && valore( frame.carteCPU[j] ) == valore && seme( frame.carteCPU[j] ) == seme ) return true; + return false; + } + else if ( valore( frame.arrayCartePassate[i] ) == valore && seme( frame.arrayCartePassate[i] ) == seme ) return true; + } + } + + /* Controlla se sono passati i carichi di un determinato seme */ + public static boolean sonoPassatiICarichi( int seme ) { + return ePassato( TRE, seme ) && ePassato( ASSO, seme ); + } + + /* Restituisce il valore della briscola più alta in gioco*/ + public static int piuAltaInGioco() { + if ( !ePassato( ASSO, semeBriscola ) ) return ASSO; + else if ( !ePassato( TRE, semeBriscola ) ) return TRE; + else if ( !ePassato( RE, semeBriscola ) ) return RE; + else if ( !ePassato( CAVALLO, semeBriscola ) ) return CAVALLO; + else if ( !ePassato( FANTE, semeBriscola ) ) return FANTE; + else if ( !ePassato( SETTE, semeBriscola ) ) return SETTE; + else if ( !ePassato( SEI, semeBriscola ) ) return SEI; + else if ( !ePassato( CINQUE, semeBriscola ) ) return CINQUE; + else if ( !ePassato( QUATTRO, semeBriscola ) ) return QUATTRO; + else if ( !ePassato( DUE, semeBriscola ) ) return DUE; + else return -1; + } + + /* Restituisce il valore della seconda briscola più alta in gioco*/ + public static int secondaPiuAltaInGioco() { + if ( !ePassato( ASSO, semeBriscola ) && piuAltaInGioco() != ASSO ) return ASSO; + else if ( !ePassato( TRE, semeBriscola ) && piuAltaInGioco() != TRE ) return TRE; + else if ( !ePassato( RE, semeBriscola ) && piuAltaInGioco() != RE ) return RE; + else if ( !ePassato( CAVALLO, semeBriscola ) && piuAltaInGioco() != CAVALLO ) return CAVALLO; + else if ( !ePassato( FANTE, semeBriscola ) && piuAltaInGioco() != FANTE ) return FANTE; + else if ( !ePassato( SETTE, semeBriscola ) && piuAltaInGioco() != SETTE ) return SETTE; + else if ( !ePassato( SEI, semeBriscola ) && piuAltaInGioco() != SEI ) return SEI; + else if ( !ePassato( CINQUE, semeBriscola ) && piuAltaInGioco() != CINQUE ) return CINQUE; + else if ( !ePassato( QUATTRO, semeBriscola ) && piuAltaInGioco() != QUATTRO ) return QUATTRO; + else if ( !ePassato( DUE, semeBriscola ) && piuAltaInGioco() != DUE ) return DUE; + else return -1; + } + + /* I vari trucchi del gioco. */ + public static void trucco( String trucco ) { + + byte[] truccoByte = trucco.getBytes(); + char[] truccoChar = new char[ truccoByte.length ]; + for ( int i = 0; i < truccoChar.length; i++ ) + truccoChar[i] = (char)truccoByte[i]; + + String attivato = stringaTruccoSbagliato; + + /* Carta che vuoi dove vuoi. Esempio: x251 sostituisce + * la terza carta (2) con il 6 (5) di coppe (1). */ + if ( truccoChar[0] == 'x' && truccoChar.length == 4 ) { + + attivato = stringaTruccoAttivato; + + String aS = "" + truccoChar[1]; + String xS = "" + truccoChar[2]; + String yS = "" + truccoChar[3]; + + int a, x, y; + + try { + + a = Integer.parseInt( aS ); + x = Integer.parseInt( xS ); + y = Integer.parseInt( yS ); + + frame.carteInMano[a] = frame.arrayCarte[x][y]; + + } catch ( Exception e ) { + attivato = stringaTruccoSbagliato; + } + } + + /* Mostra le carte del computer. */ + if ( trucco.equalsIgnoreCase( "Kill Devil Hill" ) ) { + + attivato = stringaTruccoAttivato; + + carteScoperte = true; + + } + + /* Scambia le carte con il computer. */ + if ( trucco.equalsIgnoreCase( "Darkside of Aquarius" ) ) { + + attivato = stringaTruccoAttivato; + + ImageIcon aux = null; + + for ( int i = 0; i < 3; i++ ) { + + aux = frame.carteInMano[i]; + frame.carteInMano[i] = frame.carteCPU[i]; + frame.carteCPU[i] = aux; + + } + } + + /* Cambia il seme di briscola con uno a caso, senza dire quale. + * L'ultima carta non cambia. È possibile comunque capire + * qual'è la briscola dal menu ?->Briscola*/ + if ( trucco.equalsIgnoreCase( "Change of Heart" ) ) { + + attivato = stringaTruccoAttivato; + + semeBriscola = (int) ( Math.random() * 4 ); + + } + + /* Asso Tre e Re di Briscola tutti in mano (anche in caso di doppioni). */ + if ( trucco.equalsIgnoreCase( "Tears of The Dragon" ) ) { + + attivato = stringaTruccoAttivato; + + frame.carteInMano[0] = frame.arrayCarte[9][semeBriscola]; + frame.carteInMano[1] = frame.arrayCarte[2][semeBriscola]; + frame.carteInMano[2] = frame.arrayCarte[0][semeBriscola]; + + } + + /* Tre assi di briscola. */ + if ( trucco.equalsIgnoreCase( "Navigate The Seas of The Sun" ) ) { + + attivato = stringaTruccoAttivato; + + frame.carteInMano[0] = frame.arrayCarte[0][semeBriscola]; + frame.carteInMano[1] = frame.arrayCarte[0][semeBriscola]; + frame.carteInMano[2] = frame.arrayCarte[0][semeBriscola]; + + } + + /* Fa finire la partita al prossimo piglio. */ + if ( trucco.equalsIgnoreCase( "Omega" ) ) { + + attivato = stringaTruccoAttivato; + + mano = 19; + + } + + JOptionPane.showMessageDialog( frame, attivato, "JBriscola - " + version, JOptionPane.INFORMATION_MESSAGE ); + frame.pannello.repaint(); + frame.repaint(); + + } + + /* 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" ) ) { + semi[0] = "Bastoni"; + semi[1] = "Coppe"; + semi[2] = "Denari"; + semi[3] = "Spade"; + stringaBriscola = "Briscola"; + 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"; + stringaNuovaPartitaAiTrenta = "Nuova Partita Ai 30"; + 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"; + stringaCartePassate = "Carte Passate"; + stringaSfondo = "Sfondo"; + stringaTasti = "Tasti rapidi"; + stringaAggiornamenti = "Cerca aggiornamenti"; + stringaTrucchi = "Trucchi"; + stringaInserisciCodice = "Inserisci il codice:"; + stringaTruccoAttivato = "Trucco attivato!"; + stringaTruccoSbagliato = "Trucco non valido"; + stringaCheCartaVuoi = "E allora che carta vuoi?"; + 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 " + stringaCartePassate + "\nF6 " + stringaInformazioni + "\nF7 " + stringaAggiornamenti + "\nF8 " + stringaNuovaPartitaAiTrenta + "\nF9 " + stringaTrucchi + "\nq " + stringaEsci; + } + else if ( lang.equals( "la" ) ) { + semi[0] = "BACULI"; + semi[1] = "CALICES"; + semi[2] = "DENARII"; + semi[3] = "GLADII"; + stringaBriscola = "BRISCOLA"; + 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"; + stringaNuovaPartitaAiTrenta = "NOVA LVSO XXX"; + 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"; + stringaCartePassate = "CHARTAS ITAS"; + stringaSfondo = "COLOR"; + stringaTasti = "TASTI RAPIDI"; + stringaAggiornamenti = "VERSIONEM RECENTIOREM QVAERERE"; + stringaTrucchi = "CODICES"; + stringaInserisciCodice = "CODICEM INSCRIBE:"; + stringaTruccoAttivato = "CODEX INCIPIVIT!"; + stringaTruccoSbagliato = "ERROR CODICIS"; + stringaCheCartaVuoi = "QUAM CHARTAM VOLIS?"; + 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 " + stringaCartePassate + "\nF6 " + stringaInformazioni + "\nF7 " + stringaAggiornamenti + "\nF8 " + stringaNuovaPartitaAiTrenta + "\nF9 " + stringaTrucchi + "\nq " + stringaEsci; + } + if ( lang.equals( "bl" ) ) { + semi[0] = "Bastoi"; + semi[1] = "Coppe"; + semi[2] = "Danari"; + semi[3] = "Spade"; + stringaBriscola = "Briscola"; + 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"; + stringaNuovaPartitaAiTrenta = "Taca na partida ai 30"; + 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"; + stringaCartePassate = "Carte pasade"; + stringaSfondo = "Sfondo"; + stringaTasti = "Tasti rapidi"; + stringaAggiornamenti = "Varda se ghe ne' na version pi nova"; + stringaTrucchi = "Truchi"; + stringaInserisciCodice = "Scrivi al codice:"; + stringaTruccoAttivato = "Truco ativa'!"; + stringaTruccoSbagliato = "Truco sbaia'"; + stringaCheCartaVuoi = "Che carta utu alora?"; + 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 " + stringaCartePassate + "\nF6 " + stringaInformazioni + "\nF7 " + stringaAggiornamenti + "\nF8 " + stringaNuovaPartitaAiTrenta + "\nF9 " + stringaTrucchi + "\nq " + stringaEsci; + } + if ( lang.equals( "bv" ) ) { + semi[0] = "Bastoni"; + semi[1] = "Coppe"; + semi[2] = "Danari"; + semi[3] = "Spade"; + stringaBriscola = "Briscola"; + 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"; + stringaNuovaPartitaAiTrenta = "Na Partida ai 30"; + 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"; + stringaCartePassate = "Carte pasade"; + stringaSfondo = "Sfondo"; + stringaTasti = "Tasti rapidi"; + stringaAggiornamenti = "Varda se ghe xe na versione pi nova"; + stringaTrucchi = "Truchi"; + stringaInserisciCodice = "Scrivi al codice:"; + stringaTruccoAttivato = "Truco ativa'!"; + stringaTruccoSbagliato = "Truco sbaia'"; + stringaCheCartaVuoi = "Che carta utu alora?"; + 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 " + stringaCartePassate + "\nF6 " + stringaInformazioni + "\nF7 " + stringaAggiornamenti + "\nF8 " + stringaNuovaPartitaAiTrenta + "\nF9 " + stringaTrucchi + "\nq " + stringaEsci; + } + if ( lang.equals( "en" ) ) { + semi[0] = "Sticks"; + semi[1] = "Cups"; + semi[2] = "Golds"; + semi[3] = "Swords"; + stringaBriscola = "Briscola"; + 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"; + stringaNuovaPartitaAiTrenta = "New Game - 30 Points"; + 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"; + stringaCartePassate = "Played cards"; + stringaSfondo = "Background"; + stringaTasti = "Hot keys"; + stringaAggiornamenti = "Check updates"; + stringaTrucchi = "Cheats"; + stringaInserisciCodice = "Insert cheat:"; + stringaTruccoAttivato = "Cheat actived!"; + stringaTruccoSbagliato = "Wrong cheat"; + stringaCheCartaVuoi = "So what card do you want?"; + 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 " + stringaCartePassate + "\nF6 " + stringaInformazioni + "\nF7 " + stringaAggiornamenti + "\nF8 " + stringaNuovaPartitaAiTrenta + "\nF9 " + stringaTrucchi + "\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(); + } + } +} diff --git a/JBriscola/all_versions/0.3/0.3.2/src/OptionFrame.java b/JBriscola/all_versions/0.3/0.3.2/src/OptionFrame.java new file mode 100755 index 0000000..30359f0 --- /dev/null +++ b/JBriscola/all_versions/0.3/0.3.2/src/OptionFrame.java @@ -0,0 +1,169 @@ +/* +Copyright 2009-2010 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.util.Formatter; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class OptionFrame extends JFrame { + + public static Main main = new Main(); + public static Formatter formatter; + public static JButton ok, annulla, scegliColore; + public static JLabel lingua, sfondo; + public static JComboBox selezionaLingua; + public static JCheckBox suono, tastiRapidi; + public static JPanel[] pannello = new JPanel[6]; + + public OptionFrame() { + + super( "JBriscola - " + main.stringaModificaOpzioni ); + + ok = new JButton( "OK" ); + ok.addActionListener( new ActionListener() { + + /* Quando le modifiche vengono confermate premendo ok, viene scritto + * il file di configurazione (o aggiornato) se possibile, e modificate + * le impostazioni attuali. */ + public void actionPerformed( ActionEvent e ) { + + try { + formatter = new Formatter( "JBriscolaConfig.txt" ); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( OptionFrame.this, main.stringaImpossibileConfigurare + ex, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + + String lang; + + switch ( selezionaLingua.getSelectedIndex() ) { + case 0: + lang = "it"; + break; + case 1: + lang = "la"; + break; + case 2: + lang = "bl"; + break; + case 3: + lang = "bv"; + break; + case 4: + lang = "en"; + break; + default: + lang = "it"; + break; + } + + String suonosiono, tastisiono; + + if ( suono.isSelected() ) + suonosiono = "suono=si"; + else + suonosiono = "suono=no"; + if ( tastiRapidi.isSelected() ) + tastisiono = "tasti=si"; + else + tastisiono = "tasti=no"; + + formatter.format( lang ); + formatter.format( "\n" ); + formatter.format( suonosiono ); + formatter.format( "\n" ); + formatter.format( tastisiono ); + formatter.format( "\n" ); + formatter.format( main.color.getRed() + " " + main.color.getGreen() + " " + main.color.getBlue() ); + formatter.close(); + + main.settaOpzioni(); + + OptionFrame.this.dispose(); + } + }); + + annulla = new JButton( main.stringaAnnulla ); + annulla.addActionListener( new ActionListener() { + /* Se l'utente annulla viene chiusa la finestra senza fare nulla. */ + public void actionPerformed( ActionEvent e ) { + OptionFrame.this.dispose(); + } + }); + + scegliColore = new JButton( " " ); + scegliColore.setBackground( main.color ); + scegliColore.addActionListener( new ActionListener() { + /* Permette di scegliere il colore dello sfondo. */ + public void actionPerformed( ActionEvent e ) { + Color colore = JColorChooser.showDialog( OptionFrame.this, "JBriscola " + main.version, main.color ); + if ( colore != null ) + main.color = colore; + OptionFrame.scegliColore.setBackground( main.color ); + } + } ); + + /* Vengono impostati e disegnati i vari componenti. */ + lingua = new JLabel( main.stringaLingua ); + sfondo = new JLabel( main.stringaSfondo ); + String[] lingueDaSelezionare = { main.stringaIt, main.stringaLa, main.stringaBL, main.stringaBV, main.stringaEN }; + selezionaLingua = new JComboBox( lingueDaSelezionare ); + int linguaPreselezionata = 0; + + if ( main.lang.equals( "it" ) ) + linguaPreselezionata = 0; + else if ( main.lang.equals( "la" ) ) + linguaPreselezionata = 1; + else if ( main.lang.equals( "bl" ) ) + linguaPreselezionata = 2; + else if ( main.lang.equals( "bv" ) ) + linguaPreselezionata = 3; + else if ( main.lang.equals( "en" ) ) + linguaPreselezionata = 4; + + selezionaLingua.setSelectedIndex( linguaPreselezionata ); + suono = new JCheckBox( main.stringaSuono ); + suono.setSelected( main.sound ); + tastiRapidi = new JCheckBox( main.stringaTasti ); + tastiRapidi.setSelected( main.keys ); + + pannello[0] = new JPanel( new GridLayout( 4, 1 ) ); + pannello[1] = new JPanel( new FlowLayout() ); + pannello[2] = new JPanel( new FlowLayout() ); + pannello[3] = new JPanel( new FlowLayout() ); + pannello[4] = new JPanel( new FlowLayout() ); + pannello[5] = new JPanel( new FlowLayout() ); + pannello[5].add( ok ); + pannello[5].add( annulla ); + pannello[4].add( sfondo ); + pannello[4].add( scegliColore ); + pannello[3].add( tastiRapidi ); + pannello[2].add( suono ); + pannello[1].add( lingua ); + pannello[1].add( selezionaLingua ); + pannello[0].add( pannello[1] ); + pannello[0].add( pannello[2] ); + pannello[0].add( pannello[3] ); + pannello[0].add( pannello[4] ); + add( pannello[0], BorderLayout.CENTER ); + add( pannello[5], BorderLayout.SOUTH ); + } +} diff --git a/JBriscola/all_versions/0.3/0.3.2/src/Pannello.java b/JBriscola/all_versions/0.3/0.3.2/src/Pannello.java new file mode 100755 index 0000000..1dde670 --- /dev/null +++ b/JBriscola/all_versions/0.3/0.3.2/src/Pannello.java @@ -0,0 +1,88 @@ +/* +Copyright 2009-2010 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 javax.swing.*; +import java.awt.*; + +/* Questa classe dispone semplicemente le carte + * sulla finestra e imposta la sfondo. */ +public class Pannello extends JPanel { + + public static Main main; + + public static Color color; + + public Pannello() { } + + public void paint( Graphics g ) { + + super.paint( g ); + + setBackground( main.color ); + + if ( main.frame.ultimaCarta != null ) + main.frame.ultimaCarta.paintIcon( this, g, 50, 180 ); + + if ( main.frame.mazzo ) + main.frame.retro2.paintIcon( this, g, 17, 256 ); + + if ( main.carteScoperte ) { + + if ( main.frame.carteCPU[0] != null ) + main.frame.carteCPU[0].paintIcon( this, g, 230, 5 ); + + if ( main.frame.carteCPU[1] != null ) + main.frame.carteCPU[1].paintIcon( this, g, 300, 5 ); + + if ( main.frame.carteCPU[2] != null ) + main.frame.carteCPU[2].paintIcon( this, g, 370, 5 ); + + } else { + + if ( main.frame.carteCPU[0] != null ) + main.frame.retro1.paintIcon( this, g, 230, 5 ); + + if ( main.frame.carteCPU[1] != null ) + main.frame.retro1.paintIcon( this, g, 300, 5 ); + + if ( main.frame.carteCPU[2] != null ) + main.frame.retro1.paintIcon( this, g, 370, 5 ); + + } + + if ( main.frame.carteInMano[0] != null ) + main.frame.carteInMano[0].paintIcon( this, g, 230, 340 ); + + if ( main.frame.carteInMano[1] != null ) + main.frame.carteInMano[1].paintIcon( this, g, 300, 340 ); + + if ( main.frame.carteInMano[2] != null ) + main.frame.carteInMano[2].paintIcon( this, g, 370, 340 ); + + if ( main.frame.giocata[0] != null ) + main.frame.giocata[0].paintIcon( this, g, 250, 200 ); + + if ( main.frame.giocata[1] != null ) + main.frame.giocata[1].paintIcon( this, g, 325, 150 ); + + } +} + diff --git a/JBriscola/all_versions/0.3/0.3.2/src/PannelloCartePassate.java b/JBriscola/all_versions/0.3/0.3.2/src/PannelloCartePassate.java new file mode 100755 index 0000000..fef9666 --- /dev/null +++ b/JBriscola/all_versions/0.3/0.3.2/src/PannelloCartePassate.java @@ -0,0 +1,49 @@ +/* +Copyright 2009-2010 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 javax.swing.*; +import java.awt.*; + +public class PannelloCartePassate extends JPanel { + + public static int posto[][] = new int[40][2]; + + public static Main main; + + public PannelloCartePassate() { } + + public void paint( Graphics g ) { + + super.paint( g ); + + for( int i = 0; i < 40; i++ ) { + posto[i][0] = ( i % 10 ) * 70; + posto[i][1] = ( i / 10 ) * 136; + } + + for ( int i = 0; i < main.mano*2; i++ ) + if ( main.frame.arrayCartePassate[i] != null ) + main.frame.arrayCartePassate[i].paintIcon( this, g, posto[i][0], posto[i][1] ); + + + } + +} diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/1-1.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/1-1.jpg new file mode 100755 index 0000000..ae43510 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/1-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/1-2.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/1-2.jpg new file mode 100755 index 0000000..3f7c75a Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/1-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/1-3.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/1-3.jpg new file mode 100755 index 0000000..9e1ead7 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/1-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/1-4.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/1-4.jpg new file mode 100755 index 0000000..710f879 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/1-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/10-1.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/10-1.jpg new file mode 100755 index 0000000..9aba45a Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/10-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/10-2.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/10-2.jpg new file mode 100755 index 0000000..037eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/10-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/10-3.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/10-3.jpg new file mode 100755 index 0000000..8780b72 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/10-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/10-4.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/10-4.jpg new file mode 100755 index 0000000..587dc0f Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/10-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/2-1.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/2-1.jpg new file mode 100755 index 0000000..5dcb7db Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/2-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/2-2.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/2-2.jpg new file mode 100755 index 0000000..ea9eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/2-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/2-3.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/2-3.jpg new file mode 100755 index 0000000..8cb22dd Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/2-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/2-4.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/2-4.jpg new file mode 100755 index 0000000..b3e7898 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/2-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/3-1.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/3-1.jpg new file mode 100755 index 0000000..dcb435c Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/3-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/3-2.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/3-2.jpg new file mode 100755 index 0000000..1e5b6ec Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/3-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/3-3.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/3-3.jpg new file mode 100755 index 0000000..9202cfe Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/3-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/3-4.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/3-4.jpg new file mode 100755 index 0000000..5436a8d Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/3-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/4-1.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/4-1.jpg new file mode 100755 index 0000000..3bab6d5 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/4-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/4-2.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/4-2.jpg new file mode 100755 index 0000000..b4901a6 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/4-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/4-3.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/4-3.jpg new file mode 100755 index 0000000..d754ad8 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/4-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/4-4.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/4-4.jpg new file mode 100755 index 0000000..3a54b96 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/4-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/5-1.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/5-1.jpg new file mode 100755 index 0000000..3f7ba1f Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/5-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/5-2.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/5-2.jpg new file mode 100755 index 0000000..fcacb75 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/5-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/5-3.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/5-3.jpg new file mode 100755 index 0000000..ce32f9f Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/5-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/5-4.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/5-4.jpg new file mode 100755 index 0000000..b86b09a Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/5-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/6-1.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/6-1.jpg new file mode 100755 index 0000000..f90cd81 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/6-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/6-2.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/6-2.jpg new file mode 100755 index 0000000..cf2a67a Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/6-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/6-3.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/6-3.jpg new file mode 100755 index 0000000..2cd2fe2 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/6-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/6-4.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/6-4.jpg new file mode 100755 index 0000000..73f410f Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/6-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/7-1.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/7-1.jpg new file mode 100755 index 0000000..08cd397 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/7-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/7-2.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/7-2.jpg new file mode 100755 index 0000000..a168ff8 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/7-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/7-3.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/7-3.jpg new file mode 100755 index 0000000..5cda411 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/7-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/7-4.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/7-4.jpg new file mode 100755 index 0000000..5d63229 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/7-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/8-1.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/8-1.jpg new file mode 100755 index 0000000..a6faa7b Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/8-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/8-2.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/8-2.jpg new file mode 100755 index 0000000..0d9edbb Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/8-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/8-3.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/8-3.jpg new file mode 100755 index 0000000..91f8354 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/8-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/8-4.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/8-4.jpg new file mode 100755 index 0000000..cc0089c Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/8-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/9-1.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/9-1.jpg new file mode 100755 index 0000000..be9c6bf Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/9-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/9-2.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/9-2.jpg new file mode 100755 index 0000000..e25da4c Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/9-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/9-3.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/9-3.jpg new file mode 100755 index 0000000..cd384f8 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/9-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/9-4.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/9-4.jpg new file mode 100755 index 0000000..441210e Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/9-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/Thumbs.db b/JBriscola/all_versions/0.3/0.3.2/src/img/Thumbs.db new file mode 100755 index 0000000..d9b6bc5 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/Thumbs.db differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/carte.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/carte.jpg new file mode 100755 index 0000000..838ffac Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/carte.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/retro1.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/retro1.jpg new file mode 100755 index 0000000..9651b06 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/retro1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3.2/src/img/retro2.jpg b/JBriscola/all_versions/0.3/0.3.2/src/img/retro2.jpg new file mode 100755 index 0000000..c5d3925 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3.2/src/img/retro2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/Frame.java b/JBriscola/all_versions/0.3/0.3/src/Frame.java new file mode 100755 index 0000000..21c4858 --- /dev/null +++ b/JBriscola/all_versions/0.3/0.3/src/Frame.java @@ -0,0 +1,523 @@ +/* +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 javax.swing.*; +import javax.sound.sampled.*; +import java.io.*; +import java.net.*; +import java.awt.*; +import java.awt.event.*; + +public class Frame extends JFrame { + + /* Booleana per determinare se disegnare il mazzo di carte o no (se + * è l'ultima mano). */ + public static boolean mazzo; + + public static Main main; + + /* Menu, bottoni, pannelli e componenti vari. */ + public static Pannello pannello; + public static JPanel pannello2; + public static JButton button; + public static JMenuBar barraMenu; + public static JMenu file, puntoInterrogativo; + public static JMenuItem nuovaPartita, nuovaPartitaAiTrenta, opzioni, esci, informazioni, punti, aggiornamenti, trucchi, tastiRapidi, briscola; + + /* Immagini delle carte. */ + public static ImageIcon retro1, retro2, ultimaCarta; + public static ImageIcon[] giocata = new ImageIcon[2]; + public static ImageIcon[] carteInMano = new ImageIcon[3]; + public static ImageIcon[] carteCPU = new ImageIcon[3]; + public static ImageIcon[] arrayCarteMescolate = new ImageIcon[40]; + public static ImageIcon[][] arrayCarte = new ImageIcon[10][4]; + + public Frame() { + + super( "Tronto's JBriscola " + main.version ); + + mazzo = true; + main = new Main(); + pannello = new Pannello(); + pannello2 = new JPanel( new FlowLayout() ); + + button = new JButton( main.stringaBottonePrendi ); + button.addActionListener( new ActionListener() { + + /* Quando viene premuto il bottone per prendere/lasciare le carte, + * valuta innanzitutto se il giocatore ha giocato, poi a chi + * darle ed eventualmente, se è finita la partita, a caricare + * il suono adatto. */ + public void actionPerformed( ActionEvent e ) { + + if ( giocata[0] != null && giocata[1] != null ) + main.mano++; + + try { + main.chiPrende(); + } catch ( Exception ex ) { + /* Avvisa di giocare una carta. */ + JOptionPane.showMessageDialog( Frame.this, main.stringaPrimaGioca, "JBriscola " + main.version, JOptionPane.WARNING_MESSAGE ); + } + + /* Avvisa che si è arrivati alla quartultima mano. */ + if ( main.mano == 16 ) + JOptionPane.showMessageDialog( Frame.this, main.stringaUltime4, "JBriscola " + main.version, JOptionPane.INFORMATION_MESSAGE ); + + /* Non disegna più la briscola e il mazzo se sono già state + * pescate tutte le carte. */ + if ( main.mano == 17 ) { + mazzo = false; + ultimaCarta = null; + pannello.repaint(); + Frame.this.repaint(); + } + + /* Mostra il punteggio e carica i suoni se è finita la partita. */ + if ( main.mano == 20 || + ( main.aiTrenta && + ( ( main.punteggio >= 30 || main.punteggioCPU >= 30 ) ) ) ) { + + String titolo = ""; + String suonoFinale = ""; + + if ( main.punteggio > main.punteggioCPU ) { + titolo = main.stringaVinto; + suonoFinale = "sounds/perso.wav"; + } + if ( main.punteggio < main.punteggioCPU ) { + titolo = main.stringaPerso; + suonoFinale = "sounds/vinto.wav"; + } + if ( main.punteggio == main.punteggioCPU ) { + titolo = main.stringaPareggio; + suonoFinale = "sounds/pareggio.wav"; + } + + if ( main.sound ) { + try { + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource( suonoFinale ) ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource( suonoFinale ) ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( Clip.class, ais.getFormat(), ( (int) ais.getFrameLength() * af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + ol.open(ais); + ol.loop( 0 ); + } catch ( Exception ex ) { + System.err.println( e ); + } + } + + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, titolo, JOptionPane.INFORMATION_MESSAGE ); + + main.pulisciTavolo(); + + } + if ( main.toccaAllaCPU ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + } ); + button.addKeyListener( new KeyAdapter() { + /* Aggiunge il keyListener per le scorciatoie da tastiera. Dato + * che il bottone prendi/lascia è l'unico componente effettivo + * della finestra, avrà obbligatoriamente il focus ed è necessario + * che sia lui a gestire gli eventi della tastiera. */ + public void keyReleased( KeyEvent key ) { + + if ( main.keys ) { + switch ( key.getKeyCode() ) { + case KeyEvent.VK_1: + if ( mettiCarta( 231, 500 ) ) { + if ( !main.CPUHaGiocato ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + break; + + case KeyEvent.VK_2: + if ( mettiCarta( 301, 500 ) ) { + if ( !main.CPUHaGiocato ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + break; + + case KeyEvent.VK_3: + if ( mettiCarta( 371, 500 ) ) { + if ( !main.CPUHaGiocato ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + break; + + case KeyEvent.VK_F1: + JOptionPane.showMessageDialog( Frame.this, main.stringaTasti2, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + break; + + case KeyEvent.VK_F2: + if ( main.mano == 20 ) { + main.aiTrenta = false; + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.aiTrenta = false; + main.mischia(); + pannello.repaint(); + repaint(); + } + } + break; + + case KeyEvent.VK_F3: + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 200 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + break; + + case KeyEvent.VK_F4: + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.INFORMATION_MESSAGE ); + break; + + case KeyEvent.VK_F5: + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + break; + + case KeyEvent.VK_F6: + String latest = main.version; + try { + URL latestIs = new URL( "http://porkynator.altervista.org/jbriscola-latest.is" ); + BufferedReader latestIsReader = new BufferedReader( new InputStreamReader( latestIs.openStream() ) ); + latest = latestIsReader.readLine(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaNoInternet, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + if ( latest.equals( main.version ) ) + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiNo, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + else + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiSi + "\n" + main.version + " ==> " + latest + "\n\n" + main.stringaScarica, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + break; + + case KeyEvent.VK_F7: + if ( main.mano == 20 ) { + main.aiTrenta = true; + main.mischia(); + pannello.repaint(); + repaint(); + } + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.aiTrenta = true; + main.mischia(); + pannello.repaint(); + repaint(); + } + } + break; + + case KeyEvent.VK_F8: + main.trucco( JOptionPane.showInputDialog( Frame.this, main.stringaInserisciCodice, "JBriscola - " + main.version, JOptionPane.PLAIN_MESSAGE ) ); + break; + + case KeyEvent.VK_Q: + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + break; + } + } + } + } ); + + barraMenu = new JMenuBar(); + + file = new JMenu( "File" ); + + nuovaPartita = new JMenuItem( main.stringaNuovaPartita ); + nuovaPartita.addActionListener( new ActionListener() { + /* Avvia una nuova partita, chiedendo prima conferma se ce n'è + * già una in corso. */ + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.aiTrenta = false; + main.mischia(); + pannello.repaint(); + repaint(); + } + + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.aiTrenta = false; + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + + nuovaPartitaAiTrenta = new JMenuItem( main.stringaNuovaPartitaAiTrenta ); + nuovaPartitaAiTrenta.addActionListener( new ActionListener() { + /* Avvia una nuova partita ai 30, chiedendo prima conferma se + * ce n'è già una in corso. */ + public void actionPerformed( ActionEvent e ) { + if ( main.mano == 20 ) { + main.aiTrenta = true; + main.mischia(); + pannello.repaint(); + repaint(); + } + + else { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) { + main.aiTrenta = true; + main.mischia(); + pannello.repaint(); + repaint(); + } + } + } + }); + + trucchi = new JMenuItem( main.stringaTrucchi ); + trucchi.addActionListener( new ActionListener() { + public void actionPerformed( ActionEvent e ) { + /* Esegue il trucco */ + main.trucco( JOptionPane.showInputDialog( Frame.this, main.stringaInserisciCodice, "JBriscola - " + main.version, JOptionPane.PLAIN_MESSAGE ) ); + } + } ); + + opzioni = new JMenuItem( main.stringaOpzioni ); + opzioni.addActionListener( new ActionListener() { + /* Apre una OptionFrame per modificare le opzioni. */ + public void actionPerformed( ActionEvent e ) { + + OptionFrame optionFrame = new OptionFrame(); + optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); + optionFrame.setResizable( false ); + optionFrame.setAlwaysOnTop( true ); + optionFrame.setSize( 300, 200 ); + optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2); + optionFrame.setVisible( true ); + } + }); + + esci = new JMenuItem( main.stringaEsci ); + esci.addActionListener( new ActionListener() { + /* Ciede conferma prima di uscire. */ + public void actionPerformed( ActionEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + Frame.this.dispose(); + } + }); + + file.add( nuovaPartita ); + file.add( nuovaPartitaAiTrenta ); + file.add( trucchi ); + file.add( opzioni ); + file.addSeparator(); + file.add( esci ); + + puntoInterrogativo = new JMenu( "?" ); + + informazioni = new JMenuItem( main.stringaInformazioni ); + informazioni.addActionListener( new ActionListener() { + /* Visualizza le informazioni. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE ); + } + } ); + + tastiRapidi = new JMenuItem( main.stringaTasti ); + tastiRapidi.addActionListener( new ActionListener() { + /* Visualizza i tasti rapidi. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaTasti2, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + } + } ); + + briscola = new JMenuItem( main.stringaBriscola ); + briscola.addActionListener( new ActionListener() { + /* Visualizza il seme di briscola corrente. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaBriscola + ": " + main.semi[main.semeBriscola], "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + } + }); + + punti = new JMenuItem( main.stringaPunteggio ); + punti.addActionListener( new ActionListener() { + /* Visualizza il punteggio. */ + public void actionPerformed( ActionEvent e ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.INFORMATION_MESSAGE ); + } + } ); + + aggiornamenti = new JMenuItem( main.stringaAggiornamenti ); + aggiornamenti.addActionListener( new ActionListener() { + /* Cerca aggiornamenti sul sito http://porkynator.altervista.org, + * confrontando la versione del programma con quella scritta nel + * file jbriscola-latest.is (online). */ + public void actionPerformed( ActionEvent e ) { + String latest = main.version; + try { + URL latestIs = new URL( "http://porkynator.altervista.org/jbriscola-latest.is" ); + BufferedReader latestIsReader = new BufferedReader( new InputStreamReader( latestIs.openStream() ) ); + latest = latestIsReader.readLine(); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( Frame.this, main.stringaNoInternet, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + if ( latest.equals( main.version ) ) + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiNo, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + else + JOptionPane.showMessageDialog( Frame.this, main.stringaAggiornamentiSi + "\n" + main.version + " ==> " + latest + "\n\n" + main.stringaScarica, "JBriscola - " + main.version, JOptionPane.INFORMATION_MESSAGE ); + } + } ); + + puntoInterrogativo.add( punti ); + puntoInterrogativo.add( briscola ); + puntoInterrogativo.add( tastiRapidi ); + puntoInterrogativo.add( informazioni ); + puntoInterrogativo.add( aggiornamenti ); + + barraMenu.add( file ); + barraMenu.add( puntoInterrogativo ); + + setJMenuBar( barraMenu ); + + /* Inizializza le immagini del retro delle carte. */ + retro1 = new ImageIcon( ClassLoader.getSystemResource( "img/retro1.jpg" ) ); + retro2 = new ImageIcon( ClassLoader.getSystemResource( "img/retro2.jpg" ) ); + + /* Inizializza tutte le immagini delle carte scorrendo l'array bidimensionale. */ + for (int i = 0; i < 10; i++) + for (int j = 0; j < 4; j++) + arrayCarte[i][j] = new ImageIcon( ClassLoader.getSystemResource( "img/" + (i+1) + "-" + (j+1) + ".jpg" ) ); + + /* Mischia le carte. */ + main.mischia(); + + /* Aggiunge i vari componenti. */ + pannello2.add( button ); + setLayout( new BorderLayout() ); + add( pannello, BorderLayout.CENTER ); + add( pannello2, BorderLayout.SOUTH ); + + /* Chiama il metodo mettiCarta se l'utente clicca. */ + addMouseListener( + new MouseAdapter() { + public void mouseClicked ( MouseEvent e ) { + if ( mettiCarta( e.getX(), e.getY() ) ) { + if ( !main.CPUHaGiocato ) + if ( main.aiTrenta ) + main.giocaCPUAiTrenta(); + else + main.giocaCPU(); + } + } + } + ); + + /* Chiede conferma prima di uscire quando viene chiusa la finestra. */ + addWindowListener( + new WindowAdapter() { + public void windowClosing( WindowEvent e ) { + int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo ); + if ( selezione == JOptionPane.YES_OPTION ) + System.exit( 0 ); + } + } + ); + } + + /* Se il giocatore ha cliccato su una carta la gioca e riproduce un suono casuale. */ + public boolean mettiCarta( int x, int y ) { + + if ( !main.toccaAllaCPU && giocata[0] == null ) { + if ( main.sound && + ( ( x > 230 && x < 290 && y > 340 && y < 566 && carteInMano[0] != null ) || + ( x > 300 && x < 360 && y > 340 && y < 566 && carteInMano[1] != null ) || + ( x > 370 && x < 430 && y > 340 && y < 566 && carteInMano[2] != null ) ) ) { + try { + + double a = Math.random() * 6; + int i = (int) a; + + AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource("sounds/" + i + ".wav") ); + AudioFormat af = aff.getFormat(); + DataLine.Info info = new DataLine.Info( Clip.class, ais.getFormat(), ( (int) ais.getFrameLength() * af.getFrameSize() ) ); + Clip ol = ( Clip ) AudioSystem.getLine( info ); + + ol.open(ais); + ol.loop( 0 ); + + } catch ( Exception e ) { + System.err.println( e ); + } + } + + if ( x > 230 && x < 290 && y > 340 && y < 566 && carteInMano[0] != null ) { + giocata[0] = carteInMano[0]; + carteInMano[0] = null; + pannello.repaint(); + return true; + } + + if ( x > 300 && x < 360 && y > 340 && y < 566 && carteInMano[1] != null ) { + giocata[0] = carteInMano[1]; + carteInMano[1] = null; + pannello.repaint(); + return true; + } + + if ( x > 370 && x < 430 && y > 340 && y < 566 && carteInMano[2] != null ) { + giocata[0] = carteInMano[2]; + carteInMano[2] = null; + pannello.repaint(); + return true; + } + } + + return false; + } +} + + diff --git a/JBriscola/all_versions/0.3/0.3/src/Main.java b/JBriscola/all_versions/0.3/0.3/src/Main.java new file mode 100755 index 0000000..4907374 --- /dev/null +++ b/JBriscola/all_versions/0.3/0.3/src/Main.java @@ -0,0 +1,1702 @@ +/* +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). + * aiTrenta serve per determinare se la partida che si sta giocando è + * normale o ai 30. + * carteScoperte serve se viene attivato il trucco per mostrare le + * carte della CPU. + * 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 aiTrenta = false; + public static boolean carteScoperte = false; + 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.3"; + public static String semi[] = { "Bastoni", "Coppe", "Denari", "Spade" }; + public static String stringaBriscola = "Briscola"; + 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 stringaNuovaPartitaAiTrenta = "Nuova Partita Ai 30"; + 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 stringaTrucchi = "Trucchi"; + public static String stringaInserisciCodice = "Inserisci il codice:"; + public static String stringaTruccoAttivato = "Trucco attivato!"; + public static String stringaTruccoSbagliato = "Trucco non valido"; + public static String stringaCheCartaVuoi = "E allora che carta vuoi?"; + 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 + "\nF7 " + stringaNuovaPartitaAiTrenta + "\nF8 " + stringaTrucchi + "\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() { + + ImageIcon aux; + + mano = 0; + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + frame.mazzo = true; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + frame.mazzo = 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; + } + + /* Viene chiamato a fine partita. */ + public void pulisciTavolo() { + + punteggio = 0; + punteggioCPU = 0; + cartaDaPescare = 6; + toccaAllaCPU = false; + CPUHaGiocato = false; + haGiocatoPrima = true; + + frame.mazzo = false; + frame.ultimaCarta = null; + for ( int i = 0; i < 3; i++ ) { + frame.carteCPU[i] = null; + frame.carteInMano[i] = null; + } + + frame.pannello.repaint(); + frame.repaint(); + + } + + /* Fa giocare la CPU. Questo metodo contiene l'intelligenza artificiale + * del gioco. Ho preferito non commentare molto 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() { + + /* Nelle prime 16 mani ragiona in maniera diversa*/ + 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 ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } + } + } + + /* Nella penultima mano (prima di pescare l'ultima carta) */ + else if ( mano == 16 ) { + + /* Valuta cosa fare se il giocatore non ha ancora giocato. */ + 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; + } + } + + /* Valuta cosa fare quando invece il giocatore ha giocato */ + 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 ) { + + /* Valuta cosa fare se il giocatore non ha ancora giocato. */ + 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() ); + } + } + + /* 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 == 18 ) { + + /* Valuta cosa fare se il giocatore non ha ancora giocato. */ + 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() ); + } + + /* 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() ); + } + } + + /* All'ultima mano è inutile ragionare, dato che ha una sola carta */ + } 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; + } + + /* Fa giocare una partita ai 30. È analogo al metodo precedente, cambia + * solo la tecnica di gioco, quindi non è commentato. */ + public void giocaCPUAiTrenta() { + + if ( punteggio <= 20 ) { + + 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 ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiPunti() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } else if ( haMessoPunti() ) { + if ( vaiSopra() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } else if ( haTagliato() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } else if ( haMessoBriscolaAlta() ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTre() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiCarico() ); + } 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 ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } + } + } + + else { + + if ( frame.giocata[0] == null ) { + if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiTaglio() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiTre() ); + else if ( vaiCarico() ); + else; + } + + /* Valuta cosa fare quando invece il giocatore ha giocato */ + else { + if ( haLisciato() ) { + if ( vaiSopra() ); + else if ( vaiLiscio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } else if ( haMessoPunti() ) { + if ( vaiSopra() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiLiscio() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } else if ( haTagliato() ) { + if ( vaiLiscio() ); + else if ( vaiTaglio() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiAsso() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } else if ( haMessoBriscolaAlta() ) { + if ( vaiLiscio() ); + else if ( vaiTre() ); + else if ( vaiTaglio() ); + else if ( vaiAsso() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiPunti() ); + else if ( vaiCarico() ); + } 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 ( vaiTaglio() ); + else if ( vaiPunti() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiCarico() ); + else if ( vaiTre() ); + } else if ( haCaricato() ) { + if ( vaiSopra() ); + else if ( vaiTre() ); + else if ( vaiBriscolaAlta() ); + else if ( vaiTaglio() ); + else if ( vaiAsso() ); + 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 ); + } + + /* 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; + } + + /* I vari trucchi del gioco. */ + public static void trucco( String trucco ) { + + byte[] truccoByte = trucco.getBytes(); + char[] truccoChar = new char[ truccoByte.length ]; + for ( int i = 0; i < truccoChar.length; i++ ) + truccoChar[i] = (char)truccoByte[i]; + + String attivato = stringaTruccoSbagliato; + + /* Carta che vuoi dove vuoi. Esempio: x251 sostituisce + * la terza carta (2) con il 6 (5) di coppe (1). */ + if ( truccoChar[0] == 'x' && truccoChar.length == 4 ) { + + attivato = stringaTruccoAttivato; + + String aS = "" + truccoChar[1]; + String xS = "" + truccoChar[2]; + String yS = "" + truccoChar[3]; + + int a, x, y; + + try { + + a = Integer.parseInt( aS ); + x = Integer.parseInt( xS ); + y = Integer.parseInt( yS ); + + frame.carteInMano[a] = frame.arrayCarte[x][y]; + + } catch ( Exception e ) { + attivato = stringaTruccoSbagliato; + } + } + + /* Mostra le carte del computer. */ + if ( trucco.equalsIgnoreCase( "Kill Devil Hill" ) ) { + + attivato = stringaTruccoAttivato; + + carteScoperte = true; + + } + + /* Scambia le carte con il computer. */ + if ( trucco.equalsIgnoreCase( "Darkside of Aquarius" ) ) { + + attivato = stringaTruccoAttivato; + + ImageIcon aux = null; + + for ( int i = 0; i < 3; i++ ) { + + aux = frame.carteInMano[i]; + frame.carteInMano[i] = frame.carteCPU[i]; + frame.carteCPU[i] = aux; + + } + } + + /* Cambia il seme di briscola con uno a caso, senza dire quale. + * L'ultima carta non cambia. È possibile comunque capire + * qual'è la briscola dal menu ?->Briscola*/ + if ( trucco.equalsIgnoreCase( "Change of Heart" ) ) { + + attivato = stringaTruccoAttivato; + + semeBriscola = (int) ( Math.random() * 4 ); + + } + + /* Asso Tre e Re di Briscola tutti in mano (anche in caso di doppioni). */ + if ( trucco.equalsIgnoreCase( "Tears of The Dragon" ) ) { + + attivato = stringaTruccoAttivato; + + frame.carteInMano[0] = frame.arrayCarte[9][semeBriscola]; + frame.carteInMano[1] = frame.arrayCarte[2][semeBriscola]; + frame.carteInMano[2] = frame.arrayCarte[0][semeBriscola]; + + } + + /* Tre assi di briscola. */ + if ( trucco.equalsIgnoreCase( "Navigate The Seas of The Sun" ) ) { + + attivato = stringaTruccoAttivato; + + frame.carteInMano[0] = frame.arrayCarte[0][semeBriscola]; + frame.carteInMano[1] = frame.arrayCarte[0][semeBriscola]; + frame.carteInMano[2] = frame.arrayCarte[0][semeBriscola]; + + } + + /* Fa finire la partita al prossimo piglio. */ + if ( trucco.equalsIgnoreCase( "Omega" ) ) { + + attivato = stringaTruccoAttivato; + + mano = 19; + + } + + JOptionPane.showMessageDialog( frame, attivato, "JBriscola - " + version, JOptionPane.INFORMATION_MESSAGE ); + frame.pannello.repaint(); + frame.repaint(); + + } + + /* 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" ) ) { + semi[0] = "Bastoni"; + semi[1] = "Coppe"; + semi[2] = "Denari"; + semi[3] = "Spade"; + stringaBriscola = "Briscola"; + 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"; + stringaNuovaPartitaAiTrenta = "Nuova Partita Ai 30"; + 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"; + stringaTrucchi = "Trucchi"; + stringaInserisciCodice = "Inserisci il codice:"; + stringaTruccoAttivato = "Trucco attivato!"; + stringaTruccoSbagliato = "Trucco non valido"; + stringaCheCartaVuoi = "E allora che carta vuoi?"; + 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 + "\nF7 " + stringaNuovaPartitaAiTrenta + "\nF8 " + stringaTrucchi + "\nq " + stringaEsci; + } + else if ( lang.equals( "la" ) ) { + semi[0] = "BACULI"; + semi[1] = "CALICES"; + semi[2] = "DENARII"; + semi[3] = "GLADII"; + stringaBriscola = "BRISCOLA"; + 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"; + stringaNuovaPartitaAiTrenta = "NOVA LVSO XXX"; + 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"; + stringaTrucchi = "CODICES"; + stringaInserisciCodice = "CODICEM INSCRIBE:"; + stringaTruccoAttivato = "CODEX INCIPIVIT!"; + stringaTruccoSbagliato = "ERROR CODICIS"; + stringaCheCartaVuoi = "QUAM CHARTAM VOLIS?"; + 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 + "\nF7 " + stringaNuovaPartitaAiTrenta + "\nF8 " + stringaTrucchi + "\nq " + stringaEsci; + } + if ( lang.equals( "bl" ) ) { + semi[0] = "Bastoi"; + semi[1] = "Coppe"; + semi[2] = "Danari"; + semi[3] = "Spade"; + stringaBriscola = "Briscola"; + 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"; + stringaNuovaPartitaAiTrenta = "Taca na partida ai 30"; + 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"; + stringaTrucchi = "Truchi"; + stringaInserisciCodice = "Scrivi al codice:"; + stringaTruccoAttivato = "Truco ativa'!"; + stringaTruccoSbagliato = "Truco sbaia'"; + stringaCheCartaVuoi = "Che carta utu alora?"; + 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 + "\nF7 " + stringaNuovaPartitaAiTrenta + "\nF8 " + stringaTrucchi + "\nq " + stringaEsci; + } + if ( lang.equals( "bv" ) ) { + semi[0] = "Bastoni"; + semi[1] = "Coppe"; + semi[2] = "Danari"; + semi[3] = "Spade"; + stringaBriscola = "Briscola"; + 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"; + stringaNuovaPartitaAiTrenta = "Na Partida ai 30"; + 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 ghe xe na versione pi nova"; + stringaTrucchi = "Truchi"; + stringaInserisciCodice = "Scrivi al codice:"; + stringaTruccoAttivato = "Truco ativa'!"; + stringaTruccoSbagliato = "Truco sbaia'"; + stringaCheCartaVuoi = "Che carta utu alora?"; + 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 + "\nF7 " + stringaNuovaPartitaAiTrenta + "\nF8 " + stringaTrucchi + "\nq " + stringaEsci; + } + if ( lang.equals( "en" ) ) { + semi[0] = "Sticks"; + semi[1] = "Cups"; + semi[2] = "Golds"; + semi[3] = "Swords"; + stringaBriscola = "Briscola"; + 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"; + stringaNuovaPartitaAiTrenta = "New Game - 30 Points"; + 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"; + stringaTrucchi = "Cheats"; + stringaInserisciCodice = "Insert cheat:"; + stringaTruccoAttivato = "Cheat actived!"; + stringaTruccoSbagliato = "Wrong cheat"; + stringaCheCartaVuoi = "So what card do you want?"; + 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 + "\nF7 " + stringaNuovaPartitaAiTrenta + "\nF8 " + stringaTrucchi + "\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(); + } + } +} diff --git a/JBriscola/all_versions/0.3/0.3/src/OptionFrame.java b/JBriscola/all_versions/0.3/0.3/src/OptionFrame.java new file mode 100755 index 0000000..d89745b --- /dev/null +++ b/JBriscola/all_versions/0.3/0.3/src/OptionFrame.java @@ -0,0 +1,169 @@ +/* +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.util.Formatter; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class OptionFrame extends JFrame { + + public static Main main = new Main(); + public static Formatter formatter; + public static JButton ok, annulla, scegliColore; + public static JLabel lingua, sfondo; + public static JComboBox selezionaLingua; + public static JCheckBox suono, tastiRapidi; + public static JPanel[] pannello = new JPanel[6]; + + public OptionFrame() { + + super( "JBriscola - " + main.stringaModificaOpzioni ); + + ok = new JButton( "OK" ); + ok.addActionListener( new ActionListener() { + + /* Quando le modifiche vengono confermate premendo ok, viene scritto + * il file di configurazione (o aggiornato) se possibile, e modificate + * le impostazioni attuali. */ + public void actionPerformed( ActionEvent e ) { + + try { + formatter = new Formatter( "JBriscolaConfig.txt" ); + } catch ( Exception ex ) { + JOptionPane.showMessageDialog( OptionFrame.this, main.stringaImpossibileConfigurare + ex, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); + } + + String lang; + + switch ( selezionaLingua.getSelectedIndex() ) { + case 0: + lang = "it"; + break; + case 1: + lang = "la"; + break; + case 2: + lang = "bl"; + break; + case 3: + lang = "bv"; + break; + case 4: + lang = "en"; + break; + default: + lang = "it"; + break; + } + + String suonosiono, tastisiono; + + if ( suono.isSelected() ) + suonosiono = "suono=si"; + else + suonosiono = "suono=no"; + if ( tastiRapidi.isSelected() ) + tastisiono = "tasti=si"; + else + tastisiono = "tasti=no"; + + formatter.format( lang ); + formatter.format( "\n" ); + formatter.format( suonosiono ); + formatter.format( "\n" ); + formatter.format( tastisiono ); + formatter.format( "\n" ); + formatter.format( main.color.getRed() + " " + main.color.getGreen() + " " + main.color.getBlue() ); + formatter.close(); + + main.settaOpzioni(); + + OptionFrame.this.dispose(); + } + }); + + annulla = new JButton( main.stringaAnnulla ); + annulla.addActionListener( new ActionListener() { + /* Se l'utente annulla viene chiusa la finestra senza fare nulla. */ + public void actionPerformed( ActionEvent e ) { + OptionFrame.this.dispose(); + } + }); + + scegliColore = new JButton( " " ); + scegliColore.setBackground( main.color ); + scegliColore.addActionListener( new ActionListener() { + /* Permette di scegliere il colore dello sfondo. */ + public void actionPerformed( ActionEvent e ) { + Color colore = JColorChooser.showDialog( OptionFrame.this, "JBriscola " + main.version, main.color ); + if ( colore != null ) + main.color = colore; + OptionFrame.scegliColore.setBackground( main.color ); + } + } ); + + /* Vengono impostati e disegnati i vari componenti. */ + lingua = new JLabel( main.stringaLingua ); + sfondo = new JLabel( main.stringaSfondo ); + String[] lingueDaSelezionare = { main.stringaIt, main.stringaLa, main.stringaBL, main.stringaBV, main.stringaEN }; + selezionaLingua = new JComboBox( lingueDaSelezionare ); + int linguaPreselezionata = 0; + + if ( main.lang.equals( "it" ) ) + linguaPreselezionata = 0; + else if ( main.lang.equals( "la" ) ) + linguaPreselezionata = 1; + else if ( main.lang.equals( "bl" ) ) + linguaPreselezionata = 2; + else if ( main.lang.equals( "bv" ) ) + linguaPreselezionata = 3; + else if ( main.lang.equals( "en" ) ) + linguaPreselezionata = 4; + + selezionaLingua.setSelectedIndex( linguaPreselezionata ); + suono = new JCheckBox( main.stringaSuono ); + suono.setSelected( main.sound ); + tastiRapidi = new JCheckBox( main.stringaTasti ); + tastiRapidi.setSelected( main.keys ); + + pannello[0] = new JPanel( new GridLayout( 4, 1 ) ); + pannello[1] = new JPanel( new FlowLayout() ); + pannello[2] = new JPanel( new FlowLayout() ); + pannello[3] = new JPanel( new FlowLayout() ); + pannello[4] = new JPanel( new FlowLayout() ); + pannello[5] = new JPanel( new FlowLayout() ); + pannello[5].add( ok ); + pannello[5].add( annulla ); + pannello[4].add( sfondo ); + pannello[4].add( scegliColore ); + pannello[3].add( tastiRapidi ); + pannello[2].add( suono ); + pannello[1].add( lingua ); + pannello[1].add( selezionaLingua ); + pannello[0].add( pannello[1] ); + pannello[0].add( pannello[2] ); + pannello[0].add( pannello[3] ); + pannello[0].add( pannello[4] ); + add( pannello[0], BorderLayout.CENTER ); + add( pannello[5], BorderLayout.SOUTH ); + } +} diff --git a/JBriscola/all_versions/0.3/0.3/src/Pannello.java b/JBriscola/all_versions/0.3/0.3/src/Pannello.java new file mode 100755 index 0000000..ca9e9c6 --- /dev/null +++ b/JBriscola/all_versions/0.3/0.3/src/Pannello.java @@ -0,0 +1,88 @@ +/* +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 javax.swing.*; +import java.awt.*; + +/* Questa classe dispone semplicemente le carte + * sulla finestra e imposta la sfondo. */ +public class Pannello extends JPanel { + + public static Main main; + + public static Color color; + + public Pannello() { } + + public void paint( Graphics g ) { + + super.paint( g ); + + setBackground( main.color ); + + if ( main.frame.ultimaCarta != null ) + main.frame.ultimaCarta.paintIcon( this, g, 50, 180 ); + + if ( main.frame.mazzo ) + main.frame.retro2.paintIcon( this, g, 17, 256 ); + + if ( main.carteScoperte ) { + + if ( main.frame.carteCPU[0] != null ) + main.frame.carteCPU[0].paintIcon( this, g, 230, 5 ); + + if ( main.frame.carteCPU[1] != null ) + main.frame.carteCPU[1].paintIcon( this, g, 300, 5 ); + + if ( main.frame.carteCPU[2] != null ) + main.frame.carteCPU[2].paintIcon( this, g, 370, 5 ); + + } else { + + if ( main.frame.carteCPU[0] != null ) + main.frame.retro1.paintIcon( this, g, 230, 5 ); + + if ( main.frame.carteCPU[1] != null ) + main.frame.retro1.paintIcon( this, g, 300, 5 ); + + if ( main.frame.carteCPU[2] != null ) + main.frame.retro1.paintIcon( this, g, 370, 5 ); + + } + + if ( main.frame.carteInMano[0] != null ) + main.frame.carteInMano[0].paintIcon( this, g, 230, 340 ); + + if ( main.frame.carteInMano[1] != null ) + main.frame.carteInMano[1].paintIcon( this, g, 300, 340 ); + + if ( main.frame.carteInMano[2] != null ) + main.frame.carteInMano[2].paintIcon( this, g, 370, 340 ); + + if ( main.frame.giocata[0] != null ) + main.frame.giocata[0].paintIcon( this, g, 250, 200 ); + + if ( main.frame.giocata[1] != null ) + main.frame.giocata[1].paintIcon( this, g, 325, 150 ); + + } +} + diff --git a/JBriscola/all_versions/0.3/0.3/src/img/1-1.jpg b/JBriscola/all_versions/0.3/0.3/src/img/1-1.jpg new file mode 100755 index 0000000..ae43510 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/1-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/1-2.jpg b/JBriscola/all_versions/0.3/0.3/src/img/1-2.jpg new file mode 100755 index 0000000..3f7c75a Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/1-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/1-3.jpg b/JBriscola/all_versions/0.3/0.3/src/img/1-3.jpg new file mode 100755 index 0000000..9e1ead7 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/1-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/1-4.jpg b/JBriscola/all_versions/0.3/0.3/src/img/1-4.jpg new file mode 100755 index 0000000..710f879 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/1-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/10-1.jpg b/JBriscola/all_versions/0.3/0.3/src/img/10-1.jpg new file mode 100755 index 0000000..9aba45a Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/10-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/10-2.jpg b/JBriscola/all_versions/0.3/0.3/src/img/10-2.jpg new file mode 100755 index 0000000..037eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/10-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/10-3.jpg b/JBriscola/all_versions/0.3/0.3/src/img/10-3.jpg new file mode 100755 index 0000000..8780b72 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/10-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/10-4.jpg b/JBriscola/all_versions/0.3/0.3/src/img/10-4.jpg new file mode 100755 index 0000000..587dc0f Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/10-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/2-1.jpg b/JBriscola/all_versions/0.3/0.3/src/img/2-1.jpg new file mode 100755 index 0000000..5dcb7db Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/2-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/2-2.jpg b/JBriscola/all_versions/0.3/0.3/src/img/2-2.jpg new file mode 100755 index 0000000..ea9eeb7 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/2-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/2-3.jpg b/JBriscola/all_versions/0.3/0.3/src/img/2-3.jpg new file mode 100755 index 0000000..8cb22dd Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/2-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/2-4.jpg b/JBriscola/all_versions/0.3/0.3/src/img/2-4.jpg new file mode 100755 index 0000000..b3e7898 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/2-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/3-1.jpg b/JBriscola/all_versions/0.3/0.3/src/img/3-1.jpg new file mode 100755 index 0000000..dcb435c Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/3-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/3-2.jpg b/JBriscola/all_versions/0.3/0.3/src/img/3-2.jpg new file mode 100755 index 0000000..1e5b6ec Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/3-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/3-3.jpg b/JBriscola/all_versions/0.3/0.3/src/img/3-3.jpg new file mode 100755 index 0000000..9202cfe Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/3-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/3-4.jpg b/JBriscola/all_versions/0.3/0.3/src/img/3-4.jpg new file mode 100755 index 0000000..5436a8d Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/3-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/4-1.jpg b/JBriscola/all_versions/0.3/0.3/src/img/4-1.jpg new file mode 100755 index 0000000..3bab6d5 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/4-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/4-2.jpg b/JBriscola/all_versions/0.3/0.3/src/img/4-2.jpg new file mode 100755 index 0000000..b4901a6 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/4-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/4-3.jpg b/JBriscola/all_versions/0.3/0.3/src/img/4-3.jpg new file mode 100755 index 0000000..d754ad8 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/4-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/4-4.jpg b/JBriscola/all_versions/0.3/0.3/src/img/4-4.jpg new file mode 100755 index 0000000..3a54b96 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/4-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/5-1.jpg b/JBriscola/all_versions/0.3/0.3/src/img/5-1.jpg new file mode 100755 index 0000000..3f7ba1f Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/5-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/5-2.jpg b/JBriscola/all_versions/0.3/0.3/src/img/5-2.jpg new file mode 100755 index 0000000..fcacb75 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/5-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/5-3.jpg b/JBriscola/all_versions/0.3/0.3/src/img/5-3.jpg new file mode 100755 index 0000000..ce32f9f Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/5-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/5-4.jpg b/JBriscola/all_versions/0.3/0.3/src/img/5-4.jpg new file mode 100755 index 0000000..b86b09a Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/5-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/6-1.jpg b/JBriscola/all_versions/0.3/0.3/src/img/6-1.jpg new file mode 100755 index 0000000..f90cd81 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/6-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/6-2.jpg b/JBriscola/all_versions/0.3/0.3/src/img/6-2.jpg new file mode 100755 index 0000000..cf2a67a Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/6-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/6-3.jpg b/JBriscola/all_versions/0.3/0.3/src/img/6-3.jpg new file mode 100755 index 0000000..2cd2fe2 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/6-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/6-4.jpg b/JBriscola/all_versions/0.3/0.3/src/img/6-4.jpg new file mode 100755 index 0000000..73f410f Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/6-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/7-1.jpg b/JBriscola/all_versions/0.3/0.3/src/img/7-1.jpg new file mode 100755 index 0000000..08cd397 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/7-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/7-2.jpg b/JBriscola/all_versions/0.3/0.3/src/img/7-2.jpg new file mode 100755 index 0000000..a168ff8 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/7-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/7-3.jpg b/JBriscola/all_versions/0.3/0.3/src/img/7-3.jpg new file mode 100755 index 0000000..5cda411 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/7-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/7-4.jpg b/JBriscola/all_versions/0.3/0.3/src/img/7-4.jpg new file mode 100755 index 0000000..5d63229 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/7-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/8-1.jpg b/JBriscola/all_versions/0.3/0.3/src/img/8-1.jpg new file mode 100755 index 0000000..a6faa7b Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/8-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/8-2.jpg b/JBriscola/all_versions/0.3/0.3/src/img/8-2.jpg new file mode 100755 index 0000000..0d9edbb Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/8-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/8-3.jpg b/JBriscola/all_versions/0.3/0.3/src/img/8-3.jpg new file mode 100755 index 0000000..91f8354 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/8-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/8-4.jpg b/JBriscola/all_versions/0.3/0.3/src/img/8-4.jpg new file mode 100755 index 0000000..cc0089c Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/8-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/9-1.jpg b/JBriscola/all_versions/0.3/0.3/src/img/9-1.jpg new file mode 100755 index 0000000..be9c6bf Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/9-1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/9-2.jpg b/JBriscola/all_versions/0.3/0.3/src/img/9-2.jpg new file mode 100755 index 0000000..e25da4c Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/9-2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/9-3.jpg b/JBriscola/all_versions/0.3/0.3/src/img/9-3.jpg new file mode 100755 index 0000000..cd384f8 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/9-3.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/9-4.jpg b/JBriscola/all_versions/0.3/0.3/src/img/9-4.jpg new file mode 100755 index 0000000..441210e Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/9-4.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/Thumbs.db b/JBriscola/all_versions/0.3/0.3/src/img/Thumbs.db new file mode 100755 index 0000000..d9b6bc5 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/Thumbs.db differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/carte.jpg b/JBriscola/all_versions/0.3/0.3/src/img/carte.jpg new file mode 100755 index 0000000..838ffac Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/carte.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/retro1.jpg b/JBriscola/all_versions/0.3/0.3/src/img/retro1.jpg new file mode 100755 index 0000000..9651b06 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/retro1.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/img/retro2.jpg b/JBriscola/all_versions/0.3/0.3/src/img/retro2.jpg new file mode 100755 index 0000000..c5d3925 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/img/retro2.jpg differ diff --git a/JBriscola/all_versions/0.3/0.3/src/sounds/0.wav b/JBriscola/all_versions/0.3/0.3/src/sounds/0.wav new file mode 100755 index 0000000..67d9abd Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/sounds/0.wav differ diff --git a/JBriscola/all_versions/0.3/0.3/src/sounds/1.wav b/JBriscola/all_versions/0.3/0.3/src/sounds/1.wav new file mode 100755 index 0000000..9357c97 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/sounds/1.wav differ diff --git a/JBriscola/all_versions/0.3/0.3/src/sounds/2.wav b/JBriscola/all_versions/0.3/0.3/src/sounds/2.wav new file mode 100755 index 0000000..92b1541 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/sounds/2.wav differ diff --git a/JBriscola/all_versions/0.3/0.3/src/sounds/3.wav b/JBriscola/all_versions/0.3/0.3/src/sounds/3.wav new file mode 100755 index 0000000..45a6e42 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/sounds/3.wav differ diff --git a/JBriscola/all_versions/0.3/0.3/src/sounds/4.wav b/JBriscola/all_versions/0.3/0.3/src/sounds/4.wav new file mode 100755 index 0000000..1f7ec90 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/sounds/4.wav differ diff --git a/JBriscola/all_versions/0.3/0.3/src/sounds/5.wav b/JBriscola/all_versions/0.3/0.3/src/sounds/5.wav new file mode 100755 index 0000000..3627f96 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/sounds/5.wav differ diff --git a/JBriscola/all_versions/0.3/0.3/src/sounds/pareggio.wav b/JBriscola/all_versions/0.3/0.3/src/sounds/pareggio.wav new file mode 100755 index 0000000..ff978e6 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/sounds/pareggio.wav differ diff --git a/JBriscola/all_versions/0.3/0.3/src/sounds/perso.wav b/JBriscola/all_versions/0.3/0.3/src/sounds/perso.wav new file mode 100755 index 0000000..a454ba4 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/sounds/perso.wav differ diff --git a/JBriscola/all_versions/0.3/0.3/src/sounds/vinto.wav b/JBriscola/all_versions/0.3/0.3/src/sounds/vinto.wav new file mode 100755 index 0000000..a6f3ac5 Binary files /dev/null and b/JBriscola/all_versions/0.3/0.3/src/sounds/vinto.wav differ diff --git a/JBriscola/trucchi.txt b/JBriscola/trucchi.txt new file mode 100644 index 0000000..c2974e0 --- /dev/null +++ b/JBriscola/trucchi.txt @@ -0,0 +1,18 @@ +Tutti i trucchi vanno inseriti (dal menu file->trucchi) senza virgolette e con gli spazi. Il programma non distingue tra lettere maiuscole e minuscole. + +"Kill Devil Hill" - La CPU gioca a carte scoperte + +"Darkside of Aquarius" - Scambia le proprie carte con quelle della CPU + +"Change of Heart" - Cambia il seme di briscola con uno a caso, senza dire quale. L'ultima carta non cambia. È possibile comunque capire qual'è la briscola dal menu ?->Briscola + +"Tears of The Dragon" - Asso Tre e Re di Briscola tutti in mano (anche in caso di doppioni). + +"Navigate The Seas of The Sun" - Tre assi di briscola in mano + +"Omega" - Fa finire la partita al prossimo piglio + +P.S.: Sì, sono tutti titoli di canzoni di Bruce Dickinson. +P.P.S.: Se c'è qualche trucco che vi picerebbe avere, chiedete pure, e vedrò di implementarlo nella prossima versione :) + +per contattarmi: sebastiano@luganega.org \ No newline at end of file -- cgit v1.3