Author Topic: Bishland Numbers  (Read 361 times)

Offline A8balls

  • Copper Member
  • **
  • Posts: 223
      • http://a8s.us
Bishland Numbers
« 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.
Aces & 8s Since 2006

Offline popeye

  • Gold Member
  • *****
  • Posts: 3708
Re: Bishland Numbers
« Reply #1 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.
KONG

Where is Major Kong?!?

Offline CptTrips

  • Plutonium Member
  • *******
  • Posts: 8600
Re: Bishland Numbers
« Reply #2 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?   ;)
Toxic, psychotic, self-aggrandizing drama queens simply aren't worth me spending my time on.

Offline CptTrips

  • Plutonium Member
  • *******
  • Posts: 8600
Re: Bishland Numbers
« Reply #3 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
Toxic, psychotic, self-aggrandizing drama queens simply aren't worth me spending my time on.

Offline JimmyD3

  • Platinum Member
  • ******
  • Posts: 4258
Re: Bishland Numbers
« Reply #4 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.
Kenai77
CO Sic Puppies MWK
USAF 1971-76

Offline Animl-AW

  • Platinum Member
  • ******
  • Posts: 4313
      • Aces High Tech Hangar
Re: Bishland Numbers
« Reply #5 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.

Offline CptTrips

  • Plutonium Member
  • *******
  • Posts: 8600
Re: Bishland Numbers
« Reply #6 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! 🧑‍💻

 ;)
Toxic, psychotic, self-aggrandizing drama queens simply aren't worth me spending my time on.

Offline Shane

  • Platinum Member
  • ******
  • Posts: 7969
Re: Bishland Numbers
« Reply #7 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.
Surrounded by suck and underwhelmed with mediocrity.
I'm always right, it just takes some poepl longer to come to that realization than others.
I'm not perfect, but I am closer to it than you are.
"...vox populi, vox dei..."  ~Alcuin ca. 798
Truth doesn't need exaggeration.

Offline Animl-AW

  • Platinum Member
  • ******
  • Posts: 4313
      • Aces High Tech Hangar
Re: Bishland Numbers
« Reply #8 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.

Offline Animl-AW

  • Platinum Member
  • ******
  • Posts: 4313
      • Aces High Tech Hangar
Re: Bishland Numbers
« Reply #9 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

Offline Randy1

  • Platinum Member
  • ******
  • Posts: 4309
Re: Bishland Numbers
« Reply #10 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.

Offline Oldman731

  • Plutonium Member
  • *******
  • Posts: 9500
Re: Bishland Numbers
« Reply #11 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

Offline Animl-AW

  • Platinum Member
  • ******
  • Posts: 4313
      • Aces High Tech Hangar
Re: Bishland Numbers
« Reply #12 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.
« Last Edit: May 28, 2025, 03:56:25 PM by Animl-AW »

Offline Shuffler

  • Radioactive Member
  • *******
  • Posts: 27317
Re: Bishland Numbers
« Reply #13 on: May 28, 2025, 04:29:19 PM »
How do you figure that?

- oldman

Wonders the same.....
80th FS "Headhunters"

S.A.P.P.- Secret Association Of P-38 Pilots (Lightning In A Bottle)

Offline Shane

  • Platinum Member
  • ******
  • Posts: 7969
Re: Bishland Numbers
« Reply #14 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.)



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.
« Last Edit: May 28, 2025, 04:53:26 PM by Shane »
Surrounded by suck and underwhelmed with mediocrity.
I'm always right, it just takes some poepl longer to come to that realization than others.
I'm not perfect, but I am closer to it than you are.
"...vox populi, vox dei..."  ~Alcuin ca. 798
Truth doesn't need exaggeration.