Несколько упрощенный макет
<input id="gc" disabled>
<form name="myform">
<p>Выберите один или несколько вариантов<br>
<label>
<input type="checkbox" name="testChbx" value="v1">
Вариант 1</label>
<br>
<label>
<input type="checkbox" name="testChbx" value="v2">
Вариант 2</label>
<br>
<label>
<input type="checkbox" name="testChbx" value="v3">
Вариант 3</label>
<br>
<label>
<input type="checkbox" name="testChbx" value="v4">
Вариант 4</label>
<br>
</p>
</form>
<div id="soder" onclick="calc(0);">Оценка</div>
<script type="text/javascript">
var answers = [["v2","v4"],["v7","v8"],["v10"]]; //Массив правильных ответов по 3 билетам
function calc(ticket){
var chbx = myform['testChbx'];
var sum=0;
for(var i = 0; i < chbx.length; i++){
if(chbx[i].checked) {
sum += answers[ticket].indexOf(chbx[i].value) > -1?1:-1;
}
}
gc.value = +gc.value+ +(sum>0);
}
</script>
Пример крутится на одном билете. Номер билета - параметр для функции calc.
Массив правильных ответов - просто для иллюстрации, как выглядит.
В этом примере правильные и неправильные варианты имеют одинаковые веса с противоположным знаком +-1
Можно сделать, чтобы один неправильный ответ обнулял весь результат по билету.