🐐 Fixing latin

This commit is contained in:
2026-04-21 23:46:00 +02:00
parent 4f78450756
commit ebea9f942b
47 changed files with 337 additions and 337 deletions

View File

@@ -6,7 +6,7 @@
// Returns the bottommost empty row in col, or NVLLVS if full
DEFINI find_slot(b, col) VT {
DESIGNA ans VT NVLLVS
DONICVM r VT I VSQVE VI FACE {
DONICVM r VT I VSQVE VI FAC {
SI b[(r - I) * VII + col] EST NVLLVS TVNC {
DESIGNA ans VT r
}
@@ -16,32 +16,32 @@ DEFINI find_slot(b, col) VT {
// Returns VERITAS if player has four in a row
DEFINI est_victor(b, player) VT {
DONICVM r VT I VSQVE VI FACE {
DONICVM c VT I VSQVE IV FACE {
DONICVM r VT I VSQVE VI FAC {
DONICVM c VT I VSQVE IV FAC {
DESIGNA idx VT (r - I) * VII + c
SI b[idx] EST player ET b[idx + I] EST player ET b[idx + II] EST player ET b[idx + III] EST player TVNC {
REDI(VERITAS)
}
}
}
DONICVM r VT I VSQVE III FACE {
DONICVM c VT I VSQVE VII FACE {
DONICVM r VT I VSQVE III FAC {
DONICVM c VT I VSQVE VII FAC {
DESIGNA idx VT (r - I) * VII + c
SI b[idx] EST player ET b[idx + VII] EST player ET b[idx + XIV] EST player ET b[idx + XXI] EST player TVNC {
REDI(VERITAS)
}
}
}
DONICVM r VT I VSQVE III FACE {
DONICVM c VT I VSQVE IV FACE {
DONICVM r VT I VSQVE III FAC {
DONICVM c VT I VSQVE IV FAC {
DESIGNA idx VT (r - I) * VII + c
SI b[idx] EST player ET b[idx + VIII] EST player ET b[idx + XVI] EST player ET b[idx + XXIV] EST player TVNC {
REDI(VERITAS)
}
}
}
DONICVM r VT I VSQVE III FACE {
DONICVM c VT IV VSQVE VII FACE {
DONICVM r VT I VSQVE III FAC {
DONICVM c VT IV VSQVE VII FAC {
DESIGNA idx VT (r - I) * VII + c
SI b[idx] EST player ET b[idx + VI] EST player ET b[idx + XII] EST player ET b[idx + XVIII] EST player TVNC {
REDI(VERITAS)
@@ -52,23 +52,23 @@ DEFINI est_victor(b, player) VT {
}
DEFINI print_board(b) VT {
DICE("+---+---+---+---+---+---+---+")
DONICVM r VT I VSQVE VI FACE {
DIC("+---+---+---+---+---+---+---+")
DONICVM r VT I VSQVE VI FAC {
DESIGNA line VT "| "
DONICVM c VT I VSQVE VII FACE {
DONICVM c VT I VSQVE VII FAC {
DESIGNA cell VT b[(r - I) * VII + c]
SI cell EST I TVNC {
DESIGNA line VT line & "X | "
} ALVID SI cell EST II TVNC {
} ALIVD SI cell EST II TVNC {
DESIGNA line VT line & "O | "
} ALVID {
} ALIVD {
DESIGNA line VT line & ". | "
}
}
DICE(line)
DIC(line)
}
DICE("+---+---+---+---+---+---+---+")
DICE(" I II III IV V VI VII")
DIC("+---+---+---+---+---+---+---+")
DIC(" I II III IV V VI VII")
REDI(NVLLVS)
}
@@ -101,35 +101,35 @@ DEFINI score_fenestram(a, b, c, d) VT {
DEFINI aestima(b) VT {
DESIGNA score VT NVLLVS
// Center column preference: each AI piece in column IV is worth +1
DONICVM r VT I VSQVE VI FACE {
DONICVM r VT I VSQVE VI FAC {
SI b[(r - I) * VII + IV] EST II TVNC {
DESIGNA score VT score + I
}
}
// Horizontal windows (6 rows x 4 starting columns = 24)
DONICVM r VT I VSQVE VI FACE {
DONICVM c VT I VSQVE IV FACE {
DONICVM r VT I VSQVE VI FAC {
DONICVM c VT I VSQVE IV FAC {
DESIGNA idx VT (r - I) * VII + c
DESIGNA score VT score + INVOCA score_fenestram(b[idx], b[idx + I], b[idx + II], b[idx + III])
}
}
// Vertical windows (3 starting rows x 7 columns = 21)
DONICVM r VT I VSQVE III FACE {
DONICVM c VT I VSQVE VII FACE {
DONICVM r VT I VSQVE III FAC {
DONICVM c VT I VSQVE VII FAC {
DESIGNA idx VT (r - I) * VII + c
DESIGNA score VT score + INVOCA score_fenestram(b[idx], b[idx + VII], b[idx + XIV], b[idx + XXI])
}
}
// Diagonal up-right windows (3 starting rows x 4 starting columns = 12)
DONICVM r VT I VSQVE III FACE {
DONICVM c VT I VSQVE IV FACE {
DONICVM r VT I VSQVE III FAC {
DONICVM c VT I VSQVE IV FAC {
DESIGNA idx VT (r - I) * VII + c
DESIGNA score VT score + INVOCA score_fenestram(b[idx], b[idx + VIII], b[idx + XVI], b[idx + XXIV])
}
}
// Diagonal up-left windows (3 starting rows x 4 starting columns = 12)
DONICVM r VT I VSQVE III FACE {
DONICVM c VT IV VSQVE VII FACE {
DONICVM r VT I VSQVE III FAC {
DONICVM c VT IV VSQVE VII FAC {
DESIGNA idx VT (r - I) * VII + c
DESIGNA score VT score + INVOCA score_fenestram(b[idx], b[idx + VI], b[idx + XII], b[idx + XVIII])
}
@@ -146,7 +146,7 @@ DEFINI minimax(b, depth, alpha, beta, maxi) VT {
SI INVOCA est_victor(b, I) TVNC {
REDI(NVLLVS - M - depth)
}
} ALVID {
} ALIVD {
SI INVOCA est_victor(b, II) TVNC {
REDI(M + depth)
}
@@ -157,7 +157,7 @@ DEFINI minimax(b, depth, alpha, beta, maxi) VT {
DESIGNA col_order VT [IV, III, V, II, VI, I, VII]
SI maxi TVNC {
DESIGNA best VT NVLLVS - M - VII
PER c IN col_order FACE {
PER c IN col_order FAC {
DESIGNA linea VT INVOCA find_slot(b, c)
SI NON (linea EST NVLLVS) TVNC {
DESIGNA b[(linea - I) * VII + c] VT II
@@ -175,9 +175,9 @@ DEFINI minimax(b, depth, alpha, beta, maxi) VT {
}
}
REDI(best)
} ALVID {
} ALIVD {
DESIGNA best VT M + VII
PER c IN col_order FACE {
PER c IN col_order FAC {
DESIGNA linea VT INVOCA find_slot(b, c)
SI NON (linea EST NVLLVS) TVNC {
DESIGNA b[(linea - I) * VII + c] VT I
@@ -203,7 +203,7 @@ DEFINI ai_move(b) VT {
DESIGNA col_order VT [IV, III, V, II, VI, I, VII]
DESIGNA best_score VT NVLLVS - M - VII
DESIGNA best_col VT IV
PER c IN col_order FACE {
PER c IN col_order FAC {
DESIGNA linea VT INVOCA find_slot(b, c)
SI NON (linea EST NVLLVS) TVNC {
DESIGNA b[(linea - I) * VII + c] VT II
@@ -220,63 +220,63 @@ DEFINI ai_move(b) VT {
// --- Board setup ---
DESIGNA board VT [I VSQVE XLII]
DONICVM i VT I VSQVE XLII FACE {
DONICVM i VT I VSQVE XLII FAC {
DESIGNA board[i] VT NVLLVS
}
DESIGNA moves VT NVLLVS
DESIGNA game_over VT FALSITAS
DICE("=== CONNECT IV ===")
DICE("You are X. AI is O.")
DICE("Enter column as Roman numeral (I-VII).")
DICE("")
DIC("=== CONNECT IV ===")
DIC("You are X. AI is O.")
DIC("Enter column as Roman numeral (I-VII).")
DIC("")
DVM game_over FACE {
EVERRO()
DVM game_over FAC {
EVERRE()
INVOCA print_board(board)
DICE("Your move:")
DIC("Your move:")
DESIGNA col VT AVDI_NVMERVS()
SI col PLVS VII TVNC {
DICE("Invalid column! Enter I through VII.")
DIC("Invalid column! Enter I through VII.")
CONTINVA
}
DESIGNA linea VT INVOCA find_slot(board, col)
SI linea EST NVLLVS TVNC {
DICE("Column full! Try another.")
DIC("Column full! Try another.")
CONTINVA
}
DESIGNA board[(linea - I) * VII + col] VT I
DESIGNA moves VT moves + I
SI INVOCA est_victor(board, I) TVNC {
INVOCA print_board(board)
DICE("You win!")
DIC("You win!")
DESIGNA game_over VT VERITAS
CONTINVA
}
SI moves EST XLII TVNC {
INVOCA print_board(board)
DICE("Draw!")
DIC("Draw!")
DESIGNA game_over VT VERITAS
CONTINVA
}
DICE("AI is thinking...")
DIC("AI is thinking...")
DESIGNA col VT INVOCA ai_move(board)
DESIGNA linea VT INVOCA find_slot(board, col)
DICE("AI plays column " & col & ".")
DIC("AI plays column " & col & ".")
DESIGNA board[(linea - I) * VII + col] VT II
DESIGNA moves VT moves + I
SI INVOCA est_victor(board, II) TVNC {
INVOCA print_board(board)
DICE("AI wins!")
DIC("AI wins!")
DESIGNA game_over VT VERITAS
CONTINVA
}
SI moves EST XLII TVNC {
INVOCA print_board(board)
DICE("Draw!")
DIC("Draw!")
DESIGNA game_over VT VERITAS
}
}