⑴ 24點紙牌游戲的開發 python 各路大神我需要幫助
很久之前自己寫的了,用的就是高級一點的窮舉,還挺快的。
附帶一個gui
求給分啊
兩個文件,cui負責算數gui是界面,親測可運行的
**************************************cui_24point.py
__author__ = 'Administrator'
add = lambda a,b:a+b
minus = lambda a,b:a-b
mul = lambda a,b:a*b
div = lambda a,b:a/b
caldict = {add:"+", minus:"-", mul:"*", div:"/"}
sortlist = [[a,b,c,d] for a in range(4) for b in range(4) for c in range(4) for d in range(4) if a != b != c != d and a != c and b != d and a != d]
class leaf:
def __init__(self, numlist, layer1, layer2, layer3, ans):
self.numlist = map(lambda a:float(a), numlist)
self.layer1 = layer1
self.layer2 = layer2
self.layer3 = layer3
self.ans = ans
def __str__(self):
return "((%s%s%s)%s%s)%s%s=%s" %(self.numlist[0], caldict[self.layer1], self.numlist[1], caldict[self.layer2], self.numlist[2], caldict[self.layer3], self.numlist[3] ,self.ans)
def tree(numlist):
layer1 = "Null"
layer2 = "Null"
layer3 = "Null"
for c1 in [add, minus, mul, div]:
layer1 = c1
for c2 in [add, minus, mul, div]:
layer2 = c2
for c3 in [add, minus, mul, div]:
layer3 = c3
if c3(c2(c1(numlist[0], numlist[1]), numlist[2]), numlist[3]) == 24:
return leaf(numlist, layer1, layer2, layer3, 24)
class Turn():
def __init__(self, numlist):
if len(numlist) == 4:
self.numlist = numlist
def calculate(self):
anslist = []
for i in sortlist:
templist = [self.numlist[i[0]], self.numlist[i[1]], self.numlist[i[2]], self.numlist[i[3]]]
anslist.append(tree(templist))
return anslist
def calc(templist):
ans = Turn(templist).calculate()
ans = [i for i in ans if i != None]
for i in ans:
print i
return ans
if __name__ == "__main__":
templist = []
for i in range(4):
templist.append(int(raw_input("Input No.%s number \n" %i)))
calc(templist)
*****************************************gui.py
# -*- coding: -UTF-8 -*-
__author__ = 'Administrator'
from Tkinter import *
import cui_24point
root = Tk()
root.geometry("800x400+400+400")
root.title("24點計算程式")
numlist = []
ansVar = StringVar()
def initvariable():
for i in range(4):
numlist.append(StringVar())
def drawframe():
entryframe = Frame(root, width = 300, height = 100)
for i in range(4):
Label(entryframe, text = str(i + 1)).grid(row = 1, column = i)
Entry(entryframe, textvariable = numlist[i]).grid(row = 2, column = i)
entryframe.pack()
ansframe = Frame(root, width = 100, height = 66)
anslistbox = Listbox(ansframe, width = 50, listvariable = ansVar)
ansscrollbar = Scrollbar(ansframe, command = anslistbox.yview)
anslistbox.configure(yscrollcommand = ansscrollbar.set)
anslistbox.pack(side = RIGHT)
ansscrollbar.pack(side = LEFT, fill = Y)
ansframe.pack()
def calculate():
templist = map(lambda i:float(i.get()), numlist)
for i in cui_24point.calc(templist):
anslistbox.insert(END, i)
anslistbox.insert(END, "********************")
Button(text = "計算", command = calculate).pack()
initvariable()
drawframe()
⑵ python 檢測數獨是不是正確的 檢查每行,每列,每個小方框中是否有重復數字
用if語句not in 來做測試是否有重復的
⑶ python主要可以做什麼
Python幾乎無所不能,通俗易懂、容易入門、功能強大,學習後可以從事以下工作崗位:
1. Web開發
最火的Python web框架Django,支持非同步高並發的Tornado框架,短小精悍的flask,bottle,Django官方的標語把Django定義為the framework for perfectionist with deadlines(大意是一個為完全主義者開發的高效率web框架)
2. 網路編程
支持高並發的Twisted網路框架,py3引入的asyncio使非同步編程變的非常簡單
3. 爬蟲開發
爬蟲領域,Python幾乎是霸主地位,Scrapy/Request/BeautifuSoap/urllib等,想爬啥就爬啥
4. 雲計算開發
目前最火最知名的雲計算框架就是OpenStack,Python現在的火,很大一部分就是因為雲計算市場近幾年的爆發
5. 人工智慧
MASA和Google早期大量使用Python,為什麼Python積累了豐富的科學運算庫,當AI時代來臨後,Python從眾多編程語言中脫穎而出,各種人工智慧演算法都基於Python編寫,由其PyTorch之後,Python作為AI時代頭牌語言的位置基本確立!
6. 自動化運維
問問中國的每個運維人員,運維人員必須會的語言是什麼?10個人詳細會給你一個相同的答案,它的名字叫Python
7. 金融分析
金融公司使用的很多分析程序、高頻交易軟體就是用的Python,目前,Python是金融分析、量化交易領域里用的最多的語言
8. 科學運算
97年開始,NASA就在大量使用Python在進行各種復雜的科學運算,隨著NumPy,SciPy,Matplotlib,Enthought librarys等眾多程序庫的開發,使得Python越來越適合做科學計算、繪制高質量的2D和3D圖像。和科學計算領域最流行的商業軟體Matlab相比,Python是一門通用的程序設計語言,比Matlab所採用的腳本語言的應用范圍更廣泛
9. 游戲開發
在網路游戲開發中Python也有很多應用。相比Lua or C++,Python比Lua有更高階的抽象能力,可以用更少的代碼描述游戲業務邏輯,與Lua相比,Python更適合作為一種Host語言,即程序的入口點是在Python那一端會比較好,然後用C/C++在非常必要的時候寫一些擴展。Python非常適合編寫1萬行以上的項目,而且能夠很好的把網游項目的規模控制在10萬行代碼以內。
10. 桌面軟體
雖然大家很少使用桌面軟體了,但是Python在圖形界面開發上也很強大,你可以用tkinter/PyQT框架開發各種桌面軟體!
⑷ python能做什麼游戲
Python是一門高級且有趣的編程語言,除了網路爬蟲、人工智慧、數據分析之外,Python還可以進行游戲開發,為大家介紹五個支持Python的2D、3D游戲開發庫。
1、Cocos2d:是一系列開源軟體框架,用於構建跨平台2D游戲和應用程序,由cocos2d-x、cocos2d-js、cocos2d-xna和cocos2d多種框架組成,像大魚賭場、城堡沖突等小游戲,就是用此框架開發出來的。
2、Panda3D:是由迪士尼開發的3D游戲引擎,一個用於Python和C++程序的3D渲染和游戲開發框架,並由卡內基梅隴娛樂技術中心負責維護,使用C++編寫的,針對Python進行了完全的封裝。
3、Pygame:它是一組Python模塊,用來編寫游戲,可支持Python3.7,游戲例子有:紙牌游戲、超級馬里奧、擊球等多種游戲。
4、Pyogre:ogre 3D渲染引擎的Python綁定,可以用來開發游戲和模擬程序等任何3D應用,它的API更加穩定,也非常快速靈活。
5、RenPy:一個視覺小說引擎,被世界各地的成千萬的創造者所使用,它可以幫助你使用文字、圖像和聲音來講述電腦和移動設備上的故事。RenPy是開放源碼的,可免費的商業用途,易於學習的腳本語言任何人都能有效地編寫大型視覺小說,它的Python腳本足以用來模擬游戲。
⑸ 求大神!!python程序設計 一個24點紙牌游戲。如圖所示,最好充分利用提示!
你好:
最好是自己寫一點;
不會的部分,再拿出來詢問!
⑹ 用python編了個紙牌,但是怎麼發牌呀,完全隨
1. 找到一些有解的必要條件,然後在滿足這些條件的前提下,隨機生成牌局。可降低無解的可能性。
2. 倒推法:從4色牌都排好開始,(有指導的)隨機進行反向的操作,最後得到牌局。倒推的步數多則難,反之則易。
3. 隨機生成+機器檢查。先自動檢查生成的牌局,知道所有牌的情況下應該不難。做這個的時候,說不定你還能得到有解的充分/必要條件,然後就容易了。
⑺ 怎麼在python裡面完成隨機輸出撲克牌,要求有J,Q,K,且以後輸出的與前面輸出的不能重復
借用一個當年老大用來寫麻將的思路,把54張牌都初始化對象,裝到一個容器裡面,隨機取一個,刪一個,再寫個重寫隨機放入牌合的初始方法就好
⑻ python可以開發游戲嗎有對應的第三方庫可以利用嗎
總結一下,python不是不能開發游戲,只是並不合適。每種語言都有各自的優缺點,開發游戲這一塊或許就是python的缺點吧。 python游戲實例補充: 發牌游戲 1. 游戲介紹...
⑼ 求大神救命啊,Python實現圖形化,點擊按鈕隨機抽取兩張撲克牌的牌面,並且不能重復,要顯示出圖形
本文實例展示了Python統計列表中的重復項出現的次數的方法,是一個很實用的功能,適合Python初學者學習借鑒。具體方法如下:
對一個列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],現在我們需要統計這個列表裡的重復項,並且重復了幾次也要統計出來。
方法1:
?
1234
mylist = [1,2,2,2,2,3,3,3,4,4,4,4]myset = set(mylist) #myset是另外一個列表,裡面的內容是mylist裡面的無重復 項for item in myset: print("the %d has found %d" %(item,mylist.count(item)))
⑽ Python發牌案例幾個問題求解答
python是當下十分火爆的編程語言,尤其在人工智慧應用方面。如果有心從事編程方向的工作,最好到專業機構深入學習、多實踐,更貼近市場,這樣更有利於將來的發展。