With your chessSet.bas program my thoughts were it allows clicking the same square twice and clicking outside the board area with funny results. I assume correct inputs are checked and generated by the chess engine so it isn't an issue? As your coding techniques are a little bit advanced for me I can't follow it to suggest any code improvements. When I read
Your chess program seems to get better and better? It would be nice however to save and load games and have undo and redo move buttons.
Another nice feature would be for pieces taken being placed on the side of the board.
I wrote some code to generate your chess set pieces so it could be used on forums such as this where there is no means to store images with the text.
Code: Select all
screenres 400,400,32
dim as any ptr pieces(12)
for k as integer = 0 to 11
pieces(k)=imagecreate(40,40,0)
next k
dim as any ptr chessBoard
chessBoard = imagecreate(400,400,0)
dim as string datum
for k as integer = 0 to 11
for j as integer = 0 to 39
read datum
for i as integer = 0 to 39
pset pieces(k),(i,j),rgb(244,244,0)
if mid(datum,i+1,1)="." then
pset pieces(k),(i,j),rgb(255,0,255)
end if
if mid(datum,i+1,1)="#" then
pset pieces(k),(i,j),rgb(0,0,0)
end if
if mid(datum,i+1,1)=" " then
pset pieces(k),(i,j),rgb(255,255,255)
end if
next i
next j
next k
'draw chessboard
line chessBoard,(0,0)-(399,399),rgb(255,0,255),bf
line chessBoard,(40,40)-(363,363),rgb(255,255,255),bf
line chessBoard,(36,36)-(363,363),rgb(0,0,0),b
line chessBoard,(37,37)-(362,362),rgb(0,0,0),b
line chessBoard,(38,38)-(361,361),rgb(255,255,255),b
line chessBoard,(39,39)-(360,360),rgb(0,0,0),b
dim as integer t
for j as integer = 0 to 399-80
for i as integer = 0 to 399-80
if t=4 then
pset chessBoard,(i+40,j+40),rgb(0,0,0)
else
pset chessBoard,(i+40,j+40),rgb(255,255,255)
end if
t = t + 1
if t = 5 then t=0
next i
t = t + 1
if t = 5 then t=0
next j
dim as integer flipFlag
flipFlag = 1
for j as integer = 0 to 7
flipFlag = -flipFlag
for i as integer = 0 to 7
flipFlag = -flipFlag
if flipFlag = 1 then
line chessBoard,(i*40+40,j*40+40)-(i*40+79,j*40+79),rgb(255,255,255),bf
end if
next i
next j
put (0,0),chessBoard,pset
bsave "cBoard.bmp",0
sleep
for k as integer = 0 to 11
imagedestroy(pieces(k))
next k
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data ".................######................."
data "................## ##................"
data "...............## ##..............."
data "...............# ## #..............."
data "...............# #### #..............."
data "...............# #### #..............."
data "...............# #### #..............."
data "..............### ## ###.............."
data ".............## ## ##............."
data ".............# #### #............."
data "............## ######## ##............"
data "............# ########## #............"
data "............# ########## #............"
data "............# ########## #............"
data "............# ########## #............"
data "............## ######## ##............"
data ".............# #### #............."
data "............### ## ###............"
data "...........## #### ##..........."
data "..........## ######## ##.........."
data ".........## ############ ##........."
data ".........# ############## #........."
data "........## ################ ##........"
data "........# ################ #........"
data ".......## ################## ##......."
data ".......# ################## #......."
data ".......# #################### #......."
data ".......# #################### #......."
data ".......# #################### #......."
data ".......# #......."
data ".......# #......."
data ".......##########################......."
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........#######.########.#######........"
data "........# #.# #.# #........"
data "........# ### ### #........"
data "........# # ## # #........"
data "........# # ## # #........"
data "........# ################## #........"
data "........# #........"
data "........# #........"
data "........## ############## ##........"
data ".........## ##........."
data "..........## ##.........."
data "...........## ########## ##..........."
data "............# ########## #............"
data "............# ########## #............"
data "............# ########## #............"
data "............# ########## #............"
data "............# ########## #............"
data "............# ########## #............"
data "............# ########## #............"
data "............# ########## #............"
data "...........## ##..........."
data "..........## ##.........."
data ".........## ############ ##........."
data ".........# #........."
data ".........# #........."
data ".........# ################ #........."
data "......#### ################ ####......"
data "......# #......"
data "......# #......"
data "......# ###################### #......"
data "......# #......"
data "......# #......"
data "......############################......"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data ".........####....###...................."
data ".........# ##..## ##..................."
data ".........# #### ##.................."
data ".........## ## #.................."
data "..........# # #####.............."
data "..........# ## ## ###............"
data ".........## # ### ###.........."
data ".........# ##### ### ##........."
data "........## # ############ ##........"
data "........# ################# ##......."
data ".......## # ############## #......."
data ".......# # ################ ##......"
data ".......# # ################# #......"
data "......## # ########## ####### ##....."
data "......# ############# ####### #....."
data ".....## ############ ######### ##...."
data ".....# ############# ######### #...."
data "....## ############ ########## #...."
data "....# ########### ########## ##..."
data "...## ######### # ########### #..."
data "...# # ##### ## ############ #..."
data "...# # #### #### ############ #..."
data "...# ###### ###.# ############ #..."
data "...# # # ##..## ############# ##.."
data "...## #..## ############## #.."
data "....## ##.## ############### #.."
data ".....#### ##.## ################ #.."
data "........####..# ################# #.."
data ".............## ################## #.."
data ".............# ################### #.."
data "............## ################### #.."
data "............# #################### #.."
data "............# #.."
data "............# #.."
data "............##########################.."
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data ".................######................."
data "................## ##................"
data "................# #................"
data "................# ## #................"
data "................# ## #................"
data "................# #................"
data "...............### ###..............."
data "..............## ##.............."
data ".............## #### ##............."
data "............## ###### ##............"
data "...........## ######## ##..........."
data "...........# #### #### #..........."
data "..........## ##### ##### ##.........."
data "..........# ### ### #.........."
data "..........# #### #### #.........."
data "..........# ###### ###### #.........."
data "..........# ###### ###### #.........."
data "..........## ############ ##.........."
data "...........# ############ #..........."
data "...........## ##..........."
data "............## ##............"
data ".............# ######## #............."
data "............## ######## ##............"
data "............# #............"
data "...........## ##..........."
data "...........# ######## #..........."
data "...........### ###..........."
data ".............### ###............."
data "....########### # # ###########...."
data "...## ## ## ##..."
data "...# ### ### #..."
data "...# ########## ########## #..."
data "...## ## ##..."
data "....## ###### ##...."
data ".....#############....#############....."
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "..................#####................."
data "..........#####..## ##..#####........."
data ".........## ##.# #.## ##........"
data ".........# #.# # #.# #........"
data "...#####.# # #.# #.# # #.#####.."
data "..## ### #.## ##.# ### ##."
data "..# ### ##..# #..## ### #."
data "..# # #.## ##..# #..## ##.# # #."
data "..# #..# #..# #..# #..# #."
data "..## ##..# #..# #..# #..## ##."
data "...## #..# #### #### #..# ##.."
data "....## ##.# ## # ## #.## ##..."
data ".....# #.# ## # ## #.# #...."
data ".....# ### ## # ## ### #...."
data ".....# ## # # # # # ## #...."
data ".....# ## # # # # # ## #...."
data ".....## # # # # # # # ##...."
data "......# # ## ### ## # #....."
data "......# # ## # # ## # #....."
data "......# # # # # #....."
data "......# # # # #....."
data "......## ############# ##....."
data ".......# ################### #......"
data ".......## ## ### ##......"
data "........# #......."
data "........## ############# ##......."
data ".........# ## ## #........"
data ".........# ############# #........"
data ".........# ## ## #........"
data "........## ##......."
data "........# ############# #......."
data "........# ############# #......."
data "........## ##......."
data ".........##### #####........"
data ".............###############............"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "..................####.................."
data "..................# #.................."
data "................### ###................"
data "................# #................"
data "................# #................"
data "................### ###................"
data "..................# #.................."
data ".................## ##................."
data "................## ##................"
data "...............## ##..............."
data ".......######### ## #########......."
data ".....### ## #### ## ###....."
data "....## #### ##...."
data "....# ###### #### ###### #...."
data "...## ######### #### ######### ##..."
data "...# ########### ## ########### #..."
data "...# ########### ## ########### #..."
data "...# ############ ############ #..."
data "...# ############ ############ #..."
data "...# ############ ############ #..."
data "...## ############ ############ ##..."
data "....# ########### ########### #...."
data "....## ########## ########## ##...."
data ".....## ### ### ##....."
data "......## ##......"
data ".......## ############ ##......."
data "........# ################## #........"
data "........## # # ##........"
data ".........# ############ #........."
data "........## ## ## ##........"
data ".......## ##......."
data ".......# ########## #......."
data ".......## ########## ##......."
data "........### ###........"
data "..........##### #####.........."
data "..............############.............."
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data ".................######................."
data "................## ##................"
data "...............## ##..............."
data "...............# #..............."
data "...............# #..............."
data "...............# #..............."
data "...............# #..............."
data "..............### ###.............."
data ".............## ##............."
data ".............# #............."
data "............## ##............"
data "............# #............"
data "............# #............"
data "............# #............"
data "............# #............"
data "............## ##............"
data ".............# #............."
data "............### ###............"
data "...........## ##..........."
data "..........## ##.........."
data ".........## ##........."
data ".........# #........."
data "........## ##........"
data "........# #........"
data ".......## ##......."
data ".......# #......."
data ".......# #......."
data ".......# #......."
data ".......# #......."
data ".......# #......."
data ".......# #......."
data ".......##########################......."
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........#######.########.#######........"
data "........# #.# #.# #........"
data "........# ### ### #........"
data "........# #........"
data "........# #........"
data "........# #........"
data "........# #........"
data "........# ################## #........"
data "........## ##........"
data ".........## ##........."
data "..........## ########## ##.........."
data "...........## ##..........."
data "............# #............"
data "............# #............"
data "............# #............"
data "............# #............"
data "............# #............"
data "............# #............"
data "............# #............"
data "............# #............"
data "...........## ##..........."
data "..........## ########## ##.........."
data ".........## ##........."
data ".........# #........."
data ".........# ################ #........."
data ".........# #........."
data "......#### ####......"
data "......# ################## #......"
data "......# #......"
data "......# #......"
data "......# #......"
data "......# #......"
data "......############################......"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data ".........####....###...................."
data ".........# ##..## ##..................."
data ".........# #### ##.................."
data ".........## ## #.................."
data "..........# #####.............."
data "..........# ###............"
data ".........## ## ### ###.........."
data ".........# # ## ##........."
data "........## ## ##........"
data "........# # ##......."
data ".......## ### ## #......."
data ".......# ### ## ##......"
data ".......# ## ## #......"
data "......## # # ## ##....."
data "......# # ## #....."
data ".....## # ## ##...."
data ".....# # ## #...."
data "....## ## #...."
data "....# ## ##..."
data "...## # ## #..."
data "...# # ## ## #..."
data "...# ## #### ## #..."
data "...# # ###.# ## #..."
data "...# # ##..## ## ##.."
data "...## # #..## ## #.."
data "....## ##.## ## #.."
data ".....#### ##.## ## #.."
data "........####..# ## #.."
data ".............## ## #.."
data ".............# ## #.."
data "............## ## #.."
data "............# ## #.."
data "............# #.."
data "............# #.."
data "............##########################.."
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data ".................######................."
data "................## ##................"
data "................# #................"
data "................# #................"
data "................# #................"
data "................# #................"
data "...............### ###..............."
data "..............## ##.............."
data ".............## ##............."
data "............## ##............"
data "...........## ##..........."
data "...........# ## #..........."
data "..........## ## ##.........."
data "..........# ###### #.........."
data "..........# ###### #.........."
data "..........# ## #.........."
data "..........# ## #.........."
data "..........## ##.........."
data "...........# #..........."
data "...........## ##..........."
data "............## ######## ##............"
data ".............# # # #............."
data "............## ##............"
data "............# ########## #............"
data "...........## ## ## ##..........."
data "...........# #..........."
data "...........### ###..........."
data ".............#### ####............."
data "....############ ############...."
data "...## ##..."
data "...# #..."
data "...## ##..."
data "....# #### #...."
data "....## ############..############ ##...."
data ".....###........................###....."
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "..................#####................."
data "..........#####..## ##..#####........."
data ".........## ##.# #.## ##........"
data ".........# #.# #.# #........"
data "...#####.# #.# #.# #.#####.."
data "..## ### #.## ##.# ### ##."
data "..# ### ##..# #..## ### #."
data "..# #.## #...# #...# ##.# #."
data "..# #..# ##..# #..## #..# #."
data "..## ##..# #..# #..# #..## ##."
data "...## ##..# #.## ##.# #..## ##.."
data "....## #..# ### ### #..# ##..."
data ".....# ##.# ## ## #.## #...."
data ".....# #.# ## ## #.# #...."
data ".....# ### ## ## ### #...."
data ".....# ## # # ## #...."
data ".....## ## # # ## ##...."
data "......# # # #....."
data "......# # # #....."
data "......# #....."
data "......# #....."
data "......## ##....."
data ".......# ############### #......"
data ".......## ### ### ##......"
data "........# # # #......."
data "........## ############# ##......."
data ".........# ## ## #........"
data ".........# #........"
data ".........# ############# #........"
data "........## ## ## ##......."
data "........# # # #......."
data "........# #......."
data "........## ##......."
data ".........##### #####........"
data ".............###############............"
data "........................................"
data "........................................"
data "........................................"
data "........................................"
data "..................####.................."
data "..................# #.................."
data "................### ###................"
data "................# #................"
data "................# #................"
data "................### ###................"
data "..................# #.................."
data ".................## ##................."
data "................## ##................"
data "...............## ##..............."
data ".......######### ## #########......."
data ".....### ## # # ## ###....."
data "....## # # ##...."
data "....# ###### # # ###### #...."
data "...## ## ### # # ### ## ##..."
data "...# ## ## ## ## ## #..."
data "...# # # ## # # #..."
data "...# # # # # #..."
data "...# ## # # ## #..."
data "...# # # # # #..."
data "...## ## # # ## ##..."
data "....# ## # # ## #...."
data "....## ## # # ## ##...."
data ".....## ## ###### ###### ## ##....."
data "......## ### ### ##......"
data ".......## ##......."
data "........# #........"
data "........## ############## ##........"
data ".........# ## ## #........."
data "........## ########## ##........"
data ".......## #### #### ##......."
data ".......# ## ## #......."
data ".......## ##......."
data "........### ###........"
data "..........##### #####.........."
data "..............############.............."
data "........................................"
data "........................................"