0% found this document useful (0 votes)
30 views36 pages

Abinash Project

The internship report details the author's experience at InternPE, focusing on Python programming skills development over three months. Key aspects include project-based learning, regular mentorship meetings, and overcoming challenges in coding and problem-solving. The report highlights the transformative nature of the internship, equipping the author with practical skills and confidence in Python development.

Uploaded by

biswachintamanib
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)
30 views36 pages

Abinash Project

The internship report details the author's experience at InternPE, focusing on Python programming skills development over three months. Key aspects include project-based learning, regular mentorship meetings, and overcoming challenges in coding and problem-solving. The report highlights the transformative nature of the internship, equipping the author with practical skills and confidence in Python development.

Uploaded by

biswachintamanib
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/ 36

INTERNSHIP REPORT

Submitted for the partial fulfillment of the requirement for the


Degree of
Bachelor of Technology
in
COMPUTER SCIENCE & ENGINEERING(DS)
By
Abinash Biswal Reg.No:2201287560

Guided By:
Dr.Narendra Kumar Kamila

GIT AUTONOMOUS COLLEGE, BHUBANESWAR


NOV 2024

1
2
Examined by:

(Prof.(Dr.)

(External Examiner)

3
4
Department of Computer Science & Engineering
GITA Autonomous College ,Bhubaneshwar

ACKNOWLEDGEMENT

First, I would like to thank Mr Divya Bansal HR of "INTERNPE" for giving me the opportunity to do
an internship within the organization. I also would like to thank all the people who collaborated along
with me in "Internpe" for their constant support and enjoyable working environment. It is indeed
with an enthusiastic sense of pleasure and immense sense of gratitude that I acknowledge the help of
these individuals.

I also take this opportunity to thank Dr. Narendra Kumar Kamila, head of Department, Computer
Science & Engineering in Data Science, for his constant support and timely advice.

Lastly, words run to express my gratitude to all the faculties of the CSEDS Dept. and friends for their
support and co-operation, constructive criticism, and valuable suggestion during preparation of this
project report.

Thanking All….

Abinash Biswal
Reg.No:2201287560
Email-id:biswalabinash5768@gmail.com
Phone no:+91 7609088377

5
Abstract

The internship experience at InternPE provided a comprehensive platform for learning and honing
skills in Python programming. Over the course of three months, the internship offered a structured
curriculum covering Python basics, object-oriented programming, and data manipulation, along with
practical projects and regular meetings. This abstract delves into the key learnings, challenges faced,
and the overall growth experienced during the internship period.

Python Fundamentals:

The internship commenced with a focus on building a solid foundation in Python programming.
Through interactive sessions and firsthand exercises, participants gained proficiency in writing Python
scripts, utilizing data structures like lists, dictionaries, and sets, and implementing object-oriented
principles. Understanding the fundamentals laid the groundwork for tackling more complex tasks in
subsequent weeks.

Project-Based Learning:

One of the highlights of the internship was the emphasis on project-based learning. Participants were
tasked with creating a series of projects ranging from basic file handling and automation scripts to
more advanced data processing tasks using libraries like Pandas and NumPy. These projects not only
provided opportunities to apply theoretical knowledge but also encouraged problem-solving and
critical thinking skills. Collaborative efforts within the team fostered a sense of camaraderie and
facilitated knowledge sharing.

Regular Meetings and Mentorship:

The internship structure included regular meetings with mentors to discuss progress, address
challenges, and receive feedback. These meetings served as invaluable opportunities to seek guidance,
clarify concepts, and gain insights from experienced professionals in the field. Mentorship played a
pivotal role in nurturing individual growth and fostering a supportive learning environment.

Challenges and Learning Opportunities:

Throughout the internship, participants encountered various challenges that evaluated their skills in
Python debugging, algorithm development, and writing efficient code. These challenges contributed to
the overall learning experience and enhanced the participants' ability to work on real-world Python
projects.

Conclusion:

The internship experience at InternPE was transformative, equipping participants with a well-
rounded understanding of Python programming through both theoretical learning and practical
project-based applications. With the guidance of mentors and through overcoming real-world
challenges, participants honed their abilities and emerged as more confident Python developers. The
growth and learning throughout the internship stand as a testament to the value of structured learning
in fostering professional development in the field of Python programming.

6
TABLE OF CONTENTS(sample)

Chapter

1.INTRODUCTION……………………………………………………………………………………………….

2.WHERE I WORKED……………………………………………………………………………………………

3.DUTIES PERFORMED…………………………………………………………………………………………

4.INTERNSHIP ACTIVITIES WEEK WISE………………………………………………………………….

7
Chapter 1:

INTRODUCTION

The internship experience at InternPE provided a comprehensive platform for learning and honing skills in
Python programming. Over the course of one months, the internship offered a structured curriculum
covering Python fundamentals, data structures, algorithms, and practical applications such as web
development and automation. This abstract delves into the key learnings, challenges faced, and the overall
growth experienced during the internship period.

Python Fundamentals:

The internship began with a focus on building a strong foundation in Python programming. Through
interactive sessions and hands-on exercises, participants gained proficiency in core Python concepts,
including variables, loops, conditionals, and functions. As the internship progressed, participants learned to
solve problems using Python, work with libraries for data manipulation, and develop scripts for automation.
Understanding these fundamentals set the stage for tackling more complex projects in the subsequent
weeks, such as integrating APIs and working with databases.

8
Chapter 2:

WHERE I WORKED:INTERNPE

During the internship, I had the privilege of working with InternPE, a Jaipur, Rajasthan-based company that offers
virtual internship opportunities in python. Despite the geographical distance, InternPE provided a seamless virtual
working environment, facilitating effective communication and collaboration among team members. Through online
platforms and digital tools, I engaged in interactive sessions, project discussions, and mentorship mectings, all from
the comfort of my own space.

InternPE's commitment to virtual internship programs reflects the company's adaptability to the evolving landscape
of remote work and demonstrates its dedication to providing accessible learning opportunities to aspiring web
developers regardless of location. Working with InterPE allowed me to experience firsthand the benefits of remote
collaboration and sharpened my ability to thrive in virtual work environments. The experience provided valuable
insights into the potential of virtual internships in bridging geographical barriers and fostering professional growth in
the digital age.

9
Chapter 3:

DUTIES PERFORMED WHILE ON THE PROGRAM

During my tenure in the InternPE internship program, I undertook a variety of duties and responsibilities aimed at
enhancing my skills in Python development. These duties involved both individual tasks and collaborative projects,
designed to deepen my understanding of Python programming principles and practices. Some of the key duties
performed during the program include:

1. Project Development:

I actively contributed to the development of Python-based projects, including creating a calculator, a Connect 4
game, a Tic Tac Toe game, and a task management application. This involved conceptualizing, designing, and
implementing functionality using Python libraries and frameworks.

2. Code Debugging and Optimization:

I engaged in identifying, troubleshooting, and debugging Python code to resolve errors and optimize performance,
ensuring that the applications ran efficiently and met the desired quality standards.

3. Algorithm Design and Problem Solving:

I gained experience in designing algorithms and writing Python scripts to solve specific problems, improving my
logical thinking and problem-solving capabilities.

4. Collaborative Problem-Solving:

I worked closely with team members, collaborating on project tasks, sharing ideas, and troubleshooting challenges.
This experience enhanced my teamwork and communication skills, essential for professional development.

5. Regular Meetings and Reporting:

I participated in regular meetings with mentors and peers to discuss project progress, seek feedback, and receive
guidance. I also maintained thorough documentation of my learning process, project milestones, and areas for
improvement, helping me reflect on my growth during the program.

10
Chapter 4:

INTERNSHIP ACTIVITIES WEEK WISE

WEEK 1: MAKE A DIGITAL CLOCK

WEEK 2:TIC TAC TOE GAME

WEEK 3:SNAKE GAME

WEEK 4:CONNECT FOUR GAME

11
INTRODUCTION
Python development focuses on creating powerful and versatile applications, scripts, and systems using Python, a
high-level programming language known for its simplicity and readability. Python is widely used for a variety of
purposes, including web development, data analysis, automation, machine learning, and more. Python developers
leverage its extensive libraries and frameworks to build scalable and efficient solutions, from small scripts to large-
scale applications. Collaboration with other developers, adherence to coding standards, and implementing efficient
algorithms are key aspects of Python development.

Frameworks like Django and Flask empower developers to build robust web applications, while libraries such as
NumPy and pandas are used for data analysis. Python’s role in machine learning, with tools like TensorFlow and
Scikit-learn, highlights its significance in AI-driven development. Python’s versatility makes it a go-to language for
various industries and applications.

Constant learning and staying up-to-date with the evolving Python ecosystem are essential for developers to remain
at the forefront of the industry.

Key Features of Python Development:

1. Readability and Simplicity: Python’s clean syntax allows for easy understanding and collaboration.

2. Versatility: Used in web development, data science, automation, machine learning, and more.

3. Cross-Platform :Compatibility Python code runs on multiple operating systems without modification.

4. Large Standard Library: Provides a vast range of modules and functions for different use cases.

5. Scalability: Enables the development of both small-scale scripts and enterprise-level applications.

6. Security Measures: Implements security protocols for protecting applications from vulnerabilities.

7. Web Frameworks: Uses frameworks like Django and Flask to build dynamic web applications.

8. Database Integration: Connects to various databases for managing and processing data.

9. Machine Learning and AI: Python is a leading language in machine learning and artificial intelligence.

10. Automation and Scripting: Python is ideal for automating repetitive tasks and system processes.

11. API Development and Integration: Facilitates building and consuming APIs for extended functionality.

12. Version Control: Tracks and manages code changes using systems like Git.

13. Testing and Debugging: Ensures code reliability through comprehensive testing and debugging.

14. Continuous Integration and Deployment (CI/CD): Automates the development, testing, and deployment pipelines.

15. Adherence to PEP 8 Standards: Ensures compliance with Python’s official style guide for clean, maintainable code.

12
ABOUT COMPANY:

Internpe: Transforming Dreams into Reality through Purposeful Internships Internpe


stands as a beacon for aspiring individuals, a non-profit organizationcommitted to
nurturing dreams and fostering professional growth. In aworld that often seems driven
solely by profit, Internpe takes a refreshingapproach by placing the spotlight squarely on
your aspirations.

At the heart of Internpe's mission is the belief that internships should not merely be
about tasks and timelines but should function as transformative experiences, propelling
individuals towards their ultimate career goals. As youembark on your internship journey
with us, be prepared for a unique blend of mentorship, firsthand experience, and a
community that champions your success.

The essence of Internpe lies in its unwavering commitment to providing 100%quality


content and steering careers towards their zenith. Our focus extends beyond the routine
and mundane; we strive to inject passion and purpose into every internship opportunity
we offer. Whether you are delving into the intricacies of C++, mastering the art of C++,
or exploring other diverse fields, Internpe is your catalyst for growth.

13
TASK 1:

MAKE A DIGITAL CLOCK

CODE:

from tkinter import *

from time import strftime

root = Tk()

root.title("Digital Clock")

def time():

string = strftime('%H:%M:%S %p')

label.config(text=string)

label.after(1000, time)

label = Label(root, font=("Helvetica", 80), background="black", foreground="cyan")

label.pack(anchor='center')

time()

root.mainloop()

OUTPUT:

14
TASK 2:

TIC TAC TOE GAME

CODE:

def print_board(board):

print("\n")

for row in range(3):

print(" | ".join(board[row]))

if row < 2:

print("-" * 9)

print("\n")

def is_winner(board, player):

win_conditions = [

[board[0][0], board[0][1], board[0][2]],

[board[1][0], board[1][1], board[1][2]],

[board[2][0], board[2][1], board[2][2]],

[board[0][0], board[1][0], board[2][0]],

[board[0][1], board[1][1], board[2][1]],

[board[0][2], board[1][2], board[2][2]],

[board[0][0], board[1][1], board[2][2]],

[board[0][2], board[1][1], board[2][0]]

return [player, player, player] in win_conditions


15
def is_draw(board):

return all(cell != " " for row in board for cell in row)

def get_valid_move(board):

while True:

try:

move = int(input("Enter your move (1-9): ")) - 1

if move < 0 or move > 8:

print("Invalid input! Enter a number between 1 and 9.")

continue

row, col = divmod(move, 3)

if board[row][col] == " ":

return row, col

else:

print("Cell is already taken. Choose another move.")

except ValueError:

print("Invalid input! Please enter a number.")

def switch_player(current_player):

return "O" if current_player == "X" else "X"

def tic_tac_toe():

print("Welcome to Tic-Tac-Toe!")

board = [[" " for _ in range(3)] for _ in range(3)]

current_player = "X"

while True:

print_board(board)
16
print(f"Player {current_player}'s turn.")

row, col = get_valid_move(board)

board[row][col] = current_player

if is_winner(board, current_player):

print_board(board)

print(f"Player {current_player} wins!")

break

if is_draw(board):

print_board(board)

print("It's a draw!")

break

current_player = switch_player(current_player)

if __name__ == "__main__":

tic_tac_toe()

OUTPUT:

Welcome to Tic-Tac-Toe!

| |

---------

| |

---------

| |

Player X's turn.


17
Enter your move (1-9): 1

X| |

---------

| |

---------

| |

Player O's turn.

Enter your move (1-9): 2

X|O|

---------

| |

---------

| |

Player X's turn.

Enter your move (1-9): 3

X|O|X

---------

| |

---------

| |

Player O's turn.

Enter your move (1-9): 4

18
X|O|X

---------

O| |

---------

| |

Player X's turn.

Enter your move (1-9): 5

X|O|X

---------

O|X|

---------

| |

Player O's turn.

Enter your move (1-9): 6

X|O|X

---------

O|X|O

---------

| |

Player X's turn.

Enter your move (1-9):

Invalid input! Please enter a number.

Enter your move (1-9): 7

19
X|O|X

---------

O|X|O

---------

X| |

Player X wins!

20
TASK 3:

SNAKE GAME

CODE:

import pygame

import time

import random

pygame.init()

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

RED = (213, 50, 80)

GREEN = (0, 255, 0)

BLUE = (50, 153, 213)

WIDTH, HEIGHT = 600, 400

screen = pygame.display.set_mode((WIDTH, HEIGHT))

pygame.display.set_caption("Snake Game")

clock = pygame.time.Clock()

SNAKE_BLOCK = 10

SNAKE_SPEED = 15

font_style = pygame.font.SysFont("bahnschrift", 25)

score_font = pygame.font.SysFont("comicsansms", 35)

def display_score(score):

value = score_font.render(f"Your Score: {score}", True, BLACK)


21
screen.blit(value, [0, 0])

def draw_snake(snake_block, snake_list):

for x in snake_list:

pygame.draw.rect(screen, GREEN, [x[0], x[1], snake_block, snake_block])

def message(msg, color):

mesg = font_style.render(msg, True, color)

screen.blit(mesg, [WIDTH / 6, HEIGHT / 3])

def game_loop():

game_over = False

game_close = False

x = WIDTH // 2

y = HEIGHT // 2

x_change = 0

y_change = 0

snake_list = []

length_of_snake = 1

food_x = round(random.randrange(0, WIDTH - SNAKE_BLOCK) / 10.0) * 10.0

food_y = round(random.randrange(0, HEIGHT - SNAKE_BLOCK) / 10.0) * 10.0

while not game_over:

while game_close:

screen.fill(BLUE)

message("You Lost! Press Q-Quit or C-Play Again", RED)

display_score(length_of_snake - 1)

pygame.display.update()
22
for event in pygame.event.get():

if event.type == pygame.KEYDOWN:

if event.key == pygame.K_q:

game_over = True

game_close = False

if event.key == pygame.K_c:

game_loop()

for event in pygame.event.get():

if event.type == pygame.QUIT:

game_over = True

if event.type == pygame.KEYDOWN:

if event.key == pygame.K_LEFT:

x_change = -SNAKE_BLOCK

y_change = 0

elif event.key == pygame.K_RIGHT:

x_change = SNAKE_BLOCK

y_change = 0

elif event.key == pygame.K_UP:

y_change = -SNAKE_BLOCK

x_change = 0

elif event.key == pygame.K_DOWN:

y_change = SNAKE_BLOCK

x_change = 0

23
if x >= WIDTH or x < 0 or y >= HEIGHT or y < 0:

game_close = True

x += x_change

y += y_change

screen.fill(BLUE)

pygame.draw.rect(screen, RED, [food_x, food_y, SNAKE_BLOCK,


SNAKE_BLOCK])

snake_head = []

snake_head.append(x)

snake_head.append(y)

snake_list.append(snake_head)

if len(snake_list) > length_of_snake:

del snake_list[0]

for block in snake_list[:-1]:

if block == snake_head:

game_close = True

draw_snake(SNAKE_BLOCK, snake_list)

display_score(length_of_snake - 1)

pygame.display.update()

if x == food_x and y == food_y:

food_x = round(random.randrange(0, WIDTH - SNAKE_BLOCK) / 10.0) * 10.0

food_y = round(random.randrange(0, HEIGHT - SNAKE_BLOCK) / 10.0) * 10.0

length_of_snake += 1

clock.tick(SNAKE_SPEED)

24
pygame.quit()

quit()

if __name__ == "__main__":

game_loop()

OUTPUT:

25
TASK 4:

CONNECT FOUR GAME

CODE:

import numpy as np

ROW_COUNT = 6

COLUMN_COUNT = 7

def create_board():

return np.zeros((ROW_COUNT, COLUMN_COUNT))

def drop_piece(board, row, col, piece):

board[row][col] = piece

def is_valid_location(board, col):

return board[ROW_COUNT-1][col] == 0

def get_next_open_row(board, col):

for r in range(ROW_COUNT):

if board[r][col] == 0:

return r

def print_board(board):

print(np.flip(board, 0))

def winning_move(board, piece):

for c in range(COLUMN_COUNT-3):

for r in range(ROW_COUNT):
26
if board[r][c] == piece and board[r][c+1] == piece and board[r][c+2] == piece and
board[r][c+3] == piece:

return True

for c in range(COLUMN_COUNT):

for r in range(ROW_COUNT-3):

if board[r][c] == piece and board[r+1][c] == piece and board[r+2][c] == piece and


board[r+3][c] == piece:

return True

for c in range(COLUMN_COUNT-3):

for r in range(ROW_COUNT-3):

if board[r][c] == piece and board[r+1][c+1] == piece and board[r+2][c+2] ==


piece and board[r+3][c+3] == piece:

return True

for c in range(COLUMN_COUNT-3):

for r in range(3, ROW_COUNT):

if board[r][c] == piece and board[r-1][c+1] == piece and board[r-2][c+2] == piece


and board[r-3][c+3] == piece:

return True

def is_board_full(board):

return np.all(board != 0)

def play_game():

board = create_board()

print_board(board)

game_over = False

turn = 0

27
while not game_over:

if turn == 0:

col = int(input("Player 1 (1-7), make your selection: ")) - 1

piece = 1

else:

col = int(input("Player 2 (1-7), make your selection: ")) - 1

piece = 2

if 0 <= col < COLUMN_COUNT:

if is_valid_location(board, col):

row = get_next_open_row(board, col)

drop_piece(board, row, col, piece)

if winning_move(board, piece):

print_board(board)

print(f"Player {turn + 1} wins!")

game_over = True

elif is_board_full(board):

print_board(board)

print("The game is a draw!")

game_over = True

else:

print_board(board)

turn += 1

turn %= 2

else:
28
print("Column is full. Try again.")

else:

print("Invalid column. Please select a column between 1 and 7.")

if __name__ == "__main__":

play_game()

OUTPUT:

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]]

Player 1 (1-7), make your selection: 2

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 1. 0. 0. 0. 0. 0.]]

Player 2 (1-7), make your selection: 7

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]
29
[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 1. 0. 0. 0. 0. 2.]]

Player 1 (1-7), make your selection: 5

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 1. 0. 0. 1. 0. 2.]]

Player 2 (1-7), make your selection: 6

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 1. 0. 0. 1. 2. 2.]]

Player 1 (1-7), make your selection: 3

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]
30
[0. 1. 1. 0. 1. 2. 2.]]

Player 2 (1-7), make your selection: 6

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 2. 0.]

[0. 1. 1. 0. 1. 2. 2.]]

Player 1 (1-7), make your selection: 7

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 2. 1.]

[0. 1. 1. 0. 1. 2. 2.]]

Player 2 (1-7), make your selection: 8

Invalid column. Please select a column between 1 and 7.

Player 2 (1-7), make your selection: 2

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 2. 0. 0. 0. 2. 1.]

[0. 1. 1. 0. 1. 2. 2.]]
31
Player 1 (1-7), make your selection: 1

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 2. 0. 0. 0. 2. 1.]

[1. 1. 1. 0. 1. 2. 2.]]

Player 2 (1-7), make your selection: 6

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 2. 0.]

[0. 2. 0. 0. 0. 2. 1.]

[1. 1. 1. 0. 1. 2. 2.]]

Player 1 (1-7), make your selection: 7

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 2. 1.]

[0. 2. 0. 0. 0. 2. 1.]

[1. 1. 1. 0. 1. 2. 2.]]

Player 2 (1-7), make your selection: 8

Invalid column. Please select a column between 1 and 7.

Player 2 (1-7), make your selection: 5


32
[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 2. 1.]

[0. 2. 0. 0. 2. 2. 1.]

[1. 1. 1. 0. 1. 2. 2.]]

Player 1 (1-7), make your selection: 2

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 1. 0. 0. 0. 2. 1.]

[0. 2. 0. 0. 2. 2. 1.]

[1. 1. 1. 0. 1. 2. 2.]]

Player 2 (1-7), make your selection: 4

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 1. 0. 0. 0. 2. 1.]

[0. 2. 0. 0. 2. 2. 1.]

[1. 1. 1. 2. 1. 2. 2.]]

Player 1 (1-7), make your selection: 1

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]
33
[0. 1. 0. 0. 0. 2. 1.]

[1. 2. 0. 0. 2. 2. 1.]

[1. 1. 1. 2. 1. 2. 2.]]

Player 2 (1-7), make your selection: 5

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 1. 0. 0. 2. 2. 1.]

[1. 2. 0. 0. 2. 2. 1.]

[1. 1. 1. 2. 1. 2. 2.]]

Player 1 (1-7), make your selection: 5

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 1. 0. 0.]

[0. 1. 0. 0. 2. 2. 1.]

[1. 2. 0. 0. 2. 2. 1.]

[1. 1. 1. 2. 1. 2. 2.]]

Player 2 (1-7), make your selection: 5

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 2. 0. 0.]

[0. 0. 0. 0. 1. 0. 0.]

[0. 1. 0. 0. 2. 2. 1.]

[1. 2. 0. 0. 2. 2. 1.]

[1. 1. 1. 2. 1. 2. 2.]]
34
Player 1 (1-7), make your selection: 6

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 2. 0. 0.]

[0. 0. 0. 0. 1. 1. 0.]

[0. 1. 0. 0. 2. 2. 1.]

[1. 2. 0. 0. 2. 2. 1.]

[1. 1. 1. 2. 1. 2. 2.]]

Player 2 (1-7), make your selection: 1

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 2. 0. 0.]

[0. 0. 0. 0. 1. 1. 0.]

[2. 1. 0. 0. 2. 2. 1.]

[1. 2. 0. 0. 2. 2. 1.]

[1. 1. 1. 2. 1. 2. 2.]]

Player 1 (1-7), make your selection: 2

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 2. 0. 0.]

[0. 1. 0. 0. 1. 1. 0.]

[2. 1. 0. 0. 2. 2. 1.]

[1. 2. 0. 0. 2. 2. 1.]

[1. 1. 1. 2. 1. 2. 2.]]

Player 2 (1-7), make your selection: 3

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 2. 0. 0.]
35
[0. 1. 0. 0. 1. 1. 0.]

[2. 1. 0. 0. 2. 2. 1.]

[1. 2. 2. 0. 2. 2. 1.]

[1. 1. 1. 2. 1. 2. 2.]]

Player 1 (1-7), make your selection: 4

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 2. 0. 0.]

[0. 1. 0. 0. 1. 1. 0.]

[2. 1. 0. 0. 2. 2. 1.]

[1. 2. 2. 1. 2. 2. 1.]

[1. 1. 1. 2. 1. 2. 2.]]

Player 2 (1-7), make your selection: 7

[[0. 0. 0. 0. 0. 0. 0.]

[0. 0. 0. 0. 2. 0. 0.]

[0. 1. 0. 0. 1. 1. 2.]

[2. 1. 0. 0. 2. 2. 1.]

[1. 2. 2. 1. 2. 2. 1.]

[1. 1. 1. 2. 1. 2. 2.]]

Player 2 wins!

36

You might also like