Навіть незважаючи на те, що псевдо-код здається ближчим до коду, ніж алгоритм, на практиці псевдо-код є менш формальним і є описом більш високого рівня. Наприклад, ви можете описати комп'ютер, що грає в шахи, як псевдо-код:
- розмістіть початкові частини у своїх місцях
- показати дошку
- поки гра не закінчена
- зробити дошку та переміщення
- швидкий користувач для переміщення
- змусити користувачів рухатися
Так, це псевдокод, він корисний як хороший вихідний пункт, але затінює багато деталей. Це не враховує труднощів та варіацій впровадження, але найбільша перевага полягає в тому, що вона дозволяє концептуалізувати всю ситуацію, не потребуючи вирішення всіх деталей.
Ви можете переглянути його, додавши ще один рівень:
- розмістіть початкові частини у своїх місцях
- показати дошку
- поки на дошці не буде мат чи мальованість
- складіть перелік юридичних кроків білих
- вибирайте найкращого за деякими критеріями
- зробіть цей хід і обчисліть отриману дошку
- подивіться, чи відбувся мат чи матч
- дошка дисплея
- складіть список юридичних кроків чорних
- швидкий користувач для легального переходу для введення
- зробіть цей хід і обчисліть отриману дошку
- подивіться, чи відбувся мат чи матч
- дошка дисплея
Тепер ви можете написати псевдокод для кожного з основних кроків, таких як "скласти список законних кроків чорних", наприклад:
- за кожен чорний шматок
- для типу штуки в даному місці
- скласти список наступних можливих місць
Тепер ви можете бачити, що сила псевдокоду справді полягає в його здатності показувати всю ситуацію за один раз, а потім дозволяє вам розбирати деталі детально. Слабка слабкість полягає в тому, що будь-який крок не є певним простим кроком.
Алгоритм, як правило, підбирає один із цих кроків і детально описує різні структури даних символічною мовою, щоб можна було ефективно досягти мети кроку.
Наприклад, get_legal_moves(board, color)
гідна розробка алгоритму:
get_legal_moves(board, color):
for i,j in board_dimensions
if piece_at i,j is of color
if piece type is KNIGHT
add the following to the next moves list:
location i+1 j+2, i-1 j+2... etc
if piece type is rook
add locations:....
Ви можете бачити, що алгоритм повинен бути дуже точним, щоб бути корисним.
Це забезпечує кілька речей: щоб цілі були досягнуті без помилок, в першу чергу. Етапи дуже деталізовані та виконуються механізовано, і що кроки є досить маленькими, щоб їх можна було змінити, щоб підвищити ефективність (швидкість), з якою ви закінчите завдання.