1. 程式人生 > >我的第一個Python小程式

我的第一個Python小程式

大家好,我一個月前剛開始學Python,前幾天剛完成一個小遊戲,這遊戲使用了4個模組。

1- PyQt5 (需要下載)

2- random (Python自帶)

3- sys (Python 自帶)

4- texttable (需要下載)

首先,玩家一開始時會有10積分,他們可以用這個10積分來玩這個遊戲。

玩法:

1.玩家輸入要賭的積分,然後選擇‘0’或 ‘1’

2.如果贏了,玩家會得到他賭的 積分 x 2

3.如果輸了,玩家會輸掉他賭的積分

4.玩的時候,系統會生成3個txt檔案 , 一個是計入贏的時候贏了多少積分(從大到小,前100個),還有一個就是輸的時候輸了多少積分。最後一個就是他贏的次數,和輸的次數 加上當局的積分。

#上面的兩個空白格本來是想放圖片的,可是不知道為什麼,沒辦法把qrc檔案改成py檔案,如果大神知道怎麼改請教教我。

#程式碼有哪裡寫的不夠好的或可以改善的也請大家多多指教。

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'exedxe.ui'
#
# Created by: PyQt5 UI code generator 5.10
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets
import sys
import random
#win
cat = []
#lose
dog = []
pointz = [10]
#wincount
WC = [0]
#losecount
LC = [0]

class Ui_Dialog(object):
    #UI in Console
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(597, 461)
        self.AmountNum = QtWidgets.QLineEdit(Dialog)
        self.AmountNum.setGeometry(QtCore.QRect(90, 240, 81, 21))
        self.AmountNum.setObjectName("AmountNum")
        self.Points = QtWidgets.QLabel(Dialog)
        self.Points.setGeometry(QtCore.QRect(0, 120, 47, 13))
        self.Points.setObjectName("Points")
        self.Amount = QtWidgets.QLabel(Dialog)
        self.Amount.setGeometry(QtCore.QRect(0, 240, 81, 16))
        self.Amount.setObjectName("Amount")
        self.PB0 = QtWidgets.QPushButton(Dialog)
        self.PB0.setGeometry(QtCore.QRect(0, 280, 75, 23))
        self.PB0.setObjectName("PB0")
        self.PB1 = QtWidgets.QPushButton(Dialog)
        self.PB1.setGeometry(QtCore.QRect(70, 280, 75, 23))
        self.PB1.setObjectName("PB1")
        self.Exit = QtWidgets.QPushButton(Dialog)
        self.Exit.setGeometry(QtCore.QRect(510, 430, 75, 23))
        self.Exit.setObjectName("Exit")
        self.PointsNum = QtWidgets.QLabel(Dialog)
        self.PointsNum.setGeometry(QtCore.QRect(100, 110, 61, 31))
        font = QtGui.QFont()
        font.setPointSize(16)
        self.PointsNum.setFont(font)
        self.PointsNum.setObjectName("PointsNum")
        self.pic1 = QtWidgets.QTextBrowser(Dialog)
        self.pic1.setGeometry(QtCore.QRect(0, 0, 111, 101))
        self.pic1.setObjectName("pic1")
        self.pic2 = QtWidgets.QTextBrowser(Dialog)
        self.pic2.setGeometry(QtCore.QRect(110, 0, 111, 101))
        self.pic2.setObjectName("pic2")
        self.WinCount = QtWidgets.QLabel(Dialog)
        self.WinCount.setGeometry(QtCore.QRect(0, 160, 61, 16))
        self.WinCount.setObjectName("WinCount")
        self.WinCountNum = QtWidgets.QLabel(Dialog)
        self.WinCountNum.setGeometry(QtCore.QRect(100, 160, 71, 16))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.WinCountNum.setFont(font)
        self.WinCountNum.setObjectName("WinCountNum")
        self.LoseCount = QtWidgets.QLabel(Dialog)
        self.LoseCount.setGeometry(QtCore.QRect(0, 200, 61, 16))
        self.LoseCount.setObjectName("LoseCount")
        self.LoseCountNum = QtWidgets.QLabel(Dialog)
        self.LoseCountNum.setGeometry(QtCore.QRect(100, 200, 47, 16))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.LoseCountNum.setFont(font)
        self.LoseCountNum.setObjectName("LoseCountNum")
        self.Outcome = QtWidgets.QLabel(Dialog)
        self.Outcome.setGeometry(QtCore.QRect(20, 320, 391, 91))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.Outcome.setFont(font)
        self.Outcome.setText("")
        self.Outcome.setObjectName("Outcome")
        Dialog.setWindowTitle("Dialog")
        self.Points.setText("Points:")
        self.Amount.setText("Amount to Bet:")
        self.PB0.setText("0")
        self.PB1.setText("1")
        self.Exit.setText("Exit")
        self.PointsNum.setText("10")
        self.WinCount.setText("Win Count:")
        self.WinCountNum.setText("0")
        self.LoseCount.setText("Lose Count:")
        self.LoseCountNum.setText("0")

        #Buttons
        self.Exit.clicked.connect(Dialog.close)
        self.PB0.clicked.connect(self.btn_clk)
        self.PB1.clicked.connect(self.btn_clk)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    #Button's Function
    def btn_clk(self):
        win_count = WC[0]
        lose_count = LC[0]
        points = pointz[0]
        #generating a number , using it as a percentage
        chance = random.randint(1, 100)
        x = int(self.AmountNum.text())

        if x > points or x == 0:
            self.Outcome.setText("Please Enter A Valid Value")




        elif points == 0:
            self.Outcome.setText("You Have Ran Out of Points")




        else:
            if x == points or x == points - 5:
                points += x
                win_count += 1
                cat.append(x)
                pointz.append(points)
                WC.append(win_count)
                del pointz[0]
                del WC[0]
                self.PointsNum.setNum(points)
                self.WinCountNum.setNum(win_count)
                self.LoseCountNum.setNum(lose_count)
                self.Outcome.setText("Congratulations , You Won!")





            elif x >= 10000:
                points -= x
                lose_count += 1
                dog.append(x)
                pointz.append(points)
                LC.append(win_count)
                del pointz[0]
                del LC[0]
                self.PointsNum.setNum(points)
                self.WinCountNum.setNum(win_count)
                self.LoseCountNum.setNum(lose_count)
                self.Outcome.setText("Sorry, You Lost")






            else:
                if chance <= 75:
                    points += x
                    win_count += 1
                    cat.append(x)
                    pointz.append(points)
                    WC.append(win_count)
                    del pointz[0]
                    del WC[0]
                    self.PointsNum.setNum(points)
                    self.WinCountNum.setNum(win_count)
                    self.LoseCountNum.setNum(lose_count)
                    self.Outcome.setText("Congratulations , You Won!")





                elif chance > 75:
                    points -= x
                    lose_count += 1
                    dog.append(x)
                    pointz.append(points)
                    LC.append(win_count)
                    del pointz[0]
                    del LC[0]
                    self.PointsNum.setNum(points)
                    self.WinCountNum.setNum(win_count)
                    self.LoseCountNum.setNum(lose_count)
                    self.Outcome.setText("Congratulations , You Won!")




        cat.sort(reverse=True)
        dog.sort(reverse=True)
    #Making a texttable for win/lose
        import texttable as tt
        tab = tt.Texttable()
        headings = ['cat']
        tab.header(headings)

        for row in zip(cat[:100]):
            tab.add_row(row)

        s = tab.draw()
        with open('7777.txt', 'a') as f:
            print(s, file=f)

        tab1 = tt.Texttable()
        headings = ['dog']
        tab1.header(headings)

        for row in zip(dog[:100]):
            tab1.add_row(row)

        s1 = tab1.draw()
        with open('7778.txt', 'a') as f:
            print(s1, file=f)
        #7779 includes wincount,losecount and points.
        with open('7779.txt', 'a') as f:
            print("win count: ", win_count, "lose count: ", lose_count, "Points: ", points, file=f)





#Letting the script function
if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_Dialog()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

看了這個程式碼後,你們應該知道怎麼拿到很多很多積分了吧。嘻嘻嘻

#還有一個就是我用了cx_freeze打包後,啟動exe時,cmd會跑出來。。。。怎麼拿掉。。。幫幫忙

相關推薦

一個Python程式

大家好,我一個月前剛開始學Python,前幾天剛完成一個小遊戲,這遊戲使用了4個模組。 1- PyQt5 (需要下載) 2- random (Python自帶) 3- sys (Python 自帶) 4- texttable (需要下載) 首先,玩家一開始時會有10積分,

一個python程式——即時動態時鐘(程式碼解讀)

程式碼資源來自: http://n.miaopai.com/media/K9Qlou7rdPc5TxpPaL1VDvwfv5hP~lHK   (執行有錯誤,缺少date,week和結尾部分) https://blog.csdn.net/yangxing2/article/details

Java程式設計師的一個Python程式:京東暢銷書榜爬蟲

畢業後的5年多時間裡一直在Java的生態體系裡遊走,很少觸碰其他非Java技術棧。職業安全感隱隱的警告我不能一直逗留在自己的舒適區裡,不能被大時代拋棄。時下最火的莫過於AI, 而AI時代則帶火了AI第一語言Python,那就學學Python。學習一門新技術的最佳

一個Python程式(Hello World!)

當安裝好python時,可以在命令提示符中直接輸入 python 就可以進入python自帶的編輯器(最好不要使用root使用者,因為當你不小心把資料給刪了,那可不是一般罪過啊!),如圖: 此

一個python 程式

第一個python程式,hello world 使用sublime 文字編輯器,首先需要下載python 推薦幾個sublime 的外掛 SublimeREPL、Anaconda print('hello world')

day04 一個python程式

使用Pycharm編寫第一個python程式1. 開啟 Pycharm,選擇  Create New Project  ,建立一個新專案2. 選擇 Pure Python  表示建立一個純Python程式專案,  Location  表示該專案儲存的路徑, Interpret

一個Python程序

接收 bigger all 類型 pre author code ger 知識點 猜年齡,如果大了提示小點,如果小了,提示大點 涉及的知識點: 1、變量 2、註釋 3、接收交互式的輸入 4、類型轉換 5、while循環 6、if..elif..else多條件分支語句 #

一個Activiti程式

第二步:編寫一個spring格式的activiti.cfg.xml的配置檔案(這個配置檔案我放在了src目錄下面,如果放在其他目錄下面需要在程式中新增完整的路徑資訊)我用的是mysql資料庫。<?xml version="1.0" encoding="UTF-8"?> <beans xmln

一個Linux程式(進度條)

一,預備知識  在寫進度條之前,先要對printf函式有一個更深的理解與認識,看一個簡單的程式: (1)執行後先輸出“hello world”,再睡眠5秒 (2)去掉\n以後,按照預期,應該先輸出hello world,再睡眠5秒,可是結果卻是睡眠5秒後再輸出hell

Day1:一個python程序

col rip 3.6.2 寫代碼 技術分享 spa 選項 emp win Day1:第一個python小程序與開發工具Pycharm 一、Hello World C:\Users\wenxh>python Python 3.6.2 (v3.6.2:5fd33b5,

一個python程序

ali for pytho .com login format == gin log 一 第一個Python程序 _username=‘liu‘;_password=‘1234‘ username=input(‘username:‘) password=input(‘pa

一個python程序——即時動態時鐘(開始階段)

arm 識別 使用 file 及其 階段 pychar odin 語句 開發歷程: 一、python開發環境 在安裝了python2.7和python3.7的基礎上,使用pycharm進行編碼。 (1)閱讀代碼敲進去後,出現第一個問題:ImportError: No mod

Python入門》一個Python Web程式——簡單的Web伺服器

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Pycharm+Django搭建一個Python Web程式

1.安裝django 無論是Python2.x還是Python3.x版本,都可以使用pip來安裝Django。在控制檯使用如下命令:pip install django 如: 2.檢查dgango是否安裝成功 安裝成功後,在ipython裡面或者Pycharm的Python console控制檯匯入d

一個springMVC程式

1.開發工具介紹 idea的安裝破解:https://www.cnblogs.com/jpfss/p/8872358.html jdk和Tomcat的配置都在裡面。 2.建立第一個小程式 2.1建立一個web專案 2.2建立大綱 2.3在web/WEB-IN

【2】Kotlin是什麼 Kotlin的發展歷程 一個HelloWorld程式

Kotlin 就是一門可以執行在Java虛擬機器 ,Android ,瀏覽器上的靜態語言 它與Java 100%相容 如果你對Java非常熟悉,那麼你就會發現Kitlin除了自己的標準庫之外,大多數

Python入門 一個Python Web程式——簡單的Web伺服器

  上一篇講了《Python入門》Windows 7下Python Web開發環境搭建筆記,接下來講一下Python語言Web服務的具體實現:第一個Python Web程式——簡單的Web伺服器。 與其它Web後端語言不同,Python語言需要自己編寫Web伺服器。 如果你使用一

一個Applet程式

.java 檔案: java applet是一個類,其層次結構如下圖:類 JApplet  java.lang.Object    java.awt.Component        java.awt.Container            java.awt.Panel 

一個Java程式

Step 1: 安裝Java開發工具箱(JDK,JRE); Step2: 設定環境變數,及新增執行路徑; Step3: 安裝Java編寫整合開發環境Eclipse; 前期準備工作完成後(網上有相應教

使用PyQt來編寫一個Python GUI程式

這段程式碼有什麼用?還記得我們把按鈕命名為了calc_tax_button 嗎?(這是這個按鈕物件的名字,不是按鈕上顯示的提示字串。)clicked 是一個內建的函式,當有按鈕被點選的時候它會被自動呼叫(很神奇吧)。所有的 QT 元件都有特定的函式,你可以通過 Google 來檢視詳細。這段程式碼的最後部