Aces High Bulletin Board

General Forums => Aces High General Discussion => Topic started by: A8balls on May 28, 2025, 09:48:52 AM

Title: Bishland Numbers
Post by: A8balls on May 28, 2025, 09:48:52 AM
The new members coming into the game are automatically sent to Bishops. They build friendships, receive training and gain comfort there. It isn't very often a new player switches sides, so the Bish keep retaining higher numbers of players.
Let's get this changed or membership will certainly continue to drop.
Balls.
Title: Re: Bishland Numbers
Post by: popeye on May 28, 2025, 10:15:23 AM
Seems like I've seen new players show up in Knitland.  Of course, they may have switched from Bish, not sure.
Title: Re: Bishland Numbers
Post by: CptTrips on May 28, 2025, 11:15:12 AM
Seems like I've seen new players show up in Knitland.  Of course, they may have switched from Bish, not sure.

And were they really "new"?  Or newly minted shade?   ;)
Title: Re: Bishland Numbers
Post by: CptTrips on May 28, 2025, 11:20:29 AM
I think the OP has a point. 

Brand new players should probably have their initial country at first login randomized.

The existing logic works fine for returning players.

 :aok
Title: Re: Bishland Numbers
Post by: JimmyD3 on May 28, 2025, 12:05:53 PM
I think the OP has a point. 

Brand new players should probably have their initial country at first login randomized.

The existing logic works fine for returning players.

 :aok

Much as I hate to admit it  :devil, Cpttrips has a good point. Not sure how its done now, I would have thought it was already randomized.
Title: Re: Bishland Numbers
Post by: Animl-AW on May 28, 2025, 12:12:20 PM
When I returned I was put on knits. I used to be rook yrs ago.

Speculations abound.

I can imagine that first country selection may work on the same as auto side switch. Maybe who gas least numbers online at the time they sub. It could very well work off the same algorithm.

Pretty much a HT question. Anything else is ghost hunting.
Title: Re: Bishland Numbers
Post by: CptTrips on May 28, 2025, 12:40:29 PM
Much as I hate to admit it  :devil, Cpttrips has a good point. Not sure how its done now, I would have thought it was already randomized.

Gipity will write it for you. ;)


Quote
Please write me ANSI C function named ChooseInitialFaction.


There is a global Enum type is called Factions.  It has items, Bishops, Knights, Rooks, Neutrals, Administrators, Generic.

The function will simply select a random choice of Faction only result >= Bishops, but <= Rooks.  Those are the only choices useful for an initial customer login.

Return the selected Faction.

Also, please write me a console app unit test harness that That loops 1000 interations and verifies the returned result is always <= Faction Knights.

If the test is passed, print "Function ChooseInitialFaction Passed." and return true else print "**** Function ChooseInitialFaction Failed! ****" and return false.



ChatGPT said:
Here's a complete ANSI C implementation of the ChooseInitialFaction function along with a test harness that meets all your requirements:

✅ Features:
Enum Factions with members including Bishops, Knights, and Rooks.

Random selection of faction limited to the inclusive range [Bishops, Rooks].

Test loop to ensure no value returned exceeds Knights.

✅ ANSI C Code:
c
Copy
Edit
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>

// Global enum declaration
typedef enum {
    Generic = 0,
    Neutrals,
    Administrators,
    Bishops,
    Knights,
    Rooks
} Factions;

// Function to choose a random faction between Bishops and Rooks (inclusive)
Factions ChooseInitialFaction(void) {
    return (Factions)(Bishops + rand() % (Rooks - Bishops + 1));
}

// Test harness for ChooseInitialFaction
bool TestChooseInitialFaction(void) {
    int i;
    Factions result;

    // Seed RNG for repeatable testing
    srand((unsigned int)time(NULL));

    for (i = 0; i < 1000; i++) {
        result = ChooseInitialFaction();
        if (result < Bishops || result > Rooks) {
            printf("**** Function ChooseInitialFaction Failed! ****\n");
            return false;
        }
    }

    printf("Function ChooseInitialFaction Passed.\n");
    return true;
}

// Main entry point
int main(void) {
    TestChooseInitialFaction();
    return 0;
}
✅ Notes:
The rand() function uses time(NULL) to seed, ensuring different results on each run.

The test ensures that all returned factions are within [Bishops, Rooks], inclusive.

You can adjust the test condition if you only want results <= Knights instead — though you specified both >= Bishops and <= Rooks as the valid range for selection, and test for <= Knights. Let me know if this needs aligning.

Would you like the faction name printed during each iteration for debug visibility?






You said:
Yes, please.


ChatGPT said:
Here's the updated ANSI C code with debug printing added so that each selected faction name is printed during the 1000 test iterations:

✅ Updated ANSI C Code with Faction Name Printing
c
Copy
Edit
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>

// Global enum declaration
typedef enum {
    Generic = 0,
    Neutrals,
    Administrators,
    Bishops,
    Knights,
    Rooks
} Factions;

// Utility to convert enum to string
const char* FactionToString(Factions faction) {
    switch (faction) {
        case Generic: return "Generic";
        case Neutrals: return "Neutrals";
        case Administrators: return "Administrators";
        case Bishops: return "Bishops";
        case Knights: return "Knights";
        case Rooks: return "Rooks";
        default: return "Unknown";
    }
}

// Function to choose a random faction between Bishops and Rooks (inclusive)
Factions ChooseInitialFaction(void) {
    return (Factions)(Bishops + rand() % (Rooks - Bishops + 1));
}

// Test harness for ChooseInitialFaction
bool TestChooseInitialFaction(void) {
    int i;
    Factions result;

    srand((unsigned int)time(NULL));

    for (i = 0; i < 1000; i++) {
        result = ChooseInitialFaction();
        printf("Iteration %4d: Faction = %s\n", i + 1, FactionToString(result));
        if (result < Bishops || result > Rooks) {
            printf("**** Function ChooseInitialFaction Failed! ****\n");
            return false;
        }
    }

    printf("Function ChooseInitialFaction Passed.\n");
    return true;
}

// Main entry point
int main(void) {
    TestChooseInitialFaction();
    return 0;
}
✅ Output Example (truncated):
yaml
Copy
Edit
Iteration    1: Faction = Knights
Iteration    2: Faction = Rooks
...
Iteration 1000: Faction = Bishops
Function ChooseInitialFaction Passed.
Let me know if you want to restrict to only Bishops and Knights in the selection logic instead of going up to Rooks.






You said:
No thank you.


ChatGPT said:
You're welcome! If you need any more help—whether it's refining the logic, integrating this into a larger codebase, or building additional tests—just let me know. Happy coding! 🧑‍💻

 ;)
Title: Re: Bishland Numbers
Post by: Shane on May 28, 2025, 01:03:17 PM
The new members coming into the game are automatically sent to Bishops. They build friendships, receive training and gain comfort there. It isn't very often a new player switches sides, so the Bish keep retaining higher numbers of players.
Let's get this changed or membership will certainly continue to drop.
Balls.

While I'm unsure if it's randomized or based on some kind of country numbers, but new people do show up all different sides.   

A possible reason you've noted Bish seeming to get the new players is these players could be joining during early evenings when Bish have been lower numbers in general lately.
Title: Re: Bishland Numbers
Post by: Animl-AW on May 28, 2025, 01:11:53 PM
That’s how it can be done, not necessarily how it’s done.done. There can be other things to check on in those table containers in the functions. Like has your IP or other identifiers been banned.

Its a probable working example.

What it should be, probably is.

Common conspiracies are looking for something rigged. There would be zero gain in doing so. 

We have new and return players on knit side.

Just guessing. Bish and Rooks SEEM to have more older squads than Knits, that alone retains players in a specific side. Both Rooks and Bish often hit mid 40s at prime time. Its rare for Knits to hit 40.  AKs tend to switch sides monthly, they have quite a few pilots, them sifting, with our lower numbers, can change a country population. I haven’t noticed, they may be on Bish side now.

Ii look at new and return players a lot, I’ll take notice and see if I can spot a difference.

Asking HT would be the shirt way home.
Title: Re: Bishland Numbers
Post by: Animl-AW on May 28, 2025, 01:16:28 PM
While I'm unsure if it's randomized or based on some kind of country numbers, but new people do show up all different sides.   

A possible reason you've noted Bish seeming to get the new players is these players could be joining during early evenings when Bish have been lower numbers in general lately.

Yep
Title: Re: Bishland Numbers
Post by: Randy1 on May 28, 2025, 01:54:14 PM
The auto switch thing is doing more damage than good which makes the new player problem posted by 8Balls even worse.
Title: Re: Bishland Numbers
Post by: Oldman731 on May 28, 2025, 03:13:25 PM
The auto switch thing is doing more damage than good which makes the new player problem posted by 8Balls even worse.

How do you figure that?

- oldman
Title: Re: Bishland Numbers
Post by: Animl-AW on May 28, 2025, 03:41:04 PM
How do you figure that?

- oldman

One way it has a negative effect is battling country gang bangs. It sends you to the country with least players, which is fine. But if two country gang bang the two countries could actually have lower numbers, so it sends you there which actually feeds the gang bangers, not the target country, if they have lower numbers. While the target country with higher numbers is split in two. Way off balance.

GB country 1 30 players
GB country 2 30 players
Target country 34 players
Sends you to lowest

But in that situation its 61 to 34

A cpl things can be true at once.  Some good, some bad. Two country gang bangs don’t seem to be in the equation. It doesn’t hurt all the time tho.

I don’t think country bias is happening in new players. I would be shocked if it did.
Title: Re: Bishland Numbers
Post by: Shuffler on May 28, 2025, 04:29:19 PM
How do you figure that?

- oldman

Wonders the same.....
Title: Re: Bishland Numbers
Post by: Shane on May 28, 2025, 04:49:33 PM
How do you figure that?

- oldman
First, let's clarify he's more referring to the auto switchers (green names) as opposed to the side jumpers (6hr timer.) I'm not sure how this would impact new players per se, but it does have an impact on gameplay at times.

ok, hypothetical (actually based on direct observation, lol):  here's an image that may help you visualize how auto switching isn't effective, especially when numbers are below a threshold of about 40 or so people. This is basically every morning where bish will often have double the numbers of knits/rooks combined for a chunk of time (8a-11a CST.)

(https://i.postimg.cc/G2fYTMTw/1kwords.jpg) (https://postimg.cc/HcQjf9tB)

If you have auto switchers (which there are in mornings as bish have numbers, always) bouncing between rooks and knits it creates an instability in limited resources (players to push back against the swarm.)

For example, the bish are now going for rooks in that image. Bish will devote 80-90% of their forces (9) to those few rooks (3) while those knits (2) try and take back bases from bish (2) defenders. 

If you have an auto switcher (or more) bouncing between rooks and knits, you might lose them when you need them most.  There have been times when 7 of the rooks online, 4 are auto switchers who may get bounced to knits at any time messing up defense as those bish target multiple bases, or knits lose them right when they need them to help cap a town for a take.

Once numbers reach that threshold (evenings) the impact is less noticeable as the numbers hit their usual, albeit shifting, populations.  You can note Eagler mentioning that auto switch during evening hours does not necessarily translate into guaranteed action.

If I had my druthers, I'd remove auto switching and lessen side switching to 1-2 hours instead of the current 6.
Title: Re: Bishland Numbers
Post by: Animl-AW on May 28, 2025, 08:58:10 PM
Just a snap shot of tonight, there were 5 newish/return players at prime time, across all 3 countries. of course I didn't ask them if they switched or were assigned.

But the coding above for this function doesn't need to be that long. It could be much shorter and be fair. I think it's over-thought.
Title: Re: Bishland Numbers
Post by: Oldman731 on May 28, 2025, 10:16:06 PM
First, let's clarify he's more referring to the auto switchers (green names) as opposed to the side jumpers (6hr timer.)


I appreciate your and Animal's input.  But I think the whole auto-switching "problem" is overstated.  Because of this thread, when I logged on tonight, I counted 80+ people online.  Including myself, I there were three (3) green auto-switchers:  Me, Eagler, and Rodeo**.  I doubt that we were affecting any imbalance.  Now Shane may be right, that in off-times, when total MA head count is 25 people, it might make a difference.  But otherwise, I don't see it.

- oldman
Title: Re: Bishland Numbers
Post by: Shane on May 29, 2025, 09:18:08 AM

I appreciate your and Animal's input.  But I think the whole auto-switching "problem" is overstated.  Because of this thread, when I logged on tonight, I counted 80+ people online.  Including myself, I there were three (3) green auto-switchers:  Me, Eagler, and Rodeo**.  I doubt that we were affecting any imbalance.  Now Shane may be right, that in off-times, when total MA head count is 25 people, it might make a difference.  But otherwise, I don't see it.

- oldman
tl;dnr - auto switchers are generally unhelpful and often useless to the war aspect. Sure, they have their fun, but that's it... their fun. So, holding up auto switch as some kind of virtue signaling falls flat with me; it's selfish, not communal.  I can honestly point to only 1 or 2 side switchers that play for team and not self.

Agreed it's less of an impact in the evenings when numbers are fairly close auto switching just bounces people around. I've found most auto-switchers to be less than useful to the side they're on; it's more about them scooping up the perk modifier.  Here's a prime example: player M plays low B side in morning, scooping up yummy perks and uses those same perks in the evening to fly a temp/262 against the evening higher side Bs.  In neither case is player M actually helping their side defend/attack bases <--- the "war" aspect that auto switching is supposed to address; but I'm sure they're having their fun.

Here's another freshly minted morning example - there's even a new player that was assigned to rooks. Notice how bish are now going to target rooks, and any incoming auto switchers will bounce to them for a bit, until knits/rooks have evenly basically ineffective stable numbers to either take back bases (knits) or properly mount a defense vs multiple bish attacks.  Knits are also under eny, making attacking bish harder without more players to counter it:

(https://i.postimg.cc/cCWc50TQ/as-ex-1.jpg) (https://postimages.org/)

Now, what happens as often as not, time is the equalizer as bish fail to reset and bish may own 15%+ of both knits and rooks. As knits/rooks log on in later morning/lunch time, they start taking back those bases from bish, giving the impression of and becoming effectively a double team. This is why Eagler struggles to find fights as an auto switcher (ironically,) he used to be knit, and auto switch keeps him there because of the time he plays knits are often low numbers.

By reducing the side switch timer from 6 hrs to 1 or 2 hours (spiez at this point, lofl, pls) it would allow Eagler, or other morning players to assess the overall situation and freely go where the action is concentrated. (My biggest protests are about the fact that it seems in evenings, the double teaming is more prevalent than spreading out the action. I protest even louder at the morning swarm refusing to balance action. instead going all in vs one side at a time - like the screen shot indicates.  But this is a human player issue, not so much eny/switchers issue.
Title: Re: Bishland Numbers
Post by: ZE on May 29, 2025, 10:08:31 AM
tl;dnr - auto switchers are generally unhelpful and often useless to the war aspect. Sure, they have their fun, but that's it... their fun. So, holding up auto switch as some kind of virtue signaling falls flat with me; it's selfish, not communal.  I can honestly point to only 1 or 2 side switchers that play for team and not self.

I was doing it  to help the weaker team, even sometimes the system keeps me in a high number team,  but is there any other action that could help balance the game?  Back to the fun situation, I can recognize it is fun to know other players and fight with them as well....still a problem with no solution to fight or kill Squad members.  :salute
ZE
Title: Re: Bishland Numbers
Post by: Shane on May 29, 2025, 10:13:58 AM

I appreciate your and Animal's input.  But I think the whole auto-switching "problem" is overstated.  Because of this thread, when I logged on tonight, I counted 80+ people online.  Including myself, I there were three (3) green auto-switchers:  Me, Eagler, and Rodeo**.  I doubt that we were affecting any imbalance.  Now Shane may be right, that in off-times, when total MA head count is 25 people, it might make a difference.  But otherwise, I don't see it.

- oldman

But, wait! It gets better!  I've been saying morning play affects the rest of the day, and what I'm starting to see more of is, non-bish log in mornings, take a look and decide to spend their time elsewhere.  I mean, why bother, right?  This will (and is) have spillover effects to the overall game health. Where did that new morning rook guy go? Poof, gone... coming back?  Who knows.

Case in point - imagine you're a dedicated rook or even an auto switcher and you log on to this (and vocally calling this out the past few years has gotten me in all kinds of abuse of .rpt situations - no regrets):

(https://i.postimg.cc/gkNscwG5/swarmbois.jpg) (https://postimg.cc/3d0mnx4C)
Title: Re: Bishland Numbers
Post by: Shuffler on May 29, 2025, 12:09:14 PM
I am about to take a switch to all of you....  :P

 :rofl