Advertisement
Guest User

Untitled

a guest
Oct 4th, 2013
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 4.20 KB | None | 0 0
  1. Public Class Form1
  2.  
  3.     Private _oldCellStates As List(Of Integer)
  4.  
  5.     Private Sub TrackBar1_Scroll(sender As System.Object, e As System.EventArgs) Handles TrackBar1.Scroll
  6.         Label1.Text = Convert.ToString(TrackBar1.Value + 1) & "% der maximalen Geschwindigkeit"
  7.         Timer1.Interval = 99 - TrackBar1.Value + 1
  8.  
  9.     End Sub
  10.  
  11.     Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  12.         Grid1.InitializeCells(100)
  13.         Label1.Text = Convert.ToString(TrackBar1.Value + 1) & "% der maximalen Geschwindigkeit"
  14.         Timer1.Interval = 99 - TrackBar1.Value
  15.         _oldCellStates = Nothing
  16.     End Sub
  17.  
  18.     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  19.         Pause()
  20.         Grid1.InitializeCells(100)
  21.         _oldCellStates = Nothing
  22.     End Sub
  23.  
  24.     Private Sub Grid1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Grid1.MouseDown
  25.         Me.MouseEvent(e)
  26.     End Sub
  27.  
  28.     Private Sub Grid1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Grid1.MouseMove
  29.         If e.Button = Windows.Forms.MouseButtons.Left Or e.Button = Windows.Forms.MouseButtons.Right Then
  30.             Me.MouseEvent(e)
  31.         End If
  32.     End Sub
  33.  
  34.     Private Sub MouseEvent(ByVal e As MouseEventArgs)
  35.         If Not Timer1.Enabled Then
  36.  
  37.             Dim c As Cell = Grid1.GetZelleVomPunkt(e.Location)
  38.             If c IsNot Nothing Then
  39.                 If e.Button = Windows.Forms.MouseButtons.Left Then
  40.                     c.lebt = True
  41.                 ElseIf e.Button = Windows.Forms.MouseButtons.Right Then
  42.                     c.lebt = False
  43.                 End If
  44.                 Grid1.Invalidate(c.rechteck)
  45.             End If
  46.  
  47.             _oldCellStates = Nothing
  48.  
  49.         End If
  50.     End Sub
  51.  
  52.     Private Sub timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  53.         ' Apply rules
  54.         Dim zelleLebt As New List(Of Cell)
  55.         Dim zelleTot As New List(Of Cell)
  56.  
  57.         Dim countLebeneNachbarn As Integer
  58.         For Each c As Cell In Grid1.zellen
  59.             countLebeneNachbarn = 0
  60.  
  61.             If c.drueber.lebt Then countLebeneNachbarn += 1
  62.             If c.drunter.lebt Then countLebeneNachbarn += 1
  63.             If c.links.lebt Then countLebeneNachbarn += 1
  64.             If c.rechts.lebt Then countLebeneNachbarn += 1
  65.  
  66.             If c.drueber.links.lebt Then countLebeneNachbarn += 1
  67.             If c.drueber.rechts.lebt Then countLebeneNachbarn += 1
  68.             If c.drunter.links.lebt Then countLebeneNachbarn += 1
  69.             If c.drunter.rechts.lebt Then countLebeneNachbarn += 1
  70.  
  71.             If c.lebt AndAlso countLebeneNachbarn < 2 Then
  72.                 zelleTot.Add(c)
  73.             ElseIf c.lebt AndAlso countLebeneNachbarn > 3 Then
  74.                 zelleTot.Add(c)
  75.             ElseIf c.lebt AndAlso (countLebeneNachbarn = 2 OrElse countLebeneNachbarn = 3) Then
  76.                 zelleLebt.Add(c)
  77.             ElseIf Not c.lebt AndAlso countLebeneNachbarn = 3 Then
  78.                 zelleLebt.Add(c)
  79.             End If
  80.  
  81.         Next
  82.  
  83.         For Each z As Cell In zelleLebt
  84.             z.lebt = True
  85.             Grid1.Invalidate(z.rechteck)
  86.         Next
  87.         For Each z As Cell In zelleTot
  88.             z.lebt = False
  89.             Grid1.Invalidate(z.rechteck)
  90.         Next
  91.     End Sub
  92.  
  93.     Private Sub Start()
  94.         Timer1.Enabled = True
  95.  
  96.         If _oldCellStates Is Nothing Then
  97.             _oldCellStates = New List(Of Integer)
  98.             For Each c As Cell In Grid1.zellen
  99.                 If c.lebt Then
  100.                     _oldCellStates.Add(1)
  101.                 Else
  102.                     _oldCellStates.Add(0)
  103.                 End If
  104.             Next
  105.         End If
  106.     End Sub
  107.  
  108.     Private Sub Pause()
  109.         Timer1.Enabled = False
  110.     End Sub
  111.  
  112.     Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
  113.         If Timer1.Enabled Then
  114.             Pause()
  115.             Button2.Text = "START"
  116.         Else
  117.             Start()
  118.             Button2.Text = "PAUSE"
  119.         End If
  120.     End Sub
  121. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement