PYTHON 初步编程之“pig latin”游戏
- 格式:wps
- 大小:31.50 KB
- 文档页数:10
程序目标:玩家可以使用方向键控制贪吃蛇的移动方向,向上键使蛇向上移动,向下键使蛇向下移动,向左键使蛇向左移动,向右键使蛇向右移动。
玩家需要控制蛇吃到食物,每吃到一个食物蛇的长度就会加1,同时游戏难度也会逐渐加大,蛇的移动速度会加快,随着时间的推移,难度会变得越来越高。
如果蛇撞到了边界或者撞到了自己的身体,游戏就会结束。
玩家可以通过关闭游戏窗口来退出游戏。
以下是一个基于Python 的简单贪吃蛇游戏的代码实现。
本实现使用了pygame 模块来创建游戏窗口,渲染游戏场景和监听用户输入,同时使用random 模块来生成随机食物。
import pygameimport random# 初始化pygamepygame.init()# 定义游戏窗口大小window_width = 600window_height = 600# 创建游戏窗口screen=pygame.display.set_mode((window_width,window_height))# 定义游戏场景颜色bg_color = (0, 0, 0)# 定义蛇的初始位置和大小snake_x = window_width // 2snake_y = window_height // 2snake_size = 10snake_speed = 10# 定义蛇的初始方向和长度snake_direction = 'right'snake_length = 1snake_body = [(snake_x, snake_y)]# 定义食物的初始位置和大小food_size = 10food_x = random.randint(0, window_width - food_size) food_y = random.randint(0, window_height - food_size) food_color = (255, 0, 0)# 游戏循环标志game_running = True# 游戏循环while game_running:# 监听用户输入for event in pygame.event.get():if event.type == pygame.QUIT:game_running = Falseelif event.type == pygame.KEYDOWN:if event.key == pygame.K_UP and snake_direction != 'down':snake_direction = 'up'elif event.key == pygame.K_DOWN and snake_direction != 'up':snake_direction = 'down'elif event.key == pygame.K_LEFT and snake_direction != 'right':snake_direction = 'left'elif event.key == pygame.K_RIGHT and snake_direction != 'left':snake_direction = 'right'# 移动蛇的身体if snake_direction == 'up':snake_y -= snake_speedelif snake_direction == 'down':snake_y += snake_speedelif snake_direction == 'left':snake_x -= snake_speedelif snake_direction == 'right':snake_x += snake_speed# 更新蛇的身体列表snake_body.insert(0, (snake_x, snake_y))if len(snake_body) > snake_length:snake_body.pop()# 绘制游戏场景screen.fill(bg_color)pygame.draw.rect(screen, food_color, pygame.Rect(food_x, food_y, food_size, food_size))for x, y in snake_body:pygame.draw.rect(screen, (255, 255, 255), pygame.Rect(x, y, snake_size, snake_size))# 检测蛇是否吃到了食物if pygame.Rect(snake_x, snake_y, snake_size, snake_size).colliderect(pygame.Rect(food_x, food_y, food_size, food_size)):snake_length += 1food_x = random.randint(0, window_width - food_size)food_y = random.randint(0, window_height - food_size) # 检测蛇是否撞到了墙壁if snake_x <0 or snake_x + snake_size > window_width or snake_y < 0 or snake_y + snake_size > window_height:game_running = False# 检测蛇是否撞到了自己的身体for x, y in snake_body[1:]:if pygame.Rect(snake_x, snake_y, snake_size, snake_size).colliderect(pygame.Rect(x, y, snake_size, snake_size)):game_running = False# 更新游戏窗口pygame.display.update()该游戏的注释如下:- `import pygame`: 导入`pygame` 模块,用于创建游戏窗口,渲染游戏场景和监听用户输入。
⼀⾏Python代码制作20款经典⼩游戏分享⼀个有趣的Python游戏库freegames,它包含20余款经典⼩游戏,像贪吃蛇、吃⾖⼈、乒乓、数字华容道等等,依托于标准库Turtle。
我们不仅可以通过1⾏代码进⾏重温这些童年⼩游戏,还可以查看源码⾃⼰学习下游戏编写,超赞!⽬录:1. 安装2. 基础介绍3. 游戏演⽰4. 源码查看1. 安装通过pip简单安装,⽬前最新版本是2.3.2pip install freegames2. 基础介绍安装完成后,我们可以通过以下指令查看相关信息# 查看已有游戏列表!python -m freegames list # 在jupyter notebookpython -m freegames list # 在命令⾏界⾯查看已有游戏列表# 查看帮助help(freegames)# 也可以⽤ ? 在jupyter notebookimport freegamesfreegames?3. 游戏演⽰这⾥我们介绍⼏种⼤家熟知的⼩游戏,并演⽰Paint 涂鸦在屏幕上绘制线条和形状1. 单击以标记形状的开始,然后再次单击以标记其结束;2. 可以使⽤键盘选择不同的形状和颜⾊。
!python -m freegames.paint # 如果在命令⾏,则去掉前⾯的感叹号 !涂鸦Snake 贪吃蛇经典的街机⼩游戏1. 使⽤键盘的⽅向键导航并吃绿⾊⾷物,每吃⼀次⾷物,蛇就会长⼀段;2. 避免吃到⾃⼰或越界。
!python -m freegames.snake贪吃蛇Pacman 吃⾖⼈经典街机⼩游戏1. 使⽤箭头键导航并吃掉所有的⽩⾊⾷物;2. 当⼼漫游在迷宫的红⾊幽灵,碰到就跪了。
!python -m freegames.pacman吃⾖⼈Cannon ⼤炮1. 点击屏幕发射你的⼤炮,炮弹在它的路径上炸掉蓝⾊⽓球;2. 在它们穿过屏幕之前将所有⽓球炸掉。
!python -m freegames.cannon⼤炮Flappy Flappy-bird 类游戏1. 点击屏幕来扇动你的翅膀;2. 当您飞过屏幕时,请注意不要碰到⿊乌鸦。
python贪吃蛇代码带注释
首先,我们第一件要做的就是先不要去分析这个问题。
你好歹先写个能运行起来的贪吃蛇游戏,然后再去想AI部分。
这个应该很简单,c\c++也就百来行代码(如果我没记错的话。
不弄复杂界面,直接在控制台下跑),python就更简单了,去掉注释和空行,5、60行代码就搞定了。
而且,最最关键的,这个东西网上肯定写滥了,你没有必要重复造轮子,去弄一份来按照你的意愿改造一下就行了。
我觉得直接写perfect版本不是什么好路子。
因为perfect版本往往要考虑很多东西,直接上来就写这个一般是bug百出的。
所以,一开始我的目标仅仅是让程序去控制贪吃蛇运动,让它去吃食物,仅此而已。
现在让我们来陈述一下最初的问题:
在一个矩形中,每一时刻有一个食物,贪吃蛇要在不撞到自己的条件下,找到一条路(未必要最优),然后沿着这条路运行,去享用它的美食
我们先不去想蛇会越来越长这个事实,问题基本就是,给你一个起点(蛇头)和一个终点(食物),要避开障碍物(蛇身),从起点找到一条可行路到达终点。
我们可以用的方法有:
只要有选择,就先选择最简单的方案,我们现在的目标是要让程序先跑起来,优化是后话。
so,从BFS开始。
我们最初将蛇头位置放入队列,然后只要队列非空,就将队头位置出队,然后把它四领域内的4个点放入队列,不断地循环操作,直到到达食物的位置。
这个过程中,我们需要注意几点:1.访问过的点不再访问。
2.保存每个点的
父结点(即每个位置是从哪个位置走到它的,这样我们才能把可行路径找出来)。
3.蛇身所在位置和四面墙不可访问。
Python超级马里奥设计过程简介本文将介绍使用P yth o n语言设计超级马里奥游戏的过程。
我们将从游戏的基本框架开始,逐步完善游戏的功能和特色。
通过本文的指导,读者可以了解到如何利用P yt ho n语言开发精彩有趣的游戏。
准备工作在开始之前,我们需要确保已经安装了Py t ho n的开发环境。
如果尚未安装,可以从P yth o n官方网站下载最新的Py th on版本并进行安装。
创建游戏窗口首先,我们将创建一个游戏窗口来容纳整个游戏。
使用Py th on的G U I库,我们可以轻松地创建一个窗口,并设置窗口的大小和标题。
i m po rt py ga me初始化pygamep y ga me.i ni t()设置窗口大小和标题s c re en=p yg am e.dis p la y.se t_mo de((800,600))p y ga me.d is pl ay.se t_c ap ti on("超级马里奥")游戏循环r u nn in g=Tr uew h il er un ni ng:事件处理f o re ve nt in py ga me.e ve nt.g et():i f ev en t.ty pe==pyg a me.Q UI T:r u nn in g=Fa ls e刷新屏幕p y ga me.d is pl ay.fl i p()退出游戏p y ga me.q ui t()添加背景和角色接下来,我们将添加游戏的背景和主角。
在游戏中,背景可以为多个不同场景,而角色则是我们操纵的游戏主体。
i m po rt py ga me初始化pygamep y ga me.i ni t()设置窗口大小和标题s c re en=p yg am e.dis p la y.se t_mo de((800,600))p y ga me.d is pl ay.se t_c ap ti on("超级马里奥")加载背景图片b a ck gr ou nd=p yg ame.im ag e.lo ad("bac k gr ou nd.p ng")加载角色图片c h ar ac te r=py ga me.i ma ge.l oa d("c har a ct er.p ng")游戏循环r u nn in g=Tr uew h il er un ni ng:事件处理f o re ve nt in py ga me.e ve nt.g et():i f ev en t.ty pe==pyg a me.Q UI T:r u nn in g=Fa ls e绘制背景和角色s c re en.b li t(ba ckg r ou nd,(0,0))s c re en.b li t(ch ara c te r,(400,300))刷新屏幕p y ga me.d is pl ay.fl i p()退出游戏p y ga me.q ui t()处理键盘输入为了使游戏更加互动,我们需要处理键盘的输入。
Python语言创建游戏入门教程Python语言是一种高级编程语言,它被广泛用于游戏开发。
本教程将帮助您了解如何使用Python语言创建简单的游戏。
无需担心,即使您没有编程经验,也可以轻松入门。
第1章:Python游戏开发基础在开始编写游戏之前,让我们先了解一些Python游戏开发的基本知识。
1.1 游戏开发库Python拥有许多强大的游戏开发库,包括Pygame和Arcade等。
这些库可以帮助我们简化游戏开发过程。
在本教程中,我们将使用Pygame库来创建游戏。
1.2 安装Pygame库要使用Pygame库,您需要先将其安装在您的计算机上。
打开终端(或命令提示符)并输入以下命令来安装Pygame:```pip install pygame```1.3 编写第一个游戏现在,我们将编写一个简单的游戏来熟悉Python游戏开发的流程。
在这个游戏中,玩家需要控制一个角色躲避障碍物。
首先,我们需要导入Pygame库:```pythonimport pygame```然后,我们需要初始化Pygame:```pythonpygame.init()```接下来,我们创建一个游戏窗口:```pythonwindow_width = 800window_height = 600window = pygame.display.set_mode((window_width, window_height)) ```然后,我们需要定义一个游戏循环以处理用户输入和更新游戏状态:```pythonrunning = Truewhile running:for event in pygame.event.get():if event.type == pygame.QUIT:running = False# 渲染游戏画面window.fill((255, 255, 255))pygame.display.update()```现在,我们已经完成了一个简单的游戏。
使⽤Python写⼀个贪吃蛇游戏实例代码我在程序中加⼊了分数显⽰,三种特殊⾷物,将贪吃蛇的游戏逻辑写到了SnakeGame的类中,⽽不是在Snake类中。
特殊⾷物:1.绿⾊:普通,吃了增加体型2.红⾊:吃了减少体型3.⾦⾊:吃了回到最初体型4.变⾊⾷物:吃了会根据⾷物颜⾊改变蛇的颜⾊#coding=UTF-8from Tkinter import *from random import randintimport tkMessageBoxclass Grid(object):def __init__(self, master=None,height=16, width=24, offset=10, grid_width=50, bg="#808080"):self.height = heightself.width = widthself.offset = offsetself.grid_width = grid_widthself.bg = bgself.canvas = Canvas(master, width=self.width*self.grid_width+2*self.offset, height=self.height*self.grid_width+2*self.offset, bg=self.bg)self.canvas.pack(side=RIGHT, fill=Y)def draw(self, pos, color, ):x = pos[0] * self.grid_width + self.offsety = pos[1] * self.grid_width + self.offset#outline属性要与⽹格的背景⾊(self.bg)相同,要不然会很丑self.canvas.create_rectangle(x, y, x + self.grid_width, y + self.grid_width, fill=color, outline=self.bg)class Food(object):def __init__(self, grid, color = "#23D978"):self.grid = gridself.color = colorself.set_pos()self.type = 1def set_pos(self):x = randint(0, self.grid.width - 1)y = randint(0, self.grid.height - 1)self.pos = (x, y)def display(self):self.grid.draw(self.pos, self.color)class Snake(object):def __init__(self, grid, color = "#000000"):self.grid = gridself.color = colorself.body = [(8, 11), (8, 12), (8, 13)]self.direction = "Up"for i in self.body:self.grid.draw(i, self.color)#这个⽅法⽤于游戏重新开始时初始化贪吃蛇的位置def initial(self):while not len(self.body) == 0:pop = self.body.pop()self.grid.draw(pop, self.grid.bg)self.body = [(8, 11), (8, 12), (8, 13)]self.direction = "Up"self.color = "#000000"for i in self.body:self.grid.draw(i, self.color)#蛇像⼀个指定点移动def move(self, new):self.body.insert(0, new)pop = self.body.pop()self.grid.draw(pop, self.grid.bg)self.grid.draw(new, self.color)#蛇像⼀个指定点移动,并增加长度def add(self ,new):self.body.insert(0, new)self.grid.draw(new, self.color)#蛇吃到了特殊⾷物1,剪短⾃⾝的长度def cut_down(self,new):self.body.insert(0, new)self.grid.draw(new, self.color)for i in range(0,3):pop = self.body.pop()self.grid.draw(pop, self.grid.bg)#蛇吃到了特殊⾷物2,回到最初长度def init(self, new):self.body.insert(0, new)self.grid.draw(new, self.color)while len(self.body) > 3:pop = self.body.pop()self.grid.draw(pop, self.grid.bg)#蛇吃到了特殊⾷物3,改变了⾃⾝的颜⾊,纯属好玩def change(self, new, color):self.color = colorself.body.insert(0, new)for item in self.body:self.grid.draw(item, self.color)class SnakeGame(Frame):def __init__(self, master):Frame.__init__(self, master)self.grid = Grid(master)self.snake = Snake(self.grid)self.food = Food(self.grid)self.gameover = Falseself.score = 0self.status = ['run', 'stop']self.speed = 300self.grid.canvas.bind_all("<KeyRelease>", self.key_release)self.display_food()#⽤于设置变⾊⾷物self.color_c = ("#FFB6C1","#6A5ACD","#0000FF","#F0FFF0","#FFFFE0","#F0F8FF","#EE82EE","#000000","#5FA8D9","#32CD32") self.i = 0#界⾯左侧显⽰分数self.m = StringVar()self.ft1 = ('Fixdsys', 40, "bold")self.m1 = Message(master, textvariable=self.m, aspect=5000, font=self.ft1, bg="#696969")self.m1.pack(side=LEFT, fill=Y)self.m.set("Score:"+str(self.score))#这个⽅法⽤于游戏重新开始时初始化游戏def initial(self):self.gameover = Falseself.score = 0self.m.set("Score:"+str(self.score))self.snake.initial()#type1:普通⾷物 type2:减少2 type3:⼤乐透,回到最初状态 type4:吃了会变⾊def display_food(self):self.food.color = "#23D978"self.food.type = 1if randint(0, 40) == 5:self.food.color = "#FFD700"self.food.type = 3while (self.food.pos in self.snake.body):self.food.set_pos()self.food.display()elif randint(0, 4) == 2:self.food.color = "#EE82EE"self.food.type = 4while (self.food.pos in self.snake.body):self.food.set_pos()self.food.display()elif len(self.snake.body) > 10 and randint(0, 16) == 5:self.food.color = "#BC8F8F"self.food.type = 2while (self.food.pos in self.snake.body):self.food.set_pos()self.food.display()else:while (self.food.pos in self.snake.body):self.food.set_pos()self.food.display()def key_release(self, event):key = event.keysymkey_dict = {"Up": "Down", "Down": "Up", "Left": "Right", "Right": "Left"}#蛇不可以像⾃⼰的反⽅向⾛if key_dict.has_key(key) and not key == key_dict[self.snake.direction]:self.snake.direction = keyself.move()elif key == 'p':self.status.reverse()def run(self):#⾸先判断游戏是否暂停if not self.status[0] == 'stop':#判断游戏是否结束if self.gameover == True:message = tkMessageBox.showinfo("Game Over", "your score: %d" % self.score)if message == 'ok':self.initial()if self.food.type == 4:color = self.color_c[self.i]self.i = (self.i+1)%10self.food.color = colorself.food.display()self.move(color)else:self.move()self.after(self.speed, self.run)def move(self, color="#EE82EE"):# 计算蛇下⼀次移动的点head = self.snake.body[0]if self.snake.direction == 'Up':if head[1] - 1 < 0:new = (head[0], 16)else:new = (head[0], head[1] - 1)elif self.snake.direction == 'Down':new = (head[0], (head[1] + 1) % 16)elif self.snake.direction == 'Left':if head[0] - 1 < 0:new = (24, head[1])else:new = (head[0] - 1, head[1])else:new = ((head[0] + 1) % 24, head[1])#撞到⾃⼰,设置游戏结束的标志位,等待下⼀循环if new in self.snake.body:self.gameover=True#吃到⾷物elif new == self.food.pos:if self.food.type == 1:self.snake.add(new)elif self.food.type == 2:self.snake.cut_down(new)elif self.food.type == 4:self.snake.change(new, color)else:self.snake.init(new)self.display_food()self.score = self.score+1self.m.set("Score:" + str(self.score))#什么都没撞到,继续前进else:self.snake.move(new)if __name__ == '__main__':root = Tk()snakegame = SnakeGame(root)snakegame.run()snakegame.mainloop()总结以上所述是⼩编给⼤家介绍的使⽤Python写⼀个贪吃蛇游戏实例代码,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
用Python编写简单小游戏Python是一种强大的编程语言,具有简单、易学的特点,并且可以用来编写各种类型的程序,包括小游戏。
本文将介绍如何使用Python 编写一个简单的小游戏。
首先,我们需要确保已经安装了Python的最新版本。
可以从Python官方网站上下载并安装。
安装完成后,我们可以使用任何文本编辑器来编写Python程序。
接下来,我们将使用Python的内置模块turtle来创建一个小游戏。
turtle模块是一个绘制图形的库,非常适合用于编写简单的小游戏。
我们首先创建一个名为"simple_game.py"的Python文件,并在文件中导入turtle模块:```pythonimport turtle```接下来,我们需要设置一些初始参数,如窗口大小、背景颜色等。
我们可以使用turtle模块提供的函数来实现这些操作:```pythonwindow = turtle.Screen()window.title("Simple Game")window.bgcolor("white")window.setup(width=800, height=600)```在上述代码中,我们创建了一个名为window的窗口对象,并设置了窗口的标题、背景颜色以及大小。
接下来,我们可以创建一个小乌龟对象,并设置其形状、颜色、速度等属性:```pythonplayer = turtle.Turtle()player.shape("turtle")player.color("blue")player.speed(0)```在上述代码中,我们创建了一个名为player的小乌龟对象,并将其形状设置为乌龟,颜色设置为蓝色,速度设置为0,表示最快速度。
接下来,我们需要定义一些函数来控制游戏的逻辑。
例如,我们可以定义一个函数来移动小乌龟:```pythondef move_right():x = player.xcor()player.setx(x + 10)```在上述代码中,我们定义了一个名为move_right的函数,该函数将小乌龟向右移动10个像素。
摘要本次Python语言程序设计主要使用了Python中的Pygame模块创建了一个简单的又充满童年回忆的游戏——贪吃蛇。
编写这个游戏用到了一个游戏都具备有的框架,在这个贪吃蛇的游戏中,游戏窗口里会随机生成目标小方块作为贪吃蛇的食物,通过键盘的上下左右的按键控制贪吃蛇的方向去“吃”食物,每“吃”进一个食物就会增加分数,并显示在界面右上方,同时还设置了最高得分,显示在界面的顶端。
当贪吃蛇接触到界面的边缘,游戏结束,弹出“Play Again”的按钮,玩家可以选择重新开始游戏或者退出游戏,重新开始游戏将保持最高分纪录直至打破。
1.引言在通过一学期的Python学习之后,我初步的了解到Python的语法以及它在各方面的应用:Web和Internet开发、科学计算和统计、人工智能、桌面界面开发、软件开发、后端开发、网络爬虫等。
Python相对于其他语言更为简洁易懂,有严格的格式要求,在接触Python时是通过小游戏开始的,所以在本次Python的期末项目中,我使用了Pygame 模块编写了一个经典贪吃蛇的游戏。
Pygame是被设计用来写游戏的Python模块集合,Pygame是在优秀的SDL库之上开发的功能性包。
使用Python可以导入Pygame来开发具有全部特性的游戏和多媒体软件,Pygame是极度轻便的并且可以运行在几乎所有的平台和操作系统上。
Pygame包已经被下载过成千上万次,并且也被访问过成千上万次。
可见Pygame是多受人欢迎,虽然使用Python做游戏项目并不是Python的主要作用,但是是初学者用来进一步掌握Python 的不错的选择,Python的循环语句,条件语句,以及面向对象编程在一个游戏项目中都需要用到,熟悉掌握这些之后,对以后在其他方面的应用奠定了基础。
本次论文介绍了我编写游戏项目——贪吃蛇的过程,详细介绍了这个项目的架构,各个函数,实现方法,以及编写完成后如何操作和演示结果。
五分钟学会怎么⽤python做⼀个简单的贪吃蛇Pygame 是⼀组⽤来开发游戏软件的 Python 程序模块,基于 SDL 库的基础上开发。
我们今天将利⽤它来制作⼀款⼤家基本都玩过的⼩游戏——贪吃蛇。
⼀、需要导⼊的包import pygameimport timeimport randompygame:获取图形组件构建游戏time:主要⽤来设置帧率random:主要⽤来设置⾷物的刷新位置⼆、窗⼝界⾯设置⾸先我们初始化游戏,建⽴⼀个窗⼝pygame.init()然后我们定义游戏中需要使⽤的颜⾊,在这个⽰例中,我们定义了六种颜⾊white = (255, 255, 255)yellow = (255, 255, 102)black = (0, 0, 0)red = (213, 50, 80)green = (0, 255, 0)blue = (50, 153, 213)接下来,我们设置窗⼝的尺⼨和标题栏,在这个⽰例中,我们将窗⼝设置为800*600dis_width = 800dis_height = 600dis = pygame.display.set_mode((dis_width, dis_height))pygame.display.set_caption('贪吃蛇游戏')三、游戏中的变量初始化⼀个clock变量,使⽤开头导⼊的time包。
这个变量将⽤来处理游戏的帧率。
clock = pygame.time.Clock()定义蛇的速度与⼤⼩。
可以随意更改,选择你适应的即可snake_block = 10snake_speed = 12设置分数显⽰和其他信息的字体⼤⼩与样式。
font_style = pygame.font.SysFont("bahnschrift", 25)score_font = pygame.font.SysFont("comicsansms", 35)四、设置功能函数定义三个辅助功能函数,实现以下功能。
PYTHON 初步编程之“Pig Latin”游戏“Pig Latin”?文字游戏?可能没听过吧?弱弱的表示我就没听过……不过你想编程,这就是必须的,是对字符串处理的一个基本程序,所以……你懂的……也许,你是大神,那你就不用看了,也许你是小白(大多数应该是小白吧)那就来看看,可以参考参考……记住,绝对是参考,也许你刚开始写的时候觉得这个程序很好,但当你出道的时候,你会说……“某年某月某日,你在百度文库看到了一个程序,当时还觉得可以,现在一看,就一个字“烂”……”……这当然是你多年后的话,暂时你还是可以看看我的代码……首先我们来看看什么是“Pig Latin”……总不能不知道题目就开始代码吧……请看题目:“Pig Latin”是一个英语儿童益智文字改写游戏(不过我觉得对大脑没帮助,不知你觉得如何),整个游戏遵从下述规则:(1). 元音字母是‘a’、‘e’、‘i’、‘o’、‘u’。
字母‘y’在不是第一个字母的情况下,也被视作元音字母。
其他字母均为辅音字母。
例如,单词“yearly”有三个元音字母(分别为‘e’、‘a’和最后一个‘y’)和三个辅音字母(第一个‘y’、‘r’和‘l’)。
(2). 如果英文单词以元音字母开始,则在单词末尾加入“hay”后得到“Pig Latin”对应单词。
例如,“ask”变为“askhay”,“use”变为“usehay”。
(3). 如果英文单词以‘q’字母开始,并且后面有个字母‘u’,将“qu”移动到单词末尾加入“ay”后得到“Pig Latin”对应单词。
例如,“quiet”变为“ietquay”,“quay”变为“ayquay”。
(4). 如果英文单词以辅音字母开始,所有连续的辅音字母一起移动到单词末尾加入“ay”后得到“Pig Latin”对应单词。
例如,“tomato”变为“omatotay”,“school” 变为“oolschay”,“you” 变为“ouyay”,“my” 变为“ymay ”,“ssssh” 变为“sssshay”。
PYTHON 初步编程之“Pig Latin”游戏
“Pig Latin”?文字游戏?可能没听过吧?弱弱的表示我就没听过……不过你想编程,这就是必须的,是对字符串处理的一个基本程序,所以……你懂的……也许,你是大神,那你就不用看了,也许你是小白(大多数应该是小白吧)那就来看看,可以参考参考……记住,绝对是参考,也许你刚开始写的时候觉得这个程序很好,但当你出道的时候,你会说……“某年某月某日,你在百度文库看到了一个程序,当时还觉得可以,现在一看,就一个字“烂”……”……这当然是你多年后的话,暂时你还是可以看看我的代码……
首先我们来看看什么是“Pig Latin”……总不能不知道题目就开始代码吧……请看题目:
“Pig Latin”是一个英语儿童益智文字改写游戏(不过我觉得对大脑没帮助,不知你觉得如何),整个游戏遵从下述规则:
(1). 元音字母是‘a’、‘e’、‘i’、‘o’、‘u’。
字母‘y’在不是第一个字母的情况下,也被视作元音字母。
其他字母均为辅音字母。
例如,单词“yearly”有三个元音字母(分别为‘e’、‘a’和最后一个‘y’)和三个辅音字母(第一个‘y’、‘r’和‘l’)。
(2). 如果英文单词以元音字母开始,则在单词末尾加入“hay”后得到“Pig Latin”对应单词。
例如,“ask”变为“askhay”,“use”变为“usehay”。
(3). 如果英文单词以‘q’字母开始,并且后面有个字母‘u’,将“qu”移动到单词末尾加入“ay”后得到“Pig Latin”对应单词。
例如,“quiet”变为“ietquay”,“quay”变为“ayquay”。
(4). 如果英文单词以辅音字母开始,所有连续的辅音字母一起移动到单词末尾加入“ay”后得到“Pig Latin”对应单词。
例如,“tomato”变为“omatotay”,“school” 变为“oolschay”,“you” 变为“ouyay”,“my” 变为“ymay ”,“ssssh” 变为“sssshay”。
(5). 如果英文单词中有大写字母,必须所有均转换为小写。
现在需要的是你对题目的分析……分析……再分析……因为你要编程,记住,你是来编程的,不是来抄作业的……所以自己分析分析分析…………当你分析完后,你会发现我懂了,还看这干嘛?要我下载?虽然是免费的,但我没事下载他干嘛?还是让他尘封吧……嘻嘻……当然,这样的话我不会因为你没下载我的文档而流泪,嗯,是会流泪,但那绝对是为你流的激动泪水……
思考…………思考…………
分析…………
分析…………思考…………
思考…………
分析…………
分析…………
好吧,看到这儿了……多半是没写出,当然也不排除写出之后来鄙视我的……鄙视就鄙视吧…………好吧,现在公布我的代码…………一定要闭上眼睛,不然太烂了,会吓到你的…………
# -*- coding: utf-8 -*-
"""
Created on Sun Nov 10 19:29:15 2013
@author: #你猜,嘻嘻,我就不说了
"""
original_str = raw_input("")#input the str
original_str = original_str.lower()#Converted to lowercase letters
vowel = ("a", "e", "i", "o", "u")
new_str = original_str.split(" ")#make the sentence into word
result = ""
for word in new_str:
if word[0] in vowel:#the first condition
word = word + "hay"
elif word[0] == "qu":#the second condition
word = word[2:] + "quay"
else:#the third condition
for flag,x in enumerate(word):
if word[0] == "y":
if x in "aeiou":
break #dicuss the "y"
else:
if x in "aeiouy":
break
word = word[flag:] + word[:flag] + "ay" #now,the new word is produced result = result + " " + word#conbine the word to sentence
print result[1:] #get a result and delete the first blank space
好了,代码结束了…………也许因为某种原因直接复制的话不可以用,你懂得…………所以改改…………
差不多了…………就这些就可以实现题目要求了…………记住,是样例…………不可抄袭…………不然是会被打屁屁的…………
当然,这只是普通的,低级的操作模式,对字符串的处理……用的多的应该是“正则表达式”,在后续中我会公布的(当然,水平是很低的)…………
也许这是你们的作业,所以,不要抄,参考参考……不然,你可能会死的很惨…………(反抄袭,你懂的……)
读者们,累了吧,关了…………继续开始编程吧…………。