python battleship_python写的battle ship小游戏 - 1.0

from random importrandintclassBoard(object):

board=[]def __init__(self,row,col):

self.board=[]

self.row=row

self.col=colfor i inrange(row):

self.board.append( ["O"] *col )defprint_board(self):

space= (self.col * 2 - 8)/2

print "-" * space + "Board" + "-" *spaceprint "-" * self.col * 2

for r inself.board:print " ".join(r)print "-" * self.col * 2

classGame(object):

loop_time= 4

def __init__(self,row,col):

self.row=row

self.col=col

self.actual_row= -1self.actual_col= -1self.guess_row= -100self.guess_col= -100self.main_loop()defrandom_row(self):return randint(1, self.row)defrandom_col(self):return randint(1, self.col)defset_ship(self):"""the battle ship is here:"""self.actual_col=self.random_col()

self.actual_row=self.random_row()printself.actual_rowprintself.actual_col

self.my_board_actual.board[self.actual_row- 1][self.actual_col - 1] = "S"

defget_input_from_player(self):print "Please select where to hit on the board:"self.guess_row= int(raw_input("To hit Row:")) - 1self.guess_col= int(raw_input("To hit Col:")) - 1

defcheck_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"

returnTrueelse: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"

returnFalsedefmain_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=Falsewhile turn < self.loop_time + 1:print "\nTurn", turn

self.get_input_from_player()

result=self.check_if_hit()

my_board.print_board()ifresult:

turn= self.loop_time + 2

else:

turn+= 1

else:if notresult:print "Game Over"my_game= Game(5,5)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值