#SingleInstance, Force loc := A_ScriptDir "\data5.txt" file := FileOpen(loc, "r") data := [] dialog(str){ MsgBox, 1,, %str% IfMsgBox, Cancel Run, day5.ahk } while !(file.AtEOF){ line := file.ReadLine() line := RegExReplace(line, "F|L", "0") line := RegExReplace(line, "B|R", "1") data.Push(line) } dialog(data[data.MinIndex()]) data := {} file.pos := 0 while !(file.AtEOF){ line := file.ReadLine() RegExMatch(line, "(.......)(...)", res) Switch res1 { Case "FFFFFFF": row := 0 Case "FFFFFFB": row := 1 Case "FFFFFBF": row := 2 Case "FFFFFBB": row := 3 Case "FFFFBFF": row := 4 Case "FFFFBFB": row := 5 Case "FFFFBBF": row := 6 Case "FFFFBBB": row := 7 Case "FFFBFFF": row := 8 Case "FFFBFFB": row := 9 Case "FFFBFBF": row := 10 Case "FFFBFBB": row := 11 Case "FFFBBFF": row := 12 Case "FFFBBFB": row := 13 Case "FFFBBBF": row := 14 Case "FFFBBBB": row := 15 Case "FFBFFFF": row := 16 Case "FFBFFFB": row := 17 Case "FFBFFBF": row := 18 Case "FFBFFBB": row := 19 Case "FFBFBFF": row := 20 Case "FFBFBFB": row := 21 Case "FFBFBBF": row := 22 Case "FFBFBBB": row := 23 Case "FFBBFFF": row := 24 Case "FFBBFFB": row := 25 Case "FFBBFBF": row := 26 Case "FFBBFBB": row := 27 Case "FFBBBFF": row := 28 Case "FFBBBFB": row := 29 Case "FFBBBBF": row := 30 Case "FFBBBBB": row := 31 Case "FBFFFFF": row := 32 Case "FBFFFFB": row := 33 Case "FBFFFBF": row := 34 Case "FBFFFBB": row := 35 Case "FBFFBFF": row := 36 Case "FBFFBFB": row := 37 Case "FBFFBBF": row := 38 Case "FBFFBBB": row := 39 Case "FBFBFFF": row := 40 Case "FBFBFFB": row := 41 Case "FBFBFBF": row := 42 Case "FBFBFBB": row := 43 Case "FBFBBFF": row := 44 Case "FBFBBFB": row := 45 Case "FBFBBBF": row := 46 Case "FBFBBBB": row := 47 Case "FBBFFFF": row := 48 Case "FBBFFFB": row := 49 Case "FBBFFBF": row := 50 Case "FBBFFBB": row := 51 Case "FBBFBFF": row := 52 Case "FBBFBFB": row := 53 Case "FBBFBBF": row := 54 Case "FBBFBBB": row := 55 Case "FBBBFFF": row := 56 Case "FBBBFFB": row := 57 Case "FBBBFBF": row := 58 Case "FBBBFBB": row := 59 Case "FBBBBFF": row := 60 Case "FBBBBFB": row := 61 Case "FBBBBBF": row := 62 Case "FBBBBBB": row := 63 Case "BFFFFFF": row := 64 Case "BFFFFFB": row := 65 Case "BFFFFBF": row := 66 Case "BFFFFBB": row := 67 Case "BFFFBFF": row := 68 Case "BFFFBFB": row := 69 Case "BFFFBBF": row := 70 Case "BFFFBBB": row := 71 Case "BFFBFFF": row := 72 Case "BFFBFFB": row := 73 Case "BFFBFBF": row := 74 Case "BFFBFBB": row := 75 Case "BFFBBFF": row := 76 Case "BFFBBFB": row := 77 Case "BFFBBBF": row := 78 Case "BFFBBBB": row := 79 Case "BFBFFFF": row := 80 Case "BFBFFFB": row := 81 Case "BFBFFBF": row := 82 Case "BFBFFBB": row := 83 Case "BFBFBFF": row := 84 Case "BFBFBFB": row := 85 Case "BFBFBBF": row := 86 Case "BFBFBBB": row := 87 Case "BFBBFFF": row := 88 Case "BFBBFFB": row := 89 Case "BFBBFBF": row := 90 Case "BFBBFBB": row := 91 Case "BFBBBFF": row := 92 Case "BFBBBFB": row := 93 Case "BFBBBBF": row := 94 Case "BFBBBBB": row := 95 Case "BBFFFFF": row := 96 Case "BBFFFFB": row := 97 Case "BBFFFBF": row := 98 Case "BBFFFBB": row := 99 Case "BBFFBFF": row := 100 Case "BBFFBFB": row := 101 Case "BBFFBBF": row := 102 Case "BBFFBBB": row := 103 Case "BBFBFFF": row := 104 Case "BBFBFFB": row := 105 Case "BBFBFBF": row := 106 Case "BBFBFBB": row := 107 Case "BBFBBFF": row := 108 Case "BBFBBFB": row := 109 Case "BBFBBBF": row := 110 Case "BBFBBBB": row := 111 Case "BBBFFFF": row := 112 Case "BBBFFFB": row := 113 Case "BBBFFBF": row := 114 Case "BBBFFBB": row := 115 Case "BBBFBFF": row := 116 Case "BBBFBFB": row := 117 Case "BBBFBBF": row := 118 Case "BBBFBBB": row := 119 Case "BBBBFFF": row := 120 Case "BBBBFFB": row := 121 Case "BBBBFBF": row := 122 Case "BBBBFBB": row := 123 Case "BBBBBFF": row := 124 Case "BBBBBFB": row := 125 Case "BBBBBBF": row := 126 Case "BBBBBBB": row := 127 } Switch res2 { Case "LLL": col := 0 Case "LLR": col := 1 Case "LRL": col := 2 Case "LRR": col := 3 Case "RLL": col := 4 Case "RLR": col := 5 Case "RRL": col := 6 Case "RRR": col := 7 } sID := row * 8 sID += col data.push(sID) } dialog("Or " data[data.MinIndex()])