返回顶部
首页 > 资讯 > 后端开发 > Python >python 游戏(船只寻宝)
  • 481
分享到

python 游戏(船只寻宝)

船只寻宝游戏 2023-01-31 00:01:40 481人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

1. 游戏思路和流程图 实现功能:船只在可以在大海上移动打捞宝藏,船只可以扫描1格范围内的宝藏(后续难度,可以调整扫描范围,可以调整前进的格数) 游戏流程图   2. 使用模块和游戏提示 import randomships_coord

1. 游戏思路和流程图

实现功能:船只在可以在大海上移动打捞宝藏,船只可以扫描1格范围内的宝藏(后续难度,可以调整扫描范围,可以调整前进的格数)

游戏流程图

 

2. 使用模块和游戏提示

import random
ships_coordinates={} #船只坐标
def game_info():
'''游戏提示'''
print('欢迎来到船只寻宝游戏')
print('W(上) A(左) S(下) D(右) 来移动')
print('船(B)的探测范围是一格,移动次数为九次')

3. 双选验证

def Double_choice(a,b,hint):
'''双选择验证函数
:param a 第一个选项值
:param b 第二个选项值
:param hint 选项信息
:return 返回输入值'''
choice=''
while choice.lower() !=a and choice.lower() !=b:
print(hint)
choice=input()
return choice

4. 用户输入验证

def letter_move_judge(letter,map_x,map_y):
'''移动字母限制
:param letter 用户输入字母
:param map_x 地图x坐标
:param map_y 地图y坐标
:param 返回用户输入字符'''
ships_x=ships_coordinates['x']
ships_y =ships_coordinates['y']
while True:
if len(letter)!=1:
print('请输入一个字母')
elif letter.lower() not in 'w a s d':
print('请输入W or A or S or D')
else:
if letter.lower()=='w' and ships_y-1 <0:
print('超过界限了')
elif letter.lower()=='a' and ships_x-1 <0:
print('超过界限了')
elif letter.lower()=='s' and ships_y+1 >map_y-1:
print(ships_coordinates['y']-1)
print('超过界限了')
elif letter.lower()=='d' and ships_x+1 >map_x-1:
print('超过界限了')
else:
break
letter=input()
return letter.lower()

5. 海水列表 

def get_seawater(x,y):
'''生成海水列表
:param x 每列的行数
:param y 行数
:return 返回海水列表'''
seawater_map=[['~' for i in range(x)] for j in range(y)]
return seawater_map

6. 宝藏坐标列表 

def treasure_location(x,y):
'''随机宝藏坐标
:param x 每列的行数
:param y 行数
:return 返回宝藏列表'''
treasure_list=[]
count=5
while count:
treasure_x=random.randint(0,x-1)
treasure_y = random.randint(0, y-1)
if (treasure_x,treasure_y) not in treasure_list:
treasure_list.append((treasure_x,treasure_y))
count-=1
return treasure_list

7.  海水界面显示

def seawater_info(seawater_map):
'''打印海水
:param seawater_map 海水列表'''
for i in seawater_map:
print(' '.join(i))

8. 初始化游戏开始船只位置

def restarting_init(seawater_map):
'''初始化船只的位置'''
x=ships_coordinates['x']
y=ships_coordinates['y']
seawater_map[y][x]='B'
return seawater_map

9.  扫描船只范围内宝藏

def treasure_tab(treasure_list,seawater_map):
'''宝藏标记
:param treasure_list 宝藏位置列表
:param seawater_map 海水地图
:return 返回海水地图'''
ships_x=ships_coordinates['x']
ships_y=ships_coordinates['y']
treasure='$'
scope=1 #扫描格数需要改良
for i in range(1,scope+1):
if (ships_x-i, ships_y) in treasure_list:
seawater_map[ships_y][ships_x - i]=treasure

if (ships_x-i,ships_y+i) in treasure_list:
seawater_map[ships_y + i][ships_x - i] = treasure

if (ships_x-i, ships_y - i) in treasure_list:
seawater_map[ships_y-i][ships_x - i] = treasure

if (ships_x + i, ships_y) in treasure_list:
seawater_map[ships_y][ships_x + i] = treasure

if (ships_x+i,ships_y+i) in treasure_list:
seawater_map[ships_y+i][ships_x + i] = treasure

if (ships_x+i,ships_y-i) in treasure_list:
seawater_map[ships_y-i][ships_x + i] = treasure

if (ships_x, ships_y +i) in treasure_list:
seawater_map[ships_y+i][ships_x] = treasure
if (ships_x, ships_y - i) in treasure_list:
seawater_map[ships_y-i][ships_x] = treasure
return seawater_map

10.  判断船只地点是否有宝藏

def treasure_judge(treasure_list):
'''判断坐标是否有宝藏
:param treasure_list 宝藏地图
:return True 代表此地有宝藏'''
if (ships_coordinates['x'], ships_coordinates['y']) in treasure_list:
return True
return False

11.  移动船只

def restarting(ships_remove,seawater_map):
'''改变船的坐标
:param ships_remove 移动的位置
:param seawater_map 海水地图'''
ships_x=ships_coordinates['x']
ships_y=ships_coordinates['y']
number=1
seawater_map[ships_y][ships_x]='~'
if ships_remove=='w':
ships_y-=1
elif ships_remove=='a':
ships_x-=1
elif ships_remove=='s':
ships_y += 1
elif ships_remove=='d':
ships_x += 1
seawater_map[ships_y][ships_x] = 'B'
ships_coordinates['x']=ships_x
ships_coordinates['y']=ships_y
return seawater_map

12.  游戏核心

def game_start():
'''游戏核心'''
map_x=9
map_y=5
ships_coordinates['x']=map_x // 2
ships_coordinates['y'] = map_y // 2
treasure_count=0
count=9
seawater_map=get_seawater(map_x,map_y)
treasure_list=treasure_location(map_x,map_y)
seawater_map=restarting_init(seawater_map)
while count:
if treasure_judge(treasure_list):
treasure_count+=1
treasure_list.remove((ships_coordinates['x'],ships_coordinates['y']))
print('成功打捞宝藏..(%d个)'%treasure_count)
if treasure_count==5:
break
seawater_map=treasure_tab(treasure_list,seawater_map)
seawater_info(seawater_map)
print('请输入移动的位置(机会%d)'%count)
ships_remove=letter_move_judge(input(),map_x,map_y)
seawater_map=restarting(ships_remove,seawater_map)
count -= 1
seawater_info(seawater_map)
if count:
print('你寻找到了所有宝藏,提前结束了寻宝,今天收获%d个宝藏'%treasure_count)
else:
print('天黑了船只返回了船坞,今天收获%d个宝藏'%treasure_count)
#结束条件宝藏打捞完毕或次数用光

13. 游戏外壳

def game_shell():
'''外壳程序'''
game_info() # 游戏开始提示
game_start()
while True:
message='你想在玩一次吗(Y or N)'
again_flag=Double_choice('y','n',message)
if again_flag=='n':
break
game_start()

14. 运行游戏

game_shell()

 

python学习途径

本游戏参考书本 <<Python游戏编程快速上手>>

友情推荐:  猿人学Python【https://www.yuanrenxue.com/】 由一群工作十余年的老程序员结合实际工作经验所写的Python教程

--结束END--

本文标题: python 游戏(船只寻宝)

本文链接: https://lsjlt.com/news/181935.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python 游戏(船只寻宝)
    1. 游戏思路和流程图 实现功能:船只在可以在大海上移动打捞宝藏,船只可以扫描1格范围内的宝藏(后续难度,可以调整扫描范围,可以调整前进的格数) 游戏流程图   2. 使用模块和游戏提示 import randomships_coord...
    99+
    2023-01-31
    船只 寻宝 游戏
  • 基于Python编写一个宝石消消乐小游戏
    目录开发工具环境搭建原理简介开发工具 python版本:3.6.4 相关模块: pygame;以及一些python自带的模块。 环境搭建 安装python并添加到环境变量,pip安装...
    99+
    2024-04-02
  • python 游戏(数字推理游戏Bage
    1.游戏思路和流程图 实现功能:玩家猜测三位不一样的数字,猜错了有提示,提示分别为(位置错误数字正确),(位置和数字正确),(数字和位置都不正确) 游戏流程图 2. 使用模块和游戏提示 import randomdef game_inf...
    99+
    2023-01-31
    游戏 数字 python
  • win10录屏只能录游戏如何解决
    这篇文章主要介绍“win10录屏只能录游戏如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win10录屏只能录游戏如何解决”文章能帮助大家解决问题。解决方法:点击开始选择“Xbox 控制台小帮...
    99+
    2023-07-01
  • win10自带录屏是否只能录游戏
    这篇文章主要介绍了win10自带录屏是否只能录游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win10自带录屏是否只能录游戏文章都会有所收获,下面我们一起来看看吧。不是,也可以录制其他应用内容,但需要设置。...
    99+
    2023-07-05
  • 怎么用Python编写一个宝石消消乐小游戏
    本篇内容介绍了“怎么用Python编写一个宝石消消乐小游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!开发工具python版本:3.6.4...
    99+
    2023-06-26
  • python---骰子游戏
    骰子游戏:#!/usr/bin/env python3.5          //指定python的版本 #File: dice.py    import random            //导入随机库 for i in range(...
    99+
    2023-01-31
    骰子 游戏 python
  • python学习-游戏
    #coding : utf-8 #这是一个猜数字游戏 import random guessesTaken = 0 #赋予初始值 print('hello what is you name') #输入玩家姓名 myName = inpu...
    99+
    2023-01-31
    游戏 python
  • Python 数据可视化的船舵:导航数据海洋,发现宝藏
    Python 凭借其广泛而强大的库,为数据可视化提供了便利。Matplotlib 和 Seaborn 等库提供了创建各种图表、图形和地图的工具,使数据科学家和分析师能够有效地传达见解。 Matplotlib:构建多功能图表 Matplot...
    99+
    2024-04-02
  • Python弹球小游戏
    ========给在校的小妹妹做个游戏玩:. 弹珠游戏主要是靠坐标xy,接板长度,球的半径等决定: # -*- coding: utf-8 -*-# @Author : Codeooo# @Ti...
    99+
    2023-08-31
    python 开发语言
  • python 游戏(猜数字)
    1. 构造猜数字核心函数 import random def guess_core(guess_min,guess_max,guess_counrt): '''猜数字核心判断函数 :param guess_min 范围的开始 ...
    99+
    2023-01-31
    数字 游戏 python
  • Python 猜数字游戏
    分别用while循环和for循环来玩转猜数字游戏 1.对于限定猜数字次数 (1)while循环  number = 56 count = 0while count < 3:   guess_number = int(input...
    99+
    2023-01-30
    数字 游戏 Python
  • Python猜数字游戏
    def guessnum(): guess,count=0,1 rand=random.randint(1,101) print ('you just have five time') guess=int(input('please...
    99+
    2023-01-31
    数字 游戏 Python
  • python 答题小游戏
    #^_^coding=gbk ^_^ import linecache #数据分割 f = [ x.replace('\n','') for x in linecache.getlines('a.txt')]&...
    99+
    2023-01-31
    小游戏 python
  • python比数字游戏
        今天看到了一个题目,需要输入一个数字,表示成绩和他的成绩的级别: A: 90--100 B: 80--89 C: 70--79 D: 60--69 E: < 60       需求在上面大家都看到了,加入输入90-100之间,...
    99+
    2023-01-31
    数字 游戏 python
  • VUE+Canvas实现财神爷接元宝小游戏
    之前的canvas小游戏系列欢迎大家戳: 《VUE实现一个Flappy Bird~~~》 《猜单词游戏》 《VUE+Canvas 实现桌面弹球消砖块小游戏》 《VUE+Canvas实...
    99+
    2024-04-02
  • Python游戏开发之魔塔小游戏的实现
    前言 这一期我们继续完善我们的魔塔小游戏。 废话不多说,让我们愉快地开始吧~ 开发工具 Python版本: 3.7.4 相关模块: cpgames模块; 以及一些pytho...
    99+
    2024-04-02
  • 用python做简单的小游戏,如何用python写小游戏
    大家好,小编来为大家解答以下问题,初学者怎么用python写简单小游戏教程,如何用python编写一个简单的小游戏,今天让我们一起来看看吧! 1、python简单小游戏代码   1、Python猜拳小游戏代码:   2、import r...
    99+
    2023-09-08
    人工智能
  • 只需要100行Python代码就可以实现的贪吃蛇小游戏
    目录图示基本准备游戏显示贪吃蛇和树莓图示 基本准备 首先,我们需要安装pygame库,小编通过pip install pygame,很快就安装好了。在完成贪吃蛇小游戏的时候,我们需...
    99+
    2024-04-02
  • python简单小游戏代码100行,python小游戏代码大全
    大家好,给大家分享一下python简单小游戏代码100行,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 1、python 编写一个彩票游戏? 按照题目要求编写燃悔中的Python程序如下 import random num...
    99+
    2023-09-20
    人工智能
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作