Okay kiddo, so imagine you have a secret code that only you know. You can use this code to decide what to do next for a game, like maybe you'll jump if your code says "banana" or you'll spin in a circle if your code says "apple."
Now, imagine that someone else is playing the game with you, but they don't know your secret code. So you come up with a rule that includes your secret code, but isn't obvious to the other player. Let's say the rule is "if the current time is a prime number AND my secret code is 'banana,' then I'll jump."
The other player won't know what your secret code is, and they might not even know how to tell if the current time is a prime number. So this rule is an opaque predicate - it's a rule that includes a secret condition that isn't obvious to everyone.
Programmers use opaque predicates in their code to make it harder for people to figure out what the program is doing. They might create a rule that only runs if the computer's clock is a certain time AND the name of the user's dog is a specific word. This makes it difficult for someone to figure out what the program is doing by just looking at the code.
So an opaque predicate is like a secret code included in a rule that someone else wouldn't know, and it's used to make it harder to understand what a program is doing.