python版的羊了个羊,你见过没?
创始人
2024-01-16 16:53:00
0

 最近不是出了个超火的游戏嘛,周围小伙伴都说好难玩,玩不过

看了下,发现就是个变种的连连看嘛,就尝试下写一个出来玩玩,当作是练手了

刚好找到一位大佬用C语言写的羊羊,结果发现是windows版的,编译起来贼麻烦

就想着用python写一个,方便大家学习其中的原理,不然光看代码不运行,技术是提高不了的

运行环境为python2,需要安装pygame,安装好之后,就可以运行了

pip2 install pygame

运行效果图就不放了,保持一点神秘感^^

废话不多说,直接上源码

# -*- coding: utf-8 -*-
import pygame
from pygame.locals import *
from sys import exit
from random import randint
import randomwindows_width = 400
windows_height = 760
icoSize = 48
whiteColor=pygame.Color(255,255,255)
redColor=pygame.Color(255,0,0)
blackColor=pygame.Color(0,0,0)
greyColor=pygame.Color(150,150,150)
blueColor=pygame.Color(0,0,255)
greenColor=pygame.Color(0,255,0)
aaa=pygame.Color(128,255,0)
bbb=pygame.Color(255,255,0)
ccc=pygame.Color(255,255,0)
sheepList=[redColor,blueColor,greenColor,greyColor,blackColor,aaa,bbb,ccc]
class Point():def __init__(self,x=0,y=0):self.x=xself.y=ydef main():totalScore=0score=0itemCount=5 pygame.init()fpsClock=pygame.time.Clock()playSurface=pygame.display.set_mode((windows_width,windows_height))#pygame.display.set_caption("羊了个羊Python版") defaultFont=pygame.font.get_default_font()font=pygame.font.SysFont(defaultFont,24)data=[[i+1 for i in range(3)] for j in range(3)]for r in range(3):for c in range(3):r1 = random.randint(1,100) % 3;c1 = random.randint(1,100) % 3;t = data[r1][c1];data[r1][c1] = data[r][c];data[r][c] = t;store=[0,0,0,0,0,0,0]offsetX = (windows_width - (2 * (48 + icoSize) + 48)) / 2offsetY = (windows_height - (2 * (48 + icoSize) + 48)) / 2while True:pygame.display.update()#pygame.draw.rect(playSurface,whiteColor,Rect(0,0,windows_width,windows_height))playSurface.fill(whiteColor)color = (255, 0, 0)s="mission "+str(itemCount-4)text=font.render(s,True,color)playSurface.blit(text,(5,45))color = (0, 255, 0)text=font.render("score: "+str(totalScore),True,color)playSurface.blit(text,(5,65))for r in range(3):for c in range(3):if (data[r][c]):pygame.draw.rect(playSurface,sheepList[data[r][c]-1],Rect(offsetX + c * (48 + icoSize), offsetY + r * (48 + icoSize),48,48))for i in range(7):if store[i]:pygame.draw.rect(playSurface,sheepList[store[i]-1],Rect((i*50)+26,620,48,48))for event in pygame.event.get():msg=Point() if event.type==MOUSEBUTTONUP:(x,y)=event.posprint(x,y)msg=Point(x,y)else:continuefor r in range(3):for c in range(3):x = offsetX + c * (48 + icoSize)y = offsetY + r * (48 + icoSize)if (msg.x > x and msg.x < x + 48 and msg.y>y and msg.y < y + 48):col = int((msg.x - offsetX)  /  (48 + icoSize))row = int((msg.y - offsetY)  / (48 + icoSize))print("row:", row, col);for i in range(7):if (store[i] == 0):store[i] = data[row][col];break;cnt = 0;for i in range(7):if (store[i] == data[row][col]):cnt+=1if (cnt == 3):for i in range(7):if (store[i] == data[row][col]):store[i] = 0score+=1totalScore+=1if score>10:itemCount+=1score=0data[row][col] = random.randint(1,100) % itemCount+1;while True:sleep(1)return 0;if __name__=="__main__":main()

游戏只设计了几关,已经能玩,如果想更好玩,那就自己改吧~~以下是一些改造建议

1.将方块换成各式各样的图标

2.当前方块是点击一个就随机生成一个,满10个消除进入下一关,后面可以改成一次性生成100个作为一关

3.添加通关时间限制

4.增加更多格子和图标

5.添加排行榜

6.添加地区排行榜

7添加广告

8.添加特色道具

相关内容

热门资讯

饮料最经典广告语 饮料最经典广告语大全  想吃醋,就吃醋,养生园果醋饮料。  选品质,选雀巢。  润田纯净水,滴滴润心...
家长签字评语 家长签字评语大全(精选50句)  学生试卷中的家长签字写评语成了让家长头疼的一大问题,不知道该怎么给...
个人工作自我鉴定简述50字 个人工作自我鉴定简述50字  正常来讲,自我鉴定即为自我总结,写自我鉴定可以让我们审视自身,不如静下...
交通安全提示的标语 交通安全提示的标语(精选280句)  在平日的学习、工作和生活里,大家一定没少看到过标语吧,标语在一...
助残日标语 助残日标语(精选105句)  在平平淡淡的日常中,大家最不陌生的就是标语了吧,标语是一种最经济、最有...
老师对高中生的评语 老师对高中生的评语(精选70句)  老师对学生的评价是鼓励学生进步的一种方式,也是对学生能力的肯定,...
安全生产标语口号 安全生产标语口号大全  造高楼靠打基础,保安全靠抓班组。以下是小编精心整理的'安全生产标语口号大全,...
行车安全标语 行车安全标语  在日复一日的学习、工作或生活中,大家肯定对各类标语都很熟悉吧,作为一种最经济、最有效...
为垃圾分类设计宣传标语 为垃圾分类设计宣传标语(精选255句)  在我们平凡的日常里,大家一定都接触过一些使用较为普遍的标语...
献爱心捐款标语 献爱心捐款标语(精选115句)  在学习、工作或生活中,大家或多或少都接触过一些经典的标语吧,标语在...
高三班级口号霸气押韵16字   踏上跑道,是一种选择。离开起点,是一种勇气。驰骋赛场,是一种胜利。每一年的学校运动会都会带给我们...
校园文明标语口号   跨进校园,走进平安,建设平安校园,你我共同的责任。以下是小编为大家搜集整理提供到的校园文明标语口...
经营理念标语 大学网欢迎大家的到来,下面是小编整理的经营理念标语,以供查阅,快来看看吧!1.以人为本,诚信经营2....
环保宣传标语大全   如果不增强环保观念,不为环境保护作出任何行动,最终后悔的一定是我们自己。下面我们来看看环保宣传标...
工厂安全生产标语_标语大全 安全问题,一直以来都是大家所关注的问题之一,那么关于工厂安全生产的标语有什么呢?以下是PINCAI小...
公司拓展口号 精选公司拓展口号  公司拓展口号  1、素质提升,交流分享,精耕深耕,永续辉煌  2、情真意切,深耕...
3班的运动会口号 3班的运动会口号(精选50句)  在日常的学习、工作、生活中,大家都经常接触到口号吧,简短的句式、朴...
小学对学生的评语 小学对学生的评语  小学对学生的评语(精选200句)  在日复一日的学习、工作或生活中,大家都不可避...
男装的广告词 男装的广告词  男装的广告词大全  1. 成功人生梦,相伴当某人。  2. damoson男装,缔造...
新店开业宣横幅传语 新店开业宣横幅传语(精选60句)  在平凡的学习、工作、生活中,许多人都接触过一些比较经典的标语吧,...