This is sort of a multi-layered idea which I’m not particularly sure I can articulate fully. For the sake of making it understandable, I’ll break it down into 4 levels:
Level 1: Information Gathering
The first part of the puzzle would be to gather information on the judges and see what they like, just asking around and getting information like “Lord X likes sweet foods, but detests pastries.” or “Dame Y enjoys sour foods, but is a strict vegetarian: she will give a zero to any meat dishes she sees.” This gives the player the information they need to pick a recipe that will impress enough judges to win.
Level 2: Picking a Dish
The player now has a choice of picking what they want to make. Give them maybe four or five things to choose from. The recipe tells the player three things. First, it tells them the components of the recipe: not the actual ingredients, but stuff like “Pastry: Requires dough, water and filling.” Secondly, the player is told what needs to be done first, second, third etc. Lastly, it tells them the “ideal taste” of the recipe they’ve chosen. For simplicity’s sake, you could use the “harmony of five flavours”: sweet, sour, salty, bitter and spicy. Each recipe would have a target score in each of these things. The closer the end product comes to the target score, the better.
Level 3: Cooking
The player is then put on the spot and allowed to put their dish together. This means that the player has to remember the proper order when it comes to cooking their recipe. In the relevant stages of cooking, they’ll be able to pick what specific ingredients they want to put in. Each ingredient will add to at least one of the five flavour scores. The ultimate objective is, of course, to cook the recipe in order, using ingredients that place the final product as close to the target flavour scores as possible.
At any time in this stage, the player can consult their recipe, but doing so expends time. Check the recipe too often, and the player may find themselves out of time with an incomplete dish.
Level 4: Judging
This is where it all comes together. The judges taste the dishes. Judging is based on penalty points. If the player’s dish doesn’t fit the target taste profile, they lose points based on how far off the mark they are. Additional penalties are added by presenting a recipe or using ingredients the judges dislike. Prior social actions could also mean that some of the judges are holding grudges or are more inclined to judge generously. Lastly, penalty points are nullified if the player cooks a judge’s favourite dish or uses their favourite ingredient. Finally, the points are tallied. If the player’s penalty point total is below a certain amount, they win. Runners-up are similarly calculated.
This should all be possible in ChoiceScript, but it’d mean keeping track of something like three dozen variables and writing a *lot* of branches.