首页 > 代码库 > python写的battle ship小游戏 - 1.0
python写的battle ship小游戏 - 1.0
最近学python,这是今天写的一个小游戏。
from random import randintclass Board(object): board = [] def __init__(self,row,col): self.board = [] self.row = row self.col = col for i in range(row): self.board.append( ["O"] * col ) def print_board(self): space = (self.col * 2 - 8)/2 print "-" * space + " Board " + "-" * space print "-" * self.col * 2 for r in self.board: print " ".join(r) print "-" * self.col * 2class Game(object): loop_time = 4 def __init__(self,row,col): self.row = row self.col =col self.actual_row = -1 self.actual_col = -1 self.guess_row = -100 self.guess_col = -100 self.main_loop() def random_row(self): return randint(1, self.row) def random_col(self): return randint(1, self.col) def set_ship(self): """the battle ship is here:""" self.actual_col = self.random_col() self.actual_row = self.random_row() print self.actual_row print self.actual_col self.my_board_actual.board[self.actual_row - 1][self.actual_col - 1] = "S" def get_input_from_player(self): print "Please select where to hit on the board:" self.guess_row = int(raw_input("To hit Row:")) - 1 self.guess_col = int(raw_input("To hit Col:")) - 1 def check_if_hit(self): if self.my_board_actual.board[self.guess_row][self.guess_col] == "S": print "Congratulations! You sunk my battle ship!" self.my_board.board[self.guess_row][self.guess_col] = "S" return True else: if self.guess_row < 0 or self.guess_col < 0 or self.guess_row > self.row or self.guess_col > self.col: print "Ooops, that‘s not even in the ocean." elif self.my_board.board[self.guess_row][self.guess_col] == "X": print "You guessed that one already." else: print "You missed my battleship!" self.my_board.board[self.guess_row][self.guess_col] = "X" return False def main_loop(self): print "Game Start: Let‘s play Battleship!" turn = 1 #print "Turn", turn my_board = Board(self.row,self.col) my_board_actual = Board(self.row,self.col) self.my_board = my_board self.my_board_actual = my_board_actual my_board.print_board() self.set_ship() result = False while turn < self.loop_time + 1: print "\nTurn", turn self.get_input_from_player() result = self.check_if_hit() my_board.print_board() if result: turn = self.loop_time + 2 else: turn += 1 else: if not result: print "Game Over" my_game = Game(5,5)
python写的battle ship小游戏 - 1.0
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。