SCREEN _NEWIMAGE(600, 400, 32)

DIM saveData(3, 5)

DIM Data0(3, 5)
DIM Data1(3, 5)
DIM Data2(3, 5)
DIM Data3(3, 5)
DIM Data4(3, 5)
DIM Data5(3, 5)
DIM Data6(3, 5)
DIM Data7(3, 5)
DIM Data8(3, 5)
DIM Data9(3, 5)

DIM sim(10)
DIM percent(10)

'0
FOR y = 1 TO 5
    FOR x = 1 TO 3
        READ Data0(x, y)
    NEXT x
NEXT y

'1
FOR y = 1 TO 5
    FOR x = 1 TO 3
        READ Data1(x, y)
    NEXT x
NEXT y

'2
FOR y = 1 TO 5
    FOR x = 1 TO 3
        READ Data2(x, y)
    NEXT x
NEXT y

'3
FOR y = 1 TO 5
    FOR x = 1 TO 3
        READ Data3(x, y)
    NEXT x
NEXT y

'4
FOR y = 1 TO 5
    FOR x = 1 TO 3
        READ Data4(x, y)
    NEXT x
NEXT y

'5
FOR y = 1 TO 5
    FOR x = 1 TO 3
        READ Data5(x, y)
    NEXT x
NEXT y

'6
FOR y = 1 TO 5
    FOR x = 1 TO 3
        READ Data6(x, y)
    NEXT x
NEXT y

'7
FOR y = 1 TO 5
    FOR x = 1 TO 3
        READ Data7(x, y)
    NEXT x
NEXT y

'8
FOR y = 1 TO 5
    FOR x = 1 TO 3
        READ Data8(x, y)
    NEXT x
NEXT y

'9
FOR y = 1 TO 5
    FOR x = 1 TO 3
        READ Data9(x, y)
    NEXT x
NEXT y

INPUT "Image File: ", dataFile$
'dataFile$ = "TestData.png"
img& = _LOADIMAGE(dataFile$)

_PUTIMAGE (0, 0)-(600, 400), img&

'MAKE GRAYSCALE AND HIGHLIGHT FEATURES
FOR x = 0 TO 600
    FOR y = 0 TO 400
        c& = POINT(x, y)
        r = _RED32(c&)
        g = _GREEN32(c&)
        b = _BLUE32(c&)

        gs = (r + g + b) / 3
        gs = INT(gs / 255) * 255
        LINE (x, y)-(x, y), _RGB(gs, gs, gs), BF
    NEXT y
NEXT x

'DOWNSCALE RESOLUTION TO REVEAL FEATURES
accX = _WIDTH / 3
accY = _HEIGHT / 5

avg = 0
FOR xs = 1 TO 3
    FOR ys = 1 TO 5
        FOR x = (600 / 3) * (xs - 1) TO (600 / 3) * xs
            FOR y = (400 / 5) * (ys - 1) TO (400 / 5) * ys
                c& = POINT(x, y)
                r = _RED32(c&)
                g = _GREEN32(c&)
                b = _BLUE32(c&)

                gs = (r + g + b) / 3

                avg = avg + gs

                'PSET (x, y), _RGB(255, 0, 0)
            NEXT y
        NEXT x
        avg = avg / (200 * 80)
        IF avg < (255 / 2) THEN
            LINE ((600 / 3) * (xs - 1), (400 / 5) * (ys - 1))-((600 / 3) * xs, (400 / 5) * ys), _RGB(0, 0, 0), BF

            'Check if similar
            saveData(xs, ys) = 1
        ELSE
            saveData(xs, ys) = 0
        END IF
        avg = 0

    NEXT ys
NEXT xs


'CHECK SIMILARITY BETWEEN DATA AND MODEL
FOR x = 1 TO 3
    FOR y = 1 TO 5
        IF saveData(x, y) = Data1(x, y) THEN
            sim(1) = sim(1) + 1
        END IF
        IF saveData(x, y) = Data2(x, y) THEN
            sim(2) = sim(2) + 1
        END IF
        IF saveData(x, y) = Data3(x, y) THEN
            sim(3) = sim(3) + 1
        END IF
        IF saveData(x, y) = Data4(x, y) THEN
            sim(4) = sim(4) + 1
        END IF
        IF saveData(x, y) = Data5(x, y) THEN
            sim(5) = sim(5) + 1
        END IF
        IF saveData(x, y) = Data6(x, y) THEN
            sim(6) = sim(6) + 1
        END IF
        IF saveData(x, y) = Data7(x, y) THEN
            sim(7) = sim(7) + 1
        END IF
        IF saveData(x, y) = Data8(x, y) THEN
            sim(8) = sim(8) + 1
        END IF
        IF saveData(x, y) = Data9(x, y) THEN
            sim(9) = sim(9) + 1
        END IF

    NEXT y
NEXT x

FOR n = 1 TO 10
    percent(n) = (sim(n) / 15) * 100
NEXT n

topPer = 0
topIndex = 0
FOR n = 1 TO 10
    IF percent(n) > topPer THEN
        topPer = percent(n)
        topIndex = n
    END IF
NEXT n

CLS
PRINT "Guess: "; topIndex
PRINT "Percentage: "; topPer; "%"

'0
DATA 1,1,1
DATA 1,0,1
DATA 1,0,1
DATA 1,0,1
DATA 1,1,1

'1
DATA 0,1,0
DATA 0,1,0
DATA 0,1,0
DATA 0,1,0
DATA 0,1,0

'2
DATA 1,1,1
DATA 0,0,1
DATA 0,1,0
DATA 1,0,0
DATA 1,1,1

'3
DATA 1,1,1
DATA 0,0,1
DATA 0,1,1
DATA 0,0,1
DATA 1,1,1

'4
DATA 1,0,1
DATA 1,0,1
DATA 1,1,1
DATA 0,0,1
DATA 0,0,1

'5
DATA 1,1,1
DATA 1,0,0
DATA 1,1,1
DATA 0,0,1
DATA 1,1,1

'6
DATA 1,1,1
DATA 1,0,0
DATA 1,1,1
DATA 1,0,1
DATA 1,1,1

'7
DATA 1,1,1
DATA 0,0,1
DATA 0,0,1
DATA 0,1,0
DATA 0,1,0

'8
DATA 1,1,1
DATA 1,0,1
DATA 1,1,1
DATA 1,0,1
DATA 1,1,1

'9
DATA 1,1,1
DATA 1,0,1
DATA 1,1,1
DATA 0,0,1
DATA 0,0,1

