Chess Project Report
Chess Project Report
(083)
{Project Report}
Particulars Of Student:
Class: XI - E
1 | Page
Name: HARMEET KAUR
Contents
A. Certificate B.
Acknowledgements C.
Main Report
● Introduction D. Hardware and
Software requirements E. Outputs with
Corresponding Coding F. References
G. Bibliography
2 | Page
CERTIFICATE
NAME:
ROLL NO:
CLASS:
_____________________
3 | Page
ACKNOWLEDGEME
NTS
Arnav Singh
XI - E
4 | Page
MAIN REPORT
This is a basic offline chess program that I made using
python.
The code allows you to play chess locally with a friend, on
one device only. It takes advantage of all the intricate
chess mechanics and is a text based game. It utilizes
standard chess notation for movement.
Software
Configuration:
●Python 3.7
●IDE - Spyder through Anaconda
Navigator
7 | Page
Moving of a piece:
Ending a game:
9 | Page
CODE
blackpieces=[chr(9818),chr(9819),chr(9820),chr(9821),chr(9822),chr(98
23)]
whitepieces=[chr(9812),chr(9813),chr(9814),chr(9815),chr(9816),chr(98
17)]
turn=1
def
MAINcheck(board,initialcolumn,initialrow,chesspiece,finalcolumn,
finalrow,initialposition,finalposition):
global turn
def legalmove():
board[initialrow][initialcolumn]=' '
board[finalrow][finalcolumn]=chesspiece
move=True
selfcheck=True
if turn%2==1:
selfcheck=False
elif turn%2==0:
selfcheck=False
move=False
move=False
move=False
# move=False
else:
if chesspiece==chr(9816) or chesspiece==chr(9822):
for i in range(-2,3,1):
if i%2==0:
if finalrow==initialrow+i and
(finalcolumn==initialcolumn-1 or finalcolumn==initialcolumn+1):
move=True
break
else:
move=False
else:
if finalrow==initialrow+i and
(finalcolumn==initialcolumn-2 or finalcolumn==initialcolumn+2):
move=True
break
else:
move=False
if chesspiece==chr(9814) or chesspiece==chr(9820): #
ELEPHAAAAAANT
for i in range(initialcolumn+1,finalcolumn):
if board[finalrow][i]!=" ":
move=False
break
else:
move=True
for i in range(initialcolumn-1,finalcolumn,-1):
if board[finalrow][i]!=" ":
move=False
break
else:
move=True
if initialrow<finalrow: # up to down
for i in range(initialrow+1,finalrow):
if board[i][finalcolumn]!=" ":
move=False
break
else:
move=True
elif initialrow>finalrow:
for i in range(initialrow-1,finalrow,-1):
if board[i][finalcolumn]!=" ":
move=False
break
else:
move=True
if chesspiece==chr(9821) or chesspiece==chr(9815):
a=finalrow-initialrow
b=finalcolumn-initialcolumn
if finalrow!=initialrow and finalcolumn!=initialcolumn:
if a/b==1:
for i in range(1,a):
if
board[initialrow+i][initialcolumn+i]!=" ":
move=False
break
else:
move=True
for i in range(1,-a):
if
board[initialrow-i][initialcolumn-i]!=" ":
move=False
break
else:
move=True
elif a/b==-1:
for i in range(1,b):
if
board[initialrow-i][initialcolumn+i]!=" ":
move=False
break
else:
move=True
for i in range(1,a):
if
board[initialrow+i][initialcolumn+i]!=" ":
move=False
break
else:
move=True
else:
move=False
# QUEEN MOVEMENT WITH COLLISIONS
a=finalrow-initialrow
b=finalcolumn-initialcolumn
if a/b==1:
for i in range(1,a):
if
board[initialrow+i][initialcolumn+i]!=" ":
move=False
break
else:
move=True
if
board[initialrow-i][initialcolumn-i]!=" ":
move=False
break
else:
move=True
elif a/b==-1:
for i in range(1,b):
if
board[initialrow-i][initialcolumn+i]!=" ":
move=False
break
else:
move=True
for i in range(1,a):
if
board[initialrow+i][initialcolumn+i]!=" ":
move=False
break
else:
move=True
else:
move=False
else:
for i in range(initialcolumn+1,finalcolumn):
if board[finalrow][i]!=" ":
move=False
break
else:
move=True
if board[finalrow][i]!=" ":
move=False
break
else:
move=True
if initialrow<finalrow: # up to down
for i in range(initialrow+1,finalrow):
if board[i][finalcolumn]!=" ":
move=False
break
else:
move=True
elif initialrow>finalrow:
for i in range(initialrow-1,finalrow,-1):
if board[i][finalcolumn]!=" ":
move=False
break
else:
move=True
if chesspiece==chr(9823) or chesspiece==chr(9817):
if finalcolumn==initialcolumn and
board[finalrow][finalcolumn]== " ":
if initialrow==1:
if finalrow-initialrow in [1,2]:
move=True
else:
move=False
else:
if finalrow-initialrow==1:
move=True
else:
move=False
move=True
else:
move=False
if finalcolumn==initialcolumn and
board[finalrow][finalcolumn]== " ":
if initialrow==6:
if finalrow-initialrow in [-1,-2]:
move=True
else:
move=False
else:
if finalrow-initialrow==-1:
move=True
else:
move=False
elif board[finalrow][finalcolumn] in blackpieces and
finalrow==initialrow-1 and (finalcolumn==initialcolumn+1 or
finalcolumn==initialcolumn-1):
move=True
else:
move=False
legalmove()
turn+=1
else:
print("Invalid move.")
main_grid=[[chr(9820),chr(9822),chr(9821),chr(9818),chr(9819),chr(982
1),chr(9822),chr(9820)],
[chr(9823),chr(9823),chr(9823),chr(9823),chr(9823),chr(9823),chr
(9823),chr(9823)],
[chr(9817),chr(9817),chr(9817),chr(9817),chr(9817),chr(9817),chr
(9817),chr(9817)],
[chr(9814),chr(9816),chr(9815),chr(9813),chr(9812),chr(9815),chr
(9816),chr(9814)]]
def print_board(x):
print(" +-------------------------------+")
print("8
","|",x[0][0],"|",x[0][1],"|",x[0][2],"|",x[0][3],"|",x[0][4],"|
",x[0][5],"|",x[0][6],"|",x[0][7],"|")
print(" |-------------------------------|")
print("7
","|",x[1][0],"|",x[1][1],"|",x[1][2],"|",x[1][3],"|",x[1][4],"|
",x[1][5],"|",x[1][6],"|",x[1][7],"|")
print(" |-------------------------------|")
print("6
","|",x[2][0],"|",x[2][1],"|",x[2][2],"|",x[2][3],"|",x[2][4],"|
",x[2][5],"|",x[2][6],"|",x[2][7],"|")
print(" |-------------------------------|")
print("5
","|",x[3][0],"|",x[3][1],"|",x[3][2],"|",x[3][3],"|",x[3][4],"|
",x[3][5],"|",x[3][6],"|",x[3][7],"|")
print(" |-------------------------------|")
print("4
","|",x[4][0],"|",x[4][1],"|",x[4][2],"|",x[4][3],"|",x[4][4],"|
",x[4][5],"|",x[4][6],"|",x[4][7],"|")
print(" |-------------------------------|")
print("3
","|",x[5][0],"|",x[5][1],"|",x[5][2],"|",x[5][3],"|",x[5][4],"|
",x[5][5],"|",x[5][6],"|",x[5][7],"|")
print(" |-------------------------------|")
print("2
","|",x[6][0],"|",x[6][1],"|",x[6][2],"|",x[6][3],"|",x[6][4],"|
",x[6][5],"|",x[6][6],"|",x[6][7],"|")
print(" |-------------------------------|")
print("1
","|",x[7][0],"|",x[7][1],"|",x[7][2],"|",x[7][3],"|",x[7][4],"|
",x[7][5],"|",x[7][6],"|",x[7][7],"|")
print(" +-------------------------------+","\n")
print(" a b c d e f g h")
dic={"a":0,"b":1,"c":2,"d":3,"e":4,"f":5,"g":6,"h":7}
print("WELCOME TO CHESS!")
while True:
if turn%2==1:
t="Black"
elif turn%2==0:
t="White"
print_board(main_grid)
if initial_cc_column.lower()=="concede":
print(t,'player wins!')
break
initial_pc_column=dic[initial_cc_column]
initial_position=[initial_pc_row,initial_pc_column]
piece=(main_grid[initial_pc_row][initial_pc_column]) # using
coordinates to store the value present there (bishop, pawn, etc)
# FINAL POSITION
final_pc_row=8-final_cc_row
final_pc_column=dic[final_cc_column]
final_position=[final_pc_row,final_pc_column]
MAINcheck(main_grid,initial_pc_column,initial_pc_row,piece,final_pc_c
olumn,final_pc_row,initial_position,final_position)
BIBLIOGRAPHY