Python Codecademy 9单元Battleship!



from random import randint
#引入随机函数

board = []
#建一个空的list

for x in range(5):
    board.append(["O"] * 5)
#用range()方法给list写值,每一个["0"]*5是item

def print_board(board):
    for row in board:
        print " ".join(row)
#输出list,去掉引号和括号,用空格连接

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

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)

    # Everything from here on should go in your for loop!
    # Be sure to indent four spaces!
for turn in range(4):
#循环四次
    guess_row = int(raw_input("Guess Row:"))
#输入猜测值
    guess_col = int(raw_input("Guess Col:"))

    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"):
#如果已经被填充X说明是重复值
            print "You guessed that one already."
        else:
            print "You missed my battleship!"
            board[guess_row][guess_col] = "X"
#猜错的值用X填充
        print (turn+1)
        if turn==3:
            print "Game Over"
    print_board(board)

 

codecademy第九单元的小游戏,虽然通过了,但是感觉还有硬伤,需要后期再调一下,例如轮次是从0开始的,输入的第几行第几列是不是应该-1,输入的数值没有判空

时间: 2024-10-14 00:59:23

Python Codecademy 9单元Battleship!的相关文章

Python:代码单元、代码点介绍

转于:https://www.cnblogs.com/runwulingsheng/p/5106078.html 博主:你是那天边突然划过的一道闪电 代码点:指编码表(比如Unicode)中某个字符的代码值(数字),书写时前面加U+,比如U+0041是字母A的代码点 代码单元:指表示编码表字符的最小存储单元,用16位表示 Unicode 代码点 U+0041 U+00DF U+6771 U+10400 表示字形 UTF-32 代码单元 00000041 000000DF 00006771 000

python xlwt 设置单元格样式

使用xlwt中的Alignment来设置单元格的对齐方式,其中horz代表水平对齐方式,vert代表垂直对齐方式. VERT_TOP = 0x00 上端对齐 VERT_CENTER = 0x01 居中对齐(垂直方向上) VERT_BOTTOM = 0x02 低端对齐 HORZ_LEFT = 0x01 左端对齐 HORZ_CENTER = 0x02 居中对齐(水平方向上) HORZ_RIGHT = 0x03 右端对齐 import xlwt def run(): wk = xlwt.Workboo

Python Codecademy 练习:去掉字符串中的元音字母

1 def anti_vowel(text): 2 out=[] 3 mystring=list(text) 4 for i in mystring: 5 if i not in ["a","e","i","o","u","A","E","I","O","U"]: 6 out.append(i) 7 prin

Python Codecademy Student Becomes the Teacher

#三个学生的信息 lloyd = { "name": "Lloyd", "homework": [90.0, 97.0, 75.0, 92.0], "quizzes": [88.0, 40.0, 94.0], "tests": [75.0, 90.0] } alice = { "name": "Alice", "homework": [100.0,

Python Codecademy 函数17课

def shut_down(s): if s=="yes": return "Shutting down" elif s=="no": return "Shutdown aborted" else: return"Sorry 17课这个小程序,改了好几遍,错误原因 1.关键字return打错了.(⊙﹏⊙)b 2.return后加了括号 3.用了print

Python Codecademy 列表9课

start_list = [5, 3, 1, 2, 4] square_list = [] # Your code here! for number in start_list: square_list.append(number**2) square_list.sort() print square_list append() 方法用于在列表末尾添加新的对象. append()方法语法: list.append(obj)

Python学习推荐

1.    Python官网 官网想必是最权威的,不仅有Python 2.X和3.X的软件包,还有官方文档Python tutorial (official docs)及社区. 2.    在线阅读免费书籍<Dive Into Python>即<深入浅出Python> 简介: Dive Into Python是一个免费的Python有经验的程序员的书.它最初被托管在DiveIntoPython.org,但笔者已经拉下所有副本.这个网站正在这里镜像.你可以在线阅读,或下载的各种格式的

Python的运行机制--操作码(opcode)解析

上一篇文章<Python的运行机制--pyc文件浅析>中已经对Python的运行单元PyCodeObject结构体作了初步的了解,但是要真正理解Python的运行机制, 还要通过分析Python的opcode才行.opcode的解释执行通过ceval.c中的以下函数: PyObject *PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) 来实现,所以这个函数是研究opcode的重点,对于opcode有什么不明白的地方都可以通过这个函数中相应

python 写 excel 模块 : xlwt

主要来自:[ python中使用xlrd.xlwt操作excel表格详解 ] 为了方便阅读, 我将原文两个模块拆分为两篇博文: [ python 读 excel 模块: xlrd ] [ python 写 excel 模块: xlwt ] xlwt 写excel的难点可能不在构造一个workbook的本身,而是填充的数据,不过这不在范围内.在写excel的操作中也有棘手的问题,比如写入合并的单元格就是比较麻烦的,另外写入还有不同的样式. 现在完成如下一个 excel 的表格 : python c