Module Module1 Dim Tábla(,) As Char ' A Táblából a forgatás során másoljuk az adatokat a Tömbbe. Dim Tömb(,) As Char Dim N, K As Integer Dim Halmaz1 As New HashSet(Of Char) Dim SzDb As Integer Dim Vég As String = "" Sub Main(ByVal Fajl() As String) ' Beolvasás1 Dim Be As New IO.StreamReader(Fajl(0)) Dim Temp() As String Temp = Be.ReadLine.Split N = Temp(0) K = Temp(1) ReDim Tábla(N + 1, N + 1) ReDim Tömb(N + 1, N + 1) Halmaz1.Add("P") Halmaz1.Add("K") Halmaz1.Add("Z") 'Beolvasás2 Dim Sor As String = "" For i = 1 To N Sor = Be.ReadLine For j = 0 To Sor.Count - 1 Tábla(i, j + 1) = Sor(j) Next Next Be.Close() Be.Dispose() ' Azonos színű szomszédok számának meghatározása Szamol() ' Forgatások és azonos színű szomszédok számának meghatározása For m = 1 To K Forgat() ReDim Tábla(N + 1, N + 1) For i = 1 To N For j = 1 To N If Tömb(i, j) = Chr(0) Then ' Ha a Tömb(i,j) üres. Tömb(i, j) = "." End If Tábla(i, j) = Tömb(i, j) Next Next Szamol() ReDim Tömb(N + 1, N + 1) Next ' Kiírás Dim Ki As New IO.StreamWriter(Fajl(1)) Ki.WriteLine(Vég) For i = 1 To N For j = 1 To N Ki.Write(Tábla(i, j)) Next Ki.WriteLine() Next Ki.Close() Ki.Dispose() End Sub Sub Forgat() For i = 1 To N Dim h As Integer = N For j = N To 1 Step -1 If Tábla(i, j) <> "A" And Tábla(i, j) <> "." Then Tömb(h, N - i + 1) = Tábla(i, j) h -= 1 ElseIf Tábla(i, j) = "A" Then Tömb(j, N - i + 1) = Tábla(i, j) h = j - 1 End If Next Next End Sub Sub Szamol() SzDb = 0 For i = 1 To N For j = 1 To N If Halmaz1.Contains(Tábla(i, j)) Then Dim Db As Integer = 0 If Tábla(i, j) = Tábla(i, j - 1) Then Db += 1 End If If Tábla(i, j) = Tábla(i - 1, j) Then Db += 1 End If If Tábla(i, j) = Tábla(i, j + 1) Then Db += 1 End If If Tábla(i, j) = Tábla(i + 1, j) Then Db += 1 End If If Db > 1 Then SzDb += 1 End If End If Next Next Vég &= SzDb & " " End Sub End Module