我对Python中的类比较陌生。在编写一个战舰游戏时,我遇到了一个问题:随机选择x,y坐标作为计算机舰船的位置和计算机的攻击坐标。我不知道是将随机数生成为某个函数中的局部变量,还是生成类属性或实例属性。在

最初我想创建一个实例属性(如下),但我发现rand_x没有定义。我尝试创建一个生成随机数的战列舰函数,但每次调用它时都返回相同的一对坐标。唯一的方法是为随机变量创建一个局部变量吗?因为我将不止一次地使用随机生成器,所以最好不要重复这些代码。在

谢谢你的耐心。在

编辑:我用随机函数包含了更多代码,并用self.size替换了随机函数中的size。在

例如,战列舰(4,2,0,0)可能会给我一个hitlist的[[2,1],[2,1]],我想要随机的在里面hitlist。在import random

hitlist=[]; #a global variable

class Battleship(object):

""" Ship object container. A game where the user tries to destroy the enemy's ships User tries to guess computer's position x and y """

def __init__(self, size, numberships,position_x,position_y):

self.position_x=position_x

self.position_y=position_y

self.numberships=numberships

self.size = size

def plotships(self,r):

"""input is integer coordinates for ships and output is an array of arrays with battleship locations CREATES THE HITLIST DONT REPEAT"""

print('plotships function running')

for i in range(self.numberships):

hitlist.append(r) #random number from function randomness

print(hitlist)

return hitlist

def randomness(self):

rand_x=random.choice(range(self.size))

rand_y=random.choice(range(self.size))

randcoord=[rand_x,rand_y]

return randcoord

#Game Interface

size=int(input('Gameboard size'))

numberships=int(input('Waiting for Number of enemy ships'))

b=Battleship(size,numberships,0,0)

random=b.randomness() #create a random x y coordinate

b.plotships(random) #create a hitlist

python 战舰_Python战舰随机数发生器相关推荐

  1. python 战舰_Python战舰:获取用户输入的他们想要多少艘战舰

    我试图让游戏采取一个用户想要多少船的输入,并放置多少船.我把坐标放在一个列表中,这就是我存储它们的方式,并检查它是否命中.但是这些船被放在彼此的上方,用这个列表方法,我不知道如何首先检查它们是否重叠, ...

  2. python随机数程序源码_Python 实现随机数详解及实例代码

    Python3实现随机数 random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串. random.seed(x)改变随机数生成器的种子seed. 一般不必特别去设定seed,Pyth ...

  3. python输出多个随机数_python怎么输出从0到100内的多个随机数

    python如何一次性取出多个随机数 怎么样用python做个程序.生成一个随机数构成的列表小编的口是心非,小编的言外之意,小编的无心之处,如果你懂. 请高手指教下.怎么样用python做个程序.生成 ...

  4. Linux随机数发生器

    Linux随机数发生器 日期:2017-11-29 01:42:10 星期三 Linux随机数发生器 一.源代码的基本情况 Linux内核版本 涉及文件 功能概述 二.外部访问接口 内核层输出接口 用 ...

  5. 怎么读懂python语句_Python入门基础知识点总结,一点文章就能让你看懂Python

    Python标识符 在 Python 里,标识符由字母.数字.下划线组成. 在 Python 中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. Python 中的标识符是区分大小写 ...

  6. 量子计算机真随机数,量子真随机数发生器研究取得进展

    量子真随机数发生器研究取得进展 超高速真随机数发生器简化设计方案(上)与后处理方法(下) 信息科学技术学院郭弘教授课题组与物理学院张建玮副教授课题组开展合作,在用光学随机源设计研制量子真随机数发生器的 ...

  7. OpenCV 【十六】RNG随机数发生器putText绘制文字

    1 目的 使用 随机数发生器类 (RNG) 并得到均匀分布的随机数. 通过使用函数 putText 显示文字. 第一步是实例化一个 Random Number Generator(随机数发生器对象) ...

  8. python尝试不同的随机数进行数据划分、使用卡方检验依次计算不同随机数划分下训练接和测试集所有分类特征的卡方检验的p值,如果所有p值都大于0.05则训练集和测试集都具有统计显著性、数据划分合理

    python尝试不同的随机数进行数据划分.使用卡方检验依次计算不同随机数划分下训练接和测试集所有分类特征(categorical)的卡方检验的p值,如果所有p值都大于0.05则退出循环.则训练集和测试 ...

  9. c51汇编语言随机数函数,汇编语言随机数发生器

    我最近开始学习汇编语言.对于我正在研究的项目,我必须使用线性一致性来生成随机数生成器.我想拿三个数字.上限,下限和我想要的随机数的数量.如式为获得一个随机数,我想出了....汇编语言随机数发生器 ra ...

最新文章

  1. Oracle中的MERGE语句
  2. zabbix Server 4.0 监控TCP的12种状态
  3. 版本效果MoonWarrior cocos2d-x版本 --1
  4. 1.1 对象的概念及面向对象的三个基本特征
  5. 第二部分面向对像基础第五章
  6. 限速会自动恢复吗_骨折会自己好吗?骨折后怎样做恢复快?
  7. Package vim is not available, but is referred to by another package.
  8. 如何安装mysql 5.6_如何通过编译工具安装mysql 5.6
  9. php通用编码,php字符串怎么转换编码
  10. ISO 18000-6c 访问标签--应用程序访问操作ISO 18000-6C标签的方法
  11. 时光倒流我这么学java
  12. bt服务器搭建 linux_linux系统架设BT服务器的详细教程
  13. 一图看懂编程语言分类
  14. Mysql 免安装版本
  15. EINT、DINT、ERTM、DRTM和INTM、DBGM解析
  16. https页面访问不到http的处理方法
  17. uni-app 倒计时组件
  18. Android UI 模板
  19. 模拟电路设计(7)--- 增强型MOSFET
  20. Python图像处理(车牌识别)简单

热门文章

  1. 登陆档案信息未找到服务器是怎么办,用友畅捷通T+软件POS端常见问题汇总
  2. 有符号整数除以无符号整数会发生什么??!!!
  3. 石家庄康业软件科技有限公司
  4. 深入JavaWeb技术世界15:通过项目逐步深入了解Mybatis(二)
  5. POJ3737UmBasketella
  6. ubuntu 16.04 nivida显卡驱动更新步骤
  7. 动态内存申请(malloc, calloc, new)之分配虚拟内存空间和物理内存空间
  8. JSoup模拟登录新版正方教务系统(内网-教务系统)获取信息过程详解
  9. 最小生成树 算法思想及模板代码
  10. 成长有方法:爆发式成长的25个思维模型