STUCI Classic

STUCI auto chess program for yahoo
Post Reply
User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

STUCI Classic

Post by zappa_engine »

=====
03/12/09
The first new features to be added to STUCI Classic in a while, is now here. It is the HeavyThought(tm) time management modification to improve engine play and also a time patch that nearly eliminates all loses due to running out of time or lag. HeavyThought works with a time factor, which is hard-coded as 2 or 200% to double the engine's think time in the middle stages of the game. If the engine can build a lead in these parts, it will have no trouble finishing out the opponent in the final stages, especially with the time patch also in place. In many cases, the engine will hold on for a draw if it can not build the lead, and if it happens to exit the HeavyThought mode without building a lead, then the engine would not have won anyways in standard play. HeavyThought works until it reaches below a certain time, and then it turns itself off.

Finally these new features are not implemented in time-incremental games. For one, engines do not have trouble with timing out when there is incremental play. For two, heavy thoughts in incremental play would mean the engine would go into HeavyThought mode right after an increment is added, and then it would switch to time save mode after the next move, and then after another increment of time is added, back into HeavyThought mode. I figure this is not good to switch between modes so I disabled it and let the engine handle incremental play.
stuci-090312-lite-beta.zip
=====
01/27/09
There was a little change in Yahoo's log in page for captcha. The fix is simple for any STUCI script, just run a find and replace on "testword" and replace with "captchaAnswer".
stuci-080511-lite-update-090127.rar
=====
09/19/08
I'll be releasing a highly unstable version of STUCI Classic within a day or two. I'll be going through the code to make sure I don't release any super-sensitive information out. Yes, the new protocol will be in there (captcha-less logins, 2 week profile memory, and more info can be found in the private post I moved to public now). Take care guys.

New changes: http://www.autochess.com/forum/viewtopic.php?f=14&t=404
Technical details: http://www.autochess.com/forum/viewtopic.php?f=14&t=405
stuci-classic-080614-prerelease.zip
=====
06/13/08
I am thinking about modularizing the networking and login routines. This should allow users to log onto multiple servers at once, or multiple rooms at once. To manage the connections, an interface would need to be created. I believe something as simple as typing this in the command would be good.

list net
set net #

So when a user wants to list the net connections, it would display a line item view with the user id logged in and the room id. The main display would only show the current connection's chat. To display another room's chat wouldn't be hard but how to go about displaying that information would be awkward if there was a long backlog of information. I'd have to create a browse/log system and that's not desired by me today. So the simple way is to ignore messages from other net connections and only process room/table data live.

Speaking of multiple connections, imagine linking room chats together by relaying messages back and forth. It's an awesome idea but would probably cause Yahoo server to boot due to flooding of messages. Although flood control could be implemented.

[chess_adv/3/zappa_engine] kibitz: hello
[chess_adv2/14/fasterlol] kibitz: hey, examples of cross server message display
crosslink shouts: [chess_adv/zappa_engine] hello guys. talking to you from another server, write back to me by prefixing your messages like this crosslink: hey back!

Actually, the above method isn't such a bad idea to manage chats across servers. Just another crazy idea for now...

Oh and to go with this idea, I would have to limit the user to play one chess game at a time. So by using the in progress game flag, I would disable starts on other tables. And starting any other game would cause the user to stand(and sit again probably) to clear any start game requests. Starting a game with the opponent already having requested start will cause the user to do the same before starting. Starting the game by requesting it in multiple tables, and then having multiple opponents accept before user could reset the start requests themselves would mean auto-resign on other tables (no ratings lost before 30 sec remember).

=====
06/05/08
This project has been renamed to STUCI Classic. ;)

=====
06/05/08
I didn't really do much of anything except restore the ability of captcha's to be shown after Yahoo did a minor web update to their login page, so the version is the same here. Also, this is the first time I edited these files in Windows, so when I saved it, it added Windows linebreaks, so the file size expanded. I can't imagine how it will look when I return to a Linux OS to edit the files since it looked awful in Wordpad/Notepad when I tried to update the code. Here's the code fix I applied:

if ($pic =~ m%http://ab.login.yahoo.com/img%) {
my $captcha=$ua->get($pic,':content_file' => './captcha.jpg');
}

stuci-080511-prerelease-captcha-restore.zip
stuci-080511-lite-prerelease-captcha-restored.zip
=====
05/11/08
Currently a live stealth edit here. Will be doing a quick update to STUCI. Shouldn't be noticable by anyone but I just want to make these notes here of changes as I do them. It's been a while, and these changes are pretty small so no need to publicize them...
ics_draw code adjusted to check proper turn. (thanks matematiko)
flood rules relaxed (lobby was 4 spams/10 seconds, now 6 spams/15 seconds, room was 4/10, now is 8/15)
delayed boot for sitting down at a table without pressing start, and after a game ends. cancelled if player hits start.
some verbosity(debugging messages etc) cleaned up
fixed delayed boot (was delay booting in 45 seconds instead of programatically defined)
stuci-080511-prerelease.zip
stuci-080511-lite-prerelease.zip
=====
05/05/08
What does STUCI stand for? Server To UCI. That's right, it was intended as a direct link between Yahoo, the server, and UCI, the engine. There would be no winboard needed. There would be no fritz needed. In fact, there will be no extra programs taking up memory and becoming a resource hog. You get more control over the game experience. Are you thinking about switching up engines in between games? No problem. What about switching up engines midgame!?!? No problem. How about changing game settings? Yes, that's doable midgame also. That's the power of having direct access to the UCI. You want scores? More information on the engine node speed? How about what line of moves the engine is thinking about? It's all available. Here is just the first perl file I'm releasing as proof of concept. You can control any UCI engine here through a perl file. This will be integrated into STUCI at some point into the future.

For starters, if you want to play around with it, you will need to have Perl installed. You will need to edit the script variables and point it to the correct location of the UCI engine. And you will need to know some UCI commands. To get you started, after you load up the script, you will have a command box to type to the UCI engine. The first thing you do is say hello to the engine. You do this by issuing the command 'uci'. It's going to return to you it's options that you can change, and then it's going to say, I'm ok 'uciok'. After that just so you don't have to play around too much, you can type 'go' to see instantly make a move. The response will be a bestmove. Another thing you can try typing is 'go ponder'. This will start the engine thinking on the oppponents move! It's currently set up to display 5 seconds of information and then cut back to the command box. But if you press enter you can see what else it's thinking for another 5 seconds. The final command to get out of ponder mode is 'ponderhit'. This means the opponent made the predicted move the engine was pondering so that's how the engine gains an advantage during the opponents turn. If the opponent didn't make the right move, then the engine is issued a 'stop' command and another go command with the board position. Anyhow, in depth uci game play is not the purpose of this post but I wanted to give you guys a sample of how it works.

Here's the conceptual file now :Bravo (NOTE: another beta product)
stuci-pipe-demo.zip
=====
10/30/07
Okay, another tester/developer release. Just cutting and pasting from my todo file so you can get an idea of what's new.

user database stored to external file stuci.dat
blacklist implemented
flood detection
special styles board codes (13+99 unofficial)
redundant code removed (getopt 'pl', opcode 0x62 versus 39, board refresh during top_clock)
flag conditional fixed
users/credits modulized so as to clean up clutter
login fixes (quit works, captcha verification)
hanging fork fix (exits wouldn't exit)
cycle and recover commands
bootmsg variable
credits expanded fully (credit multiplier, loses, draws fees)
stuci-071030-prerelease.zip
=====
10/24/07
Latest (pre)release. I still don't feel comfortable taking the testers/developer tag off this version of STUCI so user beware, it's my disclaimer :P
stuci-071024-prerelease.zip
=====
10/22/07
Again, this is testers/developer version of STUCI. I should note no version of STUCI will ever be supported by me. It's just a personal project I share that some people find useful.
stuci-071022-prerelease.zip
=====
10/17/07
Hey I'm just going to edit this top post with new information so it can be easily found. This is a testers/developers only version of STUCI or for those who like to live on the edge.
stuci-071017-prerelease.zip
=====
10/15/07
I'd like to share STUCI here. If it is against the administator's wishes, feel free to remove this post.

STUCI is a personal project of mine to address the shortcomings I see in YaY. I just happen to like to share my work with others and hope they appreciate it.
Originally, I just started with this project by bugfixing and such. Then I decided it would be neat if I could interface UCI with YaY directly instead of having to go through the hoopla of loading up Fritz. STUCI is an acronym of Server-To-UCI. Later, I found out about polyglot. But I still find it interesting to see if I can interact with the UCI engine protocol directly as you can do some pretty interesting things then. Maybe I'll share more information on that later. At the moment, my work with UCI interface is isolated outside in test modules. The STUCI I released is my patched version of YaY (minus that UCI work until it's matured enough to be released).

This is my latest work, which uses the original getapplet-gui.pl as a base for the login and then added captcha support. I also realise the captcha.jpg was downloading corruptly in windows and that was fixed here. It's been tested and working on my windows xp machine. As well, I included code to launch winboard/xboard with polyglot automatically. It helps in my linux environment because I don't have to open up two shells. It most likely works in windows too but I haven't tested.

This link is for release 071014. http://www.bestsharing.com/f/CAqkcUc348447 [obsolete link]
Enjoy!
You do not have the required permissions to view the files attached to this post.
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
dene
Co-Admin
Co-Admin
Posts: 407
Joined: 04 Oct 2007 07:46
Location: United Kingdom
Contact:

Re: STUCI

Post by dene »

Ive tested this today, and highly recommend swapping your current PL to this one ;-)

User avatar
g00dtr
Site Admin
Site Admin
Posts: 144
Joined: 27 Sep 2007 11:55
Location: Turkey

Re: STUCI

Post by g00dtr »

thanks zappa

User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

Re: STUCI

Post by zappa_engine »

10/17/07 update on first post...
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

Re: STUCI

Post by zappa_engine »

10/24/07
STUCI now has another secret weapon up its sleeves... I don't want to spoil the surprise though but I want to see if you guys can figure it out :D
Another test release coming out some time now (within 2 days). EDIT: released now
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
matematiko
Co-Admin
Co-Admin
Posts: 1511
Joined: 17 Oct 2007 13:32
Location: Texas USA

Re: STUCI

Post by matematiko »

My wild guess is that you are releasing STUCI in c.

Will see.

Cheers
Using engines to cheat:
- It is not ethical,
- It is useless, nothing is gained (how can one be proud of a score earn with dishonesty?)
- You will be baned, sooner or later,
- It gives us (the true chess engine players) a bad reputation.

User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

Re: STUCI

Post by zappa_engine »

I have no plans to release STUCI in C.
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

Re: STUCI

Post by zappa_engine »

I thought I'd update on what I'm working on with STUCI now.

1. Blacklist partially implemented... at the moment, it ignores shouts (spammers) and auto-boots. here's a sample of my meanness.

[13:33] fics% ignore shun
Blacklisting shunzhu22...
[13:33] fics% Game 42: shunzhu22 stands up.
[13:33] fics% Game 42: shunzhu22 is no longer observing.
[13:33] fics% inv shun
Inviting shunzhu22 to table 42.
[13:33] fics% Game 42: shunzhu22 is now observing.
[13:33] fics% zappa_engine(2244)[42] kibitzes: shunzhu22> Blacklisted: Owner requested ignore
(kibitzed to 1 players)
[13:33] fics% Game 42: zappa_engine has booted shunzhu22 from the table.

Yes, it gives a reason and you can define that reason if you want. I'll probably want to change that ignore command to blacklist and auto-boot right at that instant if the situation needs it, and make the new ignore command simply ignore kibitz and ignore shouts (but not auto-boot).

2. Some people may have seen me testing out the instant play and noticed you can toggle it on and off. I've went further with this by making use of the pause and resume feature I added last update so I could delay the start of the game by 50 seconds or so. So if you should feel a bit laggy in quick games, toggle it on at the right moment. Anyways, this is a feature for users of polyglot or direct uci (not there yet). Basically, I am modifying the style12 data to say, we have 0 seconds to make a move, tricking it into moving instantly.

3. I am updating the clock/time routines. It is currently broken causing the flag routine to be broken as well since it depends on it. As such, I will be implementing an auto-flag based on the timer information it gets from the server instead of depending on xboard's autoflag feature. What was happening in my instant games was that it wouldn't flag users since it was tricked into believing it has zero time itself.

4. Bug fixes, logical reorganization of code. Credit system functionally modulized. Etc...

P.S. The secret weapon I mentioned earlier... it is fools mate detection and mate delay. I got annoyed with people coming in, and playing 1. ..f6, 2. ..g7. It'll wait until 30 seconds into the game before it'll make its checkmate move. It's going to be obsolete anyhow, as I have a better method in the works for delayed mate in all situations if it would end the game before 30 seconds.
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
dene
Co-Admin
Co-Admin
Posts: 407
Joined: 04 Oct 2007 07:46
Location: United Kingdom
Contact:

Re: STUCI

Post by dene »

All sounds good mate... :ok

User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

Re: STUCI

Post by zappa_engine »

10/30/07
Bump for all the testers... let me know of any bugs (hopefully the ones I don't already know about)
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
dene
Co-Admin
Co-Admin
Posts: 407
Joined: 04 Oct 2007 07:46
Location: United Kingdom
Contact:

Re: STUCI

Post by dene »

Ive found a bug with the latest test version stuci-071030

After joining a table, if you try and leave that table by typing the usual command in the ics you get 'command not found' or a similar message. meaning to play at another table you must close the ics and re-log back in again.

This is the only bug or problem Ive found while testing this latest version here, apart from this, it does seem a very stable fork of YtoICS, ..auto blacklist when table flooded etc works nice too :ok

User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

Re: STUCI

Post by zappa_engine »

I should admit I know of some bugs but I have been busy on other things lately.
1. Bug with people who have capital letters in their username. (I don't have a rare account to test and fix these bugs, I just put in a quick fix and it didn't work I later found out..)
2. Flood settings is too sensitive (not really a bug but annoyance) -- sorry it's auto-blacklisting chessy and then some who spam slower than the spam rate are getting by. It needs tweaking. For example it's set to about 5 spams per 15 seconds? I believe some people are still spamming about 10+ lines at a slower rate than that but it's still spam. While Chessy advertisements are getting blacklisted for about 6 lines. So I may raise that limit to about 7 lines per 30 seconds. That should fix both problems.
3. Other things, probably listed in the todo.txt file already.

Oh, Dene. I'm not sure I understand what the bug is with the tables and not being able to leave. I did specially remove the unobserve command because it was redundant with the observe command. If you're on a table and you want to leave, you can just observe it. So observe works as both ways and unobserve was just an alias to the same observe command.

Now I did this because I put in a new command called users, and I wanted to use the 'u' alias as a shortcut for it.
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
chess
Member
Member
Posts: 14
Joined: 03 Oct 2007 21:56

Re: STUCI

Post by chess »

i liked this blacklist idea, but how can i disable it?

User avatar
zappa_engine
Moderator
Moderator
Posts: 117
Joined: 09 Oct 2007 23:28
Contact:

Re: STUCI

Post by zappa_engine »

The user commands (which would allow you to manage the user list) haven't been fully written yet. If you want to remove someone from the blacklist, you can edit the stuci.dat file and relog. If you want to actually disable the blacklist, you'd have to modify the code which you or anyone is free to do.

While I'm here, I should note that my attention hasn't been on STUCI for some time now but as soon as the new rumored YaY is released I may look at it and integrate/merge changes and possibly update these commands.
http://www.youtube.com/watch?v=gNASSON_JMU
Concerning STUCI and why it's never really done... here's a metaphor: Instead of being a construction worker, I'd rather be an architect.
Losing too many games because of a slow PC? No problem, nUCI it!

User avatar
matematiko
Co-Admin
Co-Admin
Posts: 1511
Joined: 17 Oct 2007 13:32
Location: Texas USA

Re: STUCI

Post by matematiko »

.........but as soon as the new rumored YaY is released ..........
A little bird told me that the rumor it is just that...a rumor, the same little bird told me that the author has lost the drive to continue future development.

I hope is not true !!!!!!!
Using engines to cheat:
- It is not ethical,
- It is useless, nothing is gained (how can one be proud of a score earn with dishonesty?)
- You will be baned, sooner or later,
- It gives us (the true chess engine players) a bad reputation.

Post Reply