⑴ python可以開發游戲嗎
可以。所有的語言都可以,只是適不適合。
⑵ python小游戲
#五子棋import appuifw,e32,key_codes
from graphics import *def cn(x):return x.decode('utf-8')
def quit(): _quit=1
global running
running=1
def redraw(rect): canvas.blit(img)def default():
global con,color,font
con={"l":15,"x":15,"y":33,"r":13,"n":15}
color={"bg":0x7777bb,"fg":0x333333,"p1":0x000000,"p2":0xffffff,"w":0xff0000}
font=u"Sans MT 936_S60"def initial():
global img,canvas,con,color,cur_x,cur_y,turn,pos1,pos2,pos
appuifw.app.screen='full'
appuifw.app.body=canvas=appuifw.Canvas()
img=Image.new((240,320))
img.clear(color["bg"])
cur_x=7
cur_y=7
turn=1
pos1=[]
pos2=[]
pos=[]
for i in range(con["n"]*con["n"]):
pos.append(0)def paint_back():
global img,color,font
#img.text((90,25),cn('歡樂五子棋'),color["fg"],font)
for i in range(con["x"],con["x"]+con["l"]*con["n"]-1,con["l"]):
img.line((i,con["y"],i,con["y"]+con["l"]*(con["n"]-1)),color["fg"])
for i in range(con["y"],con["y"]+con["l"]*con["n"]-1,con["l"]):
img.line((con["x"],i,con["x"]+con["l"]*(con["n"]-1),i),color["fg"])
img.text((40,270),cn('玩家1'),color["p1"],font)
img.text((160,270),cn('玩家2'),color["p2"],font)
img.point((90,263),color["p1"],width=con["r"],fill=color["p1"])
img.point((144,263),color["p2"],width=con["r"],fill=color["p2"])
def paint_cur(x,y,sh):
global img,con,color,pos1,pos2,running
if running<>1:return
ax=con["x"]+con["l"]*x
ay=con["y"]+con["l"]*y
b=con["l"]/2
if sh<>0:
c=color["p"+str(sh)]
if rp((x,y))<>0:
c=color["w"]
if sh==0:
c=color["bg"]
img.line((ax-b,ay-2,ax-b,ay-b,ax-2,ay-b),c)
img.line((ax-b,ay+2,ax-b,ay+b,ax-2,ay+b),c)
img.line((ax+b,ay-2,ax+b,ay-b,ax+2,ay-b),c)
img.line((ax+b,ay+2,ax+b,ay+b,ax+2,ay+b),c)
redraw(())def paint_q(x,y,z):
global img,con,color
ax=con["x"]+con["l"]*x
ay=con["y"]+con["l"]*y
b=con["l"]/2
if z==0:
c=color["bg"]
else:
c=color["p"+str(z)]
img.point((ax,ay),c,width=con["r"],fill=c)
redraw(())
if z==0:
img.line((ax-b,ay,ax+b,ay),c)
img.line((ax,ay-b,ax,ay+b),c)
def k_up():
global cur_x,cur_y,con,turn
paint_cur(cur_x,cur_y,0)
cur_y=cur_y-1
if cur_y==-1:
cur_y=con["n"]-1
paint_cur(cur_x,cur_y,turn)def k_down():
global cur_x,cur_y,con,turn
paint_cur(cur_x,cur_y,0)
cur_y=cur_y+1
if cur_y==con["n"]:
cur_y=0
paint_cur(cur_x,cur_y,turn)def k_left():
global cur_x,cur_y,con,turn
paint_cur(cur_x,cur_y,0)
cur_x=cur_x-1
if cur_x==-1:
cur_x=con["n"]-1
paint_cur(cur_x,cur_y,turn)def k_right():
global cur_x,cur_y,con,turn
paint_cur(cur_x,cur_y,0)
cur_x=cur_x+1
if cur_x==con["n"]:
cur_x=0
paint_cur(cur_x,cur_y,turn)def rp(x):
global con,pos
if (x[0]<0 or x[0]>=con["n"] or x[1]<0 or x[1]>=con["n"]):return 0
#print x,pos[x[0]*con["n"]+x[1]]
return pos[x[0]*con["n"]+x[1]]def wp(x,y):
global con,pos
pos[x[0]*con["n"]+x[1]]=y
def win():
for i in pos1:
k=0
for j in range(0,6):
if rp((i[0]+j,i[1]))==1:
k=k+1
else:
break
if k>=5:
return 1
k=0
for j in range(0,6):
if rp((i[0],i[1]+j))==1:
k=k+1
else:
break
if k>=5:
return 1
k=0
for j in range(0,6):
if rp((i[0]+j,i[1]+j))==1:
k=k+1
else:
break
if k>=5:
return 1
k=0
for j in range(0,6):
if rp((i[0]+j,i[1]-j))==1:
k=k+1
else:
break
if k>=5:
return 1 for i in pos2:
k=0
for j in range(0,6):
if rp((i[0]+j,i[1]))==2:
k=k+1
else:
break
if k>=5:
return 2
k=0
for j in range(0,6):
if rp((i[0],i[1]+j))==2:
k=k+1
else:
break
if k>=5:
return 2
k=0
for j in range(0,6):
if rp((i[0]+j,i[1]+j))==2:
k=k+1
else:
break
if k>=5:
return 2
k=0
for j in range(0,6):
if rp((i[0]+j,i[1]-j))==2:
k=k+1
else:
break
if k>=5:
return 2
return 0
def k_enter():
global cur_x,cur_y,turn,pos1,pos2,con,color,font,running
if running<>1:return
if rp((cur_x,cur_y))==0:
if turn==1:
pos1.append((cur_x,cur_y))
img.rectangle((35,255,100,272),color["bg"])
img.rectangle((135,255,200,272),color["p2"])
if turn==2:
pos2.append((cur_x,cur_y))
img.rectangle((35,255,100,272),color["p1"])
img.rectangle((135,255,200,272),color["bg"])
paint_q(cur_x,cur_y,turn)
wp((cur_x,cur_y),turn)
if win()<>0:
#img.text((80,300),cn('玩家')+str(turn)+cn("獲勝!"),color["fg"],font)
img.rectangle((35,255,100,272),color["bg"])
img.rectangle((135,255,200,272),color["bg"])
paint_cur(cur_x,cur_y,0)
running=2
turn=3-turn
paint_cur(cur_x,cur_y,turn)def bindkey():
canvas.bind(key_codes.EKeyUpArrow, k_up)
canvas.bind(key_codes.EKeyDownArrow,k_down)
canvas.bind(key_codes.EKeyLeftArrow, k_left)
canvas.bind(key_codes.EKeyRightArrow,k_right)
canvas.bind(key_codes.EKeySelect,k_enter)default()
initial()
paint_back()
paint_cur(cur_x,cur_y,1)
img.rectangle((35,255,100,272),color["p1"])
bindkey()redraw(())
appuifw.app.exit_key_handler = quit()
_quit=0
while (1-_quit):
e32.ao_sleep(0.2)
redraw(())
⑶ python可以做游戲嗎
當然可以,不是特別復雜的游戲也可以直接用Python一類的腳本語言開發,但是商業游戲通常用C++和C#。
⑷ 用python能製作游戲嗎
能,但不適合。
用錘子能造汽車嗎? 誰也沒法說不能吧?歷史上也確實曾經有些汽車,是用錘子造出來的。但一般來說,還是用工業機器人更合適對嗎?
比較大型的,使用Python的游戲有兩個,一個是《EVE》,還有一個是《文明》。但這僅僅是個例,沒有廣泛意義。
一般來說,用來做游戲的語言,有兩種。一是C++。。一是C#。。
Python理論上,不僅不適合做游戲,而是只要大型的程序,都不適合。只適合寫比較小型的東西,比如一個計算器,一個爬蟲等。
主要有2個方面,一是速度慢,二是語法缺陷。
也許你一定覺得,Python的語法又干凈,又優雅,怎麼還有缺陷?但仔細想想,為什麼別的語言沒有這么干凈?沒有這么優雅?明明可以直接a=123 幹嘛非要寫成 int a=123;呢?難道是其他語言的設計者,都有強迫症嗎?道理很簡單,有得必有失。
如果數據類型,只有字元串和數字,省略掉聲明變數的過程,當然不是問題。但只要邏輯一復雜,情況就完全不同了。。。游戲中,你用C#或C++寫起來,大概會是這樣。
技能 a=xxxx;
武器 b=xxxx;
角色 c=xxxx;
葯水 d=xxxx;
音樂 e=xxxx;
而Python呢?大概是這個樣子
a=xxxx
b=xxxx
c=xxxx
d=xxxx
如果你的代碼很少,顯然是Python比較方便。但如果你創建幾百個對象,代碼超過1萬行。。。寫到幾千行的時候,遇到一個叫x的對象,你還知道它到底是個啥嗎?是一把武器?還是一瓶葯水?還是一張圖片?一段音頻?一盞燈光?一座房子?
不要以為1萬行代碼很多。。。。1萬行連個《鬥地主》都寫不完。。
用Python寫大程序的感覺就是,當你第一天,只寫了50行代碼,創建了3個類,5個對象。你會覺得太爽了,這絕對是世界上最好的語言。。。第二天,你又創建了2個類,5個對象的時候,就覺得有點暈暈的了。第三天,又創建了2個類之後,你會發現自己必須非常仔細的看一遍注釋,否則就不會寫了。第四天,你一整天都在看注釋。。。。
這就是動態語言的劣根性。一開始代碼量少,看不出任何缺點,各種省事,各種爽。代碼量越多,腦子越亂。一般500行以上,效率就會被JAVA,C#之類的語言反超。。1000行,就必須要各種加註釋才能看懂了。。2000行,注釋比代碼還多了。。5000行,注釋已經完全不管用了,自己根本看不懂自己的代碼,需要准備棄坑了。
⑸ 如何用Python寫一個小游戲
下載pygame包
然後找本書看一下,很容易的。
python基礎好的話,只要2-3天就搞定了。
⑹ 如何用python開發網路游戲
在google搜索tzmud,一個開源的基於python的網路文字游戲,你邊看別人的代碼別修改玩玩
⑺ python做的游戲有哪些
比較大型的,使用Python的游戲有兩個,一個是《EVE》,還有一個是《文明》。另外GitHub上有很多開源的小游戲,下面給大家介紹一下:
1. Github上面有個項目Free Python Games,裡面集合了不少的Python開發的小游戲,能玩,也適合新手用來練練手,另外 PyGame 這個網站裡面裡面集合了很多Python開發的小游戲。
2. Python版本的 Flapy Bird 簡化版,但是感覺更加難玩了。當然你也可以嘗試用Python開發原版的 Flapy Bird,涵蓋了顏色圖像等:Flappy Block - 1.0。
相關推薦:《Python教程》
3. 小時候經常在手機上玩的一個游戲,也是一款經典的街機游戲,這款游戲進化之後其實就是一個打乒乓的小游戲,這里同樣有一個進化版本,圖形設計的更加好看:Ping Pong。
4. 以前初高中在學校很無聊的時候跟同桌或者前後桌玩的游戲,你還記得么?
5. 同樣一款小時候在小霸王上玩的游戲:Junk Jungle。
6. 除此之外,一款比較有名基於Pyhton的戰爭的游戲:Home - TaleWorlds Entertainment。
7. 一款看起來非常有趣的3D游戲:Galcon。
⑻ Python都編過什麼游戲(大游戲)
沒有什麼大型游戲。由於效率和穩定性的原因,幾乎沒有桌面軟體和游戲會使用Python開發。
真正的商業游戲開發,從來都只有兩種選擇,C++和C#。另外用JS系列(含Typescript、ActionScript),可以製作一些頁游項目。除了以上三者之外,其他語言(包括Python)只適合寫一些俄羅斯方塊之類的小游戲。
(8)python游戲擴展閱讀:
Python的設計目標之一是讓代碼具備高度的可閱讀性。它設計時盡量使用其它語言經常使用的標點符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態語言如C、Pascal那樣需要重復書寫聲明語句,也不像它們的語法那樣經常有特殊情況和意外。
Python開發者有意讓違反了縮進規則的程序不能通過編譯,以此來強制程序員養成良好的編程習慣。並且Python語言利用縮進表示語句塊的開始和退出(Off-side規則),而非使用花括弧或者某種關鍵字。