package main import "fmt" const ( spacing = 2.2 margin = 4.0 ) func key(x, y float64, tl, tr, bl, br string) float64 { fmt.Printf("", y, x, "key") if tl != "" { fmt.Printf("%s", y+7, x+2.5, tl) } if tr != "" { fmt.Printf("%s", y+7, x+14.5, tr) } if bl != "" { fmt.Printf("%s", y+13.5, x+2.5, bl) } if br != "" { fmt.Printf("%s\n", y+13.5, x+14.5, br) } return 16.8 + spacing } func keyalt(x, y float64, tl, tr, bl, br, alt string) float64 { space := key(x, y, tl, tr, bl, br) if tr != "" { fmt.Printf("%s", y+7, x+11.5, alt) } return space } func button(x, y, w float64, class string) float64 { fmt.Printf("\n", y, x, class) return w + spacing } func main() { fmt.Printf("%s", ` `) x, y := margin, margin x += button(x, y, 26.3, "esc") for i := 0; i < 13; i++ { x += button(x, y, 16.8, "f") } x, y = margin, y+7.1+spacing x += key(x, y, "⌺", "±", "⋄", "§") x += key(x, y, "⌶", "!", "¨", "١") x += key(x, y, "⍫", "@", "¯", "٢") x += key(x, y, "⍒", "#", "<", "٣") x += key(x, y, "⍋", "$", "≤", "٤") x += key(x, y, "⌽", "%", "=", "٥") x += key(x, y, "⍉", "^", "≥", "٦") x += key(x, y, "⊖", "&", ">", "٧") x += key(x, y, "⍟", "*", "≠", "٨") x += key(x, y, "⍱", ")", "∨", "٩") x += key(x, y, "⍲", "(", "∧", "٠") x += key(x, y, "!", "_", "×", "-") x += key(x, y, "⌹", "+", "÷", "=") x += button(x, y, 0, "del") x, y = margin, y+16.4+spacing x += button(x, y, 26.3, "del") x += key(x, y, "", "َ", "?", "ض") x += key(x, y, "", "ً", "⍵", "ص") x += key(x, y, "⍷", "ِ", "∊", "ث") x += key(x, y, "", "ٍ", "⍴", "ق") x += keyalt(x, y, "⍨", "ُ", "~", "ف", "ڤ") x += key(x, y, "", "ٌ", "↑", "غ") x += key(x, y, "", "ْ", "↓", "ع") x += key(x, y, "⍸", "ّ", "⍳", "ه") x += key(x, y, "⍥", "]", "○", "خ") x += key(x, y, "⍣", "[", "*", "ح") x += keyalt(x, y, "⍞", "}", "←", "ج", "چ") x += key(x, y, "⍬", "{", "→", "ة") x += button(x, y, 0, "return") x, y = margin, y+16.4+spacing x += button(x, y, 31.1, "caps") x += key(x, y, "", "»", "⍺", "ش") x += keyalt(x, y, "", "«", "⌈", "س", "ے") // x += key(x, y, "", "ى", "⌊", "ي") x += keyalt(x, y, "", "", "_", "ب", "پ") // x += key(x, y, "", "", "∇", "ل") x += key(x, y, "", "آ", "∆", "ا") x += keyalt(x, y, "⍤", "", "∘", "ت", "ٹ") // x += keyalt(x, y, "⌸", "٫", "'", "ن", "ں") // x += key(x, y, "⌷", "٬", "⎕", "م") // ٫؟٬؟ x += keyalt(x, y, "≡", ":", "⍎", "ك", "گ") // x += key(x, y, "≢", """, "⍕", "؛") x += key(x, y, "", "|", "#", "\\") x, y = margin, y+16.4+spacing x += button(x, y, 21.6, "cmd") x += key(x, y, "⊣", "", "⊢", "") // ـ ؟ x += key(x, y, "⊆", "'", "⊂", "ظ") // ' x += key(x, y, "", "", "⊃", "ط") x += keyalt(x, y, "", "ئ", "∩", "ذ", "ڈ") // x += keyalt(x, y, "", "ء", "∪", "د", "ڑ") // x += keyalt(x, y, "", "أ", "⊥", "ز", "ژ") // x += key(x, y, "", "إ", "⊤", "ر") x += key(x, y, "", "ؤ", "|", "و") x += key(x, y, "⍪", ">", "⍝", "،") x += key(x, y, "⍙", "<", "⍀", ".") x += key(x, y, "⍠", "؟", "⌿", "/") x += button(x, y, 0, "shift") x, y = margin, y+16.4+spacing x += key(x, y, "", "", "", "") x += key(x, y, "", "", "", "") x += key(x, y, "", "", "", "") x += button(x, y, 21.6, "cmd") x += button(x, y, 92.7, "space") x += button(x, y, 21.6, "cmd") x += key(x, y, "", "", "", "") x += key(x, y, "", "", "", "") button(x, y, 16.8, "f") x += button(x, y+9.2, 16.4, "f") x += key(x, y, "", "", "", "") fmt.Printf("%s", ` `) }