【python】a small python game ——Battleship

本文介绍了一个使用Python实现的简易版战舰游戏。游戏通过随机放置一艘关键战舰,并允许玩家在5次机会内猜中该战舰的位置。游戏利用二维数组作为海洋地图,通过随机函数设置战舰位置,同时提供了基本的游戏逻辑处理。

this game is easy .i have a crucial ship among the 25 ships , you have 5 times to find out which one it is .

 

There are the whole codes :

import random

board
= [] for x in range(0,5): board.append(["O"] * 5) def print_board(board): for row in board: print " ".join(row) print "Let's play Battleship!" print_board(board) def random_row(board): return random.randint(0,len(board)-1) def random_col(board): return random.randint(0,len(board[0])-1) ship_row = random_row(board) ship_col = random_col(board) print ship_row print ship_col #Everything from here on should go in your for loop! #Be sure to indent! guess_row = input("Guess Row:") guess_col = input("Guess Col:") turn=0 for turn in range(5): 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" # Print (turn + 1) here! print turn + 1 print_board(board)

 

let's do it step by step :

1.create your ships

import random

board = []

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

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

print "Let's play Battleship!"
print_board(board)

 

2.set one as a crucial ship randomly 

def random_row(board):
  return random.randint(0,len(board)-1)

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

ship_row = random_row(board)
ship_col = random_col(board)
print ship_row  #this is the answer , you can hide it 
print ship_col

 

3.ask palyer to guess a ship by guessing the row and column 

guess_row = input("Guess Row:")
guess_col = input("Guess Col:")
      print_board(board)

 

4.deal with the answer 

turn=0
for turn in range(5):
    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"
      # Print (turn + 1) here!
      print turn + 1

 

5. run it will be like this 

Let's play Battleship!
O O O O O
O O O O O
O O O O O
O O O O O
O O O O O

 

转载于:https://www.cnblogs.com/younglaker/archive/2013/01/25/2877093.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值