krouzek:uloha:sachy1

Toto je starší verze dokumentu!


Šachy

Pro zadanou šachovnici

  1. vygenerujte všechny kombinace tahů daného hráče v jednoduchém případě (neuvažujte rošády, braní mimochodem, výměnu pěšců za figury)
  2. vytvořte funkci která pro zadanou pozici detekuje šach
  3. pozice kdy je šach a všechny tahy vedou do šachu ⇒ šach mat (konec hry)
  4. omezte vygenerované kombinace z 1 = nepovolte žádné tahy, které vedou do šachu
  5. nechte počítač hrát proti počítači, zcela náhodné tahy.
Create a JSON formatted example input of a chess solving program. Use all chess figure types in the example.
{
  "board": {
    "a8": "r",
    "b8": "n",
    "c8": "b",
    "d8": "q",
    "e8": "k",
    "f8": "b",
    "g8": "n",
    "h8": "r",
    "a7": "p",
    "b7": "p",
    "c7": "p",
    "d7": "p",
    "e7": "p",
    "f7": "p",
    "g7": "p",
    "h7": "p",
    "a2": "P",
    "b2": "P",
    "c2": "P",
    "d2": "P",
    "e2": "P",
    "f2": "P",
    "g2": "P",
    "h2": "P",
    "a1": "R",
    "b1": "N",
    "c1": "B",
    "d1": "Q",
    "e1": "K",
    "f1": "B",
    "g1": "N",
    "h1": "R"
  },
  "turn": "white",
  "castling_rights": "KQkq",
  "en_passant_target": "e3",
  "halfmove_clock": 25,
  "fullmove_number": 12
}

In this JSON input:

  • The board field represents the current state of the chessboard. Each square is represented by its coordinates (e.g., „a8“ for the square in the bottom-left corner) and the piece occupying it. Lowercase letters represent black pieces, and uppercase letters represent white pieces. Here, „r“ is for a black rook, „n“ for a black knight, „b“ for a black bishop, „q“ for a black queen, „k“ for a black king, „p“ for black pawns, and their uppercase counterparts for white pieces.
  • The turn field indicates whose turn it is to move, which is „white“ in this example.
  • The castling_rights field indicates the available castling rights. „KQkq“ means both white and black can still castle kingside and queenside.
  • The en_passant_target field specifies the target square for en passant captures. In this case, it's „e3“.
  • The halfmove_clock field represents the number of half-moves since the last pawn move or capture.
  • The fullmove_number field indicates the number of the current full move, where a full move consists of both players making a move.
  • castling = rošáda
  • en passant = tah mimochodem

ChatGPT nejspíš vychází z https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation a podobných zdrojů

{
   "chess_pieces": [
    { "type": "rook", "color": "black", "position": "a8" },
    { "type": "knight", "color": "black", "position": "b8" },
    { "type": "bishop", "color": "black", "position": "c8" },
    { "type": "queen", "color": "black", "position": "d8" },
    { "type": "king", "color": "black", "position": "e8" },
    { "type": "bishop", "color": "black", "position": "f8" },
    { "type": "knight", "color": "black", "position": "g8" },
    { "type": "rook", "color": "black", "position": "h8" },
    { "type": "pawn", "color": "black", "position": "a7" },
    { "type": "pawn", "color": "black", "position": "b7" },
    { "type": "pawn", "color": "black", "position": "c7" },
    { "type": "pawn", "color": "black", "position": "d7" },
    { "type": "pawn", "color": "black", "position": "e7" },
    { "type": "pawn", "color": "black", "position": "f7" },
    { "type": "pawn", "color": "black", "position": "g7" },
    { "type": "pawn", "color": "black", "position": "h7" },
    { "type": "pawn", "color": "white", "position": "a2" },
    { "type": "pawn", "color": "white", "position": "b2" },
    { "type": "pawn", "color": "white", "position": "c2" },
    { "type": "pawn", "color": "white", "position": "d2" },
    { "type": "pawn", "color": "white", "position": "e2" },
    { "type": "pawn", "color": "white", "position": "f2" },
    { "type": "pawn", "color": "white", "position": "g2" },
    { "type": "pawn", "color": "white", "position": "h2" },
    { "type": "rook", "color": "white", "position": "a1" },
    { "type": "knight", "color": "white", "position": "b1" },
    { "type": "bishop", "color": "white", "position": "c1" },
    { "type": "queen", "color": "white", "position": "d1" },
    { "type": "king", "color": "white", "position": "e1" },
    { "type": "bishop", "color": "white", "position": "f1" },
    { "type": "knight", "color": "white", "position": "g1" },
    { "type": "rook", "color": "white", "position": "h1" }
  ]
}

A ještě lépe parsovatelná pozice:

{
  "chess_pieces": [
    { "type": "rook", "color": "black", "position": { "x": 0, "y": 7 } },
    { "type": "knight", "color": "black", "position": { "x": 1, "y": 7 } },
    { "type": "bishop", "color": "black", "position": { "x": 2, "y": 7 } },
    { "type": "queen", "color": "black", "position": { "x": 3, "y": 7 } },
    { "type": "king", "color": "black", "position": { "x": 4, "y": 7 } },
    { "type": "bishop", "color": "black", "position": { "x": 5, "y": 7 } },
    { "type": "knight", "color": "black", "position": { "x": 6, "y": 7 } },
    { "type": "rook", "color": "black", "position": { "x": 7, "y": 7 } },
    { "type": "pawn", "color": "black", "position": { "x": 0, "y": 6 } },
    { "type": "pawn", "color": "black", "position": { "x": 1, "y": 6 } },
    { "type": "pawn", "color": "black", "position": { "x": 2, "y": 6 } },
    { "type": "pawn", "color": "black", "position": { "x": 3, "y": 6 } },
    { "type": "pawn", "color": "black", "position": { "x": 4, "y": 6 } },
    { "type": "pawn", "color": "black", "position": { "x": 5, "y": 6 } },
    { "type": "pawn", "color": "black", "position": { "x": 6, "y": 6 } },
    { "type": "pawn", "color": "black", "position": { "x": 7, "y": 6 } },
    { "type": "pawn", "color": "white", "position": { "x": 0, "y": 1 } },
    { "type": "pawn", "color": "white", "position": { "x": 1, "y": 1 } },
    { "type": "pawn", "color": "white", "position": { "x": 2, "y": 1 } },
    { "type": "pawn", "color": "white", "position": { "x": 3, "y": 1 } },
    { "type": "pawn", "color": "white", "position": { "x": 4, "y": 1 } },
    { "type": "pawn", "color": "white", "position": { "x": 5, "y": 1 } },
    { "type": "pawn", "color": "white", "position": { "x": 6, "y": 1 } },
    { "type": "pawn", "color": "white", "position": { "x": 7, "y": 1 } },
    { "type": "rook", "color": "white", "position": { "x": 0, "y": 0 } },
    { "type": "knight", "color": "white", "position": { "x": 1, "y": 0 } },
    { "type": "bishop", "color": "white", "position": { "x": 2, "y": 0 } },
    { "type": "queen", "color": "white", "position": { "x": 3, "y": 0 } },
    { "type": "king", "color": "white", "position": { "x": 4, "y": 0 } },
    { "type": "bishop", "color": "white", "position": { "x": 5, "y": 0 } },
    { "type": "knight", "color": "white", "position": { "x": 6, "y": 0 } },
    { "type": "rook", "color": "white", "position": { "x": 7, "y": 0 } }
  ]
}
  • krouzek/uloha/sachy1.1697573356.txt.gz
  • Poslední úprava: 2023/11/15 20:54
  • (upraveno mimo DokuWiki)