Download as pdf or txt
Download as pdf or txt
You are on page 1of 35

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

JUNE - JULY 2022


SUBMITTED BY:
NAME: Drishti Solanki

UID: 20BCS1062

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING


CHANDIGARH UNIVERSITY, GHARUAN July 2022
DECLARATION

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


INTERNSHALA from 15/06/2022 to 31/07/2022 under the guidance of
INTERNSHALA. I hereby undertake that the project undertaken by me is the
genuine work of mine.

(Signature of student)
Name of Student: Drishti Solanki
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, Small Talk, 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

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 than 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

Create a Fantasy Cricket game in Python. The game should have all the features
displayed in the mock-up screens in the scenario. To calculate the points for each
player, we can use rules similar to the sample rules displayed below.

Sample of Rules

Batting

• 1 point for 2 runs scored


• Additional 5 points for half century
• Additional 10 points for century
• 2 points for strike rate (runs/balls faced) of 80-100
• Additional 4 points for strike rate>100
• 1 point for hitting a boundary (four) and 2 points for over boundary (six)

Bowling

• 10 points for each wicket


• Additional 5 points for three wickets per innings
• Additional 10 points for 5 wickets or more in innings
• 4 points for economy rate (runs given per over) between 3.5 and 4.5
• 7 points for economy rate between 2 and 3.5
• 10 points for economy rate less than 2

Fielding

• 10 points each for catch/stumping/run out


Database Design

For the database, you are required to use three tables – match, stats and
teams.

Match

Player Scored Faced Fours Sixes Bowle Maide Given Wkts Catche Stumpin RO*
d n s g

*Run Out

Teams
name players value

Stats

player matches runs 100s 50s value ctg


Note: The teams table will be populated after score calculation. The data to enter in
the remaining two tables is given below:
Testing /Deployment

Opening screen of the application. You can see the players of each category by
selecting the category. To begin with, the selection is disabled until a new team is
created from the Manage Teams menu. A pop up asking the name of the team
appears.
The toolbar menu options which allow you to create a new team, open an existing
team, save your team and finally evaluate the score of a saved team.

After clicking New Team, the left box is populated with player names. As you select a
different category, the corresponding list of players is displayed.
On double-clicking each player name, the right box gets populated. Points available
and used are displayed accordingly.

Message if the game logic is not followeds

Pop-up on clicking Evaluate Score. You can select your team


here and the match for which the players' performance is
compared.
The final score for your fantasy team based on the match selected.
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
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.html

You might also like