| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
package Games::Sudoku::SudokuTk; |
|
2
|
|
|
|
|
|
|
|
|
3
|
1
|
|
|
1
|
|
57222
|
use 5.008008; |
|
|
1
|
|
|
|
|
5
|
|
|
|
1
|
|
|
|
|
50
|
|
|
4
|
|
|
|
|
|
|
#use strict; |
|
5
|
1
|
|
|
1
|
|
8
|
use warnings; |
|
|
1
|
|
|
|
|
2
|
|
|
|
1
|
|
|
|
|
179
|
|
|
6
|
|
|
|
|
|
|
|
|
7
|
|
|
|
|
|
|
require Exporter; |
|
8
|
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
our @ISA = qw(Exporter); |
|
10
|
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
# Items to export into callers namespace by default. Note: do not export |
|
12
|
|
|
|
|
|
|
# names by default without a very good reason. Use EXPORT_OK instead. |
|
13
|
|
|
|
|
|
|
# Do not simply export all your public functions/methods/constants. |
|
14
|
|
|
|
|
|
|
|
|
15
|
|
|
|
|
|
|
# This allows declaration use Games::Sudoku::SudokuTk ':all'; |
|
16
|
|
|
|
|
|
|
# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK |
|
17
|
|
|
|
|
|
|
# will save memory. |
|
18
|
|
|
|
|
|
|
our %EXPORT_TAGS = ( 'all' => [ qw( |
|
19
|
|
|
|
|
|
|
|
|
20
|
|
|
|
|
|
|
) ] ); |
|
21
|
|
|
|
|
|
|
|
|
22
|
|
|
|
|
|
|
our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); |
|
23
|
|
|
|
|
|
|
|
|
24
|
|
|
|
|
|
|
our @EXPORT = qw( |
|
25
|
|
|
|
|
|
|
|
|
26
|
|
|
|
|
|
|
); |
|
27
|
|
|
|
|
|
|
|
|
28
|
|
|
|
|
|
|
our $VERSION = '0.14'; |
|
29
|
|
|
|
|
|
|
sudoku(); |
|
30
|
|
|
|
|
|
|
# Preloaded methods go here. |
|
31
|
|
|
|
|
|
|
|
|
32
|
|
|
|
|
|
|
1; |
|
33
|
|
|
|
|
|
|
|
|
34
|
|
|
|
|
|
|
sub sudoku { |
|
35
|
1
|
|
|
1
|
|
1135
|
use Tk; |
|
|
0
|
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
36
|
|
|
|
|
|
|
use Tk::Balloon; |
|
37
|
|
|
|
|
|
|
use Games::Sudoku::menu; |
|
38
|
|
|
|
|
|
|
use Games::Sudoku::affichgrille; |
|
39
|
|
|
|
|
|
|
use Games::Sudoku::tr1; |
|
40
|
|
|
|
|
|
|
use Games::Sudoku::conf; |
|
41
|
|
|
|
|
|
|
conf(); |
|
42
|
|
|
|
|
|
|
foreach $a (@INC) { # we verifie that drawings are here |
|
43
|
|
|
|
|
|
|
$retour = opendir('DIRECTORY',$a . '/Games/Sudoku/photos'); |
|
44
|
|
|
|
|
|
|
$b = $a; |
|
45
|
|
|
|
|
|
|
if ($retour) { |
|
46
|
|
|
|
|
|
|
last; |
|
47
|
|
|
|
|
|
|
} |
|
48
|
|
|
|
|
|
|
} |
|
49
|
|
|
|
|
|
|
closedir('DIRECTORY'); |
|
50
|
|
|
|
|
|
|
#print ("fichier " . "$b" . "\n"); |
|
51
|
|
|
|
|
|
|
$system = $^O; # we find the system |
|
52
|
|
|
|
|
|
|
#print "system $system\n"; |
|
53
|
|
|
|
|
|
|
$pref = "$b" . "/Games/Sudoku"; |
|
54
|
|
|
|
|
|
|
@precarre = ""; |
|
55
|
|
|
|
|
|
|
@wprecarre = ""; |
|
56
|
|
|
|
|
|
|
# Definition of main window |
|
57
|
|
|
|
|
|
|
$langue = ""; |
|
58
|
|
|
|
|
|
|
$dessin = "chiffres"; |
|
59
|
|
|
|
|
|
|
$MaxiSudoku = 0; # 0 non choisi 1 choisi 2 autre choisi |
|
60
|
|
|
|
|
|
|
$Normal = 0; # idem |
|
61
|
|
|
|
|
|
|
$Enfant = 0; # idem |
|
62
|
|
|
|
|
|
|
$Simpliste = 0; # idem |
|
63
|
|
|
|
|
|
|
$Ardu = 0; # idem |
|
64
|
|
|
|
|
|
|
$trait = "sudoku"; |
|
65
|
|
|
|
|
|
|
$main = MainWindow->new(); |
|
66
|
|
|
|
|
|
|
menu($trait); |
|
67
|
|
|
|
|
|
|
if ($skin == 1) { |
|
68
|
|
|
|
|
|
|
# --------------------------------------------------------- |
|
69
|
|
|
|
|
|
|
# frame1 |frame3 frame31 | |
|
70
|
|
|
|
|
|
|
# frame2 |---------------------- |
|
71
|
|
|
|
|
|
|
# frame4 |frame32 |34frame35 | |
|
72
|
|
|
|
|
|
|
# |frame33 | |frame37 | |
|
73
|
|
|
|
|
|
|
# |frame38 | | | |
|
74
|
|
|
|
|
|
|
# | | | | |
|
75
|
|
|
|
|
|
|
# | | | | |
|
76
|
|
|
|
|
|
|
#-----------------------------------| | | | |
|
77
|
|
|
|
|
|
|
# frame5 | | | | |
|
78
|
|
|
|
|
|
|
#-----------------------------------| | | | |
|
79
|
|
|
|
|
|
|
# frame6 frame7 |frame8 | | | | |
|
80
|
|
|
|
|
|
|
#-----------------------------------|---------------------- |
|
81
|
|
|
|
|
|
|
# frame9 |frame36 | |
|
82
|
|
|
|
|
|
|
#---------------------------------------------------------- |
|
83
|
|
|
|
|
|
|
$frame1 = $main->Frame(-background => $couleurfond)->pack(); |
|
84
|
|
|
|
|
|
|
$frame2 = $frame1->Frame(-background => $couleurfond)->pack(-side => 'left'); |
|
85
|
|
|
|
|
|
|
$frame3 = $frame1->Frame(-background => $couleurfond)->pack(-side => 'right'); |
|
86
|
|
|
|
|
|
|
$frame4 = $frame2->Frame(-background => $couleurfond)->pack(); |
|
87
|
|
|
|
|
|
|
$canvas = $frame4->Canvas(-width => 500, -height => 300); |
|
88
|
|
|
|
|
|
|
$frame4->Photo("imagesudoku", -file => $pref . '/photos/sudoku.bmp'); |
|
89
|
|
|
|
|
|
|
$canvas->createImage(250 ,0,-anchor => 'n', -image => "imagesudoku"); |
|
90
|
|
|
|
|
|
|
$canvas->pack; |
|
91
|
|
|
|
|
|
|
|
|
92
|
|
|
|
|
|
|
$frame5 = $frame2->Frame(-background => $couleurfond)->pack(); |
|
93
|
|
|
|
|
|
|
$frame5->Photo('imagenormal', -file => $pref . '/photos/button/' . $langue . '/normal.bmp'); |
|
94
|
|
|
|
|
|
|
$rbutton1= $frame5->Button(-command => [\&CType,'Normal'], |
|
95
|
|
|
|
|
|
|
-image => "imagenormal")->pack(-side => 'left'); |
|
96
|
|
|
|
|
|
|
my $balloon1 = $rbutton1->Balloon(); |
|
97
|
|
|
|
|
|
|
$balloon1->attach($rbutton1, -msg => tr1("Grille 9x9 normale")); |
|
98
|
|
|
|
|
|
|
$frame6 = $frame2->Frame(-background => $couleurfond)->pack(); |
|
99
|
|
|
|
|
|
|
$frame7 = $frame6->Frame(-background => $couleurfond)->pack(-side => 'left'); |
|
100
|
|
|
|
|
|
|
$frame7->Photo('imagesimpliste', -file => $pref . '/photos/button/' . $langue . '/simpliste.bmp'); |
|
101
|
|
|
|
|
|
|
$rbutton2= $frame7->Button(-command => [\&CType,'Simpliste'], |
|
102
|
|
|
|
|
|
|
-image => "imagesimpliste")->pack(-side => 'left'); |
|
103
|
|
|
|
|
|
|
my $balloon2 = $rbutton2->Balloon(); |
|
104
|
|
|
|
|
|
|
$balloon2->attach($rbutton2, -msg => tr1("Grille 6x6 facile")); |
|
105
|
|
|
|
|
|
|
$frame8 = $frame6->Frame(-background => $couleurfond)->pack(-side => 'left'); |
|
106
|
|
|
|
|
|
|
$frame8->Photo('imageardu', -file => $pref . '/photos/button/' . $langue . '/ardu.bmp'); |
|
107
|
|
|
|
|
|
|
$rbutton3= $frame8->Button(-command => [\&CType,'Ardu'], |
|
108
|
|
|
|
|
|
|
-image => "imageardu")->pack(-side => 'left'); |
|
109
|
|
|
|
|
|
|
my $balloon3 = $rbutton3->Balloon(); |
|
110
|
|
|
|
|
|
|
$balloon3->attach($rbutton3, -msg => tr1("Grille 8x8 pas facile")); |
|
111
|
|
|
|
|
|
|
$frame9 = $frame2->Frame(-background => $couleurfond)->pack(); |
|
112
|
|
|
|
|
|
|
$frame9->Photo('imagedifficile', -file => $pref . '/photos/button/' . $langue . '/difficile.bmp'); |
|
113
|
|
|
|
|
|
|
$rbutton6= $frame9->Button(-command => [\&CType,'Difficile'], |
|
114
|
|
|
|
|
|
|
-image => "imagedifficile")->pack(-side => 'left'); |
|
115
|
|
|
|
|
|
|
my $balloon6 = $rbutton6->Balloon(); |
|
116
|
|
|
|
|
|
|
$balloon6->attach($rbutton6, -msg => tr1("Grille 10x10 difficile")); |
|
117
|
|
|
|
|
|
|
$frame9->Photo('imagemaxisudoku', -file => $pref . '/photos/button/' . $langue . '/maxisudoku.bmp'); |
|
118
|
|
|
|
|
|
|
$rbutton4= $frame9->Button(-command => [\&CType,'MaxiSudoku'], |
|
119
|
|
|
|
|
|
|
-image => "imagemaxisudoku")->pack(-side => 'left'); |
|
120
|
|
|
|
|
|
|
my $balloon4 = $rbutton4->Balloon(); |
|
121
|
|
|
|
|
|
|
$balloon4->attach($rbutton4, -msg => tr1("Grille 16x16 très difficile")); |
|
122
|
|
|
|
|
|
|
$frame10 = $frame2->Frame(-background => $couleurfond)->pack(); |
|
123
|
|
|
|
|
|
|
my $frame11 = $frame10->Frame(-background => $couleurfond)->pack(-side => 'left'); |
|
124
|
|
|
|
|
|
|
my $button6 = $frame11->Label(-text => ' ', -background => $couleurfond, |
|
125
|
|
|
|
|
|
|
-height => 2, -width => 50)->pack; |
|
126
|
|
|
|
|
|
|
$frame12 = $frame10->Frame->pack(-side => 'right'); |
|
127
|
|
|
|
|
|
|
$frame12->Photo('imagetresdifficile', -file => $pref . '/photos/button/' . |
|
128
|
|
|
|
|
|
|
$langue . '/tresdifficile.bmp'); |
|
129
|
|
|
|
|
|
|
$rbutton7 = $frame12->Button(-command => [\&CType,'Tresdifficile'], |
|
130
|
|
|
|
|
|
|
-image => "imagetresdifficile")->pack(-side => 'left'); |
|
131
|
|
|
|
|
|
|
my $balloon7 = $rbutton7->Balloon(); |
|
132
|
|
|
|
|
|
|
$balloon7->attach($rbutton7, -msg => tr1("Grille 12x12 très difficile")); |
|
133
|
|
|
|
|
|
|
$frame12->Photo('imageenfant', -file => $pref . '/photos/button/' . $langue . '/enfant.bmp'); |
|
134
|
|
|
|
|
|
|
$rbutton5 = $frame12->Button(-command => [\&CType,'Enfant'], |
|
135
|
|
|
|
|
|
|
-image => "imageenfant")->pack(-side => 'left'); |
|
136
|
|
|
|
|
|
|
my $balloon5 = $rbutton5->Balloon(); |
|
137
|
|
|
|
|
|
|
$balloon5->attach($rbutton5, -msg => tr1("Grille 4x4 très facile\navec dessins d'animaux\npar défaut")); |
|
138
|
|
|
|
|
|
|
my $frame31 = $frame3->Frame(-height => 3, -background => $couleurfond)->pack(); |
|
139
|
|
|
|
|
|
|
my $frame32 = $frame3->Frame(-background => $couleurfond)->pack(); |
|
140
|
|
|
|
|
|
|
my $frame33 = $frame32->Frame(-background => $couleurfond)->pack(-side => 'left'); |
|
141
|
|
|
|
|
|
|
my $frame34 = $frame32->Frame(-background => $couleurfond)->pack(-side => 'left'); |
|
142
|
|
|
|
|
|
|
my $frame35 = $frame32->Frame(-background => $couleurfond)->pack(-side => 'left'); |
|
143
|
|
|
|
|
|
|
my $canvas3 = $frame34->Canvas('-width' => 5, '-height' => 500, -background => 'black')->pack(); |
|
144
|
|
|
|
|
|
|
my $frame36 = $frame32->Frame(-height => 3, -background => $couleurfond)->pack(); |
|
145
|
|
|
|
|
|
|
my $frame37 = $frame32->Frame(-background => $couleurfond)->pack(-side => 'left'); |
|
146
|
|
|
|
|
|
|
my $frame38 = $frame32->Frame(-background => $couleurfond)->pack(-side => 'left'); |
|
147
|
|
|
|
|
|
|
|
|
148
|
|
|
|
|
|
|
# Left column ------------------------------- |
|
149
|
|
|
|
|
|
|
|
|
150
|
|
|
|
|
|
|
$frame33->Photo('imageresoudre', -file => $pref . '/photos/button/' . $langue . '/resoudre.bmp'); |
|
151
|
|
|
|
|
|
|
$rbutton10 = $frame33->Button(-command => [\&affichgrille,"R"], |
|
152
|
|
|
|
|
|
|
#-text => "Resoudre une grille")->pack(); |
|
153
|
|
|
|
|
|
|
-image => "imageresoudre")->pack(); |
|
154
|
|
|
|
|
|
|
my $balloon10 = $rbutton10->Balloon(); |
|
155
|
|
|
|
|
|
|
$balloon10->attach($rbutton10, -msg => tr1("Saisir une grille\npour la résoudre")); |
|
156
|
|
|
|
|
|
|
$frame33->Photo('imagecreer', -file => $pref . '/photos/button/' . $langue . '/creer.bmp'); |
|
157
|
|
|
|
|
|
|
$rbutton12 = $frame33->Button(-command => [\&creation_grille], |
|
158
|
|
|
|
|
|
|
#-text => "Creer une grille")->pack(); |
|
159
|
|
|
|
|
|
|
-image => "imagecreer")->pack(); |
|
160
|
|
|
|
|
|
|
my $balloon12 = $rbutton12->Balloon(); |
|
161
|
|
|
|
|
|
|
$balloon12->attach($rbutton12, -msg => tr1("Créer une grille soi même")); |
|
162
|
|
|
|
|
|
|
$frame33->Photo('imagechiffres', -file => $pref . '/photos/button/' . $langue . '/chiffres.bmp'); |
|
163
|
|
|
|
|
|
|
if ($dessin ne "chiffres") { |
|
164
|
|
|
|
|
|
|
$rbutton13 = $frame33->Button(-command => [sub{$dessin = "chiffres"}], |
|
165
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes chiffres")->pack(); |
|
166
|
|
|
|
|
|
|
-image => "imagechiffres")->pack(); |
|
167
|
|
|
|
|
|
|
} else { |
|
168
|
|
|
|
|
|
|
$rbutton13 = $frame33->Label(-background => $couleurfond, |
|
169
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes chiffres")->pack(); |
|
170
|
|
|
|
|
|
|
-image => "imagechiffres")->pack(); |
|
171
|
|
|
|
|
|
|
} |
|
172
|
|
|
|
|
|
|
my $balloon13 = $rbutton13->Balloon(); |
|
173
|
|
|
|
|
|
|
$balloon13->attach($rbutton13, -msg => tr1("Il y a des chiffres\n dans les cases")); |
|
174
|
|
|
|
|
|
|
$frame38->Photo('imagecouleurs', -file => $pref . '/photos/button/' . $langue . '/couleurs.bmp'); |
|
175
|
|
|
|
|
|
|
if ($dessin ne "couleurs") { |
|
176
|
|
|
|
|
|
|
$rbutton21 = $frame33->Button(-command => [sub{$dessin = "couleurs"}], |
|
177
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes lettres")->pack(); |
|
178
|
|
|
|
|
|
|
-image => "imagecouleurs")->pack(); |
|
179
|
|
|
|
|
|
|
} else { |
|
180
|
|
|
|
|
|
|
$rbutton21 = $frame33->Label( |
|
181
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes lettres")->pack(); |
|
182
|
|
|
|
|
|
|
-image => "imagecouleurs")->pack(); |
|
183
|
|
|
|
|
|
|
} |
|
184
|
|
|
|
|
|
|
my $balloon21 = $rbutton21->Balloon(); |
|
185
|
|
|
|
|
|
|
$balloon21->attach($rbutton21, -msg => tr1("Il y a des couleurs\n dans les cases")); |
|
186
|
|
|
|
|
|
|
my $Label5 = $frame33->Label(-text => tr1('Langues'), |
|
187
|
|
|
|
|
|
|
-font => "Nimbus 20", |
|
188
|
|
|
|
|
|
|
-background => $couleurfond, |
|
189
|
|
|
|
|
|
|
-height => 2, -width => 10)->pack; |
|
190
|
|
|
|
|
|
|
$frame33->Photo('imagefr', -file => $pref . '/photos/button/fr/drapeau.gif'); |
|
191
|
|
|
|
|
|
|
if ($langue ne "fr") { |
|
192
|
|
|
|
|
|
|
$rbutton14 = $frame33->Button(-command => [\&changelang,"fr"], |
|
193
|
|
|
|
|
|
|
#-text => "Français")->pack(); |
|
194
|
|
|
|
|
|
|
-background => $couleurfond, |
|
195
|
|
|
|
|
|
|
-image => "imagefr")->pack(); |
|
196
|
|
|
|
|
|
|
} else { |
|
197
|
|
|
|
|
|
|
$rbutton14 = $frame33->Label(-background => $couleurfond, |
|
198
|
|
|
|
|
|
|
#-text => "Français")->pack(); |
|
199
|
|
|
|
|
|
|
-background => $couleurfond, |
|
200
|
|
|
|
|
|
|
-image => "imagefr")->pack(); |
|
201
|
|
|
|
|
|
|
} |
|
202
|
|
|
|
|
|
|
my $balloon14 = $rbutton14->Balloon(); |
|
203
|
|
|
|
|
|
|
$balloon14->attach($rbutton14, -msg => tr1("français")); |
|
204
|
|
|
|
|
|
|
$frame33->Photo('imagege', -file => $pref . '/photos/button/ge/drapeau.gif'); |
|
205
|
|
|
|
|
|
|
if ($langue ne "ge") { |
|
206
|
|
|
|
|
|
|
$rbutton15 = $frame33->Button(-command => [\&changelang,"ge"], |
|
207
|
|
|
|
|
|
|
-background => $couleurfond, |
|
208
|
|
|
|
|
|
|
-image => "imagege")->pack(); |
|
209
|
|
|
|
|
|
|
} else { |
|
210
|
|
|
|
|
|
|
$rbutton15 = $frame33->Label(-background => $couleurfond, |
|
211
|
|
|
|
|
|
|
-background => $couleurfond, |
|
212
|
|
|
|
|
|
|
-image => "imagege")->pack(); |
|
213
|
|
|
|
|
|
|
} |
|
214
|
|
|
|
|
|
|
my $balloon15 = $rbutton15->Balloon(); |
|
215
|
|
|
|
|
|
|
$balloon15->attach($rbutton15, -msg => tr1("allemand")); |
|
216
|
|
|
|
|
|
|
$frame33->Photo('imageit', -file => $pref . '/photos/button/it/drapeau.gif'); |
|
217
|
|
|
|
|
|
|
if ($langue ne "it") { |
|
218
|
|
|
|
|
|
|
$rbutton16 = $frame33->Button(-command => [\&changelang,"it"], |
|
219
|
|
|
|
|
|
|
-background => $couleurfond, |
|
220
|
|
|
|
|
|
|
-image => "imageit")->pack(); |
|
221
|
|
|
|
|
|
|
} else { |
|
222
|
|
|
|
|
|
|
$rbutton16 = $frame33->Label(-background => $couleurfond, |
|
223
|
|
|
|
|
|
|
-background => $couleurfond, |
|
224
|
|
|
|
|
|
|
-image => "imageit")->pack(); |
|
225
|
|
|
|
|
|
|
} |
|
226
|
|
|
|
|
|
|
my $balloon16 = $rbutton16->Balloon(); |
|
227
|
|
|
|
|
|
|
$balloon16->attach($rbutton16, -msg => tr1("italien")); |
|
228
|
|
|
|
|
|
|
|
|
229
|
|
|
|
|
|
|
# Right column ------------------------------ |
|
230
|
|
|
|
|
|
|
|
|
231
|
|
|
|
|
|
|
$frame35->Photo('imagenewgrille', -file => $pref . '/photos/button/' . $langue . '/newgrille.bmp'); |
|
232
|
|
|
|
|
|
|
$rbutton17 = $frame35->Button(-command => [\&affichgrille,"C"], |
|
233
|
|
|
|
|
|
|
#-text => "Demander\nune nouvelle grille")->pack(); |
|
234
|
|
|
|
|
|
|
-image => "imagenewgrille")->pack(); |
|
235
|
|
|
|
|
|
|
my $balloon17 = $rbutton17->Balloon(); |
|
236
|
|
|
|
|
|
|
$balloon17->attach($rbutton17, -msg => tr1("Demander une nouvelle grille")); |
|
237
|
|
|
|
|
|
|
$frame33->Photo('imageanimaux', -file => $pref . '/photos/button/' . $langue . '/animaux.bmp'); |
|
238
|
|
|
|
|
|
|
my $button18 = $frame35->Label(-text => ' ', -background => $couleurfond, |
|
239
|
|
|
|
|
|
|
-height => 4, -width => 10)->pack; |
|
240
|
|
|
|
|
|
|
if ($dessin ne "animaux") { |
|
241
|
|
|
|
|
|
|
$rbutton19 = $frame35->Button(-command => [sub{$dessin = "animaux"}], |
|
242
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes animaux")->pack(); |
|
243
|
|
|
|
|
|
|
-image => "imageanimaux")->pack(); |
|
244
|
|
|
|
|
|
|
} else { |
|
245
|
|
|
|
|
|
|
$rbutton19 = $frame35->Label( |
|
246
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes animaux")->pack(); |
|
247
|
|
|
|
|
|
|
-image => "imageanimaux")->pack(); |
|
248
|
|
|
|
|
|
|
} |
|
249
|
|
|
|
|
|
|
my $balloon19 = $rbutton19->Balloon(); |
|
250
|
|
|
|
|
|
|
$balloon19->attach($rbutton19, -msg => tr1("Il y a des animaux\n dans les cases")); |
|
251
|
|
|
|
|
|
|
$frame37->Photo('imagelettres', -file => $pref . '/photos/button/' . $langue . '/lettres.bmp'); |
|
252
|
|
|
|
|
|
|
if ($dessin ne "lettres") { |
|
253
|
|
|
|
|
|
|
$rbutton20 = $frame35->Button(-command => [sub{$dessin = "lettres"}], |
|
254
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes lettres")->pack(); |
|
255
|
|
|
|
|
|
|
-image => "imagelettres")->pack(); |
|
256
|
|
|
|
|
|
|
} else { |
|
257
|
|
|
|
|
|
|
$rbutton20 = $frame35->Label( |
|
258
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes lettres")->pack(); |
|
259
|
|
|
|
|
|
|
-image => "imagelettres")->pack(); |
|
260
|
|
|
|
|
|
|
} |
|
261
|
|
|
|
|
|
|
my $balloon20 = $rbutton20->Balloon(); |
|
262
|
|
|
|
|
|
|
$balloon20->attach($rbutton20, -msg => tr1("Il y a des lettres\n dans les cases")); |
|
263
|
|
|
|
|
|
|
#my $Label6 = $frame35->Label(-text => ' ', -background => $couleurfond, |
|
264
|
|
|
|
|
|
|
# -height => 4, -width => 10)->pack; |
|
265
|
|
|
|
|
|
|
my $Label6 = $frame35->Label(-text => ' ', -background => $couleurfond, |
|
266
|
|
|
|
|
|
|
-height => 4, -width => 10)->pack; |
|
267
|
|
|
|
|
|
|
$frame35->Photo('imageen', -file => $pref . '/photos/button/en/drapeau.gif'); |
|
268
|
|
|
|
|
|
|
if ($langue ne "en") { |
|
269
|
|
|
|
|
|
|
$rbutton22 = $frame35->Button(-command => [\&changelang,"en"], |
|
270
|
|
|
|
|
|
|
-background => $couleurfond, |
|
271
|
|
|
|
|
|
|
#-text => "English")->pack(); |
|
272
|
|
|
|
|
|
|
-image => "imageen")->pack(); |
|
273
|
|
|
|
|
|
|
} else { |
|
274
|
|
|
|
|
|
|
$rbutton22 = $frame35->Label( |
|
275
|
|
|
|
|
|
|
#-text => "English")->pack(); |
|
276
|
|
|
|
|
|
|
-background => $couleurfond, |
|
277
|
|
|
|
|
|
|
-image => "imageen")->pack(); |
|
278
|
|
|
|
|
|
|
} |
|
279
|
|
|
|
|
|
|
my $balloon22 = $rbutton22->Balloon(); |
|
280
|
|
|
|
|
|
|
$balloon22->attach($rbutton22, -msg => tr1("anglais")); |
|
281
|
|
|
|
|
|
|
$frame35->Photo('imagesp', -file => $pref . '/photos/button/sp/drapeau.gif'); |
|
282
|
|
|
|
|
|
|
if ($langue ne "sp") { |
|
283
|
|
|
|
|
|
|
$rbutton23 = $frame35->Button(-command => [\&changelang,"sp"], |
|
284
|
|
|
|
|
|
|
-background => $couleurfond, |
|
285
|
|
|
|
|
|
|
-image => "imagesp")->pack(); |
|
286
|
|
|
|
|
|
|
} else { |
|
287
|
|
|
|
|
|
|
$rbutton23 = $frame35->Label( |
|
288
|
|
|
|
|
|
|
-background => $couleurfond, |
|
289
|
|
|
|
|
|
|
-image => "imagesp")->pack(); |
|
290
|
|
|
|
|
|
|
} |
|
291
|
|
|
|
|
|
|
my $balloon23 = $rbutton23->Balloon(); |
|
292
|
|
|
|
|
|
|
$balloon23->attach($rbutton23, -msg => tr1("espagnol")); |
|
293
|
|
|
|
|
|
|
$frame35->Photo('imagept', -file => $pref . '/photos/button/pt/drapeau.gif'); |
|
294
|
|
|
|
|
|
|
if ($langue ne "pt") { |
|
295
|
|
|
|
|
|
|
$rbutton24 = $frame35->Button(-command => [\&changelang,"pt"], |
|
296
|
|
|
|
|
|
|
-background => $couleurfond, |
|
297
|
|
|
|
|
|
|
-image => "imagept")->pack(); |
|
298
|
|
|
|
|
|
|
} else { |
|
299
|
|
|
|
|
|
|
$rbutton24 = $frame35->Label( |
|
300
|
|
|
|
|
|
|
-background => $couleurfond, |
|
301
|
|
|
|
|
|
|
-image => "imagept")->pack(); |
|
302
|
|
|
|
|
|
|
} |
|
303
|
|
|
|
|
|
|
my $balloon24 = $rbutton24->Balloon(); |
|
304
|
|
|
|
|
|
|
$balloon24->attach($rbutton24, -msg => tr1("portugais")); |
|
305
|
|
|
|
|
|
|
} else { # normal look |
|
306
|
|
|
|
|
|
|
$canvas = $main->Label(-text => 'Sudoku', |
|
307
|
|
|
|
|
|
|
-height => 4, -width => 10, |
|
308
|
|
|
|
|
|
|
-font => "Nimbus 80")->pack; |
|
309
|
|
|
|
|
|
|
$framed1 = $main->Frame->pack(); |
|
310
|
|
|
|
|
|
|
$framed2 = $main->Frame->pack(); |
|
311
|
|
|
|
|
|
|
$canvas1 = $framed1->Canvas('-width' => 100, |
|
312
|
|
|
|
|
|
|
-height => 80); |
|
313
|
|
|
|
|
|
|
$framed1->Photo('image1', -file => $pref . '/photos/20.gif'); |
|
314
|
|
|
|
|
|
|
$canvas1->createImage(0, 0, -anchor => 'nw', |
|
315
|
|
|
|
|
|
|
-image => image1); |
|
316
|
|
|
|
|
|
|
$canvas1->pack; |
|
317
|
|
|
|
|
|
|
$rbutton1= $framed1->Radiobutton(-text |
|
318
|
|
|
|
|
|
|
=> tr1('Normal'), |
|
319
|
|
|
|
|
|
|
-font => "Nimbus 20", |
|
320
|
|
|
|
|
|
|
-value => 1, # valeur transmise de la variable |
|
321
|
|
|
|
|
|
|
-command => [\&CType], |
|
322
|
|
|
|
|
|
|
-variable => \$Normal |
|
323
|
|
|
|
|
|
|
)->pack(-side => 'left'); |
|
324
|
|
|
|
|
|
|
$rbutton2= $framed1->Radiobutton(-text |
|
325
|
|
|
|
|
|
|
=> tr1('Simpliste'), |
|
326
|
|
|
|
|
|
|
-font => "Nimbus 20", |
|
327
|
|
|
|
|
|
|
-value => 1, |
|
328
|
|
|
|
|
|
|
-command => [\&CType], |
|
329
|
|
|
|
|
|
|
-variable => \$Simpliste |
|
330
|
|
|
|
|
|
|
)->pack(-side => 'left'); |
|
331
|
|
|
|
|
|
|
$rbutton3= $framed1->Radiobutton(-text |
|
332
|
|
|
|
|
|
|
=> tr1('Ardu'), |
|
333
|
|
|
|
|
|
|
-font => "Nimbus 20", |
|
334
|
|
|
|
|
|
|
-value => 1, |
|
335
|
|
|
|
|
|
|
-command => [\&CType], |
|
336
|
|
|
|
|
|
|
-variable => \$Ardu |
|
337
|
|
|
|
|
|
|
)->pack(-side => 'left'); |
|
338
|
|
|
|
|
|
|
$rbutton4= $framed2->Radiobutton(-text |
|
339
|
|
|
|
|
|
|
=> tr1('MaxiSudoku'), |
|
340
|
|
|
|
|
|
|
-font => "Nimbus 20", |
|
341
|
|
|
|
|
|
|
-value => 1, |
|
342
|
|
|
|
|
|
|
-command => [\&CType], |
|
343
|
|
|
|
|
|
|
-variable => \$MaxiSudoku |
|
344
|
|
|
|
|
|
|
)->pack(-side => 'left'); |
|
345
|
|
|
|
|
|
|
$rbutton5= $framed2->Radiobutton(-text |
|
346
|
|
|
|
|
|
|
=> tr1('Enfant'), |
|
347
|
|
|
|
|
|
|
-font => "Nimbus 20", |
|
348
|
|
|
|
|
|
|
-value => 1, |
|
349
|
|
|
|
|
|
|
-command => [\&CType], |
|
350
|
|
|
|
|
|
|
-variable => \$Enfant |
|
351
|
|
|
|
|
|
|
)->pack(-side => 'left'); |
|
352
|
|
|
|
|
|
|
$rbutton6= $framed2->Radiobutton(-text |
|
353
|
|
|
|
|
|
|
=> tr1('Difficile'), |
|
354
|
|
|
|
|
|
|
-font => "Nimbus 20", |
|
355
|
|
|
|
|
|
|
-value => 1, |
|
356
|
|
|
|
|
|
|
-command => [\&CType], |
|
357
|
|
|
|
|
|
|
-variable => \$Difficile |
|
358
|
|
|
|
|
|
|
)->pack(-side => 'left'); |
|
359
|
|
|
|
|
|
|
$rbutton7= $framed2->Radiobutton(-text |
|
360
|
|
|
|
|
|
|
=> tr1('Très difficile'), |
|
361
|
|
|
|
|
|
|
-font => "Nimbus 20", |
|
362
|
|
|
|
|
|
|
-value => 1, |
|
363
|
|
|
|
|
|
|
-command => [\&CType], |
|
364
|
|
|
|
|
|
|
-variable => \$Tresdifficile |
|
365
|
|
|
|
|
|
|
)->pack(-side => 'left'); |
|
366
|
|
|
|
|
|
|
} |
|
367
|
|
|
|
|
|
|
$wcanvas = 1; |
|
368
|
|
|
|
|
|
|
MainLoop; |
|
369
|
|
|
|
|
|
|
} |
|
370
|
|
|
|
|
|
|
__END__ |