点灯游戏

5*5的格子,初始状态灯全灭(可以通过init_light来定义任何初始状态),点任何一个格子,上下左右状态反转,目标状态灯全亮

rows = 7
cols = 7

light = [[0 for row in range(rows)] for col in range(cols)]
press = [[0 for row in range(rows)] for col in range(cols)]

def init_light():
	for row in xrange(1,6):
		for col in xrange(1,6):
			light[row][col]=1

def printMatrix(light_press):
	for row in xrange(1,6):
		print light_press[row][1:6]

def AllLightOff():
	for col_1 in range(2):
		for col_2 in range(2):
			for col_3 in range(2):
				for col_4 in range(2):
					for col_5 in range(2):
						press[1][1]=col_1
						press[1][2]=col_2
						press[1][3]=col_3
						press[1][4]=col_4
						press[1][5]=col_5
						flag = True
						for row in xrange(2,6):
							for col in xrange(1,6):
								press[row][col]=(light[row-1][col]+press[row-2][col]
									+press[row-1][col-1]+press[row-1][col]+press[row-1][col+1])%2

						for col in xrange(1,6):
							if (press[5][col-1]+press[5][col]+press[5][col+1]+press[4][col]+light[5][col])%2 != 0 :
								flag = False
								break
						if flag:
							print "--------The right answer is :----------"
							printMatrix(press)
							return True

if __name__ == "__main__":
	init_light()
	print "the init state is :"
	print "-------------------"
	printMatrix(light)

	AllLightOff()
时间: 2024-11-13 09:38:22

点灯游戏的相关文章

点点点游戏之 点灯游戏   加载图片版

 /************************** http://www.592xyx.com/gameplay/14193/index.shtml 关灯游戏3 没想到会于这游戏再结缘 会的东西,不应该只是说说而已-- 纸上谈兵过后的具体实现 理论为心  技术为要 第一阶段产生地图的思考   类似而已 还是有区别的 本程序练习图像化 地图是要加载图片 更方便操作 特别地可以用到:::链表 连线本身是一个问题 **************************/   import java

点点点游戏之 点灯游戏 是比C好实现一点

 /**************************  一早增加了昨晚的想法,data函数一定要实现产生的点数够多  rand值与check判断处的值想想不一样,rand>check里的rand  而相等才是符合逻辑的  下一版本就是增加2链表以添加斜线与增大间距实现加载图片 http://www.592xyx.com/gameplay/14193/index.shtml 关灯游戏3 没想到会于这游戏再结缘 会的东西,不应该只是说说而已-- 纸上谈兵过后的具体实现 理论为心  技术为要 第一

点灯小游戏

今天闲时,写了个点灯的小游戏,所谓点灯游戏,就是在一个多行多列并排多盏灯的格子里,任意点击一个灯都会将自己及周围的灯的亮暗状态发生变化,当灯全部要点亮后即赢了. 下面是几个比较关键的代码: 1.在:- (void)viewDidLoad:里实现游戏的基本布局,用一个for循环即可,其中定义了两个属性 NSInteger level 和 NSInteger number,分别设置的是每行灯的个数和总共灯的个数,可根据不同关进行改变. 2.下面是UIButton点击时改变自身即周围灯的亮暗状态的方法

IOS点灯小游戏

学习iOSUI阶段第三天掌握了一些视图相关的技巧,于是想到做个小app来巩固一下. 晚上没事就做了这个点灯的小游戏. 关于点灯游戏的相关信息参考百度百科. 一下是我的实现步骤: 第一步:素材准备 准备好两张图片作为游戏中灯的两种状态,一张名为red.jpg(代表灯灭),另一张为:blue.jpg(代表灯亮). 第二步:制作游戏布局 游戏布局是一个N*N的正方形,我使用了UIButton 作为灯来通过循环进行了一个N*N的游戏布局. 刚开始想到了用两层for循环来进行布局,但是仔细思考后发现用一层

睡觉请关灯   游戏模拟实现

 首先,关于这个的基本讨论已过一阶段了.现在就是合成版  以后做mcf java等的界面. 留了 一个bug就是 电脑解决完后 会多打印几个矩阵. 改进的地方,1:增加了一种电脑解法,         2:记录用了自增栈   #include"c.h" #include"c++.h" #define  MAX  5 #define N   10 typedef int  elem_type;   class Stack { public:   Stack()  { 

UVA 10318 - Security Panel dfs 剪枝

UVA 10318 - Security Panel dfs 剪枝 ACM 题目地址:UVA 10318 - Security Panel 题意: 这题跟点灯的题目很像,点灯游戏选择一盏灯时会让它以及四周的灯改变状态. 但是我们有特殊的开开关技巧,它给出了改变状态的位置,而不是四周都改变. 问你从全部关着变成全部开着的最小开关步骤. 分析: 很明显,在一个位置上点两次或更多次是没有必要的,所以一个位置只有选择与不选择,用dfs即可,但如果暴力所有可能,复杂度是2^25,会超时,所以要剪枝. 由于

委托的用法

用法1:A对象调用B对象的 FucntionB ,在FunctionB中又调用 A对象的方法: 模拟场景:有一个快递员,是专门帮客户送东西给别人的,有时客户会要求快递员将快递送到的时候做一些额外的事,比如: 客户1:快递送到了帮我打他一顿 客户2:快递送到了帮我亲他一下   快递员本来是没有‘打他一顿’这个方法的,是客户传递给他的: 具体到点灯游戏:

解答之终极版   睡觉请关灯

首先,关于这个的基本讨论已过一阶段了.现在就是合成版  以后做mcf java等的界面. 留了 一个bug就是 电脑解决完后 会多打印几个矩阵. 改进的地方,1:增加了一种电脑解法, 2:记录用了自增栈.   #include"c.h" #include"c++.h" #define  MAX  5 #define N   10 typedef int  elem_type;   class Stack { public:  Stack() {  top = 0;

睡觉请关灯

 解答之终极版   睡觉请关灯 2016-04-01 18:18:12 标签:游戏 添加标签>> 首先,关于这个的基本讨论已过一阶段了.现在就是合成版  以后做mcf java等的界面. 留了 一个bug就是 电脑解决完后 会多打印几个矩阵. 改进的地方,1:增加了一种电脑解法,         2:记录用了自增栈.          #include"c.h" #include"c++.h" #define  MAX  5 #define N   10