Langsung ke konten utama

Cara Membuat Game Puzzle Menggunakan Neatbeans

Langkah Pertama 
Buka Aplikasi Netbeans> File> proyek New> Java> Java Aplikasi 
Nama Proyek isi gamepuzzle click finish 

Langkah kedua
di berkas paket click kanan> New> kelas java 
hapus / menghapus SEMUA syntak Yang ADA di kelas java kecuali paket gamepuzzle 
selanjutnya copykan syntak dibawah ini:
Puzzle.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.CropImageFilter;
import java.awt.image.FilteredImageSource;
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Puzzle extends JFrame implements ActionListener {
private JPanel centerPanel;
private JButton button;
private JLabel label;
private Image source;
private Image image;
int[][] pos;
int width, height;
public Puzzle() {
pos = new int[][] {
{0, 1, 2},
{3, 4, 5},
{6, 7, 8},
{9, 10, 11}
};
centerPanel = new JPanel();
centerPanel.setLayout(new GridLayout(4, 4, 0, 0));
ImageIcon sid = new ImageIcon(Puzzle.class.getResource("icesid.jpg"));
source = sid.getImage();
width = sid.getIconWidth();
height = sid.getIconHeight();
add(Box.createRigidArea(new Dimension(0, 5)), BorderLayout.NORTH);
add(centerPanel, BorderLayout.CENTER);
for ( int i = 0; i < 4; i++) {
for ( int j = 0; j < 3; j++) {
if ( j == 2 && i == 3) {
label = new JLabel("");
centerPanel.add(label);
} else {
button = new JButton();
button.addActionListener(this);
centerPanel.add(button);
image = createImage(new FilteredImageSource(source.getSource(),
new CropImageFilter(j*width/3, i*height/4,
(width/3)+1, height/4)));
button.setIcon(new ImageIcon(image));
}
}
}
setSize(325, 275);
setTitle("Puzzle");
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new Puzzle();
}
public void actionPerformed(ActionEvent e) {
JButton button = (JButton) e.getSource();
Dimension size = button.getSize();
int labelX = label.getX();
int labelY = label.getY();
int buttonX = button.getX();
int buttonY = button.getY();
int buttonPosX = buttonX / size.width;
int buttonPosY = buttonY / size.height;
int buttonIndex = pos[buttonPosY][buttonPosX];
if (labelX == buttonX && (labelY - buttonY) == size.height ) {
int labelIndex = buttonIndex + 3;
centerPanel.remove(buttonIndex);
centerPanel.add(label, buttonIndex);
centerPanel.add(button,labelIndex);
centerPanel.validate();
}
if (labelX == buttonX && (labelY - buttonY) == -size.height ) {
int labelIndex = buttonIndex - 3;
centerPanel.remove(labelIndex);
centerPanel.add(button,labelIndex);
centerPanel.add(label, buttonIndex);
centerPanel.validate();
}
if (labelY == buttonY && (labelX - buttonX) == size.width ) {
int labelIndex = buttonIndex + 1;
centerPanel.remove(buttonIndex);
centerPanel.add(label, buttonIndex);
centerPanel.add(button,labelIndex);
centerPanel.validate();
}
if (labelY == buttonY && (labelX - buttonX) == -size.width ) {
int labelIndex = buttonIndex - 1;
centerPanel.remove(buttonIndex);
centerPanel.add(label, labelIndex);
centerPanel.add(button,labelIndex);
centerPanel.validate();
}
}
}
Goal (tujuan) dari game sederhana nan mungi ini adalah membentuk atau menyusun kembali gambar tersebut menjadi seperti aslinya lagi. Kita pindahkan atau geser tombol-tombol dengan cara mengklik pada gambar-gambar tersebut. Hanya tombol  yang berdekatan atau berbatasan dengan label saja yang dapat digeser.
1
2
3
4
5
6
7
8
9
10
11
pos = new int[][] {
{0, 1, 2},
{3, 4, 5},
{6, 7, 8},
{9, 10, 11}
};
Ini adalah posisi – posisi dari bagian-bagian gambar tersebut.
ImageIcon sid = new ImageIcon(Puzzle.class.getResource(“icesid.jpg”));
source = sid.getImage();
Kita menggunakan class ImageIcon untuk me-load gambar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
for ( int i = 0; i < 4; i++) {
for ( int j = 0; j < 3; j++) {
if ( j == 2 && i == 3) {
label = new JLabel("");
centerPanel.add(label);
} else {
button = new JButton();
button.addActionListener(this);
centerPanel.add(button);
image = createImage(new FilteredImageSource(source.getSource(),
new CropImageFilter(j*width/3, i*height/4,
(width/3)+1, height/4)));
button.setIcon(new ImageIcon(image));
}
}
}
Code tersebut menciptakan 11 tombol dan 1 label. Kita crop gamabarnya menjadi beberapa bagian dan tempatkan pada tombol-tombol tersebut.
1
2
3
4
5
6
7
int labelX = label.getX();
int labelY = label.getY();
int buttonX = button.getX();
int buttonY = button.getY();
Kita dapatkan koordinat x, y dari tombol yang kita klik dan sebuah label kosong. Koordinat x, y sangatlah penting dalam sebuah logic program.
1
2
3
4
5
int buttonPosX = buttonX / size.width;
int buttonPosY = buttonY / size.height;
int buttonIndex = pos[buttonPosY][buttonPosX];
Di sini kita telah dapatkan index dari tombol-tombol yang terbentuk dalam array 2 dimensi dari posisi tombol-tombol tersebut.
1
2
3
4
5
6
7
8
9
10
11
12
13
if (labelX == buttonX && (labelY - buttonY) == size.height ) {
int labelIndex = buttonIndex + 3;
centerPanel.remove(buttonIndex);
centerPanel.add(label, buttonIndex);
centerPanel.add(button,labelIndex);
centerPanel.validate();
}
Pada kasus ini, kita cek apakah kita mengklik pada tombol,  yang tepat di atas label kosong tersebut. Jika emang telah berada di atas label tersebut, maka akan diambil koordinat x. Jika button tersebut tepat berada di atas label, amaka persamaan (equation) (labelY – buttonY) == size.height  berstatus true.

Komentar

Postingan populer dari blog ini

Cara Mudah Program Sensor Berat Load Cell HX711 dengan Arduino (Satuan Gram)

Kita akan mencoba menggunakan Sensor Berat LoadCell dengan HX711. Yang mana satuannya adalah Gram. Kebanyakan di luar sana Tutorialnya menggunakan Float dengan satuan Kilo Gram. Nah bagi yang mau berbeda boleh di coba nih. 1. Desain Pemasangan Load Cell HX711 Untuk pemasangan silahkan kamu bisa melihat referensi gambar dibawah ini: 2. Rangkaian Arduino Loadcell HX711 Untuk rangkaian silahkan gunakan gambar dibawah ini: Arduino HX711 5V 5V GND GND A0 DT A1 SCK 3. Add Library HX711 ke Arduino IDE Kita akan menggunakan library HX711_Master.zip, yang bisa kamu Download di bawah ini: Download Library HX711_Master.zip (DROPBOX) Jika sudah di Download silahkan di Add ke Arduino IDE. Bagi yang belum tau, bagaimana cara ADD Library ke Arduino. Silahkan gunakan tutorial dibawah ini: Bagaimana Cara Memasukan Library Ke Aplikasi Arduino IDE? 4. Kalibrasi Load Cell HX711 Langkah selanjutnya adalah harus kalibrasi. Tujuan kalibrasi disini untuk menentukan ukura...

Cara Membuat Program Kasir Menggunakan Python

Source code program kasir dengan python selamat datang kembali gan, kali ini saya akan berbagi source code program kasir dengan bahasa pemrograman python atau sebagian orang juga menyebutnya dengan nama pyton (anekdot) ok di bawah ini ada source code dimana program kasir tersebut menggunakan metode yang biasa di kenal if then else, tetapi di python dikenal dengan " elif " maka dari itu bari kita cobakan print("Source Code Kasir Dengan Python")   x=str(input("Nama Barang :  ")) y=int(input("Harga       :  ")) z=int(input("Jumlah Jual :  ")) v=0 w=0 if (z in range (0,5)):     v = 0     print("Tidak ada diskon") elif (z in range (5,11)):     v = 5/100     print("Discount 5%") elif (z in range ( 11,21)):     v = 10/100     print("Discount 10%") elif (z in range ( 21,31)):     v = 15/100     print("Discount 15%") else:     v = 20/100     print("Di...

Tutorial Sniffing dan Spoofing Menggunakan Kali Linux

Konsep dasar alat sniffing sesederhana penyadapan dan Kali Linux memiliki beberapa alat yang populer untuk tujuan ini.  Dalam bab ini, kita akan belajar tentang alat sniffing dan spoofing yang tersedia di Kali. Burpsuite Burpsuite dapat digunakan sebagai alat mengendus antara browser Anda dan webservers untuk menemukan parameter yang digunakan aplikasi web. Untuk membuka Burpsuite, buka Aplikasi → Analisis Aplikasi Web → burpsuite. Untuk membuat pengaturan sniffing, kami mengkonfigurasi burpsuite untuk berperilaku sebagai proxy.  Untuk melakukan ini, buka  Opsi  seperti yang ditunjukkan pada tangkapan layar berikut.  Centang kotak seperti yang ditunjukkan. Dalam hal ini, IP proxy akan menjadi 127.0.0.1 dengan port 8080. Kemudian konfigurasikan proxy browser yang merupakan IP mesin burpsuite dan porta. Untuk memulai intersepsi, buka Proxy → Intercept → klik “Intercept is on”. Lanjutkan menavigasi pada halaman web yang Anda ingin menemukan para...