Join David Powers for an in-depth discussion in this video A classic CS interview question, part of Code Clinic: PHP.
- Hello and welcome to Code Clinic. My name is David Powers. Code Clinic is a monthly course where a unique problem is introduced to a collection of lynda.com authors. In response, each author creates a solution using their programming language of choice. Mine is PHP. You can learn several things from Code Clinic: different approaches to solving a problem, the pros and cons of different languages, and some tips and tricks to incorporate into your own coding practices. This month we're working on a classic computer programming problem called "The Eight Queens".
This famous problem is often used during interviews or to demonstrate the utility of a computer language. It requires an understanding of recursion and algorithm design. And can be quite useful as an exercise in learning to program solutions for complex problems. This problem was proposed by Max Bezzel in 1848 and solved by Franz Nauck in 1850. The problem is simple. Start with a chess board and eight queens. Then set up the board so that no two queens can attack each other.
There's more than one solution. Find them all. We already know there are 92 possible solutions. And we already have examples of the solutions in several computer languages. If you've never played chess you'll need to understand that a queen can attack by moving an unlimited number of spaces in three directions: horizontally, vertically, and diagonally. This means that no two queens can share a row or column. Nor can they be located diagonally from each other.
In the following videos I'll show you how to solve the "Eight Queens" problem using PHP. I'd encourage you to look also at the solutions from other authors in the lynda.com library. You'll be able to compare different author styles and different languages.
David introduces challenges and provides an overview of his solutions in PHP. Challenges include topics such as statistical analysis, searching directories for images, and accessing peripheral devices.
Visit other courses in the series to see how to solve the exact same challenges in languages like C#, C++, Java, Python, and Ruby.
Skill Level Intermediate
Q: I'm encountering script errors message with the prime_dates.php file used in the "Priming the date_record column" movie in this course. How can I resolve these errors?
A: To avoid script errors, use bindValue() instead of bindParam() in
Line 9 of the prime_dates.php file. You can also download the latest
copy of the exercise files, which corrects this issue for you. For a
more in-depth explanation of the difference between bindValue() and
bindParam(), check out the "Binding input and output values" video (http://www.lynda.com/PHP-
Q: Why can't I access the Lake Pend Orielle site (http://lpo.dt.navy.mil)?
A: The Lake Pend Orielle site is not accessible in some geographical areas. We have contacted the owner of the server to try to resolve this issue.
Q: I am unable to access the Lake Pend Oreille data from outside the U.S.
A: A static copy of this data is provided here for lynda.com members outside of the U.S
Problem One: Statistical Analysis
Problem Two: Image Analysis
Problem Three: Eight Queens
Problem Four: Accessing Peripherals
Problem Five: Recursion and Directories
Problem Six: Building the Web
- Mark as unwatched
- Mark all as unwatched
Are you sure you want to mark all the videos in this course as unwatched?
This will not affect your course history, your reports, or your certificates of completion for this course.Cancel
Take notes with your new membership!
Type in the entry box, then click Enter to save your note.
1:30Press on any video thumbnail to jump immediately to the timecode shown.
Notes are saved with you account but can also be exported as plain text, MS Word, PDF, Google Doc, or Evernote.