Book Image

The Modern C# Challenge

By : Rod Stephens
Book Image

The Modern C# Challenge

By: Rod Stephens

Overview of this book

C# is a multi-paradigm programming language. The Modern C# Challenge covers with aspects of the .NET Framework such as the Task Parallel Library (TPL) and CryptoAPI. It also encourages you to explore important programming trade-offs such as time versus space or simplicity. There may be many ways to solve a problem and there is often no single right way, but some solutions are definitely better than others. This book has combined these solutions to help you solve real-world problems with C#. In addition to describing programming trade-offs, The Modern C# Challenge will help you build a useful toolkit of techniques such as value caching, statistical analysis, and geometric algorithms. By the end of this book, you will have walked through challenges in C# and explored the .NET Framework in order to develop program logic for real-world applications.
Table of Contents (17 chapters)
Title Page
Copyright and Credits
Packt Upsell
Free Chapter
Dates and Times
Files and Directories
Advanced C# and .NET Features


Use the following problems to test your skills at building simulations. Give each problem a try before you turn to the solutions and download the example programs.

82. Dawkins' weasel

Dawkins' weasel, also known as the weasel program, is a relatively simple text simulation that was intended to demonstrate how random variation and selection can lead to non-random results. The idea was inspired by the infinite monkey theorem, which states that a monkey typing randomly on a typewriter for an infinite amount of time will eventually reproduce all of the works of William Shakespeare. Thinking about that theorem, Richard Dawkins decided to write a simulation that would generate Hamlet's line, "Methinks it is like a weasel." (Hamlet, Act 3, Scene 2.)

The simulation starts with a completely random string of 28 letters and spaces. (The Hamlet quote is 28 characters long.) The program then creates a sequence of generations until the random string morphs into the target string.

During each generation...