弱弱的问下,用python编写自动化脚本怎么编写乒乓球类小游戏

Python小游戏--扫雷
  最近在学习python,闲来有空想看看自己的学习成果,做了一个简易的扫雷游戏。效果如下图:
  游戏运作流程:首先是绘制一个8X8矩阵,所有雷区地块初始显示为1,表示没有清扫。用户输入要清扫的雷区地块x,y坐标。程序进行检测,如果没有雷,雷区地块显示改为0,表示已经清扫了,否则显示改为X,然后绘制出已经清扫的雷区地块和全部有雷地块,并计算出用户得分。
  游戏数据结构与逻辑:游戏的数据保存使用了list构造出一个8X8矩阵存储。
list中的值只要3种,0-没有地雷;1-有地雷;2-已经清扫。每次用户输入x,y坐标后,都进行修改list中的值。游戏乐趣的关键点在于地雷的随机分布设计。我采用了random函数,雷的最大个数为15个,每次游戏开始前,程序对地雷进行随机分布。好了,说了这么多,还是读者自己看程序代码吧,程序不太复杂,一看就明白。
------------------------------------begin--------------------------------------------------
# -*- coding: utf-8 -*-
'''@author: Rayment
&& @version: 1.0
&& @note: 实现扫雷游戏()
测试环境:python2.5.2
import sys
import random
import string
class MineSweeping():
'''扫雷主程序
__init__(self):
'''初始化函式
self.ROW = 8
self.LINE = 8
self.SCORE = 0 #扫雷得分
self.MineNum = 15 #地雷总数
self.xy_list= [[0,0,0,0,0,0,0,0],
&&&&&&&&&&&&&&&&&&&&&&&&
[0,0,0,0,0,0,0,0],
&&&&&&&&&&&&&&&&&&&&&&&&
[0,0,0,0,0,0,0,0],
&&&&&&&&&&&&&&&&&&&&&&&&
[0,0,0,0,0,0,0,0],
&&&&&&&&&&&&&&&&&&&&&&&&
[0,0,0,0,0,0,0,0],
&&&&&&&&&&&&&&&&&&&&&&&&
[0,0,0,0,0,0,0,0],
&&&&&&&&&&&&&&&&&&&&&&&&
[0,0,0,0,0,0,0,0],
&&&&&&&&&&&&&&&&&&&&&&&&
[0,0,0,0,0,0,0,0]]
iniData(self):
'''x,y坐标初始状态值函数
&&&&&&&&&&
0-没有地雷;1-有地雷
#游戏开始前所有数值归零
for l in range(self.LINE):
&&&&&&&&&&&
for r in range(self.ROW):
&&&&&&&&&&&&&&&
self.xy_list[l][r]= 0
Max = self.MineNum
for x in range(self.LINE):
&&&&&&&&&&&
for y in range(self.ROW):
&&&&&&&&&&&&&&&
if 0 & Max:
&&&&&&&&&&&&&&&&&&&
self.xy_list[x][y]= 0
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
#为了增加地雷分布范围,选择0到4随机数
&&&&&&&&&&&&&&&&&&&
if 1 == random.randint(0,4):
&&&&&&&&&&&&&&&&&&&&&&&
self.xy_list[x][y]= 1
&&&&&&&&&&&&&&&&&&&&&&&
Max = Max - 1
&&&&&&&&&&&&&&&&&&&&&&&
getX(self):
'''获得x坐标值
&&&&&&&&&&
@return : 返回x坐标值
&&&&&&&&&&
@type : int
sys.stdout.write('X=')
xRet = raw_input()
while xRet=='' or (False == self.isNumber(xRet))\
&&&&&&&&&&&&
or 0&int(xRet) or
int(xRet)&self.ROW:
&&&&&&&&&&&
print 'Wrong number!(please input 0-7)'
&&&&&&&&&&&
sys.stdout.write('X=')
&&&&&&&&&&&
xRet = raw_input()
return int(xRet)
getY(self):
'''获得y坐标值
&&&&&&&&&&
@return : 返回y坐标值
&&&&&&&&&&
@type : int
sys.stdout.write('Y=')
yRet = raw_input()
while yRet=='' or (False == self.isNumber(yRet))\
&&&&&&&&&&&&
or 0&int(yRet) or
int(yRet)&self.LINE:
&&&&&&&&&&&
print 'Wrong number!(please input 0-7)'
&&&&&&&&&&&
sys.stdout.write('Y=')
&&&&&&&&&&&
yRet = raw_input()
return int(yRet)
isNumber(self,strVal):
'''检查是否数值
&&&&&&&&&&
@param : 需检查的字符串
&&&&&&&&&&
@type : str
nums = string.digits
for i in strVal:
&&&&&&&&&&&
if i not in nums:
&&&&&&&&&&&&&&&
return False
return True
checkMine(self,xPos,yPos):
'''检查输入坐标是否有雷
&&&&&&&&&&
0-没有地雷;1-有地雷;2-已经清扫
&&&&&&&&&&
@param 1: x坐标
&&&&&&&&&&
@type : int
&&&&&&&&&&
@param 2: y坐标
&&&&&&&&&&
@type : int
&&&&&&&&&&
@return : 0-没有地雷;1-有地雷;2-已经清扫
&&&&&&&&&&
@rtype : int
if 0 == self.xy_list[xPos][yPos]:
&&&&&&&&&&&
self.xy_list[xPos][yPos] = 2
&&&&&&&&&&&
elif 2 == self.xy_list[xPos][yPos]:
&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&&&&&
play(self):
'''游戏运行函数
self.display(1)
self.SCORE = 0
self.iniData()
#print self.xy_list
&&&&&&&&&&&
x = self.getX()
&&&&&&&&&&&
y = self.getY()
&&&&&&&&&&&
while(2 == self.checkMine(x,y)):
&&&&&&&&&&&&&&&
print 'values of x,y had inputed,please input new values!'
&&&&&&&&&&&&&&&
x = self.getX()
&&&&&&&&&&&&&&&
y = self.getY()
&&&&&&&&&&&
if 1 == self.checkMine(x,y):
&&&&&&&&&&&&&&&
self.end()
&&&&&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&&&&&
self.display(2)
&&&&&&&&&&&&&&&
self.SCORE = self.SCORE + 1
&&&&&&&&&&&&&&&
&&&&&&&&&&&
end(self):
'''游戏结束函数
self.display(3)
print '+======================+'
Over&&&&&&
print '+======================+'
print '&& Your score is:
'%self.SCORE
display(self,kind):
'''图形输出函数
&&&&&&&&&&
@param:1-初始;2-运行;3-结束
&&&&&&&&&&
if kind==1:
&&&&&&&&&&&
print '+======================+'
&&&&&&&&&&&
Start&&&&&
&&&&&&&&&&&
print '+======================+'
&&&&&&&&&&&
print '*-----------------*'
&&&&&&&&&&&
for i in range(self.LINE):
&&&&&&&&&&&&&&&
print '| 1 1 1 1 1 1 1 1 |'
&&&&&&&&&&&
print '*-----------------*'
&&&&&&&&&&&
print 'Please input values of x,y(0-7):'
elif kind==2:
&&&&&&&&&&&
#输出已经清扫位置
&&&&&&&&&&&
print '*-----------------*'
&&&&&&&&&&&
for i in range(self.LINE):
&&&&&&&&&&&&&&&
sys.stdout.write('| ')
&&&&&&&&&&&&&&&
for k in range(self.ROW):
&&&&&&&&&&&&&&&&&&&
if 2 == self.xy_list[i][k]:
&&&&&&&&&&&&&&&&&&&&&&&
sys.stdout.write('0 ')
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&
sys.stdout.write('1 ')
&&&&&&&&&&&&&&&
&&&&&&&&&&&
print '*-----------------*'
&&&&&&&&&&&
print 'Please input values of
x,y(0-7):'&&&&&&&&&&
&&&&&&&&&&&
#输出所有的地雷与已经清扫位置
&&&&&&&&&&&
print '*-----------------*'
&&&&&&&&&&&
for i in range(self.LINE):
&&&&&&&&&&&&&&&
sys.stdout.write('| ')
&&&&&&&&&&&&&&&
for k in range(self.ROW):
&&&&&&&&&&&&&&&&&&&
if 2 == self.xy_list[i][k]:
&&&&&&&&&&&&&&&&&&&&&&&
sys.stdout.write('0 ')
&&&&&&&&&&&&&&&&&&&
elif 1== self.xy_list[i][k]:
&&&&&&&&&&&&&&&&&&&&&&&
sys.stdout.write('X ')
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&
sys.stdout.write('1 ')
&&&&&&&&&&&&&&&
&&&&&&&&&&&
print '*-----------------*'
&&&&&&&&&&&
if __name__ == '__main__':
&&& '''自测试
MineSweeping()
print '\n----------------------------------------------'
print 'Quit game press \'q\',otherwise press other key!'
print '----------------------------------------------'
inputVal = raw_input()
if 'q' == inputVal:
&&&&&&&&&&&
------------------------------------end--------------------------------------------------
代码下载:http://download.csdn.net/detail/raymentblog/3628972
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。用Python写一个无界面的2048小游戏
作者:赤木晴子梦
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了用Python写一个无界面的2048小游戏的相关资料,需要的朋友可以参考下
以前游戏2048火的时候,正好用其他的语言编写了一个,现在学习python,正好想起来,便决定用python写一个2048,由于没学过python里面的界面编程,所以写了一个极其简单的无界面2048。游戏2048的原理和实现都不难,正好可以拿来练手,要是不知道这游戏的话,可以去网上查一下,或者下载一个到手机来玩一下,我就不在说其原理。我知道不放图的话大家一点兴趣都没,下面首先放一张游戏成型图,然后我们在来讲如何一步步用最基础的知识来实现。
一、生成4*4的矩阵
  游戏的第一步便是生成一个4*4的矩阵,当作我们游戏的主界面,其实说起来也比较简单,这里用了最原始的方法,直接用
print将其打印出来。首先我们要生成一个全为0的4*4二维列表,然后用一些类似& '┌ ├└,┤,┘┐│,─,┬,┴'这样的字符来组成我们的边框,下面来看一下代码的实现
matix=[[ for i in range()] for i in range()]
# 用列表推导式初始化生成一个*的列表,列表元素全为
# notzero函数的作用:游戏界面上非零的时候才显示,当为的时候,让其显示空,
def notzero(s):
return s if s!= else ''
# 非零的话返回本身,否则返回 ''
def display():                        # 显示界面函数,用┌ ├└,┤,┘┐│,─,┬,┴ 等显示边框,中间显示*矩阵里的的元素
print("\r\
┌──┬──┬──┬──┐\n\
│%s│%s│%s│%s│\n\
├──┬──┬──┬──┤\n\
│%s│%s│%s│%s│\n\
├──┬──┬──┬──┤\n\
│%s│%s│%s│%s│\n\
├──┬──┬──┬──┤\n\
│%s│%s│%s│%s│\n\
└──┴──┴──┴──┘"\
%(notzero(matix[][]),notzero(matix[][]),notzero(matix[][]),notzero(matix[][]),\
notzero(matix[][]),notzero(matix[][]),notzero(matix[][]),notzero(matix[][]),\
notzero(matix[][]),notzero(matix[][]),notzero(matix[][]),notzero(matix[][]), \
notzero(matix[][]),notzero(matix[][]),notzero(matix[][]),notzero(matix[][]),)
  来看一下上面代码的效果,是不是感觉一个游戏的框架已经到搭好了,由于初始化的时候,矩阵元素都为零,下面的图也就没有显示出0,是不是很简单,一个游戏的界面就被我们搭好了,不过毕竟没学过界面,所以大家就不要抱怨这界面有多么丑了哈。
        
二、初始化生成随机数
这个游戏每次开始的时候都会随机在上面的一个矩阵中生成两个随机数2或4,那么我们要如何来实现在上面矩阵中随机的一个位置生成一个随机数2或4了,当然是用到我们前面学过的random模块以及divmod(),下面我们就来看一下如何用random模块实现着一功能。
def init():
# 初始化矩阵
initNumFlag =
k = if random.randrange(, ) & else
# 当生成随机数大于的时候k=否则k= 生成和的概率为:
s = divmod(random.randrange(, ), )
# 生成矩阵初始化的下标 比如divmod(,)的话,s为(,)正好可以作为矩阵下标
if matix[s[]][s[]] == :
# 只有当其值不为的时候才赋值,避免第二个值重复
matix[s[]][s[]] = k
initNumFlag +=
if initNumFlag == :
# 当initNumFlag== 的话表示矩阵里两个随机数都已经生成了,退出循环
display( )
  来看一下上面代码的效果,是不是已经在两个随机的位置生成了两个数,如果大家有时间的试一下,可以看见每次执行的时候,出现在矩阵上面位置不一样,而且每次出现的数也不一样,因为我上面设置了出现2:4的概率为9:1所以大多时候出现2,这也是游戏的需要。到了这里矩阵已经可以动起来了,游戏的功能也可以说完成了一半。
三、游戏逻辑部分实现
&  如果玩过这游戏的话就知道,游戏中每次向上下左右移动的时候,比如像下移动的话,所有的数都会向下移动,碰到相同的数,就会成一个新的数,比如2和2碰到的话,就会生成4,然后再随机在其他位置生成一个2或4 ,同理4和4碰到的话也会生成8,直到合成了2048游戏就算成功了,或者说矩阵中的数字都不能移动那就是Game Over。当然我们在手机上玩游戏的话,随便滑动一下,所有的数字就可以向其中一个方向滑动,但是这里没有界面,条件比较艰苦,所以只能从控制台读入用户输入的字母,然后一个个来判断是向哪里移动了,所以我们要写4个函数来分别处理用户的上下左右移动,让后一个函数处理在每次用户移动后,如何添加一个随机数,下面先写一段伪代码来解释流程
def addRandomNum():            #每次移动后随机在矩阵中在生成一个数
      
def moveDown():              #向上移动的处理函数
addRandomNum()             #移动处理完成后,随机生成一个数
def moveLeft():               #向左移动的处理函数
addRandomNum()
def moveUp():              
#向上移动的处理函数
addRandomNum()
def moveRight():            
#向右移动的处理函数
addRandomNum()
def main():
while flag:                          #定义一个死循环,不断读入用户的输入,然后在做判断,看是向哪里移动
d = input(' (↑:w) (↓:s) (←:a) (→:d),q(uit) :“)
if d == 'a':
moveLeft()
elif d == 's':
moveDown()
elif d == 'w':
elif d == 'd':
moveRight()
elif d == 'q':
上面是一段为了理解的伪代码,下面我们来看一下如何实现移动处理函数,这里是整个游戏中最难处理的部分,完成了这一部分的话,整个游戏也就基本上实现了,这里我以向下的移动处理函数为例,其他的都一样,当用户输入向下移动的时候,所有的数字都向下移动,如果碰到相同的数字要和并,有数字的方块向没有数字的方块移动。这里需要用循环实现,有4列所以最外层的循环有4次,每一列里面又需要循环处理,下面来看一下具体怎么实现,
def addRandomNum():                        # 跟初始化生成随机数一样,只不过这里只是生成一个随机数
k = if random.randrange(, ) & else
s = divmod(random.randrange(, ), )
if matix[s[]][s[]] == :
matix[s[]][s[]] = k
display()                           # 随机数添加完成后就直接调用显示函数,直接显示一下游戏界面
def moveDown():                                #处理向下移动的函数
for i in range():                            #外层次循环处理例,内层两个层循环,来处理相邻的两个数
for j in range(, , -):
for k in range(j - , -, -):
if matix[k][i] & :                    # 从最下面的数开始处理相邻的两个数
if matix[j][i] == :
matix[j][i] = matix[k][i]            # 如果下面的数为空,上面的数字不为空就移动上面的数为下面的数
matix[k][i] =
elif matix[j][i] == matix[k][i]:          # 如果相邻的两个数相等的话,就和并,并把上面的输置零,下面的数变成两倍
matix[j][i] *=
matix[k][i] =
addRandomNum()                              # 移动完成后再随机生成一个数
写完了向下移动的处理函数,那么向其他方向的移动函数也一样,照着写,就可以,到这里游戏中最难的部分就完成,可以说胜利就在眼前了,好了在这之前,我们还需要处理一下其他问题,那就是每次移动后都要检查,游戏是不是Game Over了,还有就是定义一个变量来纪录分数了,这些实现起来都比较简单。
四、游戏纪录分数和检查游戏是否结束
  游戏结束的标志是矩阵中所有的数都不为0,而且所有相邻的数都不能合并,根据这个我们就可以来写一个函数来判断游戏是否GG,至于分数纪录,我们只需定义一个变量,然后每次有何并的时候,就加上一定的分数即可。下面我们来看检查函数的实现。
def check():            
for i in range(4):        #按每一排循环4 次
for j in range(3):      # 如果矩阵中有0存在,或者有相邻的数就表示游戏还可以继续经行,否则就是GG
if matix[i][j] == 0 or matix[i][j] == matix[i][j + 1] or matix[j][i] == matix[j + 1][i]:
return True
return False
五、完整游戏源码  
  完成了上面的部分,整个游戏的过程就实现了,下面附上整个游戏的源码。游戏还有很多不够完善的地方,比如说游戏中如果出现2048的话,就表示玩家胜利,游戏结束,但是我这里没有做处理,所以这个游戏可以一直玩到4096....没有结束,除非你游戏中GG了,要处理也很简单,还可以将矩阵存在文件中,完成一个游戏存档的功能。有兴趣的话大家去实现一下。
import random
score = 0                         # 纪录游戏的分数
matix = [[0 for i in range(4)] for i in range(4)] # 初始化生成一个4*4的列表
def notzero(s):
return s if s != 0 else ''
def display():
print("\r\
┌──┬──┬──┬──┐\n\
│%4s│%4s│%4s│%4s│\n\
├──┬──┬──┬──┤\n\
│%4s│%4s│%4s│%4s│\n\
├──┬──┬──┬──┤\n\
│%4s│%4s│%4s│%4s│\n\
├──┬──┬──┬──┤\n\
│%4s│%4s│%4s│%4s│\n\
└──┴──┴──┴──┘" \
% (notzero(matix[0][0]), notzero(matix[0][1]), notzero(matix[0][2]), notzero(matix[0][3]), \
notzero(matix[1][0]), notzero(matix[1][1]), notzero(matix[1][2]), notzero(matix[1][3]), \
notzero(matix[2][0]), notzero(matix[2][1]), notzero(matix[2][2]), notzero(matix[2][3]), \
notzero(matix[3][0]), notzero(matix[3][1]), notzero(matix[3][2]), notzero(matix[3][3]),)
def init():                               # 初始化矩阵
initNumFlag = 0
k = 2 if random.randrange(0, 10) & 1 else 4       # 随机生成 2 或 4
s = divmod(random.randrange(0, 16), 4)          # 生成矩阵初始化的下标
if matix[s[0]][s[1]] == 0:                  # 只有当其值不为0的时候才赋值,避免第二个值重复
matix[s[0]][s[1]] = k
initNumFlag += 1
if initNumFlag == 2:
def addRandomNum():                        #处理完移动后添加一个新的随机数
k = 2 if random.randrange(0, 10) & 1 else 4
s = divmod(random.randrange(0, 16), 4)
if matix[s[0]][s[1]] == 0:
matix[s[0]][s[1]] = k
def check():                            #检查游戏是否GG
for i in range(4):
for j in range(3):
if matix[i][j] == 0 or matix[i][j] == matix[i][j + 1] or matix[j][i] == matix[j + 1][i]:
return True
return False
def moveRight():                         # 向右移动处理函数
global score
for i in range(4):
for j in range(3, 0, -1):
for k in range(j - 1, -1, -1):
if matix[i][k] & 0:
if matix[i][j] == 0:
matix[i][j] = matix[i][k]
matix[i][k] = 0
elif matix[i][j] == matix[i][k]:
matix[i][j] *= 2
score += matix[i][j]       #将当前数作为score加上
matix[i][k] = 0
addRandomNum()
def moveUp():
global score
for i in range(4):
for j in range(3):
for k in range(j + 1, 4):
if matix[k][i] & 0:
if matix[j][i] == 0:
matix[j][i] = matix[k][i]
matix[k][i] = 0
elif matix[k][i] == matix[j][i]:
matix[j][i] *= 2
score += matix[j][i]
matix[k][i] = 0
addRandomNum()
def moveDown():
global score
for i in range(4):
for j in range(3, 0, -1):
for k in range(j - 1, -1, -1):
if matix[k][i] & 0:
if matix[j][i] == 0:
matix[j][i] = matix[k][i]
matix[k][i] = 0
elif matix[j][i] == matix[k][i]:
matix[j][i] *= 2
score += matix[j][i]
matix[k][i] = 0
addRandomNum()
def moveLeft():
global score
for i in range(4):
for j in range(3):
for k in range(1 + j, 4):
if matix[i][k] & 0:
if matix[i][j] == 0:
matix[i][j] = matix[i][k]
matix[i][k] = 0
elif matix[i][j] == matix[i][k]:
matix[i][j] *= 2
score += matix[i][j]
matix[i][k] = 0
addRandomNum()
def main():
\033[33;1mWelcome to the Game of m")
flag = True
while flag:                                    #循环的标志
\033[33;1m You Score:%s\033[0m' % (score))
d = input('\033[33;1m (↑:w) (↓:s) (←:a) (→:d),q(uit) :\033[0m')
#不断处理用户输入
if d == 'a':                                  
moveLeft()
if not check():                             #检查游戏是否GG
print('GG')
flag = False                             #GG的话直接退出
elif d == 's':
moveDown()
if not check():
print('GG')
flag = False
elif d == 'w':
if not check():
print('GG')
flag = False
elif d == 'd':
moveRight()
if not check():
print('GG')
flag = False
elif d == 'q':                          # 退出
else:                                # 对用户的其他输入不做处理
if __name__ == '__main__':
最后在附上一张图片最为结束
以上所述是小编给大家介绍的用Python写一个无界面的2048小游戏,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具教自己学Python(三)练手小游戏:不要猜中 - CSDN博客
教自己学Python(三)练手小游戏:不要猜中
不要猜中的小游戏
和朋友闲待着两个人无聊,都想吃苹果又都不想洗,想起玩过的一个酒桌上猜数字的游戏,然后在手机上写了出来,三局两胜输了去洗苹果……
零到99(包括边界),随机一个数两人(N人也可以)轮流猜测,如果没猜中,新的数将做为边界,一步步缩小可以猜测的范围,直到猜中为止,比如随机数是“32”,屏幕首先打印出:
当前范围是: 0 --- 100
第一次猜:50,屏幕返回
当前范围是: 0 --- 50
第二次猜:25,屏幕返回
当前范围是: 25 --- 50
第N次猜中:32,屏幕返回,并结束循环
此前我们的代码都是在交互环境中完成的,是时候来点不一样的了。在学前班里我们介绍了一些文本编辑器,现在召唤一个你喜欢的,然后开始编写吧。
多行的Python代码稍微有些不同,下面的代码可以当做是一个参考。良好的代码编写应该是有缩进的,这样方面人类阅读和理解,Python解释器对缩进的要求是严格的,也就是说你必须进行缩进,缩进量通常为’2个空格或者4个空格’,注意不要用’Tab’和4个空格混用,因为不同编辑器可能会对’Tab’的缩进理解不同。
那么问题来了,什么时候需要缩进呢?大概像下图中的缩进一样:
缩进描述的是属于关系,每有一层属于关系就需要缩进一次。
写好了程序后,比如存为abc.py,
在windows中进入相行目录,比如C盘下的py_ex,在Windows的命令行中输入:
C:\&python c:\py_ex\abc.py
cd c:\py_ex\abc.py
C:\py_ex\&python abc.py
在Linux或OSX的终端中输入python + 文件路径,比如要运行家目录内py_ex中的abc.py文件:
$ python ~/py_ex/abc.py
代码(Python3)
下面的代码是Python3的,如果是Python2你还需要在import之前再加入一行# -*- coding: utf-8 -*-,来确保代码内的中文字符可以运行。
import random
rand_num = random.randint(0, 99)
right = 99
while True:
print('当前范围是:', left, '---', right)
test = int(input('再猜一下\n'))
if test == rand_num:
print('^_^')
if test & rand_num:
right = test
left = test
第一行我们先引入了一个可以产生随机数的包,这里我们需要的是整数所以使用random.randint()方法,这个方法接收两个参数做为左右边界,返回一个包含边界的随机整数。
第六行,一个永恒循环来接收N次猜数,如果猜中break跳出循环。
第八行的input是一个内建函数用来接收输入信息,默认接收到的输入会是str类型,我们对其进行了强制类型转换,这里不严谨,没有进行严格的输入验证。
如果有疑问
有疑问是正常的,因为像if和while这样的控制语句我们之前并没有提过,但是没关系,即使没有提到过,你也一样看得懂,不是吗? 这里看明白就好,后续的章节我们会详细介绍。
本文已收录于以下专栏:
相关文章推荐
青蛙跳小游戏是一个看似简单的智力游戏,游戏任务是让左右两边的青蛙互换位置。鼠标点击青蛙,它会跳到离它最近的一块空置的石头上。下图是游戏界面:
        我在4399上也找到了这个小游戏,链接...
用python写的一个小游戏,附上完整实现代码。
利用python写“猜数字”,“猜词语”,“谁是卧底”这三个游戏,从而快速掌握python编程的入门知识,包括python语法/列表/元组/字典/流程控制/库函数等等。
写一个猜数字的游戏,在运行这个程序的时候,输出看起来像:
I am thinking of a number between 1 and 10.
Take a guess.
Your guess ...
本次是我对于Python实现2048这个曾经风靡一时的小游戏的代码解读
一、主逻辑图
逻辑图解:黑色是逻辑层,蓝色是外部方法,红色是类内方法,稍...
给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数。
1.   最基本的算法是,从小到大遍历:
for (i = 2 to A -1)
         if (i * B &...
K-means聚类算法是一种非层次聚类算法,在最小误差的基础上将数据划分了特定的类,类间利用距离作为相似度指标,两个向量之间的距离越小,其相似度就越高。程序读取全国省市经纬度坐标,然后根据经纬度坐标进...
本人最近在研究Radon变换,在查阅了各种资料之后在此写下个人的理解,希望与各位牛牛进行交流共同进步,也使得理解更加深刻些。
Radon变换的本质是将原来的函数做了一个空间转换,即,将原来的XY平...
他的最新文章
讲师:王禹华
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 pycharm编写python 的文章

 

随机推荐