منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : برامج 167 للبرمجة الحلقة الاولى
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كاتب الموضوع : 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