03-10-12, 01:38 AM
كاتب الموضوع : FlyToAbd
بسم الله الرحمن الرحيمسنبدأ بعون الله بانشاء مجموعة من البرامج والتقنيات والاسس لعمل البرامج الكبيرة للمبرمجين المبتدئين
الهدف منها القفز بالمبرمجين المبتدئين والطلبة ورميهم بعمق العمل المتقدم وسيتم شرح برامج متقدمة ومطلوبه في السوق للطلبة ونقل خبرة المبرمجين الممارسين الى الطلبة المبتدأين
سأعتمد طريقة العنوان وبناء الحلقات بنفس الاسلوب
سأجرب نفسي معكم ببرنامج صغير عبارة عن لعبة اشرحها دائما لطلبة الدورات في اول محاضرة ونرى الاستجابة مع العلم انه استخدمت فيها بعض الاساليب المعقدة بالنسبة للطلبة الجدد
جرب ان تضع هذا الكود في نموذج والعب
Public Class Form1
'FlyToAbd@yahoo.com
Dim GameSizs As New Size(4, 4)
Dim BtnInd As New Point(20, 20)
Dim BtnSize As New Size(40, 40)
Dim Index As Integer = 0
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim Btn As Button
For i As Integer = 0 To GameSizs.Width * GameSizs.Height - 1
Btn = New Button
With Btn
.Text = i
.Name = "Btn" & i
.Size = BtnSize
.Location = New Point(BtnInd.X + (i Mod GameSizs.Width) * BtnSize.Width, BtnInd.Y + (i \ GameSizs.Width) * BtnSize.Height)
Me.Controls.Add(Btn)
AddHandler Btn.Click, AddressOf Btn_Click
End With
Next
Me.Controls("Btn" & GameSizs.Width * GameSizs.Height - 1).Visible = False
' New Game
Randomize(Now.Ticks)
For i As Integer = 0 To 5000
Dim RndID As Integer = (GameSizs.Width * GameSizs.Height - 1) * Rnd()
Btn_Click(Me.Controls("Btn" & RndID), New EventArgs)
Next
Index = 0
Me.Text = "Score= " & Index
End Sub
Private Sub Btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim Btn As Button = CType(sender, Button)
Dim BtnID As Integer = Btn.Name.Substring(3)
If BtnID > (GameSizs.Width - 1) AndAlso (Not Me.Controls("Btn" & BtnID - GameSizs.Width).Visible) Then Swap(BtnID, BtnID - GameSizs.Width)
If BtnID < (GameSizs.Width * (GameSizs.Height - 1)) AndAlso (Not Me.Controls("Btn" & BtnID + GameSizs.Width).Visible) Then Swap(BtnID, BtnID + GameSizs.Width)
If BtnID Mod GameSizs.Width < (GameSizs.Width - 1) AndAlso (Not Me.Controls("Btn" & BtnID + 1).Visible) Then Swap(BtnID, BtnID + 1)
If BtnID Mod GameSizs.Width > 0 AndAlso (Not Me.Controls("Btn" & BtnID - 1).Visible) Then Swap(BtnID, BtnID - 1)
End Sub
Private Sub Swap(ByVal FindBtnID As Integer, ByVal ReplaceWithBtnID As Integer)
Dim FindBtn As Button = Me.Controls(FindBtnID)
Dim WithBtn As Button = Me.Controls(ReplaceWithBtnID)
WithBtn.Text = FindBtn.Text
WithBtn.Visible = True
FindBtn.Visible = False
Index += 1
Me.Text = "Score= " & Index
End Sub
End Class