Rewrite solution code generation

This commit is contained in:
2024-11-28 19:46:02 +01:00
parent ea2fc7f6f4
commit fb9e85552a
3 changed files with 36 additions and 32 deletions

View File

@@ -13,7 +13,7 @@ const accountStore = useAccountStore()
icon="mdi-home" icon="mdi-home"
:title="$t('account.userData.address', 2)" :title="$t('account.userData.address', 2)"
> >
<v-expansion-panels v-if="accountStore.userAccount.addresses.length > 0"> <v-expansion-panels v-if="accountStore.userAccount.addresses != undefined && accountStore.userAccount.addresses.length > 0">
<v-expansion-panel <v-expansion-panel
v-for="address in accountStore.userAccount.addresses" v-for="address in accountStore.userAccount.addresses"
color="primary" color="primary"

View File

@@ -20,22 +20,19 @@ function getDotColor(exerciseGroupNr: number) {
} }
} }
function checksum(num: number) { function generateExerciseKey() {
let cs = 0
for (; num > 0; num = Math.trunc(num / 10)) {
cs += num % 10;
}
return cs
}
function generateExerciseKey(exerciseGroup: number, exerciseNr: number) {
try { try {
let matrikelNr = Number(preferencesStore.registrationNumber) let code = ""
let a = matrikelNr + exerciseGroup * 100 + exerciseNr * 12345678 +
checksum(Number(preferencesStore.registrationNumber)) * 123 for (let i = 0; i < 13; i++) {
return a.toString(16).toUpperCase() if (exerciseStore.exercises[i].solved) {
code += "3"
} else {
code += "0"
}
}
return (Number(code) + Number(preferencesStore.registrationNumber)) * 237
} catch(e) {} } catch(e) {}
} }
</script> </script>
@@ -45,20 +42,7 @@ function generateExerciseKey(exerciseGroup: number, exerciseNr: number) {
<v-row> <v-row>
<v-spacer /> <v-spacer />
<v-col
v-if="preferencesStore.studentName.length < 3 || preferencesStore.registrationNumber.length < 7"
cols="auto"
>
<card-view variant="outlined" >
{{ $t('misc.fulfillYourPersonalDataFirst') }}
</card-view>
</v-col>
<v-col cols="auto"> <v-col cols="auto">
<v-tooltip :text="$t('misc.fulfillYourPersonalDataFirst')">
<template #activator="{ props }"></template>
</v-tooltip>
<outlined-button <outlined-button
prepend-icon="mdi-file-pdf-box" prepend-icon="mdi-file-pdf-box"
@click="generateResultsPdf()" @click="generateResultsPdf()"
@@ -69,6 +53,17 @@ function generateExerciseKey(exerciseGroup: number, exerciseNr: number) {
</v-col> </v-col>
</v-row> </v-row>
<v-row>
<v-col class="text-h5 text-center">
<div>
Persönlicher Lösungsschlüssel:
</div>
<div>
{{ generateExerciseKey() }}
</div>
</v-col>
</v-row>
<v-row> <v-row>
<v-col> <v-col>
<card-view <card-view
@@ -116,9 +111,6 @@ function generateExerciseKey(exerciseGroup: number, exerciseNr: number) {
:color="exercise.solved ? 'green' : 'primary'" :color="exercise.solved ? 'green' : 'primary'"
> >
{{ preferencesStore.language == LanguageEnum.GERMAN ? exercise.descriptionDe : exercise.descriptionEn }} {{ preferencesStore.language == LanguageEnum.GERMAN ? exercise.descriptionDe : exercise.descriptionEn }}
<div class="pt-2 text-h6">
Solution Code: 0x{{ generateExerciseKey(exercise.exerciseGroup.groupNr, exercise.exerciseNr) }}
</div>
</card-view> </card-view>
</v-timeline-item> </v-timeline-item>
</template> </template>

12
test.py Normal file
View File

@@ -0,0 +1,12 @@
import math
matrikel_nr = 10019865
geloest = 1234567654321
key = 2937
code = 0
for i in range(13):
code += math.pow(10, i) * 3
print(code)
print((code + matrikel_nr) * 237)