from random import randint
Hidden_Pattern=[[' ']*8 for x in range(8)]
Guess_Pattern=[[' ']*8 for x in range(8)]
let_to_num={'A':0,'B':1, 'C':2,'D':3,'E':4,'F':5,'G':6,'H':7}
def print_board(board):
print(' A B C D E F G H')
print(' ***************')
row_num=1
for row in board:
print("%d|%s|" % (row_num, "|".join(row)))
row_num +=1
def get_ship_location():
#Enter the row number between 1 to 8
row=input('Please enter a ship row 1-8 ').upper()
while row not in '12345678':
print("Please enter a valid row ")
row=input('Please enter a ship row 1-8 ')
#Enter the Ship column from A TO H
column=input('Please enter a ship column A-H ').upper()
while column not in 'ABCDEFGH':
print("Please enter a valid column ")
column=input('Please enter a ship column A-H ')
return int(row)-1,let_to_num[column]
#Function that creates the ships
def create_ships(board):
for ship in range(5):
ship_r, ship_cl=randint(0,7), randint(0,7)
while board[ship_r][ship_cl] =='X':
ship_r, ship_cl = randint(0, 7), randint(0, 7)
board[ship_r][ship_cl] = 'X'
def count_hit_ships(board):
count=0
for row in board:
for column in row:
if column=='X':
count+=1
return count
create_ships(Hidden_Pattern)
turns = 10
while turns > 0:
print('\n\n============== Battleship ==============\n\n')
print_board(Guess_Pattern)
row,column =get_ship_location()
if Guess_Pattern[row][column] == '-':
print(' You already guessed that ')
elif Hidden_Pattern[row][column] =='X':
print(' Congratulations you have hit the battleship ')
Guess_Pattern[row][column] = 'X'
turns -= 1
else:
print('Sorry,You missed')
Guess_Pattern[row][column] = '-'
turns -= 1
if count_hit_ships(Guess_Pattern) == 5:
print("Congratulations you have sunk all the battleships ")
break
print(' You have ' +str(turns) + ' turns remaining ')
if turns == 0:
print('Game Over ')
bre
新华
- 粉丝: 1w+
- 资源: 628
最新资源
- 商用车整车主机厂产品级P2并联混合动力控制器功能规范,HCU控制策略,可以对照直接搭模型
- LMS基础实例,模态分析,锤击实验
- 成熟量产伺服控制器方案 汇川ISP500伺服,提供DSP程序和原理图,代码完整,学习工业代码的范例,含惯量识别,电机参数识别,PWM死区补偿,运动插补等功能
- 三菱Q26UDV系列PLC程序,威纶通触摸屏程序 铝壳电池干燥烘烤机 1.三菱Q26UDV主PLC,cclink总线控制三菱JE-c系列总线伺服电机,整机共40轴伺服运动控制,X,Y,Z三轴取放料伺服
- STM32 高频注入,FOC矢量控制 STM32 BLDC电机,FOC矢量控制驱动 采用stm32作为主控 支持BLDC电机,无刷电机 FOC矢量控制,无刷电机无感FOC 支持矢量控制,高频注入,无感
- 单台三相模块化多电平(mmc)小信号建模 内含功率外环、环流抑制、电流内环、PLL等控制部分完整建模 含参考文献和对应的仿真模型 动态特性如图
- 西门子PLC1200博途V16程序画面例程,具体项目工艺为制药厂生物发酵系统,程序内有报警,模拟量标定处理,温度PID,称重仪表USS通讯和基本的各种数字量控制,硬件组成包含称重仪表通讯及和ET200
- 风光互补与储能仿真 各种需求 风光储 dcdc mppt 逆变器
- 基于51单片机的多路温度检测proteus仿真-ds18b20(仿真+程序+原理图) 仿真图proteus 7.8 proteus 8.9 程序编译器:keil 4 keil 5 编程语言:C语言 功
- 《Python程序设计与算法基础教程(第三版)》PPT与教案
- 三相并网逆变器双闭环控制,电网电流外环电容电流内环控制算法,matlab Simulink仿真模型,有源阻尼,单位功率因数,电网电压和电流同相位
- Comsol散射体Anapole完全教学
- 西门子1200 1500博途单部电梯程序,文件包含一个四层电梯程序,三个六层电梯程序,版本TIA16 仅一个六层电梯有触摸屏画面,程序仅限于用于参考对比 博图版本V15.1及以上
- 15kW充电桩,大厂成熟性量产方案 FPC 15kW充电桩方案,大厂成熟性量产方案,全数字化控制,有原理图,通讯协议,无桥维也纳PFC+全桥LLC源码,可供学习和开发用
- 基于51单片机轮胎胎压气压监测测量仪-数码管显示(仿真+程序) 仿真图proteus 7.8 程序编译器:keil 4 keil 5 编程语言:C语言 主要研究内容: 本课程设计用MPX4115传感器
- 基于51单片机轮胎胎压监测系统-压力传感器(仿真+程序+报告) Proteus仿真版本:proteus7.8 程序编译器:keil 4 编程语言:C语言 基于单片机的轮胎压力检测报警系统设计,5
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈