Comments by FergusDuniho
When I tried to test the script for verifying email with my Yahoo address, I never got the email. Looking at email sent to chessvariants.com, I see an email about being unable to deliver this email. It will keep trying until it is five days old, which will be on the 18th. There is a similar email for you, as well as a subsequent one about your email being returned. It is looking like Yahoo Mail has stepped up its spam blocking, which is also blocking even more legitimate mail. Since this server runs on a VPS with a fairly unresponsive hosting company, I'm not sure what to do about improving our mail delivery. That is why I no longer require email verification for creating an account.
but as Jean‐Louis notes, if we can have two Sissas…
Sissa is a name borrowed from a person's name, in this case a mythical inventor of Chess. Presumably, the piece is not understood to be this very mythical inventor of Chess but is just named in his honor. This is different than a title for a rank that is allowed to only one person at a time within a given hierarchy.
I took some steps to prevent the image from tiling, and now it will also work with the GIF, PNG, and JPG rendering methods.
There was a typo in a new bit of code that was preventing you from selecting CSS as your rendering method. For some reason, this preset works only with CSS, and it will not work if you try to display the board as a GIF, PNG, or JPG image. I repaired your log so that it uses CSS again, and you can now continue your game.
I now see that you were using the unprogrammed preset that actually uses a custom grid rather than the vhex shape. So, I was going in the wrong direction when I tried to make it use the vhex shape. So, the problem is different than I thought it was, and I will have to start over. In the meantime, I have reverted it back to the custom grid shape.
This is probably related to some changes I made to the formfields_customization.php script for something unrelated to hexagonal chess. I got it to use the vhex shape again, but when I do, the pieces are misaligned with the CSS board, and the board appears misshapen when it is automatically drawn as an image. So, something else is going wrong. Since it's late, I'll look into this further tomorrow.
In general, hierarchical Christian religions of the sort that have bishops do not have very high ranking positions for women. So, if you want a piece that is a high-ranked female religious figure that fits with bishop, you're not going to find one. Alternatives include using a neologism like Cardinaless or abandoning one of your requirements for naming the piece. Mixing religious titles from very different religions doesn't work well, because Christianity, from which we get bishops, doesn't easily mix with other religions. Diagonal moving pieces do not always have religious names. For example, the Queen moves diagonally but doesn't have a religious name.
The drug is heroin. Heroine is the feminine form of hero, but its usage has become less common.Supergirl used to be called a superheroine, and now she and other superheroines get called superheroes. My main issue with the name heroine is that it is kind of generic.
I don't know what a Pythia or a Pythoness is, but the latter brings to mind a lamia rather than something religious.
Another suggestion I would make is Baroness. It has the B for Bishop, the N for Knight, and while it lacks a K, it is a royal title, and it has an R for roi, the French name for the King.
There are a few problems with the name Popess:
- Unless you're counting Pope Joan, there has been no such thing.
- Presumably, there would be only one Popess if there were one, because it would be a female Pope, but your game gives each player two of them.
- The word derives from a word meaning father. Presumably, the word for a female equivalent of a Pope should derive from a word for mother.
Here are some possible alternatives:
- Mother Superior - the highest rank reached by nuns in the Catholic Church.
- High Priestess - a common term for a high ranking female cleric, and it is used in the major arcana of the Tarot.
- Bokononess - a made-up word formed from the name of a fictional religion portrayed in Kurt Vonnegut's novel Cat's Cradle.
Judging by the diagram, this is the Korean version of the Leo, which combines the Cannon and Vao from Chinese Chess.
All that verification checks is whether you can receive our email. If you can't, then marking your account as verified won't fix that. If you really want to receive emails about your moves, I recommend using a Yahoo account, as it accepts our emails better than Gmail does.
I found some functions for converting between the RGB and HSL color spaces, and using them got rid of the problems I was having with making the Black Motif or Magnetic pieces white. However, using them to make the Black Alfaerie pieces white would turn them grey, and trying to make White pieces grey would leave them white. To avoid these problems, I had the function choose between the old RGB recoloring method and the new RGB->HSL->RGB recoloring method based on the relative luminosity of the two colors and on whether it was converted from a true color image. If the new color has a higher luminosity, and it was not converted from true color, it will use the new method. Otherwise, it will use the old method. In my tests, this seems to be working out for the Abstract, Alfaerie, Magnetic, and Motif pieces.
In modifying the form for customizing the appearance of the board for an ongoing game, all form elements were disabled, and it took me a while to figure out what to do. That clued me in that it wasn't working in an intuitive manner. So I changed how it works. Instead of expecting you to choose the Custom theme before you can change the appearance of the game, any change to a form element for changing the appearance automatically changes the theme to Custom. As long as your theme remains set to Custom, the changes you make will be accepted. If you change your theme after starting to make custom changes, it will go with the theme and ignore the other values you set for changing the appearance. I added fields for choosing the color of Black and White pieces. However, I have not integrated these into themes.
But the anti-aliasing causes pixels on the boundary of the black outline and the colored interior to be darker versions of the interior color, by mixing in the black. So simply looking for an exact match of the original color fails to replace the boundary pixels.
I already took that into consideration.
This problem can be solved, though: you could test every pixel for the value of the brightest RGB component, and deduce from that by which factor it is darkened compared to the interior color. And then darken the replacement color by the same factor.
Here's what I'm doing. I collect all the color indexes. For each color index with a non-zero alpha value, I make a determination of whether it belongs to the outline of a piece or to its coloring. I do that with this conditional:
if (color_diff(array($cv["red"], $cv["green"], $cv["blue"]), $original)
<= color_diff(array($cv["red"], $cv["green"], $cv["blue"]), "black")*2) {
The color_diff function returns the greatest difference between one color's minimum component value and the other one's maximum component value. I added the *2 to prevent some errors, and that part now seems to be working well. If it belongs to its coloring, I recolor each RGB component with this function:
function recolor_component_as ($originalvalue, $currentvalue, $newvalue) {
if ($originalvalue == 0)
return $newvalue;
return min(255,round($newvalue*($currentvalue/$originalvalue)));
}
One remaining problem is that when I try to color the Black pieces white, I get an aquamarine fringe around the Black Motif pieces. In this case, $originalvalue will be 255 for the red component and 0 for the green and blue components, and $newvalue will be 255 for all three components. So, it recolors some edge pixels with positive values for green and blue but with 0 for red, resulting in aquamarine. So, I might have to factor in the value of each component when deciding how to recolor each component. But when I tried that earlier, I got some undesirable results.
But the anti-aliasing causes pixels on the boundary of the black outline and the colored interior to be darker versions of the interior color, by mixing in the black. So simply looking for an exact match of the original color fails to replace the boundary pixels.
I already took that into consideration.
This problem can be solved, though: you could test every pixel for the value of the brightest RGB component, and deduce from that by which factor it is darkened compared to the interior color. And then darken the replacement color by the same factor.
Here's what I'm doing. I collect all the color indexes. For each color index with a non-zero alpha value, I make a determination of whether it belongs to the outline of a piece or to its coloring. I do that with this conditional:
if (color_diff(array($cv["red"], $cv["green"], $cv["blue"]), $original)
<= color_diff(array($cv["red"], $cv["green"], $cv["blue"]), "black")*2) {
The color_diff function returns the greatest difference between one color's minimum component value and the other one's maximum component value. I added the *2 to prevent some errors, and that part now seems to be working well. If it belongs to its coloring, I recolor each RGB component with this function:
function recolor_component_as ($originalvalue, $currentvalue, $newvalue) {
if ($originalvalue == 0)
return $newvalue;
return min(255,round($newvalue*($currentvalue/$originalvalue)));
}
One remaining problem is that when I try to color the Black pieces white, I get an aquamarine fringe around the Black Motif pieces. In this case, $originalvalue will be 255 for the red component and 0 for the green and blue components, and $newvalue will be 255 for all three components. So, it recolors some edge pixels with positive values for green and blue but with 0 for red, resulting in aquamarine. So, I might have to factor in the value of each component when deciding how to recolor each component. But when I tried that earlier, I got some undesirable results.
It works with the Alfaerie set. To work, it has to know the primary color of the piece. This is stored in the variable $originalwhite or $originalblack, and the value of each variable must match a color actually used in the image. I have set their values in the main body of the code for Abstract, Alfaerie, Magnetic, and Motif pieces, and I have set their values in individual set files for some other sets. I have thought about adding code that would identify the most common foreground color in each piece image, as it already goes through each image pixel by pixel to get the color indexes, but I'm not sure if this would be appropriate for some pieces, such as pieces with textured coloring from photographs.
I modified the showpiece.php script to change the color of the piece. This may later be used with the Table and CSS rendering methods to recolor the pieces, and I may modify the pc shortcode to include a color option. Here's a violet King.
I turned the code for recoloring pieces into a function, and I added the ability to recolor pieces to the circular and spherical boards and to the Diagram Designer. But I still need to do some work on the forms.
The recoloring of pieces is working very well now. Even with the Alfaerie pieces, it looks like they were originally the color they were recolored to. For some sets, there are some glitches when trying to recolor the black pieces as white, but that's usually something no one will want to do.
In the past, we had design contests featuring a number of spaces that corresponded to Hans Bodlaender's age. The last of these was 20 years ago when he was 42. Since then, we haven't done any more, because it is a lot of work. But maybe we should do some more since they do help encourage creativity. Since I'm younger than Hans, we could use my age to get some of the board sizes we've missed. I turned 55 on Saturday. It's also significant, given that Hans is from the Netherlands, and this site is physically located in the Netherlands, that the King of the Netherlands turned 55 today. And since we can't say for sure that we will be running a design contest in 7 years, we could do 55 and 62 together as a 55 or 62 space design contest.
Today I've been working on allowing players to change piece colors when the board is displayed as an image. Recoloring is not available for boards rendered as tables or with CSS. It works best for the Abstract pieces, because they are the simplest in design. It also works for Alfaerie, Magnetic, and Motif pieces, but the greater detail of these pieces makes a perfect recoloring job more difficult. For the new Alfaerie pieces, there is one more issue. It has to convert them into 256 color palette images before recoloring them. So, they don't look quite as good as the unrecolored images. As long as you don't change the color, the pieces will not be recolored, and they will look as they normally do. I plan to work on this more tomorrow, but for now, I have copied my work to the main server to keep it from being overwritten by the backup at midnight.
I'm looking at the diagrams on my Likebook Mars at night, and on its monochrome e-ink screen, I cannot tell apart the red and blue pieces in the diagrams. At best, they are slightly different shades of black. In the diagram I made, the red pieces, which belong to White, appear even darker than the blue pieces, which belong to Black, which is opposite to how they should look in black and white. For the sake of accessibility for color-blind people and people using e-ink displays or black and white printouts, piece colors with more light/dark contrast would be more suitable.
25 comments displayed
Permalink to the exact comments currently displayed.
Although I couldn't receive the required email, I cheated by looking at the undelivered email sent to chessvariants.com. Using the code provided in that email, I was able to verify my email address after I fixed some bugs in the change_password.php script. Basically, I had misnamed some columns by reversing the order of the two words composing their names. So, if you can get the email, you should now be able to verify your address.