Battleship 06-18-2015, 02:44 AM
#1
Going off my trend of turning paper games into scripted ones, I made a one player battleship program as my debut for Python. This works on *nix systems due to the os.system('clear'), so if you want to run it on windows, just switch it to os.system('cls').
Code:
from random import randint
from time import sleep
import os
board = []
for x in range(5):
board.append(["O"] * 5)
def print_board(board):
for row in board:
print " ".join(row)
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)
for turn in range(4):
print "Turn", turn + 1
print_board(board)
guess_row = int(raw_input("Guess Row:"))
guess_col = int(raw_input("Guess Col:"))
os.system('cls')
if guess_row == ship_row and guess_col == ship_col:
print "Congratulations! You sunk my battleship!"
break
else:
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."
elif(board[guess_row][guess_col] == "X"):
print "You guessed that one already."
else:
print "You missed my battleship!"
board[guess_row][guess_col] = "X"
if turn == 3:
print "Game Over"
sleep(10)It's often the outcasts, the iconoclasts ... those who have the least to lose because they
don't have much in the first place, who feel the new currents and ride them the farthest.
don't have much in the first place, who feel the new currents and ride them the farthest.
















![[+]](https://sinister.li/images/modern/collapse_collapsed.png)




For future reference, you can avoid casting raw_input() to an int by using input(). In Python 2, input() is equivalent to eval(raw_input()).![[Image: CDUAq9d.png]](http://i.imgur.com/CDUAq9d.png)




