-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scoring problems #178
Comments
Furthermore if USE_CONTINENT_LIST_ONLY gets dropped CONTINENT_LIST_POINTS will not be applied at all. |
Part 1 of the problem got fixed by PR #189. While thinking about the second part it showed that there is no easy solution. There are two main reasons for that: Problem
Possible solutionI would like to suggest a complete new mechanism which (hopefully) will avoid these problems and can led to a much more clean scoring code.
Scoring will be simple: a) Assume 0 points I suggest two new keywords:
More than one of each keywords are allowed in the config file. They are cumulative so you can split a long list of countries to more than one line. DiscussionWith the above changes we should be able to a) drop CONTINENT/COUNTRYLIST_POINTS entirely from keywords (as we do not need them anymore) and ignore USE_COUNTRY/CONTINENTLIST_ONLY for scoring (but keep functionality for counting of multis). b) change the other keywords (ONE-POINT, ..., MYCOUNTRY_POINT, ..., DX_POINTS) to use the above mechanism internally. As far as I can see, these scheme should solve most of the cases. If not, please drop a note. As that would deprecate some keywords I think the suggested change needs at least a new minor number (maybe tlf 1.5). Any comments are welcome. |
See https://github.com/dl1jbe/tlf/tree/new_scoring for a proof of concept implementation. |
Partly related: |
Looks like preparations for some EA contest. But was already dead in 0.9.10 - the oldest version I could found. The complete addarea.[ch] should be dropped. |
Another point for scoring:
I think that part of the log is not an input field in the strict sense: it was written based on some (potentially different) rules. Logically loading should kind of replay the inputs (~band/time/call/exchange) and update score/mults accordingly. Something like the way readcabrillo is doing it. Not too nice with all the "magic" global variables, but we don't have better at the moment. At least scoring/mults got managable with the introduction of contest defs. |
I think the origin of the above code lies in the way contest results where handled in the 80ies and 90ies. You had to hand in a written paper with your multis marked and your claimed points written. So in case TLF got points or multis wrong you could just leave TLF, correct the file and reread it in. Afterwards TLF used whatever you told. In newer times the contest organizers are scoring multis and points by themself, so that feature really is no longer useful. I will open an issue and assign it to me. |
Is there anything open for this issue? |
The problem of USE_CONTINENTLIST_ONLY (see second comment) is still unsolved. Also open is a discussion of the suggested change of country and continent scoring from 20 Nov 21. |
I see.
In addition current Country lists have typically 1 or 2 entries and there is normally one list per contest. So not sure if the change of format is worth it. (even if it's more generic, for sure) |
A good test vehicle would be ARRL-DX. |
Yes, unluckily we also have no clear distinction between keywords for point scoring and multiplier handling. Some of the keywords have side effects for adding the QSO at all (see handling of non W/VE stations for some ARRL contests). We need to sort that out.
It is basically the same as current code (see default handling on scoreContinentOrCountry() in score.c) but handles also the problem with CONTINENTLIST and CONTINENTLIST_POINTS set if USE_CONTINENTLIST_ONLY not set. And that is missing for the original problem of this issue. I will prepare a PR for it.
That is true. But I am not sure if it is used widely.
The idea of my suggested changes were more longterm - to try out new generalized rules for point and mulit scoring (which avoid most of the special case handling we have now) as an optional experiment and later on switch to a clean new sets of rules with a major version change of TLF. |
I have to correct myself. Original code returns 0 if actual country is my.country and neither country_points nor continent_points are set. Your code continues the checks for the other point sources (similar for the other ones). |
See dl1jbe@b2702d1 for a possible implementation. One note:
|
Looks good. Even if we change the scoring logic it becomes more logical and easier to follow/explain, which is a good thing. The *ONLY keywords can be then dropped. Well, apart of the use of |
Ok, that means we should drop the initial cases handling the 'c/c_only' cases also. Same results can be reached with leaving the other point settings undefined. The 'veto' handling came with the patch that introduced the country/continentlist and looks like a quick hack. Similar problems comes from the double use of the lists to control exclude multipliers (EXCLUDE_MULTILIST). I think it is urgent to sort that out and find a clean solution. |
See PR #390 |
SP3RXO reported some problems with the scoring logic.
CONTINENTLIST=EU,AS
COUNTINENT_LIST_POINTS=2
USE_CONTINENT_LIST_ONLY
COUNTRY_MULT
gives 2 points for AS stations but -1 (!!!) for EU stations.
The text was updated successfully, but these errors were encountered: