これはcrossword game
. 配列を斜めに読みたい。この配列は特定のファイルから読み取られ、n*m サイズです。m = n とは限らない
このように斜めに与えられた2dをどのように読むことができますか:
例:
m = 4
n = 4
b o o k
z a k o
s l l e
x y z l
ball: found
[b] o o k
z [a] k o
s l [l] e
x y z [l]
foo: not found
コードは次のとおりです。
char ReadArray(char* array, int r, int c, int n, int m)
{
return (r > 0 && r <= n && c > 0 && c <= m) ?
array[n * (r - 1) + (c - 1)] : '\0';
}