Can AI tell me what is on the board ?
Using Few-shot prompting
Read the grid with numbers and letters.
Each row has 15 columns.
There are 15 rows.
For each cell in the grid produce a text with the format (row, column, text).
For example (1,1,3L,0) for the first entry on row 1, column 1 with text: "3L".
For example (1,2,,0) for the entry on row 1, column 2 with text: "".
For example (1,5,B,4) for the entry on row 1, column 2 with text: "B⁴".
For example (2,4,Q,10) for the entry on row 2, column 4 with text: "Q¹⁰".
(1, 1, 3L, 0) (1, 2, , 0) (1, 3, , 0) (1, 4, , 0) (1, 5, B, 4) (1, 6, , 0) (1, 7, , 0) (1, 8, , 0) (1, 9, 2L, 0) (1, 10, , 0) (1, 11, , 0) (1, 12, , 0) (1, 13, , 0) (1, 14, , 0) (1, 15, 3L, 0) (2, 1, , 0) (2, 2, , 0) (2, 3, , 0) (2, 4, Q, 10) (2, 5, A, 1) (2, 6, T, 2) (2, 7, , 0) (2, 8, , 0) (2, 9, , 0) (2, 10, , 0) (2, 11, Z, 5) (2, 12, I, 2) (2, 13, N, 1) (2, 14, , 0) (2, 15, , 0) (3, 1, 2L, 0) (3, 2, N, 1) (3, 3, A, 1) (3, 4, , 0) (3, 5, D, 2) (3, 6, , 0) (3, 7, 2L, 0) (3, 8, W, 5) (3, 9, 2L, 0) (3, 10, , 0) (3, 11, , 0) (3, 12, E, 1) (3, 13, , 0) (3, 14, 2W, 0) (3, 15, , 0) (4, 1, , 0) (4, 2, C, 5) (4, 3, 3L, 0) (4, 4, K, 3) (4, 5, , 0) (4, 6, , 0) (4, 7, E, 1) (4, 8, , 0) (4, 9, , 0) (4, 10, T, 2) (4, 11, , 0) (4, 12, , 0) (4, 13, R, 2) (4, 14, , 0) (4, 15, , 0) (5, 1, V, 4) (5, 2, E, 1) (5, 3, R, 2) (5, 4, L, 3) (5, 5, A, 1) (5, 6, N, 1) (5, 7, G, 3) (5, 8, L, 3) (5, 9, I, 2) (5, 10, J, 2) (5, 11, S, 2) (5, 12, T, 2) (5, 13, J, 4) (5, 14, E, 1) (5, 15, S, 2) (6, 1, , 0) (6, 2, , 0) (6, 3, 3L, 0) (6, 4, E, 1) (6, 5, M, 3) (6, 6, , 0) (6, 7, , 0) (6, 8, K, 3) (6, 9, , 0) (6, 10, , 0) (6, 11, 3L, 0) (6, 12, V, 4) (6, 13, , 0) (6, 14, U, 2) (6, 15, 3L, 0) (7, 1, , 0) (7, 2, , 0) (7, 3, 2L, 0) (7, 4, , 0) (7, 5, E, 1) (7, 6, , 0) (7, 7, H, 4) (7, 8, , 0) (7, 9, Y, 8) (7, 10, E, 1) (7, 11, R, 1) (7, 12, , 0) (7, 13, , 0) (7, 14, , 0) (7, 15, , 0) (8, 1, 2L, 0) (8, 2, A, 1) (8, 3, F, 4) (8, 4, R, 2) (8, 5, E, 1) (8, 6, A, 1) (8, 7, G, 3) (8, 8, E, 1) (8, 9, E, 1) (8, 10, R, 2) (8, 11, D, 2) (8, 12, E, 1) (8, 13, , 0) (8, 14, , 0) (8, 15, 2L, 0) (9, 1, O, 1) (9, 2, F, 4) (9, 3, 2L, 0) (9, 4, , 0) (9, 5, M, 3) (9, 6, , 0) (9, 7, D, 2) (9, 8, N, 1) (9, 9, , 0) (9, 10, , 0) (9, 11, M, 3) (9, 12, , 0) (9, 13, 2L, 0) (9, 14, O, 1) (9, 15, , 0) (10, 1, N, 1) (10, 2, , 0) (10, 3, 3L, 0) (10, 4, S, 2) (10, 5, E, 1) (10, 6, , 0) (10, 7, 3L, 0) (10, 8, T, 2) (10, 9, , 0) (10, 10, 3L, 0) (10, 11, O, 1) (10, 12, , 0) (10, 13, A, 1) (10, 14, 3L, 0) (10, 15, G, 3) (11, 1, S, 2) (11, 2, C, 5) (11, 3, H, 4) (11, 4, U, 2) (11, 5, U, 2) (11, 6, R, 2) (11, 7, P, 4) (11, 8, A, 1) (11, 9, P, 4) (11, 10, I, 2) (11, 11, E, 1) (11, 12, R, 1) (11, 13, T, 2) (11, 14, J, 4) (11, 15, E, 1) (12, 1, , 0) (12, 2, O, 1) (12, 3, 3L, 0) (12, 4, , 0) (12, 5, B, 4) (12, 6, , 0) (12, 7, , 0) (12, 8, X, 8) (12, 9, , 0) (12, 10, , 0) (12, 11, D, 2) (12, 12, 3L, 0) (12, 13, E, 1) (12, 14, N, 1) (12, 15, , 0) (13, 1, , 0) (13, 2, W, 5) (13, 3, , 0) (13, 4, , 0) (13, 5, E, 1) (13, 6, , 0) (13, 7, Z, 5) (13, 8, I, 2) (13, 9, N, 1) (13, 10, , 0) (13, 11, , 0) (13, 12, E, 1) (13, 13, N, 1) (13, 14, , 0) (13, 15, , 0) (14, 1, 2L, 0) (14, 2, , 0) (14, 3, O, 1) (14, 4, L, 3) (14, 5, E, 1) (14, 6, , 0) (14, 7, , 0) (14, 8, , 0) (14, 9, , 0) (14, 10, O, 1) (14, 11, N, 1) (14, 12, K, 3) (14, 13, , 0) (14, 14, 2L, 0) (14, 15, , 0) (15, 1, 3L, 0) (15, 2, , 0) (15, 3, , 0) (15, 4, S, 2) (15, 5, , 0) (15, 6, , 0) (15, 7, 2L, 0) (15, 8, , 0) (15, 9, , 0) (15, 10, , 0) (15, 11, D, 2) (15, 12, , 0) (15, 13, , 0) (15, 14, , 0) (15, 15, 3L, 0)
You are given data such as (1, 1, 3L, 0) (1, 2, , 0) (1, 3, , 0) (1, 4, , 0) (1, 5, B, 4) (1, 6, , 0) (1, 7, , 0) (1, 8, , 0) (1, 9, 2L, 0).
These are entries with the format ( row, column, text, count ).
Write a program that produces a list of struct based entries by parsing the an input string.
package main
import (
"fmt"
"strconv"
"strings"
)
type Entry struct {
Row int
Column int
Text string
Count int
}
func parseEntry(entry string) (*Entry, error) {
parts := strings.Split(entry, " ")
if len(parts) != 4 {
return nil, fmt.Errorf("invalid entry format: %s", entry)
}
row, err := strconv.Atoi(parts[0])
if err != nil {
return nil, fmt.Errorf("invalid row value: %s", parts[0])
}
column, err := strconv.Atoi(parts[1])
if err != nil {
return nil, fmt.Errorf("invalid column value: %s", parts[1])
}
text := parts[2]
count, err := strconv.Atoi(parts[3])
if err != nil {
return nil, fmt.Errorf("invalid count value: %s", parts[3])
}
return &Entry{
Row: row,
Column: column,
Text: text,
Count: count,
}, nil
}
func main() {
input := "(1, 1, 3L, 0) (1, 2, , 0) (1, 3, , 0) (1, 4, , 0) (1, 5, B, 4) (1, 6, , 0) (1, 7, , 0) (1, 8, , 0) (1, 9, 2L, 0)"
entries := []Entry{}
for _, entryStr := range strings.Split(input, " ") {
entry, err := parseEntry(entryStr)
if err != nil {
fmt.Println("Error parsing entry:", err)
continue
}
entries = append(entries, *entry)
}
fmt.Println("Parsed Entries:")
for _, entry := range entries {
fmt.Printf("Row: %d, Column: %d, Text: %s, Count: %d\n", entry.Row, entry.Column, entry.Text, entry.Count)
}
}