Задание: Найдите количество способов провести шашку на первую линию шахматной доски любого размера. Необходимо учесть, что шашка делает ход только на клетку справа или слева по диагонали перед собой в направлении первой линии.

Напишите, пожалуйста, программу с возможностью ввода трёх чисел через пробел, номер столбца (x) и номер строки (y) на шахматной доске, где стоит шашка и количество клеток по ширине доски (w width). y и w целые числа больше 1, w > x, x > 0. Программа, в результате работы, должна вывести число равное количеству способов провести шашку на первую линию шахматной доски (в дамки). 

I вариант решения задачи:

# d — дано;  x, y — начальные координаты шашки на шахматной доске
# w — ширина шахматной доски
# f — функция, которая возвращает количество вариантов
# пути шашки в дамки (на первую строку).

def f(x,y,w):
        if x < 1  or x > w:
            return 0
        if y == 1:
            return 1
        else:
            return f(x -1, y-1, w) + f(x+1, y-1, w)

while True:
    d = [int(i) for i in input('Введите x y w: ').split()]
    print(f(*d))

Лист. 1. Программа решающая, с помощью рекурсии, задачу о проходе шашки в дамки.

II вариант решения задачи:

Решим

Рис. 2. Таблица, составленная в программе OpenOffice Calc, решающая задачу о проходе шашки в дамки.

III вариант решения задачи:

# Программа возвращает количество вариантов пути шашки в дамки
# (на первую строку).
# d — дано;  x, y — начальные координаты шашки на шахматной доске.
# w — ширина шахматной доски.

while True:
    x, y, w = [int(i) for i in input('Введите x y w: ').split()]
    A = [0] + [1]*w +[0]
    B = [0] * (w + 2)
    for j in range(1, y):
        for i in range(1, w+1):
            B[i] = A[i-1] + A[i+1]
        A = B.copy()
    print(A[x])

Лист. 2. Программа решающая, с помощью вложенного цикла, задачу о проходе шашки в дамки.