An expert system is essentially a set of specific rules to cover various game situations. Given the correct knowledge, this is perhaps the simplest approach to a reasonably strong program. However, since it is difficult to make an expert knowledge-based system learn (opponent modeling), it can easily be defeated by a strong player. Figure 4.1 contains a rudimentary example piece of such a system: when it is two or more bets to you on the flop and you do not have top pair (you have not paired the top card on the board and do not have a hole pair bigger than that card), nor do you have a four card flush or an open-ended straight, then raise 10% of the time, call 10% of the time, and fold 80% of the time.
There are many problems with this type of approach. Clearly, covering enough of the situations that will arise in practice would be very laborious. Also such a system is difficult to make flexible. If the system were made specific enough to be quite strong, conflicting rules could possibly be constructed and there would need to be a way to handle exceptions. Missing rules covering certain situations or making the rules too general would make the program weak and/or predictable. Additionally, you need an expert who can define these rules. This knowledge-acquisition bottleneck may prove to be a serious problem.