Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/issue_template/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: 🐛 Bug Report
about: Report a move generation error, search instability, or crash.
title: ""
labels: bug
assignees: ""
---

## 🔍 Description

## 🧩 Reproduction Steps

**FEN:** `insert_fen_here`
**Depth:** `5` (if applicable)

**Expected Output:**
**Actual Output:**

## 📉 Failure Analysis

- [ ] Move Generation (e.g., illegal move, missing move)
- [ ] Search / Eval (e.g., hash collision, TT bug)
- [ ] Bitboard Logic (e.g., incorrect slider rays)

## 📸 Evidence / Logs

## 💻 Environment

- **OS:** (e.g., Windows, Linux)
- **Compiler:** (e.g., GCC, Clang, MSVC)
- **Commit Hash:** `abcdef12345`
35 changes: 35 additions & 0 deletions .github/issue_template/feature_task.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
name: 🚀 Feature / Task
about: Plan and track the development of engine features and logic.
title: "[TASK]: "
labels: feat, testing
assignees: ""
---

## 🎯 Goal

Implement **Piece Square Tables (PST)** to improve the engine's positional understanding.

## 🧠 Key Idea / Logic

Assign a bonus or penalty value to every piece based on the square it occupies.

- **Score:** $Material\_Value + PST[piece][square]$
- Example: A Knight on `d4` gets a $+20$ bonus, while a Knight on `a1` gets a $-50$ penalty.

## 🛠️ Tasks

- [ ] Define $8 \times 8$ arrays for each piece type (Pawn, Knight, Bishop, etc.).
- [ ] Implement a function to flip the table for the Black pieces.
- [ ] Integrate PST values into the main `evaluate()` function.
- [ ] Ensure the score updates dynamically during the search.

## ✅ Acceptance Criteria

- [ ] The engine prefers developing pieces toward the center in the opening.
- [ ] Evaluation score is symmetrical (White's advantage at a position is the same as Black's if the board is mirrored).
- [ ] No performance regression in the search speed.

## 📝 Notes

Keep values small initially to avoid the engine becoming too "obsessed" with specific squares at the cost of material.