Imports System.IO Public Class Form1 Dim sloupce As Integer Dim radky As Integer Dim otevreno As Boolean = False Dim pole(,) As policko Dim bu As New Collection() Enum policko volne = 0 zed = 1 bilapani = 2 televizor = 3 zved = 4 End Enum Private Sub NovéToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NovéToolStripMenuItem.Click If Dialog1.ShowDialog = Windows.Forms.DialogResult.OK Then sloupce = Dialog1.NumericUpDown1.Value radky = Dialog1.NumericUpDown2.Value NačístToolStripMenuItem.Enabled = False 'uzamčení ovládání NovéToolStripMenuItem.Enabled = False ZavřitBludisteToolStripMenuItem.Enabled = True UložitToolStripMenuItem.Enabled = True For s = 0 To sloupce - 1 'vytvoření pole For r = 0 To radky - 1 Dim b As New Button b.Location = New Point(s * 20, (r * 20) + 50) b.Size = New Size(20, 20) b.Tag = 0 If s = 0 And r = 0 Then b.Tag = 2 If s = sloupce - 1 And r = radky - 1 Then b.Tag = 3 Select Case b.Tag Case 0 'barva podle typu b.BackColor = Color.White Case 1 b.BackColor = Color.Black Case 2 b.BackColor = Color.Gray Case 3 b.BackColor = Color.Aqua Case 4 b.BackColor = Color.Red End Select Panel1.Controls.Add(b) bu.Add(b) AddHandler b.Click, AddressOf klik AddHandler b.MouseEnter, AddressOf prejeti Next Next End If End Sub Private Sub NačístToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NačístToolStripMenuItem.Click NačístToolStripMenuItem.Enabled = False NovéToolStripMenuItem.Enabled = False ZavřitBludisteToolStripMenuItem.Enabled = True UložitToolStripMenuItem.Enabled = True If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then Dim sr As New StreamReader(OpenFileDialog1.FileName) Dim sar() As String = sr.ReadLine().Split(" ") sloupce = sar(0) radky = sar(1) ReDim pole(sloupce, radky) For x = 0 To radky - 1 Dim c As String = sr.ReadLine().Replace("@", ".").Replace("<", "").Replace(">", "").Replace("^", "").Replace("v", "") Dim l = c.ToArray For y = 0 To sloupce - 1 Select Case l(y) Case "." pole(y, x) = 0 Case "X" pole(y, x) = 1 Case "&" pole(y, x) = 2 Case "#" pole(y, x) = 3 Case "@" pole(y, x) = 4 End Select Next Next ToolStripProgressBar1.Maximum = sloupce ToolStripProgressBar2.Maximum = radky Panel1.Enabled = False Try For s = 0 To sloupce - 1 For r = 0 To radky - 1 ToolStripProgressBar1.Value = s ToolStripProgressBar2.Value = r Application.DoEvents() Dim b As New Button b.Location = New Point(s * 20, (r * 20) + 50) b.Size = New Size(20, 20) b.Tag = pole(s, r) Select Case b.Tag Case 0 b.BackColor = Color.White Case 1 b.BackColor = Color.Black Case 2 b.BackColor = Color.Gray Case 3 b.BackColor = Color.Aqua Case 4 b.BackColor = Color.Red End Select Panel1.Controls.Add(b) bu.Add(b) AddHandler b.Click, AddressOf klik AddHandler b.MouseEnter, AddressOf prejeti Next Next Catch End Try StatusStrip1.Visible = False Panel1.Enabled = True sr.Close() End If End Sub Sub prejeti(Optional ByVal sender As System.Object = Nothing, Optional ByVal e As System.EventArgs = Nothing) If My.Computer.Keyboard.AltKeyDown = True Then klik(sender, e) End If End Sub Sub klik(Optional ByVal sender As System.Object = Nothing, Optional ByVal e As System.EventArgs = Nothing) Dim sende As Button = CType(sender, Button) Select Case ToolStripComboBox1.SelectedIndex Case 5 If CInt(sende.Tag) = 4 Then sende.Tag = 0 Else sende.Tag += 1 End If Case Else sende.Tag = ToolStripComboBox1.SelectedIndex End Select Select Case sende.Tag Case 0 sende.BackColor = Color.White Case 1 sende.BackColor = Color.Black Case 2 sende.BackColor = Color.Gray For Each bb As Button In bu If bb.Tag = 2 And Not Button.ReferenceEquals(bb, sende) Then bb.Tag = 0 bb.BackColor = Color.White End If Next Case 3 sende.BackColor = Color.Aqua For Each bb As Button In bu If bb.Tag = 3 And Not Button.ReferenceEquals(bb, sende) Then bb.Tag = 0 bb.BackColor = Color.White End If Next Case 4 sende.BackColor = Color.Red End Select End Sub Private Sub UložitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UložitToolStripMenuItem.Click For Each bb As Button In bu If bb.Tag = 4 Then If MsgBox("Funkce zvěda ještě není zcela hotova. Opravdu chcete uložit zvěda bez pohybů? (Může to zmást programy, které se pokusí soubor číst)", MsgBoxStyle.YesNo, "Uložení") = MsgBoxResult.No Then Exit Sub End If End If Next If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then Dim rr As New StreamWriter(SaveFileDialog1.FileName) rr.WriteLine(sloupce & " " & radky) For x = 0 To sloupce - 1 For y = 0 To radky - 1 Select Case pole(x, y) Case 0 rr.Write(".") Case 1 rr.Write("X") Case 2 rr.Write("&") Case 3 rr.Write("#") Case 4 rr.Write("@") End Select Next rr.WriteLine() Next rr.Close() End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf GlobalHandler ToolStripComboBox1.SelectedIndex = 1 End Sub Sub GlobalHandler(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs) MsgBox(e.ExceptionObject.ToString, MsgBoxStyle.Critical, "Error") End Sub Private Sub ZavřitBludisteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ZavřitBludisteToolStripMenuItem.Click Application.Restart() End Sub End Class