cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A342948 Squares visited by either knight when a white knight and a black knight are moving on a diagonally numbered board, always to the lowest available unvisited square; white moves first.

This page as a plain text file.
%I A342948 #10 Apr 16 2021 00:12:20
%S A342948 1,8,9,6,4,2,3,12,13,16,7,24,5,19,10,15,26,34,18,14,11,21,30,43,37,20,
%T A342948 48,25,22,17,31,39,38,29,46,23,58,32,49,42,41,35,52,45,27,53,33,28,40,
%U A342948 54,51,63,60,73,70,84,57,50,67,59,81,47,93,56,106,69,123
%N A342948 Squares visited by either knight when a white knight and a black knight are moving on a diagonally numbered board, always to the lowest available unvisited square; white moves first.
%C A342948 Board is numbered as follows:
%C A342948    1  2  4  7 11 16  .
%C A342948    3  5  8 12 17  .
%C A342948    6  9 13 18  .
%C A342948   10 14 19  .
%C A342948   15 20  .
%C A342948   21  .
%C A342948    .
%C A342948 Both knights start on square 1, white moves to the lowest unvisited square (8), black then moves to the lowest unvisited square (9) and so on...
%C A342948 This sequence is finite, on the 583rd move or the white knight's 292nd step, square 406 is visited, after which black wins and the game is over.
%o A342948 (Python)
%o A342948 KM=[(2, 1), (1, 2), (-1, 2), (-2, 1), (-2, -1), (-1, -2), (1, -2), (2, -1)]
%o A342948 def idx(loc): i, j = loc; return (i+j-1)*(i+j-2)//2 + j
%o A342948 def next_move(loc, visited):
%o A342948   i, j = loc; moves = [(i+io, j+jo) for io, jo in KM if i+io>0 and j+jo>0]
%o A342948   available = [m for m in moves if m not in visited]
%o A342948   return min(available, default=None, key=lambda x: idx(x))
%o A342948 def aseq():
%o A342948   loc, s, turn, alst = [(1, 1), (1, 1)], {(1, 1)}, 0, [1]
%o A342948   m = next_move(loc[turn], s)
%o A342948   while m != None:
%o A342948     loc[turn], s, turn, alst = m, s|{m}, 1 - turn, alst + [idx(m)]
%o A342948     m = next_move(loc[turn], s)
%o A342948   return alst
%o A342948 A342948_lst = aseq() # _Michael S. Branicky_, Mar 30 2021
%Y A342948 Cf. A338288, A338289, A338290, A342946, A342947.
%K A342948 nonn,fini
%O A342948 1,2
%A A342948 _Andrew Smith_, Mar 30 2021