Вот что получилось
Можно пред тавить что игра находится в разных состояниях. И переключаться между этими состояниями.
Это самый банальный подход в играх. Это автоматы основанные на состояниях
Однако я сделал финт ушами и привязал события к определённому состоянию, тоесть система находясь в определённом состоянии будет реагировать на события. Несколько состояний могут быть подписаны как game.event([1,2,3],{//какаято инфа});
game={
state:0,
//флаги выбора ставки и карты / могли бы быть переменные со значением карты и суммой ставки
selcarta:false,
selstavka:false,
//функция переключающая состояния
setState:function(state){
this.state=state;
},
//альтернативный вариант переключения состояний
nextState:function(){
this.state++;
},
// запускает состояние
goState:function(state){
//необязательное переключение состояния
if(state) this.state=state;
this[this.state](param);
},
//вызывает состояние как обработчик события
event:function(state,param){
//если это массив, то подписаны несколько состояний
if (typeof(state) == 'object'){
for (var i=0;i<state.length;i++) {
if (state[i]==this.state) this[this.state](param);
}
} else {
//если только одно состояние
if (state==this.state) this[state](param);
}
},
//состояния игры
//блок инициализации
"0":function(){
$("карта").click(function(){ game.event('1',{act:"selcarta"})})
$("ставка").click(function(){ game.event('1',{act:"selstavka"} )})
$("кнопка игра").click(function(){game.event('3')})
game.setState('1');
},
//проверяем выбор пользователя
"1":function(param){
if(param.act=="selcarta") this.selcarta=true;
if(param.act=="selstavka") this.selstavka=true;
//если оба условия определены, то переходим к активации кнопки
if (this.selstavka && this.selcarta) game.goState(2);
},
//активируем кнопку
"2":function(){
// что-то делаем, допустим активируем кнопку играть
//переходим на состояние в котором ждём нажатия кнопки.
this.setState(3);//
},
//реагирует на нажатие кнопки играть
"3":function(){
alert("ура мы играем");
//вернёмся обратно к ожиданию нажатий по картам
game.setState('1');
}
//другие состояния, к примеру ход противника, тусовка колоды, вычисление удачности хода и тп, и тд
}
//начинаем игру
game.goState(0);