Visual Basic .NET ile Puzzle Uygulamasi
Merhaba arkadaslar. Yapboz oyununu sever misiniz? Bugün vb.net’te basit bir puzzel yapalim istiyorum. Öyle fazla abartili büyük olmasin. 4 sütun 3 satirdan olussa kâfidir ssanirim.O zaman hemen visual studiomuzu açip yeni bir proje baslatalim ve formumuza 12 + 1 tane picturebox yerlestirelim. Unutmayin yukarida belirttigimiz gibi 4×3 olacak.
Simdi de hemen bir resim seçelim ve bu resmi 12 esit parçaya ayiralim. Ayirdigimiz parçalara 1,2,3… veya resim1, resim2, resim3… gibi muntazaman isimler verelim.
Burada dikkat etmemiz gereken husus resmin bir parçasinin ve pictureboxlarin boyutlarinin ayni olmasi gerektigidir. Aksi taktirde bazi uyumsuzluklar yasanabilir.
Simdi sira geldi 12 parçaya ayrilmis resmimizi projemize eklemeye. Projemizin oldugu klasöre yeni bir klasör açip (mesela: resimler) parçalara ayirdigimiz resimleri oraya kopyalayalim.
.Formumuza ekledigimiz pictureboxlara o resimleri gelisigüzel yerlestirelim Fakat pictureboxun biri bos kalsin, yani resmin bir parçasini kullanmayacagiz. Ben resim4’ü kullanmadim mesela. Siz de köselere gelen resimlerden birini seçin ve onu kullanmayin.
Gelelim programimizin kodlarina ve program mantigina : Yapbozun herhangi bir parçasina tikladigimiz zaman, eger varsa, yanindaki bos kareye geçmeli. Puzzel tahtamizta tek bir kare bos kalacakti hatirlarsaniz. Bizim yapmamiz gereken en önemli sey tiklanan parçanin yaninda bos kare var mi? Varsa hangi tarafinda? Bunu bildirirsek isimiz kolaydir.
Bu noktada hayal gücümüze birazcik is düsüyor o kadar.
Resimde de gördügünüz gibi 3’üncü parçanin kayabilecegi üç yer var: 2’inci parça, 4’üncü parça ve 7’inci parça. Bunu vb.net dilinde su sekilde yazabiliriz:
Private Sub PictureBox3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox3.Click
If PictureBox4.Image Is PictureBoxBos.Image Then
PictureBox4.Image = PictureBox3.Image
PictureBox3.Image = PictureBoxBos.Image
ElseIf PictureBox2.Image Is PictureBoxBos.Image Then
PictureBox2.Image = PictureBox3.Image
PictureBox3.Image = PictureBoxBos.Image
ElseIf PictureBox7.Image Is PictureBoxBos.Image Then
PictureBox7.Image = PictureBox3.Image
PictureBox3.Image = PictureBoxBos.Image
End If
End Sub
Burada dikkatinizi PictureBoxBos çekmistir. Hani basta 12 + 1 tane picturebox yerlestirin demistim ya? Iste sebebi buydu. Yani bos biraktigimiz pictureboxu, üzerine tikladigimiz pictureboxun bos olup olmadigini karsilastirirken kullaniyoruz. “Eger picturebox3 esittir pictureboxbos ise…”
. Birinci kareye bakalim bir de:
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
If PictureBox5.Image Is PictureBoxBos.Image Then
PictureBox5.Image = PictureBox1.Image
PictureBox1.Image = PictureBoxBos.Image
ElseIf PictureBox2.Image Is PictureBoxBos.Image Then
PictureBox2.Image = PictureBox1.Image
PictureBox1.Image = PictureBoxBos.Image
End If
End Sub
Gördügünüz gibi son derece basit.
Program mantigini tekrar etmek gerekirse: Yapbozun herhangi bir parçasina tikladigimiz zaman, eger varsa, yanindaki bos kareye geçmeli.
Kodlarin tamami:
Public Class Form1
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
If PictureBox5.Image Is PictureBoxBos.Image Then
PictureBox5.Image = PictureBox1.Image
PictureBox1.Image = PictureBoxBos.Image
ElseIf PictureBox2.Image Is PictureBoxBos.Image Then
PictureBox2.Image = PictureBox1.Image
PictureBox1.Image = PictureBoxBos.Image
End If
End Sub
Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox2.Click
If PictureBox1.Image Is PictureBoxBos.Image Then
PictureBox1.Image = PictureBox2.Image
PictureBox2.Image = PictureBoxBos.Image
ElseIf PictureBox3.Image Is PictureBoxBos.Image Then
PictureBox3.Image = PictureBox2.Image
PictureBox2.Image = PictureBoxBos.Image
ElseIf PictureBox6.Image Is PictureBoxBos.Image Then
PictureBox6.Image = PictureBox2.Image
PictureBox2.Image = PictureBoxBos.Image
End If
End Sub
Private Sub PictureBox3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox3.Click
If PictureBox4.Image Is PictureBoxBos.Image Then
PictureBox4.Image = PictureBox3.Image
PictureBox3.Image = PictureBoxBos.Image
ElseIf PictureBox2.Image Is PictureBoxBos.Image Then
PictureBox2.Image = PictureBox3.Image
PictureBox3.Image = PictureBoxBos.Image
ElseIf PictureBox7.Image Is PictureBoxBos.Image Then
PictureBox7.Image = PictureBox3.Image
PictureBox3.Image = PictureBoxBos.Image
End If
End Sub
Private Sub PictureBox4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox4.Click
If PictureBox3.Image Is PictureBoxBos.Image Then
PictureBox3.Image = PictureBox4.Image
PictureBox4.Image = PictureBoxBos.Image
ElseIf PictureBox8.Image Is PictureBoxBos.Image Then
PictureBox8.Image = PictureBox4.Image
PictureBox4.Image = PictureBoxBos.Image
End If
End Sub
Private Sub PictureBox5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox5.Click
If PictureBox1.Image Is PictureBoxBos.Image Then
PictureBox1.Image = PictureBox5.Image
PictureBox5.Image = PictureBoxBos.Image
ElseIf PictureBox6.Image Is PictureBoxBos.Image Then
PictureBox6.Image = PictureBox5.Image
PictureBox5.Image = PictureBoxBos.Image
ElseIf PictureBox9.Image Is PictureBoxBos.Image Then
PictureBox9.Image = PictureBox5.Image
PictureBox5.Image = PictureBoxBos.Image
End If
End Sub
Private Sub PictureBox6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox6.Click
If PictureBox2.Image Is PictureBoxBos.Image Then
PictureBox2.Image = PictureBox6.Image
PictureBox6.Image = PictureBoxBos.Image
ElseIf PictureBox5.Image Is PictureBoxBos.Image Then
PictureBox5.Image = PictureBox6.Image
PictureBox6.Image = PictureBoxBos.Image
ElseIf PictureBox7.Image Is PictureBoxBos.Image Then
PictureBox7.Image = PictureBox6.Image
PictureBox6.Image = PictureBoxBos.Image
ElseIf PictureBox10.Image Is PictureBoxBos.Image Then
PictureBox10.Image = PictureBox6.Image
PictureBox6.Image = PictureBoxBos.Image
End If
End Sub
Private Sub PictureBox7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox7.Click
If PictureBox6.Image Is PictureBoxBos.Image Then
PictureBox6.Image = PictureBox7.Image
PictureBox7.Image = PictureBoxBos.Image
ElseIf PictureBox3.Image Is PictureBoxBos.Image Then
PictureBox3.Image = PictureBox7.Image
PictureBox7.Image = PictureBoxBos.Image
End If
If PictureBox8.Image Is PictureBoxBos.Image Then
PictureBox8.Image = PictureBox7.Image
PictureBox7.Image = PictureBoxBos.Image
ElseIf PictureBox11.Image Is PictureBoxBos.Image Then
PictureBox11.Image = PictureBox7.Image
PictureBox7.Image = PictureBoxBos.Image
End If
End Sub
Private Sub PictureBox8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox8.Click
If PictureBox7.Image Is PictureBoxBos.Image Then
PictureBox7.Image = PictureBox8.Image
PictureBox8.Image = PictureBoxBos.Image
ElseIf PictureBox4.Image Is PictureBoxBos.Image Then
PictureBox4.Image = PictureBox8.Image
PictureBox8.Image = PictureBoxBos.Image
ElseIf PictureBox12.Image Is PictureBoxBos.Image Then
PictureBox12.Image = PictureBox8.Image
PictureBox8.Image = PictureBoxBos.Image
End If
End Sub
Private Sub PictureBox9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox9.Click
If PictureBox5.Image Is PictureBoxBos.Image Then
PictureBox5.Image = PictureBox9.Image
PictureBox9.Image = PictureBoxBos.Image
ElseIf PictureBox10.Image Is PictureBoxBos.Image Then
PictureBox10.Image = PictureBox9.Image
PictureBox9.Image = PictureBoxBos.Image
End If
End Sub
Private Sub PictureBox10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox10.Click
If PictureBox9.Image Is PictureBoxBos.Image Then
PictureBox9.Image = PictureBox10.Image
PictureBox10.Image = PictureBoxBos.Image
ElseIf PictureBox11.Image Is PictureBoxBos.Image Then
PictureBox11.Image = PictureBox10.Image
PictureBox10.Image = PictureBoxBos.Image
ElseIf PictureBox6.Image Is PictureBoxBos.Image Then
PictureBox6.Image = PictureBox10.Image
PictureBox10.Image = PictureBoxBos.Image
End If
End Sub
Private Sub PictureBox11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox11.Click
If PictureBox7.Image Is PictureBoxBos.Image Then
PictureBox7.Image = PictureBox11.Image
PictureBox11.Image = PictureBoxBos.Image
ElseIf PictureBox10.Image Is PictureBoxBos.Image Then
PictureBox10.Image = PictureBox11.Image
PictureBox11.Image = PictureBoxBos.Image
ElseIf PictureBox12.Image Is PictureBoxBos.Image Then
PictureBox12.Image = PictureBox11.Image
PictureBox11.Image = PictureBoxBos.Image
End If
End Sub
Private Sub PictureBox12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox12.Click
If PictureBox8.Image Is PictureBoxBos.Image Then
PictureBox8.Image = PictureBox12.Image
PictureBox12.Image = PictureBoxBos.Image
ElseIf PictureBox11.Image Is PictureBoxBos.Image Then
PictureBox11.Image = PictureBox12.Image
PictureBox12.Image = PictureBoxBos.Image
End If
End Sub
End Class
.
herkesde çalismis, bence tekrar kontrol edin siz.
bu kod niye çalismiyor
tabikide payla?m peki resmi nasyl prcalybilirm
gülcan bence o kysmyda yapmak için biraz u?ra?malysyn. sonrasynda yaptyklaryny sitede paya?yrsan süper olur.
ellerinize sa?lyk proje ödevim vardy çok iyi oldu
kodlarin tamami eklenmis, oradan alip kendiniz proje haline getirebilirsiniz.
bu puzzele örneqi yapanlar bana hazir halini mail atabilrlermi acaba ödevim var acil lazim desparado_43@hotmail.com
Hocam elinize saglik çok güzel olmus yillik ödevimdi sayenizde yapabilicem:)
çok güzel site olmus
gerçekten çok begendim…
fazla söz bulamiyorum
özür dilerim…
hadi bay bay bay…
Tabi yardimci oluruz
Forum
puzzle oyunu visual basic de calistiramadim yardimci olur musunuzz cok acilllll 🙁
ornekteki resim boyutlarinda bir resim bulacaksin ve photoshop benzeri bir programla tek tek resmi keseceksin. photoshop yoksa bilgisayarinda http://pixlr.com/editor/ bu adresden online olarak resim editoru kullanabilirsin
tamam ben ödewi yaptim tesekkürler arkadaslar ama istedigim resmi nasil seçicem ?? yardimci olursaniz sewinirim
çoskun ben ögrenci degilim o yuzden boyle bir ödevim yok. burdaki ornek tam olarak isini görmedi ise yapan arkadaslar paylasirlar sanirim.
sen yaptin mi gezgin kardes puzzle oyununu
çoskun makalede ahmetin yazdigi puzzlei indirsene. o isini gormuyormu ?
Puzzle oyununu bitirmis arkadaslar bana mail atabilir mi ? cok acil bisey sorucam da mail adresim coskun__guner htmail . com ulasirsaniz cok sewinirim arkadaslar
hahahhaahhaaa ahmet abim supersinnn :):):)):))
Timer nesnesi hakkinda makale.
Aradigini orada bulamazsan sorunu o konu altinda veya forum sayfamizda sorabilirsin.
ya bisey sorcam timer hakkinda biri yardimci olsun
Aylin Tesekkür Ederim…
Puzzle Yaptim.. Gayet Güzel Oldu 🙂
Yinede Düsündügün Için Tesekkürler..
ben puzzle yaptim ama böyle degil bitirince sayfaya yüklerim
Kizmabiraderi yapabilen yada nasil yapilabilecegi ile ilgili bilgisi olan yokmu.. En azindan oyunun yapilisindaki mantigini kurabilen yokmu ?
takildim oyuna ya
http://www.fixoyun.com/kizma-birader-oyna.html
oynayinca hatirladim cocukken oynardik bunu
ben kizma birader oyununun nasil oynandigini bile bilmiyorum 🙂 google amcaya bi soralim bakalim nasil bir oyunmus
VB.NET te kizmabirader oyunu yapmak istiyorum acaba nasil yapabilirim yardim edebilirmisiniz. ?
Program Için Teskkür Ederim.. Ben Bilgisayar Programcisi Ögrencisiyim Lise 3.. Benim Dönem Ödevim Var …
Vb’Net’te Puzzle Yapacam… Bana Yardimci Olursaniz Sevinirim..Bu Örnek Yapmam Gerekn Gibi Deqil…
Drag-Drop Yöntemini Kullanmam Gerekiyor…
Sonra Oyunun Baslamasi Icin Button … Vs. vs.. Bana Yardimci Olursaniz Sevinirim..
ailinizi Bekliyorum Sn: Ahmet TANRIVERDI..
Gmail: tolgacan.1907@gmail.com
Tekrar Tesekkür Ederim Program Icin