Sinisterly
Battleship - Printable Version

+- Sinisterly (https://sinister.li)
+-- Forum: Coding (https://sinister.li/Forum-Coding)
+--- Forum: Python (https://sinister.li/Forum-Python)
+--- Thread: Battleship (/Thread-Battleship)



Battleship - Inori - 06-18-2015

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)



RE: Battleship - Shebang - 07-08-2015

Fun little game Smile 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()).

Code:
int(raw_input("Guess Row:")) -> input("Guess Row:")



RE: Battleship - Eclipse - 07-08-2015

(07-08-2015, 01:10 AM)Shebang Wrote: Fun little game Smile 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()).

Code:
int(raw_input("Guess Row:")) -> input("Guess Row:")

I prefer raw_input(); never have used input().