INTERNSHIP REPORT
A report submitted in partial fulfilment of the requirements for the Award of Degree of
BACHELOR OF COMPUTER APPLICATION
in
COMPUTER SCIENCE
by
MOINUDHEEN MA
Regd. No.: ATAVBCA022
Under Supervision of Mr. Shijo
Riss Technologies pvt.Ltd,
Thrissur
(Duration: 25th September, 2023 to 18th October ,2023)
DEPARTMENT OF COMPUTER SCIENCE
AC KUNHIMON HAJI MEMORIAL ICA COLLEGE
(2021 - 2024)
ACKNOWLEDGEMENT
First I would like to thank Mr.Shijo,Riss Technologies,Thrissur for giving me the opportunity
to do an internship within theorganization.
I also would like all the people that worked along with me Riss Technologies ,Thrissur with
their patience and openness they created an enjoyable workingenvironment.
I would like to thank my Head of the Department Ms Raji Bharathan for her constructive
criticism throughout my internship and I am extremely great full to my department staff
members and friends who helped me in successful completion of this internship.
Moinudheen MA
(ATAVBCA022)
ABSTRACT
Encapsulates the essence of an Android Tic-Tac-Toe game project, detailing its objectives,
features, and outcomes. The project aims to develop a user-friendly and aesthetically
pleasing mobile game, employing Java and Android Studio for implementation. The primary
focus lies in creating an engaging gaming experience, with emphasis on intuitive touch
controls and visually appealing graphics. The project incorporates algorithmic logic for game
mechanics, ensuring a balanced and competitive gameplay. Through this endeavor, the goal
is to contribute to the Android gaming ecosystem by delivering a well-crafted Tic-Tac-Toe
application that combines classic gameplay with modern design principles, offering users an
enjoyable and interactive experience on their mobile devices.
Organisation Information:
Riss Technologies is a professionally managed company with years of industry experience
indeveloping and delivering Enterprise specific Software and Web development solutions
using latest technologies. Quality is the buzz word in today's world without which no
organization can survive. Along with quality we at Technologies. "Think Beyond" to take one
step ahead and focus on Delivery of the solutions. We design processes that focus not just
only on quality but also on delivery which increases the value to our global clients. Apart
from training our employees on latest technologies, we also empower them to deliver
exciting solutions to our clients. At the core Technologies operates in three specific domains
namely Software Development, Website Design & Development and Geographic Information
Services. We also offer our services in building E-Commerce solutions, Search Engine
Optimization (SEO) and Database Administration services. Under each division we further
provide specific industry solutions on focused domains with cutting edge technologies. We
emphasize on building relationships with our clients by delivering projects on time and within
budget.
Programs and opportunities:
This ground up approach helps us deliver not only the solution to our clients but also add
value to At the core Riss Technologies operates in three specific domains namely Software
Development, Website Design & Development and Geographic Information Services. We
also offer our services in building E-Commerce solutions, Search Engine Optimization (SEO)
and Database Administration services. Under each division we further provide specific
industry solutions on focused domains with cutting edge technologies. We emphasize on
building relationships with our clients by delivering projects on time and within budget and
quality products.
Methodologies:
We follow a structured methodology for our projects which starts from designing the solution
to the implementation phase. Well planned Project reduces the time to deliver the project
and any additional ad-hoc costs to our clients, hence we dedicate majority of our time
understanding our clients business and gather requirements. This ground up approach helps
us deliver not only the solution to our clients but also add value to your investments
Key parts of the report:
Under each division we further provide specific industry solutions on focused domains with
cutting edge technologies.
Benefits of the Company/Institution through our report:Under each division wemphasize
on delivering quality products within budget while maintaining healthy relationships with
clients.
INDEX
S.no. CONTENTS Page no
1.Introduction…………………………………………………………………....1
1.1Modules……………………………………………………………………….2
2.Analysis………………………………………………………………………...3
3.Software requirements specifications ……………………………………...4
4.Technology……………………………………………………………..………5
4.1 Android……………………………………………………………………….5
4.2 Xml …………………………………………………………………………..6
4.3 Java…………………………………………………………………………..7
5.Coding……………………………………………………………………….....8
6.Screenshots............................................................………………………17
7.Conclusion………………………………………………………………….....18
8.Bibilography………………………………………………..…………………19
Learning Objectives/Internship Objectives:
Internships are generally thought of to be reserved for college students looking to gain
experience in a particular field. However, a wide array of people can benefit from
Training Internships in order to receive real world experience and develop .their skills.
An objective for this position should emphasize the skills you already possess in the area
and your interest in learning more Internships are utilized in a number of different career
fields, including architecture,engineering, healthcare, economics, advertising and many
more.Some internship is used to allow individuals to perform scientific research while others
are specifically designed to allow people to gain first-hand experience working.
Utilizing internships is a great way to build your resume and develop skills that can be
emphasized in your resume for future jobs. When you are applying for a Training Internship,
make sure to highlight any special skills or talents that can make you stand apart from the
rest of the applicants so that you have an improved chance of landing the position.
WEEKLY OVERVIEW OF INTERNSHIP ACTIVITIES
INTRODUCTION
In the ever-evolving landscape of mobile applications, the
Android Tic-Tac-Toe project emerges as a testament to both
nostalgia and innovation. This ambitious endeavor seeks to
breathe new life into the timeless game of Tic-Tac-Toe,
harnessing the capabilities of the Android platform. Through
the meticulous integration of Java programming and the
Android Studio development environment, our aim is to
deliver not just a game but an immersive and engaging
experience for users across diverse Android devices.
The rationale behind choosing Tic-Tac-Toe as the focal
point of our project lies in its universal appeal. This classic
game, often etched in childhood memories, provides a
familiar yet exciting canvas for exploration. By bringing it to
the Android ecosystem, we aim to bridge the gap between
tradition and technology, offering users a blend of the
nostalgic and the contemporary.This Android Tic-Tac-Toe
project is not merely a standalone game; it represents a
contribution to the dynamic Android gaming landscape. By
combining a classic game with modern technology, we aim
to demonstrate the potential for innovation within seemingly
simple concepts. This project serves as an inspiration for
developers to explore creative avenues in reviving and
reimagining timeless games for contemporary audiences.
1
1.1 MODULE DESCRIPTION:
User interface :
• Responsible for presenting the game grid and interactive elements.
• Manages visual feedback to enhance user experience.
• Incorporates responsive touch controls for player moves.
• Implements animations for smooth transitions between game states.
Game Logic :
• Governs the fundamental rules of Tic-Tac-Toe.
• Tracks the state of the game, including player moves.
• Evaluates the game state after each move to determine a winner or draw etc.
Player Input :
• Captures user input via touch events or button clicks.
• Handles interactions for a seamless player experience.
• Validates and processes player moves within the constraints of the game rule
2
2. SYSTEM ANALYSIS
2.1 Requirement Analysis
Existing System:
Android has become a powerhouse in the gaming industry, offering a diverse array of
games that cater to a broad spectrum of audiences. From casual and mobile-friendly titles to
high-end, graphically intensive experiences, games made using the Android platform
showcase the versatility and innovation within the gaming ecosystem. In this comprehensive
exploration, we’ll delve into the key aspects of games developed for Android, including the
development process, popular genres like Tic Tac Toe, also known as Noughts and Crosses
or Xs and Os, is a classic two-player strategy game often played on paper
Proposed System:
Android holds immense promise and potential, driven by technological advancements,
evolving user expectations, and the continued growth of the mobile gaming industry. In this
exploration, we’ll delve into key aspects that define the trajectory of future Android games,
including advancements in technology, innovative gameplay experiences, emerging trends,
potential challenges, and the overall impact on the gaming landscape.This project is a
digital adaptation of the classic Tic Tac Toe game designed to run on Android devices. This
simple yet engaging game leverages the capabilities of Android smartphones and tablets to
provide a convenient and interactive gaming experience. Below, I’ll cover key aspects of a
typical Tic Tac Toe game on Android.
3
3.SOFTWARE REQUIREMENTS SPECIFICATIONS
3.1 System configurations
The software requirement specification can produce at the culmination of the analysis task.
The function and performance allocated to software as part of system engineering are
refined
by established a complete information description, a detailed functional description, a
representation of system behavior, and indication of performance and design constrain,
appropriate validate criteria, and other information pertinent to requirements.
Software Requirements:
• Operating system : Windows 7 Ultimate.
• Coding Language : Java
• Front-End : Visual Studio 2012 Professional..
Hardware Requirement:
• System : Pentium IV 2.4 GHz.
• Hard Disk : 1TB.
• Ram : 4GB.
4
4. TECHNOLOGY
4.1 ANDROID
Android is an open-source operating system designed for mobile devices, including
smartphones and tablets. Its open nature allows manufacturers to customize the OS
according to their needs, fostering diversity in hardware and user experiences. Android’s
flexibility and widespread adoption contribute to its dominance in the mobile market.
Android follows a layered architecture with four main components: the Linux Kernel,
Libraries, Application Framework, and Applications. The Linux Kernel provides core system
functionality, while Libraries offer essential functions like graphics rendering and database
access. The Application Framework simplifies app development with reusable components,
and Applications are the end-user programs.
Android applications are developed using Java or Kotlin programming languages. Android
Studio, the official Integrated Development Environment (IDE), facilitates the creation of
apps with features like code completion, debugging tools, and an emulator for testing. The
Android SDK (Software Development Kit) provides essential libraries and tools for
developers.
Android applications have a user interface built using XML (Extensible Markup Language)
for layout definitions and Java/Kotlin for behavior. The UI can adapt to various screen sizes
and orientations, promoting a consistent experience across different devices. Widgets and
layouts help in creating responsive and visually appealing interfaces.
Android has revolutionized the mobile landscape, offering a dynamic platform for developers
and a diverse array of choices for users.
5
4.3 JAVA
Java’s integration into Android development dates back to the platform’s early stages.
Android applications are primarily developed using Java, thanks to its portability,
object-oriented nature, and extensive ecosystem of libraries and frameworks. Java’s “write
once, run anywhere” philosophy aligns seamlessly with the diverse range of Android devices
available in the market.
Android applications are built on the Android SDK (Software Development Kit), which relies
heavily on Java. Java source code is compiled into bytecode, which runs on the Java Virtual
Machine (JVM). This abstraction layer ensures that Android apps are not tied to a specific
hardware architecture, promoting compatibility across a myriad of devices.
Java brings a wealth of features to Android development, including object-oriented
programming (OOP), platform independence, strong type-checking, and a vast standard
library. These features contribute to the development of modular, scalable, and maintainable
Android applications.
Java is extensively used for designing the user interface (UI) of Android applications.
Activities, representing individual screens or windows, are implemented as Java classes.
XML layout files, defining the structure and appearance of UI elements, are often paired with
Java code to handle user interactions and dynamic behavior.
7
5.CODING
XML
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/green"
tools:context=".MainActivity">
<!--title text-->
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="23dp"
android:text="GFG Tic Tac Toe"
8
android:textSize="45sp"
android:textStyle="bold"
app:fontFamily="cursive"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!--image of the grid-->
<ImageView
android:id="@+id/imageView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:contentDescription="Start"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"
app:srcCompat="@drawable/grid" />
9
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="0dp"
android:layout_height="420dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="@+id/imageView"
app:layout_constraintEnd_toEndOf="@+id/imageView"
app:layout_constraintStart_toStartOf="@+id/imageView"
app:layout_constraintTop_toTopOf="@+id/imageView">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal">
<!--images of the grid boxes-->
<ImageView
android:id="@+id/imageView0"
10
<ImageView
android:id="@+id/imageView4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="playerTap"
android:padding="20sp"
android:tag="4" />
<ImageView
android:id="@+id/imageView5"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:onClick="playerTap"
android:padding="20sp"
android:tag="5" />
</LinearLayout>
11
android:layout_marginBottom="15sp"
android:text="Status"
android:textSize="28sp"
android:textStyle="italic"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout" />
</androidx.constraintlayout.widget.ConstraintLayout>
12
JAVA
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
boolean gameActive = true;
// Player representation
// 0 - X
// 1 - O
int activePlayer = 0;
int[] gameState = {2, 2, 2, 2, 2, 2, 2, 2, 2};
// State meanings:
// 0 - X
13
// 1 - O
// 2 - Null
// put all win positions in a 2D array
int[][] winPositions = {{0, 1, 2}, {3, 4, 5}, {6, 7, 8},
{0, 3, 6}, {1, 4, 7}, {2, 5, 8},
{0, 4, 8}, {2, 4, 6}};
J
public static int counter = 0;
// this function will be called every time a
// players tap in an empty box of the grid
public void playerTap(View view) {
ImageView img = (ImageView) view;
int tappedImage =
Integer.parseInt(img.getTag().toString());
// game reset function will be called
// if someone wins or the boxes are full
if (!gameActive) {
gameReset(view);
//Reset the counter
14
status.setText("Match Draw");
// reset the game
public void gameReset(View view) {
gameActive = true;
activePlayer = 0;
//set all position to Null
Arrays.fill(gameState, 2);
// remove all the images from the boxes inside the
grid
((ImageView)
findViewById(R.id.imageView0)).setImageResource(0);
((ImageView)
findViewById(R.id.imageView1)).setImageResource(0);
15
((ImageView)
findViewById(R.id.imageView2)).setImageResource(0);
((ImageView)
findViewById(R.id.imageView3)).setImageResource(0);
((ImageView)
findViewById(R.id.imageView4)).setImageResource(0);
((ImageView)
findViewById(R.id.imageView5)).setImageResource(0);
((ImageView)
findViewById(R.id.imageView6)).setImageResource(0);
23
((ImageView)
findViewById(R.id.imageView7)).setImageResource(0);
((ImageView)
findViewById(R.id.imageView8)).setImageResource(0);
TextView status = findViewById(R.id.status);
status.setText("X's Turn - Tap to play");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
16
6.SCREENSHOTS
1)
2)
3)
25
7.CONCLUSION
the Android Tic-Tac-Toe game offers a compelling demonstration of fundamental Android
development concepts and user interaction principles. The project involves creating a
user-friendly interface with XML layouts, implementing game logic in Java or Kotlin, and
handling user inputs efficiently.Throughout this project, developers gain valuable experience
in creating interactive and responsive Android applications. The Tic-Tac-Toe game serves as
a stepping stone for learners to delve into more complex Android projects, building a strong
foundation for future app development endeavors. As developers progress, they can further
refine and expand the game, exploring additional features, optimizations, and design
considerations to enhance their skills in Android development.
18
8.BIBLOGRAPHY
. 1. “Android Programming: The Big Nerd Ranch Guide” by Bill Phillips
• Provides hands-on experience through practical examples.
2. “Head First Android Development” by Dawn Griffiths and David Griffiths:
• Takes a learner-friendly approach with a visually engaging style.
• Covers fundamental concepts and builds practical projects.
3. “Kotlin Programming: The Big Nerd Ranch Guide” by Josh Skeen;:
• Focuses on Kotlin, the preferred language for Android development.
• Ideal for developers transitioning from Java to Kotlin.
.
WEBLINKS:
www.android-developers.googleblog.com: Stay updated on the latest Android news,
releases, and best practices through official blog posts.
https://www.androidhive.info/ :A blog with tutorials, guides, and sample projects covering
various aspects of Android development.
19