0% found this document useful (0 votes)
3 views

Training Report

This report details a six-week summer training project on developing a Fantasy Cricket Game using Python, submitted by Arshdeep Kour as part of their Bachelor of Engineering degree at Chandigarh University. The document includes an introduction to Python, its features, training contents, and a coding section demonstrating the use of PyQt for GUI development. The project aims to create an engaging cricket game where users can form teams and score points based on real-life player performances.

Uploaded by

virbhadra255
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Training Report

This report details a six-week summer training project on developing a Fantasy Cricket Game using Python, submitted by Arshdeep Kour as part of their Bachelor of Engineering degree at Chandigarh University. The document includes an introduction to Python, its features, training contents, and a coding section demonstrating the use of PyQt for GUI development. The project aims to create an engaging cricket game where users can form teams and score points based on real-life player performances.

Uploaded by

virbhadra255
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

SIX WEEKS SUMMER TRAINING REPORT

ON

FANTASY CRICKET GAME IN


PYTHON
Submitted in partial fulfillment of requirement for the award of the degree of

BACHELOR OF ENGINEERING
in
COMPUTER SCIENCE & ENGINEERING
AT
CHANDIGARH UNIVERSITY
SUBMITTED BY
Name of Student: Arshdeep Kour
UID: 20BCS1120
Group/section: 20BCS_WM609-A
Semester: 5th

Date: 28/11/2022

SUBMITTED TO

Department of Computer Science & Engineering


SESSION 2020-2024

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CHANDIGARH UNIVERSITY,


GHARUAN
DECLARATION

I hereby declare that I have completed my six weeks summer training


at INTERNSHALA from 01/06/2022 to 17/07/2022 under the
guidance of INTERNSHALA. I hereby undertake that the project
undertaken by me is the genuine work of mine.
BONAFIDE CERTIFICATE
Certified that this project report “Fantasy Cricket Game in Python” is the
bonafide work of “Arshdeep Kour” who carried out the project work under
my/our supervision.

SIGNATURE
Sandeep Sing Kang
HEAD OF THE DEPARTMENT CSE
Submitted for the project viva-voce examination held on

INTERNAL EXAMINER EXTERNAL EXAMINER


ACKNOWLEDGEMENT

It is my proud privilege and duty to acknowledge the kind of help and guidance received from
several people in preparation of this report. It would not have been possible to prepare this
report in this form without their valuable help, cooperation and guidance.
First and foremost, I wish to record our sincere gratitude to Internshala Coordinators for their
constant support and encouragement in preparation of this report and for making available
videos and interface facilities needed to prepare this report.
The seminar on “Python” was very helpful to us in giving the necessary background
information and inspiration in choosing this topic for the seminar. Their contributions and
technical support in preparing this report are greatly acknowledged.
Last but not the least, we wish to thank our parents for financing our studies in this college as
well as for constantly encouraging us to learn engineering. Their personal sacrifice in providing
this opportunity to learn engineering is gratefully acknowledged.
SUMMER TRAINING CERTIFICATE
TABLE OF CONTENTS

1. Introduction to Python
2. Python Features
3. Training Contents
4. Profile of the Problem
5. Database Design
6. Screenshots
7. Coding
8. Bibliography
INTRODUCTION TO PYTHON

Python Language Introduction


Python is a widely used general-purpose, high level programming language. It was initially designed by
Guido van Rossum in 1991 and developed by Python Software Foundation. It was mainly developed for
emphasis on code readability, and its syntax allows programmers to express concepts in fewer lines of
code.
Python is a programming language that lets you work quickly and integrate systems more efficiently.
Python is a high-level, interpreted, interactive and object-oriented scripting language. Python is designed
to be highly readable. It uses English keywords frequently where as other languages use punctuation,
and it has fewer syntactical constructions than other languages.

• Python is Interpreted − Python is processed at runtime by the interpreter. You do not need to
compile your program before executing it. This is similar to PERL and PHP.
• Python is Interactive − You can actually sit at a Python prompt and interact with the interpreter
directly to write your programs.
• Python is Object-Oriented − Python supports Object-Oriented style or technique of
programming that encapsulates code within objects.
• Python is a Beginner's Language − Python is a great language for the beginner-level
programmers and supports the development of a wide range of applications from simple text
processing to WWW browsers to games.

History of Python
Python was developed by Guido van Rossum in the late eighties and early nineties at the National
Research Institute for Mathematics and Computer Science in the Netherlands.
Python is derived from many other languages, including ABC, Modula-3, C, C++, Algol-68, SmallTalk,
and Unix shell and other scripting languages.
Python is copyrighted. Like Perl, Python source code is now available under the GNU General Public
License (GPL).
Python is now maintained by a core development team at the institute, although Guido van Rossum still
holds a vital role in directing its progress.
PYTHON FEATURES

Python's features include −

• Easy-to-learn − Python has few keywords, simple structure, and a clearly defined syntax. This
allows the student to pick up the language quickly.
• Easy-to-read − Python code is more clearly defined and visible to the eyes.
• Easy-to-maintain − Python's source code is fairly easy-to-maintain.
• A broad standard library − Python's bulk of the library is very portable and cross-platform
compatible on UNIX, Windows, and Macintosh.
• Interactive Mode − Python has support for an interactive mode which allows interactive testing
and debugging of snippets of code.
• Portable − Python can run on a wide variety of hardware platforms and has the same interface
on all platforms.
• Extendable − You can add low-level modules to the Python interpreter. These modules enable
programmers to add to or customize their tools to be more efficient.
• Databases − Python provides interfaces to all major commercial databases.
• GUI Programming − Python supports GUI applications that can be created and ported to many
system calls, libraries and windows systems, such as Windows MFC, Macintosh, and the X
Window system of Unix.
• Scalable − Python provides a better structure and support for large programs than shell scripting.
Apart from the above-mentioned features, Python has a big list of good features, few are listed below −
It supports functional and structured programming methods as well as OOP.
• It can be used as a scripting language or can be compiled to byte-code for building large
applications.
• It provides very high-level dynamic data types and supports dynamic type checking.
• IT supports automatic garbage collection.
• It can be easily integrated with C, C++, COM, ActiveX, CORBA, and Java.
TRAINING CONTENTS

1. Introduction to Python

Learn how to install Python, distinguish between important data types and use basic features
of the Python interpreter, IDLE.

2. Using Variables in Python

Learn about numeric, string, sequence and dictionary data types and relevant operations while
practicing Python syntax.

3. Basics of Programming in Python

Learn how to write programs using conditionals, loops, iterators and generators, functions
and modules and packages.

4. Principles of Object-oriented Programming (OOP)

Learn about the important features of Object-oriented Programming while using Classes and
Objects, two main aspects of the OOP paradigm.

5. Connecting to SQLite Database

Learn about relational databases while learning how to store and retrieve data from an
SQLite database through Python.

6. Developing a GUI with PyQT

Learn how to install PyQt5 toolkit, Qt Designer and create a graphical user interface using
common widgets and menu systems.

7. Application of Python in Various Disciplines


Learn about various resources to extend your learning for the Python programming language.
Developing a GUI with PyQT

GUI and Event Driven Programming

GUI:- Graphical user interface (GUI), a computer program that enables a person to communicate with
a computer through the use of symbols, visual metaphors, and pointing devices. Best known for its
implementation in Apple Inc.’s Macintosh and Microsoft Corporation’s Windows operating system, the
GUI has replaced the arcane and difficult textual interfaces of earlier computing with a relatively
intuitive system that has made computer operation not only easier to learn but more pleasant and
natural. The GUI is now the standard computer interface, and its components have themselves become
unmistakable cultural artifacts.

Event driven Programming:- An event-driven program is one that largely responds to user events or
other similar input. The concept of event-driven programming is an important one in application
development and other kinds of programming, and has spawned the emergence of event handlers and
other resources. The idea in event-driven programming is that the program is designed to react. It
reacts to specific kinds of input from users, whether it's a click on a command button, a choice from a
drop-down list, an entry into a text box, or other kinds of user events.

PyQT :- PyQt is a GUI widgets toolkit. It is a Python interface for Qt, one of the most powerful, and
popular cross-platform GUI library. PyQt was developed by RiverBank Computing Ltd. The latest
version of PyQt can be downloaded from its official website. PyQt is a blend of Python programming
language and the Qt library. PyQT API is a collection of more then 400 classes.
Major classes in PyQT :-
QObject is at the top of the class hierarchy. It is the base class of all the Qt objects.
QApplication class manages the main settings and control flow.

QWidget is the base class for all user interface objects.


QDialogue and Qframe classes are derived from the QWidget class.
Using Common Widgets

Qt Designer
Qt Designer is the Qt tool for designing and building graphical user interfaces (GUIs) with Qt Widgets. You can
compose and customize your windows or dialogs in a what-you-see-is -what you-get (WYSIWYG) manner, and
test them using different styles and resolutions.

Widgets and forms created with Qt Designer integrate seamlessly with programmed code, using

Qt's signals and slots mechanism, so that you can easily assign behavior to graphical elements.

All properties set in Qt Designer can be changed dynamically within the code. Furthermore,

features like widget promotion and custom plugins allow you to use your own components

with Qt Designer.

Qt Designer helps only in designing GUI file, then it needs to be converted into py file. By using pyuic 5 utility
xml file can be converted into .py file and is installed along with PyQT5 package.

We use pyuic5-x myui.ui-o myui.py command to convert ui file to python file. For the sake of simplicity, we
place myuic.ui file in the same folder where pyuic5.exe file is placed.
PROFILE OF THE PROBLEM
GANTT CHART

Problem Analysis

PRODUCT DEFINITION:-It is an game where you create a team of real cricket players and score points
depending on how your chosen players perform in real life matches. To win a tournament, you must try and
get the maximum points and the No. 1 rank amongst other participants.

FEASIBILITY ANALYSIS:- I am building an software for gaming purposes using an specific technology named
python. It is a game software where you can create virtual team according to your choice and score points to
win an tournament.

This software is created for motivating street cricket and adding more fun and entertainment to cricket. The
components that are used in this demo can be integrated to a high extent to provide statics to different
components of cricket. This project helps in providing real time on field actions there by helping its user of the
current actions happening on field.
CODING

from PyQt5 import QtCore, QtGui, QtWidgets

#from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 649)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setObjectName("label")

font = QtGui.QFont()
font.setFamily("Courier New")
font.setBold(True)
font.setPointSize(12)
self.label.setFont(font)

self.horizontalLayout.addWidget(self.label)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.verticalLayout.addLayout(self.horizontalLayout)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setObjectName("label_2")
self.horizontalLayout_2.addWidget(self.label_2)

self.label_2.setFont(font)

self.t1 = QtWidgets.QLineEdit(self.centralwidget)
self.t1.setObjectName("t1")
self.horizontalLayout_2.addWidget(self.t1)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_2.addItem(spacerItem1)
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setObjectName("label_3")
self.horizontalLayout_2.addWidget(self.label_3)
self.label_3.setFont(font)
self.t2 = QtWidgets.QLineEdit(self.centralwidget)
self.t2.setObjectName("t2")
self.horizontalLayout_2.addWidget(self.t2)
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_2.addItem(spacerItem2)
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setObjectName("label_4")
self.horizontalLayout_2.addWidget(self.label_4)
self.label_4.setFont(font)
self.t3 = QtWidgets.QLineEdit(self.centralwidget)
self.t3.setObjectName("t3")
self.horizontalLayout_2.addWidget(self.t3)
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_2.addItem(spacerItem3)
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setObjectName("label_5")
self.horizontalLayout_2.addWidget(self.label_5)
self.label_5.setFont(font)
self.t4 = QtWidgets.QLineEdit(self.centralwidget)
self.t4.setObjectName("t4")
self.horizontalLayout_2.addWidget(self.t4)
self.verticalLayout.addLayout(self.horizontalLayout_2)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.label_7 = QtWidgets.QLabel(self.centralwidget)
self.label_7.setObjectName("label_7")
self.horizontalLayout_3.addWidget(self.label_7)
self.label_7.setFont(font)
self.t5 = QtWidgets.QLineEdit(self.centralwidget)
self.t5.setObjectName("t5")
self.horizontalLayout_3.addWidget(self.t5)
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem4)
self.label_6 = QtWidgets.QLabel(self.centralwidget)
self.label_6.setObjectName("label_6")
self.horizontalLayout_3.addWidget(self.label_6)
self.label_6.setFont(font)
self.t6 = QtWidgets.QLineEdit(self.centralwidget)
self.t6.setObjectName("t6")
self.horizontalLayout_3.addWidget(self.t6)
self.verticalLayout.addLayout(self.horizontalLayout_3)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.rbtn1 = QtWidgets.QRadioButton(self.centralwidget)
self.rbtn1.setObjectName("rbtn1")
self.horizontalLayout_4.addWidget(self.rbtn1)

font = QtGui.QFont()
font.setFamily("Gill Sans MT")
font.setBold(True)
font.setPointSize(10)
self.rbtn1.setFont(font)

self.rbtn2 = QtWidgets.QRadioButton(self.centralwidget)
self.rbtn2.setObjectName("rbtn2")
self.rbtn2.setFont(font)
self.horizontalLayout_4.addWidget(self.rbtn2)
self.rbtn3 = QtWidgets.QRadioButton(self.centralwidget)
self.rbtn3.setObjectName("rbtn3")
self.rbtn3.setFont(font)
self.horizontalLayout_4.addWidget(self.rbtn3)
self.rbtn4 = QtWidgets.QRadioButton(self.centralwidget)
self.rbtn4.setObjectName("rbtn4")
self.horizontalLayout_4.addWidget(self.rbtn4)
self.rbtn4.setFont(font)
spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_4.addItem(spacerItem5)
spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_4.addItem(spacerItem6)
self.label_8 = QtWidgets.QLabel(self.centralwidget)
self.label_8.setObjectName("label_8")
self.horizontalLayout_4.addWidget(self.label_8)

font = QtGui.QFont()
font.setFamily("Courier New")
font.setBold(True)
font.setPointSize(12)
self.label_8.setFont(font)

self.t7 = QtWidgets.QLineEdit(self.centralwidget)
self.t7.setObjectName("t7")
self.horizontalLayout_4.addWidget(self.t7)
self.verticalLayout.addLayout(self.horizontalLayout_4)
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.list1 = QtWidgets.QListWidget(self.centralwidget)
self.list1.setObjectName("list1")
self.horizontalLayout_5.addWidget(self.list1)

font = QtGui.QFont()
font.setFamily("Tahoma")
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.list1.setFont(font)
self.t1.setFont(font)
self.t2.setFont(font)
self.t3.setFont(font)
self.t4.setFont(font)
self.t5.setFont(font)
self.t6.setFont(font)
self.t7.setFont(font)

spacerItem7 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding,


QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_5.addItem(spacerItem7)
self.list2 = QtWidgets.QListWidget(self.centralwidget)
self.list2.setObjectName("list2")
self.horizontalLayout_5.addWidget(self.list2)
self.list2.setFont(font)
self.verticalLayout.addLayout(self.horizontalLayout_5)
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding,
QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_6.addItem(spacerItem8)

self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setObjectName("pushButton")
self.horizontalLayout_6.addWidget(self.pushButton)

font = QtGui.QFont()
font.setFamily("Courier New")
font.setBold(True)
font.setPointSize(12)
self.pushButton.setFont(font)

spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding,


QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_6.addItem(spacerItem9)
self.verticalLayout.addLayout(self.horizontalLayout_6)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
self.menubar.setObjectName("menubar")
self.menuManage_Teams = QtWidgets.QMenu(self.menubar)
self.menuManage_Teams.setObjectName("menuManage_Teams")

font = QtGui.QFont()
font.setFamily("Gill Sans MT")
font.setBold(True)
font.setPointSize(10)
self.menuManage_Teams.setFont(font)
self.menubar.setFont(font)

MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)

self.actionNEW_Team = QtWidgets.QAction(MainWindow)
self.actionNEW_Team.setObjectName("actionNEW_Team")
self.actionOPEN_Team = QtWidgets.QAction(MainWindow)
self.actionOPEN_Team.setObjectName("actionOPEN_Team")
self.actionSAVE_Team = QtWidgets.QAction(MainWindow)
self.actionSAVE_Team.setObjectName("actionSAVE_Team")
self.actionEvaluate_Team = QtWidgets.QAction(MainWindow)
self.actionEvaluate_Team.setObjectName("actionEvaluate_Team")
self.actionAbout = QtWidgets.QAction(MainWindow)
self.actionAbout.setObjectName("actinAbout")
self.menuManage_Teams.addAction(self.actionNEW_Team)
self.menuManage_Teams.addSeparator()
self.menuManage_Teams.addAction(self.actionOPEN_Team)
self.menuManage_Teams.addSeparator()
self.menuManage_Teams.addAction(self.actionSAVE_Team)
self.menuManage_Teams.addSeparator()
self.menuManage_Teams.addAction(self.actionEvaluate_Team)
self.menuManage_Teams.addSeparator()
self.menuManage_Teams.addAction(self.actionAbout)
self.menuManage_Teams.addSeparator()
self.menubar.addAction(self.menuManage_Teams.menuAction())

self.list1.itemDoubleClicked.connect(self.removelist1)
self.list2.itemDoubleClicked.connect(self.removelist2)

self.rbtn1.toggled.connect(self.ctg)
self.rbtn2.toggled.connect(self.ctg)
self.rbtn3.toggled.connect(self.ctg)
self.rbtn4.toggled.connect(self.ctg)

self.menuManage_Teams.triggered[QtWidgets.QAction].connect(self.menu)
self.pushButton.clicked.connect(self.exit)

self.bat=0
self.bwl=0
self.ar=0
self.wk=0
self.avl=1000
self.used=0

self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):


_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "Your Selections"))
self.label_2.setText(_translate("MainWindow", "Batsmen (BAT)"))
self.label_3.setText(_translate("MainWindow", "Bowler (BOW)"))
self.label_4.setText(_translate("MainWindow", "Wicketkeeper (WK)"))
self.label_5.setText(_translate("MainWindow", "All-Rounders (AR)"))
self.label_7.setText(_translate("MainWindow", "Points Available"))
self.label_6.setText(_translate("MainWindow", "Points Used"))
self.rbtn1.setText(_translate("MainWindow", "BAT"))
self.rbtn2.setText(_translate("MainWindow", "BOW"))
self.rbtn3.setText(_translate("MainWindow", "AR"))
self.rbtn4.setText(_translate("MainWindow", "WK"))
self.label_8.setText(_translate("MainWindow", "Team Name"))
self.pushButton.setText(_translate("MainWindow", "EXIT Application"))
self.menuManage_Teams.setTitle(_translate("MainWindow", "Manage Teams"))
self.actionNEW_Team.setText(_translate("MainWindow", "NEW Team"))
self.actionOPEN_Team.setText(_translate("MainWindow", "OPEN Team"))
self.actionSAVE_Team.setText(_translate("MainWindow", "SAVE Team"))
self.actionEvaluate_Team.setText(_translate("MainWindow", "Evaluate Team"))
self.actionAbout.setText(_translate("MainWindow", "About"))
def exit(self):
import sys
self.showdlg("Thank YOU ...Hope you enjoyed !!")
sys.exit()

def menu(self,action):
txt=(action.text())

if txt=='NEW Team':
self.bat=0
self.bwl=0
self.ar=0
self.wk=0
self.avl=1000
self.used=0
self.list1.clear()
self.list2.clear()
#self.t7.setText("???")

#self.dial()
text, ok=QtWidgets.QInputDialog.getText(MainWindow, "Team", "Enter name of team:")
if ok:
self.t7.setText(str(text))

self.show()

if txt=='SAVE Team':
count=self.list2.count()
selected=""
for i in range(count):
selected+=self.list2.item(i).text()
if i<count:
selected+=","
self.saveteam(self.t7.text(),selected,self.used)

if txt=='OPEN Team':
self.bat=0
self.bwl=0
self.ar=0
self.wk=0
self.avl=1000
self.used=0
self.list1.clear()
self.list2.clear()
self.show()
#print("rgr")
self.openteam()

if txt=='EVALUATE Team':
from Evaluate import Ui_ScoreWindow
Dialog = QtWidgets.QDialog()
ui = Ui_ScoreWindow()
ui.setupUi(self)
#print("effieh")
ret=Ui_ScoreWindow.exec()

if txt=='About Game': # connect to about game dialog box


from About import Ui_About
Dialog = QtWidgets.QDialog()
ui = Ui_About()
ui.setupUi(self)
ret=Ui_About.exec()

#if txt=='How to play': # connect to how to play dialog box


# from Help import Ui_Dialog
# Dialog = QtWidgets.QDialog()
#ui = Ui_Dialog()
#ui.setupUi(Dialog)
# ret=Dialog.exec()

def show(self):
#print("vvrv")
self.t1.setText(str(self.bat))
self.t2.setText(str(self.bwl))
self.t3.setText(str(self.wk))
self.t4.setText(str(self.ar))
#print("rrrr")
self.t5.setText(str(self.avl))
self.t6.setText(str(self.used))
#print("efef")
def criteria(self,ctgr,item):
msg=''
if ctgr=="BAT" and self.bat>=5:msg="Batsmen not more than 5"
if ctgr=="BWL" and self.bwl>=5:msg="bowlers not more than 5"
if ctgr=="AR" and self.ar>=3:msg="Allrounders not more than 3"
if ctgr=="WK" and self.wk>=1:msg="Wicketkeepers not more than 1"
if msg!='':
#msg="You Have Exhausted your Points"
self.showdlg(msg)
return False

if self.avl<=0:
msg="You Have Exhausted your Points"
self.showdlg(msg)
return False

if ctgr=="BAT":self.bat+=1
if ctgr=="BWL":self.bwl+=1
if ctgr=="AR":self.ar+=1
if ctgr=="WK":self.wk+=1

sql="SELECT value from stats where player='"+item.text()+"'"


cur=conn.execute(sql)
row=cur.fetchone()
self.avl-=int(row[0])
self.used+=int(row[0])
return True

def removelist1(self,item):

ctgr=''
if self.rbtn1.isChecked()==True:ctgr='BAT'
if self.rbtn2.isChecked()==True:ctgr='BWL'
if self.rbtn3.isChecked()==True:ctgr='AR'
if self.rbtn4.isChecked()==True:ctgr='WK'
ret=self.criteria(ctgr,item)

if ret==True:
self.list1.takeItem(self.list1.row(item))

self.list2.addItem(item.text())
self.show()

def ctg(self):
ctgr=''
if self.rbtn1.isChecked()==True:ctgr='BAT'
if self.rbtn2.isChecked()==True:ctgr='BWL'
if self.rbtn3.isChecked()==True:ctgr='AR'
if self.rbtn4.isChecked()==True:ctgr='WK'

self.fillList(ctgr)

def removelist2(self,item):
self.list2.takeItem(self.list2.row(item))

cursor = conn.execute("SELECT player,value, ctg from stats where


player='"+item.text()+"'")
row=cursor.fetchone()
self.avl=self.avl+int(row[1])
self.used=self.used-int(row[1])
ctgr=row[2]
if ctgr=="BAT":
self.bat-=1
if self.rbtn1.isChecked()==True:self.list1.addItem(item.text())
if ctgr=="BWL":
self.bwl-=1
if self.rbtn2.isChecked()==True:self.list1.addItem(item.text())
if ctgr=="AR":
self.ar-=1
if self.rbtn3.isChecked()==True:self.list1.addItem(item.text())
if ctgr=="WK":
self.wk-=1
if self.rbtn4.isChecked()==True:self.list1.addItem(item.text())
self.show()

def fillList(self,ctgr):
if self.t7.text()=='':
self.showdlg("Enter name of team")
return

self.list1.clear()
sql="SELECT player from players where ctg='"+ctgr+"';"
cur=conn.execute(sql)
for row in cur:
selected=[]
for i in range(self.list2.count()):
selected.append(self.list2.item(i).text())
if row[0] not in selected:self.list1.addItem(row[0])

def openteam(self):
#print("rvrjbv")
#import sqlite3
#mycon = sqlite3.connect('fantasy.db')

#mycur=mycon.cursor()

sql="select name from teams;"


#print("efef")
cur=conn.execute(sql)
#print("vebjb")
teams=[]
#print("rrr")
#cur=mycur.fetchall()
for row in cur:
teams.append(row[0])

team, ok=QtWidgets.QInputDialog.getItem(MainWindow,"Dream","Choose A
Team",teams,0,False)
if ok and team:
self.t7.setText(team)

sql1="SELECT players,value from teams where name='"+team+"';"


cur=conn.execute(sql1)
row=cur.fetchone()
#print("ooo")
selected=row[0].split(',')
#print(selected)
self.list2.addItems(selected)
self.used=row[1]

self.avl=1000-row[1]
count=self.list2.count()

##iterate to count no. of specific players


for i in range(count-1):
ply=self.list2.item(i).text()
#print(ply)
sql="select ctg from stats where player='"+ply+"';"

cur=conn.execute(sql)

row=cur.fetchone()
#print(row)
ctgr=row[0]
#print("ej")
if ctgr=="BAT":self.bat+=1
if ctgr=="BWL":self.bwl+=1
if ctgr=="AR":self.ar+=1
if ctgr=="WK":self.wk+=1

#print("vdkn")
self.show()
#print("fece")

def saveteam(self,nm,ply,val):
#print("rvrv")

if self.bat+self.bwl+self.ar+self.wk!=11:
self.showdlg("Insufficient players")
return

#print("frbfj")
sql="INSERT INTO teams (name,players,value) VALUES
('"+nm+"','"+ply+"','"+str(val)+"');"
#print("f3f4")
try:
#print("bjr")
cur=conn.execute(sql)
#print("dehe")
self.showdlg("Team Saved Succesfully")
conn.commit()
except:
self.showdlg("Error in Operation")
conn.rollback()

def showdlg(self,msg):
#print("ecb")
Dialog=QtWidgets.QMessageBox()
Dialog.setText(msg)
Dialog.setWindowTitle("Dream Team selector")
ret=Dialog.exec()

if __name__ == "__main__":
import sqlite3
conn = sqlite3.connect('fantasy.db')
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Conclusion
I believe the trial has shown conclusively that it is both possible and desirable to use Python as the principal
teaching language:

• It is Free (as in both cost and source code).

• It is trivial to install on a Windows PC allowing students to take their interest further. For many the
hurdle of installing a Pascal or C compiler on a Windows machine is either too expensive or too
complicated;

• It is a flexible tool that allows both the teaching of traditional procedural programming and modern
OOP;
It can be used to teach a large number of transferable skills;

• It appears to be quicker to learn and, in combination with its many libraries, this offers the possibility
of more rapid student development allowing the course to be made more challenging and varied;

• Most importantly, its clean syntax offers increased understanding and enjoyment for students.

BIBLIOGRAPHY

• https://trainings.internshala.com/python-training
• https://www.w3schools.com/python/
• https://wiki.python.org/moin/PyQt/Tutorials
• https://www.tutorialspoint.com/pyqt/
• https://www.tutorialspoint.com/sqlite/sqlite_quick_guide.htm
• https://www.quora.com/

You might also like