Skip to content

Instantly share code, notes, and snippets.

@guimaion
Last active November 17, 2022 11:58
Show Gist options
  • Save guimaion/9275543 to your computer and use it in GitHub Desktop.
Save guimaion/9275543 to your computer and use it in GitHub Desktop.
This is a simple battleship game, made with lists on python. This is the first game I ever made.
from random import randint
#initializing board
board = []
for x in range(5):
board.append(["O"] * 5)
def print_board(board):
for row in board:
print " ".join(row)
#starting the game and printing the board
print "Let's play Battleship!"
print_board(board)
#defining where the ship is
def random_row(board):
return randint(0, len(board) - 1)
def random_col(board):
return randint(0, len(board[0]) - 1)
ship_row = random_row(board)
ship_col = random_col(board)
#asking the user for a guess
for turn in range(4):
guess_row = int(raw_input("Guess Row:"))
guess_col = int(raw_input("Guess Col:"))
# if the user's right, the game ends
if guess_row == ship_row and guess_col == ship_col:
print "Congratulations! You sunk my battleship!"
break
else:
#warning if the guess is out of the board
if (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4):
print "Oops, that's not even in the ocean."
#warning if the guess was already made
elif(board[guess_row][guess_col] == "X"):
print "You guessed that one already."
#if the guess is wrong, mark the point with an X and start again
else:
print "You missed my battleship!"
board[guess_row][guess_col] = "X"
# Print turn and board again here
print "Turn " + str(turn+1) + " out of 4."
print_board(board)
#if the user have made 4 tries, it's game over
if turn >= 3:
print "Game Over"
@maartenww
Copy link

what does the print_board def do? i don't get theprint " "Join row

@maartenww
Copy link

Also don't get the for loop

@neeziv
Copy link

neeziv commented Oct 17, 2016

maartenww commented on Aug 28
what does the print_board def do? i don't get theprint " "Join row
" ".join(row) joins together the elements in the list with a space between them.
And they're using a loop to have it print out with format of one row per print line instead of [[0,0,0,0,0],[0,0,0,0,0]........]

Copy link

ghost commented Sep 23, 2017

Dude, This is there in CODECADAMY, Don't try 2 fool us

@jb2200
Copy link

jb2200 commented Oct 4, 2017

Your last if statement is wrong, according to your comment, you state that if the user has had four attempts, it is game over. Currently, your if statement will print game over on the user third try and each try there after. If you want the user to get four attempts just put your if statement to if turn > 4.

@Nidzeks
Copy link

Nidzeks commented Oct 25, 2017

This is from codecademy python course xD

@SugarSnek
Copy link

The code doesn't work for me lmao..

@TechGrey-zz
Copy link

Even though this is from Codecademy, I've made a new version for the people rocking V3.8.0 +.
Code:
`from random import randint

#initializing board
board = []

for x in range(5):
board.append(["O"] * 5)

def print_board(board):
for row in board:
print(" ".join(row))

#starting the game and printing the board
print("Let's play Battleship!")
print_board(board)

#defining where the ship is
def random_row(board):
return randint(0, len(board) - 1)

def random_col(board):
return randint(0, len(board[0]) - 1)

ship_row = random_row(board)
ship_col = random_col(board)

#asking the user for a guess
for turn in range(4):
guess_row = int(input("Guess Row:"))
guess_col = int(input("Guess Col:"))

# if the user's right, the game ends
if guess_row == ship_row and guess_col == ship_col:
    print("Congratulations! You sunk my battleship!")
    break
else:
    #warning if the guess is out of the board
    if (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4):
        print("Oops, that's not even in the ocean.")
    
    #warning if the guess was already made
    elif(board[guess_row][guess_col] == "X"):
        print("You guessed that one already.")
    
    #if the guess is wrong, mark the point with an X and start again
    else:
        print("You missed my battleship!")
        board[guess_row][guess_col] = "X"
    
    # Print turn and board again here
    print("Turn " + str(turn+1) + " out of 4.")
    print_board(board)

#if the user have made 4 tries, it's game over
if turn >= 3:
print("Game Over")
`

@cpsclicktest
Copy link

CPS Test
https://cpsclicktest.com/
Thank you for sharing this type of information its very helpful – please look this one also.
Consistent practice is an effective way to improve at Kohi Clicking.<a href="https://cpsclicktest.com/"CPS Test </a regularly to improve your score. Other important factors include using a good gaming mouse, vibrating your hand, and performing online click tests. In Kohi, the average clicking speed is 3 to 6 clicks per second. You can achieve a mouse clicking speed of up to 10 clicks per second by combining various clicking techniques with routine practice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment