N-grams are popular here. The basic idea is to keep a list of moves the player has made. You can then, given the last N moves of the player, figure out percentage likelihood of what his next move might be.
Your game should have a database of effective counters and blocks to each move.
For offensive modes in the AI, you can still basic player modeling to determine which attacks the player has had the most trouble blocking or countering, and reuse those.
For AI difficulty, just dumb down the AI at easier levels. The worst AI mode might invert choices (that is, if it knows the player usually blocks punches, it has a higher rather than lower chane to throw a punch). The highest difficulty mode would use the non-handicapped algorithm, and is likely going to beat the crap out of the player.
If you're looking to make the game more fun, I also recommend adding personality to the AI. Some characters might taunt more, some might be more defensive than offensive, etc. players enjoy being able to ascribe human intelligence to AI characters.