Даже не помнил, что у меня такие были. Никогда не играл...
Что они "хотели сказать" в псевдографике - в упор не пойму...
Под Вендой это выглядит так и никак по-другому... В любых шрифтах...
Коротко глянул внутрь - есть короткая вставка в кодах и длинная "бадья" описания...
Code: Select all
'-------------------- This is where the chess books are stored --------------
BookData:
DATA"*rnbqkbnrpppppppp32PPPPPPPPRNBKQBNR*1","E2E4","75","D2D4"
DATA"*rnbkqbnrppp1pppp11p7P12PPP1PPPPRNBKQBNR*2","B1C3"
DATA"*rnbkqb1rppp1pppp5H5p7P9N2PPP1PPPPRNBKQB1R*3","G1F3"
DATA"*rnbqkbnrpppppppp20P11PPPP1PPPRNBQKBNR*1","E7E5"
DATA"*rnbqkbnrpppp1ppp12p7P8N2PPPP1PPPRNBQKB1R*2","B8C6"
DATA"*r1bqkbnrpppp1ppp2n9p7P5N2N2PPPP1PPPR1BQKB1R*3","G8F6"
DATA"*r1bqkb1rpppp1ppp2n2n6p5B1P5N2N2PPPP1PPPR1BQK2R*4","F8C5"
DATA"END"
'---------- Comments on the program -----------------------------------------
' This program was orginally written in interpretive basic and as such
' it employs several things that are no longer in vogue. In Ibasic, a pro-
' gram could be made to run faster by two techinques.. 1. by ordering the
' variables in a Dim statement (the most used variables are accessed first.
' and 2. by putting the most use subroutines at the beginning of the program.
' Ibasic would always look for Gotos and Gosubs by starting at the begining
' of the program until it fould the line number called for.
' I also found that, at least in QBasic, that Gosubs run faster than using
' Sub's.
' Here is a summary of the subroutines used in my program.
' 1. InCheck: is actuall two subs in one. First it locates the king and then
' is finds all pieces attacking that square. It exits the sub upon finding
' a attacking piece and that pieces location is in the variable "K".
' This makes makes the program more useful as it can find attacks on other
' men by setting their location to "K" and going to Attackers:
' 2. Evualuation: is just what the program infers, and can be changed as
' by the operator/programmer as desired. The weights are for trial pur-
' poses only and may not represent the Best.
' 3. Books: is where the program looks to see if an opening book has been
' defined by the program. It is not the most efficent, but it works.
' The books can be expanded simply by hitting Control-Break after the
' program leaves the book subroutine and generates a move on its own.
' At this point pressing 'F6' and printing Book$ you can see what the
' chess board looked like at that point. Simply print that line,
' then press 'F6' again the paste the line at the end of the program,
' preceded by a "Data" statement. Then enclose you suggest move in
' quotes. By adding a number in quotes after the move, you can suggest
' an alternative move. The number is the percentage of the time the
' program will chose the first move.
' 4. Genmoves: is where the program generates all of its legal moves. It
' castle when it can and make enpassant captures when it is possible and
' they are advantageous. The first thing the program does is find a man
' of its own color, then it goes to InCheck to see if that move puts its
' king in check, if so it rejects the move. If not it then goes to the
' Evualuate subroutine, rates the move, and stores it as Best if it is
' determined to actually the best, if not it simply returns to GenMove.
' After finding its best move it falls into the execute the move and
' does just that. After making its move it switches sides and determines
' if the enemy king is in check and goes to HumanInput.
' In the begining of the computer moves "Best is set to 400 if the
' the program is in check when it starts is move gen. or 200 if it is
' not. If after trying to find a legal move and it can't it prints the
' message CheckMate you win or Stalemate, and then quits.
' 5. HumanInput: only accepts 4 commands: "Q" for quit, "S" for save the game
' "L" for loading a previously saved game, or a standard move entered as
' "E2E4" without spaces, however, it in entering a move, you hit a wrong
' key before the last digit is entered, you can hit "x" or "z" or
' any other key and it will void the move and try again. It won't do that
' unless 4 keystrokes have been entered and back spaces are not allowed.
' It checks that you are moving your own man and that the move is legal.
' If so, it makes the move, if not it prints "Illegal" goes back to
' input again. My legal checking is not 100% true, but if you don't
' cheat, it should work. After making its move it goes to see if its
' king is in check and set the approiate flag before going to Books:.
' If it has no more books stored it goes to GenMoves:.
' 6. The subroutines following HumanInput are for calculating the position
' of the chessmen on the board and putting them there. Because some
' moves require moving more that one man "castling" or enpassant there
' are some subroutines that only make half a move before making a full
' move later. DON'T REMOVE THESE SUBROUTINES.
' 7. Initialize: creates the chess board and the centercontol board as:
' chess board centercontrol board
' 99,99,99,99,99,99,99,99,99,99 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
' 99, 0, 0, 0, 0, 0, 0, 0, 0,99 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
' 99, 4, 2, 3, 5, 6, 3, 2, 4,99 0, 0, 1, 3, 4, 4, 3, 1, 0, 0
' 99, 1, 1, 1, 1, 1, 1, 1, 1,99 0, 2, 3, 5, 6, 6, 5, 3, 2, 0
' 99, 0, 0, 0, 0, 0, 0, 0, 0,99 0, 4, 5, 7, 8, 8, 7, 5, 4, 0
' 99, 0, 0, 0, 0, 0, 0, 0, 0,99 0, 6, 7, 9,10,10, 9, 7, 6, 0
' 99, 0, 0, 0, 0, 0, 0, 0, 0,99 0, 6, 7, 9,10,10, 9, 7, 6, 0
' 99, 0, 0, 0, 0, 0, 0, 0, 0,99 0, 4, 5, 7, 8, 8, 7, 5, 4, 0
' 99,-1,-1,-1,-1,-1,-1,-1,-1,99 0, 2, 3, 5, 6, 6, 5, 3, 2, 0
' 99,-4,-2,-3,-5,-6,-3,-2,-4,99 0, 0, 1, 3, 4, 4, 3, 1, 2, 0
' 99,99,99,99,99,99,99,99,99,99 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
' 99,99,99,99,99,99,99,99,99,99 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
' If the computer is black only The outside edges of this
' the signs are refersed. The board are really not needed as
' computer is always at the top only the center square witch
' of the screen. The #'s 99 are correspond to the real chess
' always off the board. board are accessed.
' However. you can put in any values
' that you want to try as these are
' only starting values based upon
' the value of one pawn = 100
' You can try as high as 150 for the
' center squares if you want.
' A final note:
' I have never taken a class on programming, I am self taught, so some of
' my coding may not be the best. If anyone who uses this program wants to
' makes changes, feel free to do so. If you make it play better, or optimize
' any of the coding, please forward the new version of the program so as I
' can record the changes for future releases. I am giving this program as
' freeware to use as you see fit. At the current time it is not very strong.
' It is only a one-ply program, however, it has been stated that the better
' a program plays at one-ply, the better it will play at depth (many-plys).
' You can Email me at: WROGERS824@AOL.COM any comments or changes.
' I deleted the clock subroutines as they messed up the on-board computer
' clock. I just could not figure out how to do it better at this time.
' The program as it stands now has been in existance for 19 years.
' Thanks to all of you. Bill Rogers.