dde272c4b8
i18n - Build Validation / Validate i18n Builds (24) (push) Has been cancelled
CI - Node.js / Lint (24) (push) Has been cancelled
CI - Node.js / Build (24) (push) Has been cancelled
CI - Node.js / Test (24) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (24) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 24) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 24) (push) Has been cancelled
CD - Docker - GHCR Images / Build and Push Images (push) Has been cancelled
80 lines
1.9 KiB
Markdown
80 lines
1.9 KiB
Markdown
---
|
|
id: 69b58ce40693f140c84c855c
|
|
title: "Challenge 243: Rook Attack"
|
|
challengeType: 29
|
|
dashedName: challenge-243
|
|
---
|
|
|
|
# --description--
|
|
|
|
Given two strings for the location of two rooks on a chess board, determine if they can attack each other.
|
|
|
|
A standard chessboard is 8x8, with columns labeled `A` through `H` (left to right) and rows labeled `1` through `8` (bottom to top). It looks like this:
|
|
|
|
|**A8**|**B8**|**C8**|**D8**|**E8**|**F8**|**G8**|**H8**|
|
|
|-|-|-|-|-|-|-|-|
|
|
|**A7**|**B7**|**C7**|**D7**|**E7**|**F7**|**G7**|**H7**|
|
|
|**A6**|**B6**|**C6**|**D6**|**E6**|**F6**|**G6**|**H6**|
|
|
|**A5**|**B5**|**C5**|**D5**|**E5**|**F5**|**G5**|**H5**|
|
|
|**A4**|**B4**|**C4**|**D4**|**E4**|**F4**|**G4**|**H4**|
|
|
|**A3**|**B3**|**C3**|**D3**|**E3**|**F3**|**G3**|**H3**|
|
|
|**A2**|**B2**|**C2**|**D2**|**E2**|**F2**|**G2**|**H2**|
|
|
|**A1**|**B1**|**C1**|**D1**|**E1**|**F1**|**G1**|**H1**|
|
|
|
|
Rooks can move as many squares as they want in a horizontal or vertical direction. So if they are on the same row or column, they can attack each other.
|
|
|
|
# --hints--
|
|
|
|
`rook_attack("A1", "A8")` should return `True`.
|
|
|
|
```js
|
|
({test: () => { runPython(`
|
|
from unittest import TestCase
|
|
TestCase().assertIs(rook_attack("A1", "A8"), True)`)
|
|
}})
|
|
```
|
|
|
|
`rook_attack("B4", "F4")` should return `True`.
|
|
|
|
```js
|
|
({test: () => { runPython(`
|
|
from unittest import TestCase
|
|
TestCase().assertIs(rook_attack("B4", "F4"), True)`)
|
|
}})
|
|
```
|
|
|
|
`rook_attack("E3", "D4")` should return `False`.
|
|
|
|
```js
|
|
({test: () => { runPython(`
|
|
from unittest import TestCase
|
|
TestCase().assertIs(rook_attack("E3", "D4"), False)`)
|
|
}})
|
|
```
|
|
|
|
`rook_attack("H7", "F6")` should return `False`.
|
|
|
|
```js
|
|
({test: () => { runPython(`
|
|
from unittest import TestCase
|
|
TestCase().assertIs(rook_attack("H7", "F6"), False)`)
|
|
}})
|
|
```
|
|
|
|
# --seed--
|
|
|
|
## --seed-contents--
|
|
|
|
```py
|
|
def rook_attack(rook1, rook2):
|
|
|
|
return rook1
|
|
```
|
|
|
|
# --solutions--
|
|
|
|
```py
|
|
def rook_attack(rook1, rook2):
|
|
return rook1[0] == rook2[0] or rook1[1] == rook2[1]
|
|
```
|