黃金點遊戲

2022-08-31 16:09:12 字數 2041 閱讀 8279

最近花了一段時間自學tcp/ip網路程式設計技術,掌握了基於tcp的c/s網路通訊模型,熟悉了伺服器和客戶端軟體程式的設計流程,並且利用多執行緒和互斥鎖、條件變數等實現了併發機制。在這些知識和技術之上,寫出純c語言版的**點遊戲。

過後又用了一段時間研究qt網路程式設計,決定使用qtcpsocket重新開發**點遊戲。於是出現了第二個版本,qt版**點遊戲。不僅繼承第一版的分布式網路模型,還具有圖形使用者介面。

專案介紹

純c語言版

開發環境:visual studio 2013

執行環境:windows 7及以上版本

網路模型:使用基於tcp的c/s網路通訊模型,實現**點遊戲分布式框架。

語言技術:純c語言開發,具有多執行緒,採用互斥鎖和條件變數實現執行緒之間的同步和非同步。

qt版

開發環境:qt creater 4.2.1 community

執行環境:源**可跨平台

網路模型:採用c/s網路通訊的分布式結構。

語言技術:c++ qt類庫,採用物件導向的思想,運用qtcpsocket實現伺服器和客戶端的通訊管理,具有圖形使用者介面。

程式功能

純c語言版

伺服器:使用者的連線和斷開都有相應的提示。一有新使用者連線,伺服器自動建立新執行緒,用於遊戲資料的通訊。具有選單,可以隨時控制遊戲的進行以及關閉伺服器。

客戶端:使用者需使用伺服器的 ip 位址和埠號,連線伺服器,進行遊戲。也具有選單,可以隨時選擇數字、檢視得分和退出遊戲。

缺陷:伺服器只有一部分功能新增了互斥鎖和條件變數,因此當連線的客戶端較多的時候,存在執行隱患,且此程式受域的限制。遊戲的框架建立在多執行緒之上,隨著連線數的增加, 一旦執行緒數量超過硬體設施支援的執行緒數上限,大量的執行緒導致大量的上下文切換,消耗大量的作業系統資源,從而降低程式的效能。

改善措施:放棄多執行緒為主的結構,改用select set的輪換結構,減少執行緒數量,增加伺服器的承載。

qt版

執行效果

純c語言版

qt版

首先開啟伺服器,建立遊戲房間。

分別開啟兩個客戶端,並且輸入伺服器位址和埠號,點選進入遊戲。

傳送數字到伺服器,並且伺服器強制開始遊戲,將結果得分傳送至客戶端。

設定遊戲人數。

傳送數字到伺服器,然後伺服器自動開始遊戲,將結果得分發給客戶端。

黃金點遊戲

第三個實驗是我們的結對程式設計實現 點遊戲。結對組員 陸迪。駕駛員 陸迪 領航員 蔣媛。點遊戲規則 n個同學 n通常大於10 每人寫乙個0 100之間的有理數 不包括0或100 交給裁判,裁判算出所有數字的平均值,然後乘以0.618 所謂 分割常數 得到g值。提交的數字最靠近g 取絕對值 的同學得到...

黃金點遊戲

一 實現功能 10個玩家同時遊戲,系統根據規則計算出g值,並且給相應玩家分數,遊戲可以進行多輪,由玩家自行控制,每一輪的分數都會累計下來除非重新開始 二 設計過程 別的語言也不熟悉,就只用了c語言,完成了要求的基本功能,做成了乙個單機的遊戲,最近正在學習其他的語言,豐富自己,程式本身不是很難,他最開...

作業 黃金點遊戲

專案內容 這個作業屬於的課程 人工智慧實戰2019 北京航空航天大學 這個作業的要求 點遊戲的分析和實驗 我在這個課程的目標是 學習演算法,積累專案經驗,鍛鍊coding能力 這個作業在哪個具體方面幫助我實現目標 思考ai思路模式 作業正文 見下文其他參考文獻 無作業描述 分析 點遊戲 0 100 ...