0 Members and 1 Guest are viewing this topic.
I agree with that, I was playing today and I realized that the main reason that it fails so bad is that it has a poor opening. The hard part is telling the AI how to move towards the center because moving towards the center should never put the piece itself in danger, and this is a possibility if I give center moves a value. Also, whatever system is in place should probably only last about 10 moves, because especially in a 3 piece checkmate situation, it is pointless.One thing I'm going to do to fix this is make the AI consider more move choices, right now it only looks at the last best 4, which is why black always moves the rightmost two pawns. I might also give the move a bonus if it moves a piece away from a wall, but it would have to be small so that it wouldn't put the piece in danger.--Bullet chess at the moment is not possible because to be fast, the AI would suck really bad.Chess960 is a maybe, if I could work out the castling situation it would be pretty easy though.Swappable piece sets will definitely be done. I'll probably also have just a plain letter set too for maximum readability.
I still think a basic opening database would be extraordinarily helpful. I don't imagine (I don't know, though) it would enlarge the file much, and therefore it would act more human in that respect. Also, what do you mean by "only looks at the last best 4"?Also, in bullet chess, thinking is not necessarily significant for much of it. But the AI would have to be highly specialized to counter easy mates for it to be decent, which may make it either significantly enlarge the program or be a separate file, and is probably a lot of work... Yeah, it's probably not worth it. =)Another quick thing— I've done some (in-class) testing, and once or twice it hasn't recognized it could checkmate me. Is checkmate priority at max?
With the version you have, checkmate is not even considered. But on my newest version, if one of the moves is checkmate, it gets a rating of like 4000. Speaking of which: I lost to the AI today. I both failed and succeeded at the same time. I made an AI that could beat me, and I lost to a calculator AI. Oh well, it just keeps getting better.
Might as well post the most recent as I haven't worked on it in a while. Updates look like:Fixed a glitch with best move selection (if there were two great moves instead of one, it might not pick neither)If one of the AI moves is checkmate, it will take itAI is faster It is pretty amazing, the only thing I did to make this faster was replace all the ldir's with a big ldi \ ldi \ ldi loop and I made a 25% speed increase. Who would have thought? But this version will beat you if you're lazy, so watch out.
Personally, I think it'd be awesome if you defaulted the first move to e4/d4. As the program is right now, I still can't show it to my chess buddies without them mocking it for it's opening. As a temporary solution, I don't imagine programming this in would be particularly difficult (what do I know, though), and it would make the AI "presentable" for the duration where center-priority AI is still not there. I know how hard it can be to motivate yourself to program (I've got a whole bucketload of assets for a "Every Day the Same Dream" port, but I have no motivation to make it), but if you could set a date to have center-prioritizing AI done, I think all of us would really like it...
It is pretty amazing, the only thing I did to make this faster was replace all the ldir's with a big ldi \ ldi \ ldi loop and I made a 25% speed increase. Who would have thought? But this version will beat you if you're lazy, so watch out.
And the opening move database is definitely not happening. It is useless code with too many conditionals. What if the opponent responds in an unusual way? You have to make a new set, but what if they do another unusual move... This ends up with >1000 lines of code that will soon become obsolete.