Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class Form1
- Private _oldCellStates As List(Of Integer)
- Private Sub TrackBar1_Scroll(sender As System.Object, e As System.EventArgs) Handles TrackBar1.Scroll
- Label1.Text = Convert.ToString(TrackBar1.Value + 1) & "% der maximalen Geschwindigkeit"
- Timer1.Interval = 99 - TrackBar1.Value + 1
- End Sub
- Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
- Grid1.InitializeCells(100)
- Label1.Text = Convert.ToString(TrackBar1.Value + 1) & "% der maximalen Geschwindigkeit"
- Timer1.Interval = 99 - TrackBar1.Value
- _oldCellStates = Nothing
- End Sub
- Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
- Pause()
- Grid1.InitializeCells(100)
- _oldCellStates = Nothing
- End Sub
- Private Sub Grid1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Grid1.MouseDown
- Me.MouseEvent(e)
- End Sub
- Private Sub Grid1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Grid1.MouseMove
- If e.Button = Windows.Forms.MouseButtons.Left Or e.Button = Windows.Forms.MouseButtons.Right Then
- Me.MouseEvent(e)
- End If
- End Sub
- Private Sub MouseEvent(ByVal e As MouseEventArgs)
- If Not Timer1.Enabled Then
- Dim c As Cell = Grid1.GetZelleVomPunkt(e.Location)
- If c IsNot Nothing Then
- If e.Button = Windows.Forms.MouseButtons.Left Then
- c.lebt = True
- ElseIf e.Button = Windows.Forms.MouseButtons.Right Then
- c.lebt = False
- End If
- Grid1.Invalidate(c.rechteck)
- End If
- _oldCellStates = Nothing
- End If
- End Sub
- Private Sub timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- ' Apply rules
- Dim zelleLebt As New List(Of Cell)
- Dim zelleTot As New List(Of Cell)
- Dim countLebeneNachbarn As Integer
- For Each c As Cell In Grid1.zellen
- countLebeneNachbarn = 0
- If c.drueber.lebt Then countLebeneNachbarn += 1
- If c.drunter.lebt Then countLebeneNachbarn += 1
- If c.links.lebt Then countLebeneNachbarn += 1
- If c.rechts.lebt Then countLebeneNachbarn += 1
- If c.drueber.links.lebt Then countLebeneNachbarn += 1
- If c.drueber.rechts.lebt Then countLebeneNachbarn += 1
- If c.drunter.links.lebt Then countLebeneNachbarn += 1
- If c.drunter.rechts.lebt Then countLebeneNachbarn += 1
- If c.lebt AndAlso countLebeneNachbarn < 2 Then
- zelleTot.Add(c)
- ElseIf c.lebt AndAlso countLebeneNachbarn > 3 Then
- zelleTot.Add(c)
- ElseIf c.lebt AndAlso (countLebeneNachbarn = 2 OrElse countLebeneNachbarn = 3) Then
- zelleLebt.Add(c)
- ElseIf Not c.lebt AndAlso countLebeneNachbarn = 3 Then
- zelleLebt.Add(c)
- End If
- Next
- For Each z As Cell In zelleLebt
- z.lebt = True
- Grid1.Invalidate(z.rechteck)
- Next
- For Each z As Cell In zelleTot
- z.lebt = False
- Grid1.Invalidate(z.rechteck)
- Next
- End Sub
- Private Sub Start()
- Timer1.Enabled = True
- If _oldCellStates Is Nothing Then
- _oldCellStates = New List(Of Integer)
- For Each c As Cell In Grid1.zellen
- If c.lebt Then
- _oldCellStates.Add(1)
- Else
- _oldCellStates.Add(0)
- End If
- Next
- End If
- End Sub
- Private Sub Pause()
- Timer1.Enabled = False
- End Sub
- Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
- If Timer1.Enabled Then
- Pause()
- Button2.Text = "START"
- Else
- Start()
- Button2.Text = "PAUSE"
- End If
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement