精华内容
参与话题
问答
  • python小游戏

    千次阅读 2019-05-17 12:52:09
    import time import random player_victory = 0 enemy_victory = 0 while True: for i in range(1,4): time.sleep(1.5) print('\n——————现在是第 %s 局——————' % i) player_life = random.r...
    import time
    import random
    
    player_victory = 0
    enemy_victory = 0
    while True:
        for i in range(1,4):
            time.sleep(1.5)
            print('\n——————现在是第 %s 局——————' % i)
            player_life = random.randint(100,150)
            player_attack = random.randint(30,50)
            enemy_life = random.randint(100,150)
            enemy_attack = random.randint(30,50)
            print('【玩家】\n血量:%s\n攻击:%s' % (player_life,player_attack))
            print('------------------------')
            time.sleep(1)
            print('【敌人】\n血量:%s\n攻击:%s' % (enemy_life,enemy_attack))
            print('-----------------------')
            time.sleep(1)
            while player_life > 0 and enemy_life > 0:
            	player_life = player_life - enemy_attack 
            	enemy_life = enemy_life - player_attack
           		print('你发起了攻击,【敌人】剩余血量%s' % enemy_life)
            	print('敌人向你发起了攻击,【玩家】的血量剩余%s' % player_life)
            	print('-----------------------')
            	time.sleep(1.2)
            if player_life > 0 and enemy_life <= 0:
           		player_victory += 1
            	print('敌人死翘翘了,你赢了!')
            elif player_life <= 0 and enemy_life > 0:
           		enemy_victory += 1
            	print('悲催,敌人把你干掉了!')
            else:
            	print('哎呀,你和敌人同归于尽了!')
        if player_victory > enemy_victory :
            time.sleep(1)
            print('\n【最终结果:你赢了!】')
        elif enemy_victory > player_victory:
            print('\n【最终结果:你输了!】')
        else:
            print('\n【最终结果:平局!】')
        a1=input('请按y继续游戏,按n结束游戏')
        if a1=='n':
            break
    
    
    
    展开全文
  • python小球游戏

    2018-03-18 15:13:38
    以前的手机小游戏,挡板移动挡住小球,反弹,往返,落地则游戏结束
  • python小球游戏代码

    千次阅读 多人点赞 2018-05-07 17:26:48
    #python tkinter #python version 3.3.2 from tkinter import * ''' 判断 两个小球 { 圆心:A(x1,y1) 半径:r X轴速度:Vax Y轴速度:Vay 圆心:B(x2,y2) 半径:R X轴速度:Vbx Y轴速度:Vby } 碰撞的条件是...
    #python tkinter
    #python version 3.3.2
    from tkinter import *
    '''
        判断
        两个小球
        {
            圆心:A(x1,y1)  半径:r  X轴速度:Vax  Y轴速度:Vay
            圆心:B(x2,y2)  半径:R  X轴速度:Vbx  Y轴速度:Vby
        }
        碰撞的条件是:
        1.两个小球的圆心距离不大于两小球半径之和(r+R),即:
        {
            (x2 - x1)^2 + (y2 - y1)^2 <= (r + R)^2
        }
        2.小球碰撞后,两小球的数度交换,即:
        {
            tempVax = Vax
            tempVay = Vay
            Vax = Vbx
            Vay = Vby
            Vbx = tempVax
            Vby = tempVay
            或:
            Vax = Vax + Vbx
            Vbx = Vax - Vbx
            Vax = Vax - Vbx
            Vay = Vay + Vby
            Vby = Vay - Vby
            Vay = Vay - Vby
        }
        游戏规则:
        五小球在画布中移动,他们之间会产生碰撞,当然小球和上下左右都会产生碰撞
        碰撞后,小球会改变方向返回
        而最下面的游标则用于调节小球的移动速度,游标的范围是[-100, 100]
    
       
    '''
    __author__ = {'author' : 'Hongten',
                  'Email' : 'hongtenzone@foxmail.com',
                  'Blog' : 'http://www.cnblogs.com/hongten/',
                  'Created' : '2013-09-28',
                  'Version' : '1.1'}
    class Pong(Frame):
        def createWidgets(self):
             #放缩率
            self.scaling = 100.0
            #画布比例
            self.canvas_width = 10
            self.canvas_height = 5.6
            ## 画布
            self.draw = Canvas(self, width=(self.canvas_width * self.scaling),
                               height=(self.canvas_height * self.scaling),
                               bg='white')
            ## 游标(控制小球移动速度,范围:[-100, 100])
            self.speed = Scale(self, orient=HORIZONTAL, label="ball speed",
                               from_=-200, to=200)
    
            self.speed.pack(side=BOTTOM, fill=X)
            #小球直径
            self.ball_d = 1.0
            #小球碰撞墙壁的范围
            self.scaling_left = round(self.ball_d / 2, 1)
            self.scaling_right = self.canvas_width - self.scaling_left
            self.scaling_bottom = self.canvas_height - self.scaling_left
            self.scaling_top = self.scaling_left
    
            #游标度数
            self.scale_value = self.speed.get() * 0.1
    
            #存放小球数组
            self.balls = []
            #存放小球x坐标数组
            self.ball_x = []
            #存放小球y坐标数组
            self.ball_y = []
            #存放小球x轴方向速度数组
            self.ball_v_x = []
            #存放小球y轴方向速度数组
            self.ball_v_y = []
            # 五个小球
            self.ball = self.draw.create_oval("0.60i", "0.60i", "1.60i", "1.60i",
                                              fill="red")
            self.second_ball = self.draw.create_oval("2.0i", "2.0i", "3.0i", "3.0i",
                                                     fill='black')
            self.three_ball = self.draw.create_oval("4.0i", "4.0i", "5.0i", "5.0i",
                                                     fill='brown')
            self.four_ball = self.draw.create_oval("6.0i", "2.0i", "7.0i", "3.0i",
                                                     fill='green')
            self.five_ball = self.draw.create_oval("8.0i", "3.0i", "9.0i", "4.0i",
                                                     fill='gray')
            #把五个小球放入数组
            self.balls.append(self.ball)
            self.balls.append(self.second_ball)
            self.balls.append(self.three_ball)
            self.balls.append(self.four_ball)
            self.balls.append(self.five_ball)
            #第一个小球,即self.ball的圆心坐标(self.x, self.y),这里进行了放缩,目的是为了
            #在小球移动的过程中更加流畅
            self.x = 1.1        
            self.y = 1.1
            #第一个小球的速度方向
            self.velocity_x = -0.2
            self.velocity_y = 0.1
            self.second_ball_x = 2.5
            self.second_ball_y = 2.5
            self.second_ball_v_x = 0.1
            self.second_ball_v_y = -0.2
            self.three_ball_x = 4.5
            self.three_ball_y = 4.5
            self.three_ball_v_x = -0.1
            self.three_ball_v_y = -0.2
            self.four_ball_x = 6.5
            self.four_ball_y = 2.5
            self.four_ball_v_x = 0.1
            self.four_ball_v_y = -0.2
            self.five_ball_x = 8.5
            self.five_ball_y = 3.5
            self.five_ball_v_x = 0.1
            self.five_ball_v_y = 0.2
            
            #更新小球的坐标
            self.update_ball_x_y()
            self.draw.pack(side=LEFT)
        def update_ball_x_y(self, *args):
            '''更新小球的坐标,即把各个小球的圆心坐标信息以及速度信息存放到数组中,
               便于在后面循环遍历的时候使用。'''
            #第一个小球信息
            self.ball_x.append(self.x)
            self.ball_y.append(self.y)
            self.ball_v_x.append(self.velocity_x)
            self.ball_v_y.append(self.velocity_y)
            self.ball_x.append(self.second_ball_x)
            self.ball_y.append(self.second_ball_y)
            self.ball_v_x.append(self.second_ball_v_x)
            self.ball_v_y.append(self.second_ball_v_y)
            self.ball_x.append(self.three_ball_x)
            self.ball_y.append(self.three_ball_y)
            self.ball_v_x.append(self.three_ball_v_x)
            self.ball_v_y.append(self.three_ball_v_y)
            self.ball_x.append(self.four_ball_x)
            self.ball_y.append(self.four_ball_y)
            self.ball_v_x.append(self.four_ball_v_x)
            self.ball_v_y.append(self.four_ball_v_y)
            self.ball_x.append(self.five_ball_x)
            self.ball_y.append(self.five_ball_y)
            self.ball_v_x.append(self.five_ball_v_x)
            self.ball_v_y.append(self.five_ball_v_y)
    
        def update_ball_velocity(self, index, *args):
            '''更新各个小球速度信息,即小球碰撞到四周和另外的小球索要更新的速度信息'''
            #游标值
            self.scale_value = self.speed.get() * 0.1
            #碰撞墙壁
            if (self.ball_x[index] > self.scaling_right) or (self.ball_x[index] < self.scaling_left):
                self.ball_v_x[index] = -1.0 * self.ball_v_x[index]
            if (self.ball_y[index] > self.scaling_bottom) or (self.ball_y[index] < self.scaling_top):
                self.ball_v_y[index] = -1.0 *  self.ball_v_y[index]
            '''
            #TEST:
            for n in range(len(self.balls)):
                #print((self.ball_x[index] - self.ball_x[n])**2)
                #print(round((self.ball_x[index] - self.ball_x[n])**2 + (self.ball_y[index] - self.ball_y[n])**2, 2))
                print(round((self.ball_x[index] - self.ball_x[n])**2 + (self.ball_y[index] - self.ball_y[n])**2, 2) <= round(self.ball_d**2, 2))
            '''
            for n in range(len(self.balls)):
                #小球碰撞条件,即:(x2 - x1)^2 + (y2 - y1)^2 <= (r + R)^2
                if (round((self.ball_x[index] - self.ball_x[n])**2 + (self.ball_y[index] - self.ball_y[n])**2, 2) <= round(self.ball_d**2, 2)):
                    #两小球速度交换
                    temp_vx = self.ball_v_x[index]
                    temp_vy = self.ball_v_y[index]
                    self.ball_v_x[index] = self.ball_v_x[n]
                    self.ball_v_y[index] = self.ball_v_y[n]
                    self.ball_v_x[n] = temp_vx
                    self.ball_v_y[n] = temp_vy
            #print(self.ball_v_x, self.ball_v_y)
    
            '''
            #WRONG:
            for n in range(len(self.balls)):            
                if (((self.ball_x[index] - self.ball_x[n])**2 + (self.ball_y[index] - self.ball_y[n])**2) <= self.ball_d**2):
                    #两小球速度交换
                    self.ball_v_x[index] = self.ball_v_x[index] + self.ball_v_x[n]
                    self.ball_v_x[n] = self.ball_v_x[0] - self.ball_v_x[n]
                    self.ball_v_x[index] = self.ball_v_x[index] - self.ball_v_x[n]
                    self.ball_v_y[index] = self.ball_v_y[index] + self.ball_v_y[n]
                    self.ball_v_y[n] = self.ball_v_y[index] - self.ball_v_y[n]
                    self.ball_v_y[index] = self.ball_v_y[index] - self.ball_v_y[n]
            print(self.ball_v_x, self.ball_v_y)
            '''
    
        def get_ball_deltax(self, index, *args):
            '''获取小球X轴坐标移动距离并且更新小球的圆心X坐标,返回X轴所需移动距离'''
            deltax = (self.ball_v_x[index] * self.scale_value / self.scaling)
            self.ball_x[index] = self.ball_x[index] + deltax
            return deltax
        def get_ball_deltay(self, index, *args):
            '''获取小球Y轴坐标移动距离并且更新小球的圆心Y坐标,返回Y轴所需移动距离'''
            deltay = (self.ball_v_y[index] * self.scale_value / self.scaling)
            self.ball_y[index] = self.ball_y[index] + deltay
            return deltay
    
        def moveBall(self, *args):
            '''移动第一个小球,编号为:0,这是根据数组:self.balls确定的。'''
            self.update_ball_velocity(0)       
            deltax = self.get_ball_deltax(0)
            deltay = self.get_ball_deltay(0)
            #小球移动
            self.draw.move(self.ball,  "%ri" % deltax, "%ri" % deltay)
            self.after(10, self.moveBall)
        def move_second_ball(self, *args):
            self.update_ball_velocity(1)       
            deltax = self.get_ball_deltax(1)
            deltay = self.get_ball_deltay(1)        
            self.draw.move(self.second_ball,  "%ri" % deltax, "%ri" % deltay)
            self.after(10, self.move_second_ball)
    
        def move_three_ball(self, *args):
            self.update_ball_velocity(2)       
            deltax = self.get_ball_deltax(2)
            deltay = self.get_ball_deltay(2)
            self.draw.move(self.three_ball,  "%ri" % deltax, "%ri" % deltay)
            self.after(10, self.move_three_ball)
        def move_four_ball(self, *args):
            self.update_ball_velocity(3)       
            deltax = self.get_ball_deltax(3)
            deltay = self.get_ball_deltay(3)
            self.draw.move(self.four_ball,  "%ri" % deltax, "%ri" % deltay)
            self.after(10, self.move_four_ball)
        def move_five_ball(self, *args):
            self.update_ball_velocity(4)       
            deltax = self.get_ball_deltax(4)
            deltay = self.get_ball_deltay(4)
            self.draw.move(self.five_ball,  "%ri" % deltax, "%ri" % deltay)
            self.after(10, self.move_five_ball)
                
        def __init__(self, master=None):
            '''初始化函数'''
            Frame.__init__(self, master)
            Pack.config(self)
            self.createWidgets()
            self.after(10, self.moveBall)
            self.after(10, self.move_three_ball)
            self.after(10, self.move_four_ball)
            self.after(10, self.move_five_ball)
            self.after(10, self.move_second_ball)
    
            
    game = Pong()
    game.mainloop()


    展开全文
  • Python 小游戏

    2018-11-15 16:42:14
    前几天在慕课上加了高天老师的Python小游戏学习。然后跟着学习了一下,这是课堂上的案例小球碰撞。 1.如果要实现小球碰撞,首先你先要有一个小球。这是课堂上用的小球GIF图。注意:一定要GIF图才可以, 我也有试过...

    前几天在慕课上加了高天老师的Python小游戏学习。然后跟着学习了一下,这是课堂上的案例小球碰撞。

    1.如果要实现小球碰撞,首先你先要有一个小球。这是课堂上用的小球GIF图。注意:一定要GIF图才可以,

    我也有试过其他类型的图片,比如jpeg,但是没有成功,下面是我用爬虫爬取小球的代码。

    import requests as re
    import os
    url = "http://python123.io/PY15/PYG02-ball.gif"
    root = "C://Users//Public//Pictures//Sample Pictures//" #存储位置的路径
    path = root + url.split('/')[-1]#获得URL最后的名称作为图片名称
    try:
        if not os.path.exists(root):
            os.mkdir(root)
        if not os.path.exists(path):
            r = re.get(url)
            with open(path,'wb') as f:
                f.write(r.content)#以二进制的形式输入到创建的文件
                f.close()
                print('it is secenst')
        else:
            print('it has haven')
    except:
        print('it is unseccened')

    2.代码实现

    import pygame,sys
    pygame.init()
    speed =[1,1]#作为小球移动的水平速度和垂直速度
    black = 0,0,0
    screen = pygame.display.set_mode((600,400))#设置窗口大小
    pygame.display.set_caption('python壁球')#设置窗口的名字
    ball = pygame.image.load('C:\\Users\\Public\\Pictures\\Sample Pictures\\PYG02-ball.gif')#获得小球,这里记得要两个\
    ballrect = ball.get_rect()#获得图片的位置
    fps = 300#帧数设计
    fclock = pygame.time.Clock()

    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            elif event.type == pygame.KEYDOWN:#获得用户指令
                if event.key == pygame.K_LEFT:#获得键盘向左的指令,小球水平速度减一
                    speed[0] = speed[0] if speed[0] == 0 else (abs(speed[0]) - 1)*int(speed[0]/abs(speed[0]))
                elif event.key == pygame.K_RIGHT:#获得键盘向右的命令,小球水平速度加一
                    speed[0] = speed[0] + 1 if speed[0]>0 else speed[0]-1
                elif event.key==pygame.K_UP:#获得键盘向上的命令,小球垂直方向速度加一
                    speed[1] = speed[1] +1 if speed[1]>0 else speed[1] -1
                elif event.key == pygame.K_DOWN:#获得键盘向下的命令,小球垂直方向速度减一
                    speed[1] = speed[1] if speed[1] == 0 else (abs(speed[1]) -1)*int(speed[1]/abs(speed[1]))
        ballrect = ballrect.move(speed[0],speed[1])#用pygame中的move函数,让小球移动
        if ballrect.left<0 or ballrect.right>600:#当小球到达水平边缘时水平方向取反
            speed[0] =-speed[0]
        if ballrect.top <0 or ballrect.bottom>400::#当小球到达垂直边缘时垂直方向取反
            speed[1] =- speed[1]

        screen.fill(black)#设置背景颜色
        screen.blit(ball,ballrect)
        pygame.display.update()#不断刷新窗口
        fclock.tick(fps)#帧数
            
        总结,刚开始的时候只是跟着网上的内容写,后来遇到了一个打不开PYG02-ball.gif的错误,后来去查了一下,是要把路径给写完,而且记住用计算机上复制路径过来后一定还要在每个\后面多加一个。还有就是要学着自己写代码,高天老师讲完他的基本
        代码实现思想之后,我就开始尝试着用自己的理解写出里面移动的逻辑代码。

    展开全文
  • python 小游戏

    2018-06-27 20:07:04
    猜拳游戏使用Python编写一个猜拳游戏from random import randint user_num = input('请输入一个数字') computer_num = randint(0 , 2) print(computer_num) if user_num.isdigit(): user_num = int(user_num) if 0...

     猜拳游戏

    使用Python编写一个猜拳游戏

    from random import  randint
    user_num = input('请输入一个数字')
    computer_num = randint(0 , 2)
    print(computer_num)
    if user_num.isdigit():
        user_num = int(user_num)
        if  0 <= user_num <= 2 :
            if user_num - computer_num == -1 or user_num - computer_num == 2:
                print('你赢了!')
            elif user_num - computer_num == 0 :
                print('平局!')
            else :
                print('你输了')
        else :
            print('输入的数值大于有效范围')
    else :
        print('输入的内容格式错误,请输入0~2之间的一个数值')

    我利用if,for循环做一个三局两胜制

    from random import randint
    user_win = 0
    compunter_win = 0
    deuce = 0
    for index ,value in enumerate(range(3)):
    
        user_num = input('请输入数字:')
        user_num = int(user_num)
        computer_num = randint(0 , 2)
    
        if user_num -computer_num == -1 or user_num -computer_num == 2:
            print('第{}局玩家胜'.format(index + 1))
            user_win += 1
        elif user_num - computer_num == 0:
            print('第{}局平局'.format(index + 1))
            deuce += 1
        else :
            print('第{}局电脑胜'.format(index +  1))
            compunter_win += 1
        print('-------------第{}局结束--------------'.format(index + 1))
    
        if compunter_win == 2 :
            print('电脑胜!')
            break
        elif user_win == 2:
            print('玩家胜!')
            break
        else:
            if deuce == 1 and compunter_win - user_win == 0 and index == 2:
                print('平局!')
            elif deuce == 3 :
                print('平局!')
            elif deuce == 2 and index == 2:
                if compunter_win -user_win == 1:
                    print('电脑胜!')
                else:
                    print('玩家胜!')
    

    希望你喜欢!


    
    展开全文
  • Python小游戏

    2018-11-17 21:36:18
    制作一个python的猜数字小游戏小游戏用于让玩家猜范围在1到1000内的整数 //import random def main(): N = random.randint(1, 1000) sum = 0 while True: sum += 1 C = int(input(“请输入你猜的数字”))...
  • 一个简单的python小游戏

    千次阅读 多人点赞 2019-08-06 10:41:08
    一个简单的python小游戏 大家可以在闲暇之余试一试哦 import pygame import random BLACK = (0, 0, 0) pygame.init() screen = pygame.display.set_mode([800, 600]) pygame.display.set_caption("pop a smiley") ...
  • python小游戏实现代码

    万次阅读 多人点赞 2013-08-23 16:45:25
    python写的一个小游戏,附上完整实现代码。
  • Python小游戏代码

    2015-12-07 14:43:03
    一个Python小游戏代码
  • python小游戏程序

    2018-06-21 18:32:08
    phtyon小游戏代码,phtyon小游戏代码,phtyon小游戏代码,phtyon小游戏代码
  • Python小游戏-飞机大战

    2018-12-09 18:45:11
    Python小游戏-飞机大战,改编自:https://www.cnblogs.com/wuzhanpeng/category/655359.html 在原来的基础上添加以下几点: 1)背景音乐 2)实时分数和最高分的显示 3)暂停和继续操作 4)重来操作
  • Python小游戏-宇宙激战

    2020-05-03 22:10:59
    使用Python和pygame模块完成一个宇宙激战小游戏的开发与实现。 Python是非常腻害的一种编程语言,掌握它之后就可以拓展自己感兴趣的工作方向,不管是大数据开发、人工智能开发、Web开发还是游戏开发等,都由你...
  • Python小游戏.py

    2020-06-08 16:21:54
    一款Python算数游戏,玩的同时还能提升你的脑能力。但是我本来想做倒计时的,何况能力有限,我也是无奈
  • 1、Python猜拳小游戏代码:2、import random #导入随机模块3、4、num = 15、yin_num = 06、shu_num = 07、while num 2:12、 print('不能出大于2的值')13、 else:14、 data = ['石头', '剪刀', '布']15、 ...
  • 利用python语言的特性,制作的一个具有学习python小游戏开发意义的弹球小游戏,这款小游戏可以控制一个板子来回弹射小球,小球击中砖块会击碎并弹开,容器四周仅底部为空白边界,小球落入即会游戏结束。
  • Python小游戏之王者荣耀

    千次阅读 多人点赞 2020-04-06 14:36:38
    游戏内容涉及: 1.随机数生成 2.相关模块用法 3.0 1 用法 4.条件判断 5.循环 6.列表 7.单词的记忆…mmp(你四级过了吗…) import random print('*'*40) print('\t欢迎来到王者荣耀') print('*'*40) role=input('请...
  • python写的跑酷类小游戏,适合新手参考,现在只实现了吃金币和障碍物碰撞功能,相对比较简单,可以自己拓展。
  • Python小游戏:外星人入侵!!!终于完成了!!!

    万次阅读 多人点赞 2020-06-06 18:48:43
    历时七天,终于做出来了(因为还要上网课,学习其他的东西,所以做的比较慢,如果每天能拿出五个小时做这个游戏的话,个人觉得三天差不多,当然了,这是对于小白来说)。我是按照买的资料书上来做的,在我代码里面呢...
  • 使用python写的五子棋,直接解压缩,有python环境的运行 five.py即可,没有python环境的就进入dist,打开five.exe
  • 提供python小游戏全部源代码。入口文件为alien_invasion.py中,

空空如也

1 2 3 4 5 ... 20
收藏数 7,332
精华内容 2,932
关键字:

python小游戏

python 订阅