亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

在線捉鬼游戲開發之二-設計業務對象與對象職責劃分(1)

2019-11-14 15:53:11
字體:
來源:轉載
供稿:網友

終于到了分析+代碼的時候了,我想這樣,此篇第一部分先上我之前做了一半的版本(做到投票環節,后因學期末考試就擱置了),通過之前的版本來增強大家對游戲從上一篇那一大堆規則到實現代碼的過渡。第二部分再討論第一部分不足的地方,以及初步考慮的解決辦法。

 

上圖是整個項目的資源管理器截圖,MVC,共三個頁面:Home/Index,Home/Login,Play/Index。以及兩個Controller,七個Model。

0. Views

先來看個界面吧

Home/Index

無論是旁觀還是玩家,都要寫個昵稱才能進入,當時考慮到在微信界面打開會可能退出頁面去朋友圈刷一下在回到頁面來繼續游戲的情況(也就是關掉瀏覽器再回來),就用了session來處理這個問題,但偶爾會出現的Session失效問題我還是沒徹底搞定,計劃在新版本中KO掉這個問題。

Home/Login

相當于已經進入了QQ房間的某個桌子,大家也許已經注意到了四點:

(1)項目叫CatGhost(哈哈~)Catch+ghost=Catghost

(2)頁面有相同之處,就是Views/Shared的功勞

    <a href="/">首頁</a>    <a href="@Url.Action("Restart", "Home")" onclick="return confirm('確定要結束本局,并重新開始?')">重開一局</a>    <a href="@Url.Action("Signout", "Home")">完全退出</a>    <div>        @RenderBody()        <hr />        <footer>            <p>&copy; @DateTime.Now.Year - Zapup</p>        </footer>    </div>
Views/Shared/_Layout.cshtml

 (3)輸入昵稱進入后,直接進入了桌子,而不是房間。沒錯,為了不作死,偷懶作了只有一個桌子的房間,故只能有一桌人玩這個游戲~

(4)為了便于測試,報名上限是3人。測試時,因Session關系,再啟動一個新實例也是同一個張三,所以我用了其他瀏覽器(當時湊齊6個瀏覽器測試的感覺也是心好累,故可先設3個人玩的,以測試好人、白癡、鬼所看到的界面)。

人數設定在Web.config,并在Models/Setting中調用

PRivate Setting(){            this._civilianCount = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["CivilianCount"]);            this._ghostCount = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["GhostCount"]);            this._idioCount = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["IdioCount"]);}
Setting

 

當有人(六爺)進入房間并作出要報名參加還是旁觀的選擇后,張三的頁面會變化(定時刷新)

PS:因考慮到流量問題,移動端要搞jq刷新,那絕壁弄死人了,所以我用了HTML5的服務器發送事件(W3SCHOOL的地址),每秒按1k算(1分鐘就得60k),一局游戲一小時,就得60k*60=3600k=3.5M(感覺5M之內都還可以,但肯定還有極大的優化空間)

計算流量

等待游戲開始

此處兩點:

(1)要發言會提示“請等待游戲開始”

(2)可以看到玩家的之間的箭頭,表示了發言順序,也就是座位(因為在網絡中你坐哪都一樣,反正是隨機分配角色的)。是不是想起來德州撲克的圓桌?可以坐在想做的人旁邊的那種。好吧~我承認我又偷懶沒想做得那么專業[委屈]

唐五進入

當唐五點下“報名”鍵以后,出現下面界面:

游戲開始

其中做的操作有:從題庫取詞(先寫死在程序里)、隨機分配角色(這是真隨機,后續分析各Model就知道了),并開始過了不是鬼的人,因為已經到了鬼可以討論并制定誰開始發言的環節(看到鬼的界面中有三個人名的按鈕沒?),此時非鬼想發言,會被系統阻止。

鬼討論環節

當所有的鬼都指定了同一個發言人時,出現了下面界面:

開始發言

此時,非六爺發言,會被系統阻止(阻止的截圖比較沒意義就不上了)。

第一輪結束,第二輪開始

是不是發現張三(鬼)根據六爺和唐五的話開始渾水摸魚了?好的,第二輪像第一輪一樣發言(因為我手慢,截圖晚了點):

開始投票

大家有注意到了兩點吧:

(1)沒錯,之前的聊天記錄消失了(因為我手慢沒截圖到第二輪的,第二輪是六爺開始懷疑張三,唐五不確定,張三繼續狡辯),為什么記錄消失了,這也是為了考記憶力,不讓你去回翻誰說過了什么、誰懷疑過誰、誰投過誰。

(2)投票怎么沒有棄權?是的,的確應該有棄權票,都說了我只做到投票嘛~~還沒做完就要復習考試了嘛~~~

所以到此為止,截圖完畢,大體意思就是這個feel,要考慮的細節還有好多。下面是看業務邏輯部分的考慮:

(下面的部分今天有些事兒就更新不完了,爭取近兩天搞定!先上個提綱)

1. Models

 

2. Common:

WebCommon負責獲取各種Session

public static class WebCommon    {        public static Audience GetAudienceFromSession()        {            return HttpContext.Current.Session["player"] as Audience;        }        public static Civilian GetCivilianFromSession()        {            return HttpContext.Current.Session["player"] as Civilian;        }        public static Ghost GetGhostFromSession()        {            return HttpContext.Current.Session["player"] as Ghost;        }        public static void RenewPlayerSession(Audience newAudience)        {            HttpContext.Current.Session["player"] = newAudience;        }        public static void AddPlayerSession(Audience audience)        {            HttpContext.Current.Session.Add("player", audience);        }        public static void RemovePlayerSession()        {            HttpContext.Current.Session.Remove("player");        }    }
WebCommon

 AudienceFilterAttribute負責在過濾聽眾,即區分玩家與旁觀者的操作和界面

public class AudienceFilterAttribute : ActionFilterAttribute    {        public override void OnActionExecuting(ActionExecutingContext filterContext)        {            HttpContextBase context = filterContext.HttpContext;            if (context.Session["player"] == null)            {                context.Response.Redirect("/");                return;            }            base.OnActionExecuting(filterContext);        }    }
AudienceFilterAttribute

 過濾在Controller中調用

[AudienceFilter]public class PlayController : Controller{}public class HomeController : Controller{[HttpPost]        [AudienceFilter]        public ActionResult Logout(){//...} [AudienceFilter]        public ActionResult Signout(){//...} [AudienceFilter]        public ActionResult Restart(){//...}}
[AudienceFilter]

 3. Controller

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人在线免费| 国产精品美女免费看| 亚洲精品国产综合久久| 91亚洲人电影| 久久精品视频在线观看| 国产日韩在线视频| 欧美激情亚洲综合一区| 久久精彩免费视频| 国产精品成人aaaaa网站| 亚洲国产精品成人一区二区| 亚洲情综合五月天| 亚洲一区二区三区乱码aⅴ蜜桃女| 高潮白浆女日韩av免费看| 97国产在线观看| 日韩欧美国产成人| 精品日本美女福利在线观看| 国产一区香蕉久久| 色偷偷偷亚洲综合网另类| 精品久久久999| 国产一区二区在线播放| 久久国产精彩视频| 菠萝蜜影院一区二区免费| 欧美性极品xxxx做受| 日韩极品精品视频免费观看| 成人在线中文字幕| 亚洲性xxxx| 欧美日韩午夜剧场| 啪一啪鲁一鲁2019在线视频| 91av在线精品| 波霸ol色综合久久| 96精品久久久久中文字幕| 国产成人精品网站| 8x海外华人永久免费日韩内陆视频| 亚洲欧美999| 久久99热精品| 亚洲国产日韩欧美在线99| 亚洲国产精品va在线观看黑人| 宅男66日本亚洲欧美视频| 国产成人精品在线视频| 夜夜嗨av色综合久久久综合网| 欧美日韩国产麻豆| 亚洲欧洲av一区二区| 亚洲无线码在线一区观看| 日韩欧美在线字幕| 美日韩精品免费观看视频| 日韩中文字幕视频| 久久在线精品视频| 欧美一级免费视频| 久久精品男人天堂| 日韩av高清不卡| 伊人久久久久久久久久久| 成人黄色免费在线观看| 伦理中文字幕亚洲| 国产日韩专区在线| 国产色综合天天综合网| 中文字幕精品影院| 国产欧美va欧美va香蕉在线| 国产成人在线播放| 这里只有精品在线观看| 欧美亚洲第一页| 另类图片亚洲另类| 欧美激情一区二区三区高清视频| 国产欧美日韩中文字幕| 精品国产一区二区三区久久久| 色综合伊人色综合网站| 亚洲成人av片在线观看| 欧美中文在线字幕| 国产精品高精视频免费| 精品日韩美女的视频高清| 国产欧美在线看| 国产精品久久久久9999| 成人在线小视频| 在线观看成人黄色| 日本亚洲欧洲色| 97涩涩爰在线观看亚洲| 成人在线中文字幕| 欧美乱大交做爰xxxⅹ性3| 日产精品99久久久久久| 国产精品网红直播| 国产一区二区三区丝袜| 国产精品高清在线观看| 欧美一区二区.| 日韩美女视频中文字幕| 欧美性色视频在线| 亚洲精品久久久久久久久久久| 久久亚洲私人国产精品va| 91热精品视频| 97在线视频一区| 欧美极品少妇xxxxⅹ裸体艺术| 欧美精品国产精品日韩精品| 日韩av影院在线观看| 亚洲天堂av在线播放| 亚洲欧洲国产伦综合| 欧美在线性爱视频| 国产国语videosex另类| 国产精品美女主播| 欧美大成色www永久网站婷| 日韩在线国产精品| 理论片在线不卡免费观看| 精品国产一区二区三区久久| 中文字幕亚洲欧美日韩高清| 国产精品美女久久久久久免费| 97婷婷大伊香蕉精品视频| 日本精品中文字幕| 亚洲人成网站免费播放| 91高清视频在线免费观看| 精品中文字幕久久久久久| 欧美色另类天堂2015| 国产精品视频网址| 欧美激情亚洲一区| 国产精品久久一区主播| 亚洲自拍中文字幕| 亚洲欧美日韩一区二区三区在线| 日韩欧美在线视频观看| 亚洲毛片在线免费观看| 久久精品美女视频网站| 亚洲国产成人爱av在线播放| 日韩精品中文字幕在线播放| 欧美精品一区二区免费| 欧美性色视频在线| 色偷偷91综合久久噜噜| 色综合亚洲精品激情狠狠| 日韩欧美亚洲综合| 国产在线视频一区| 麻豆一区二区在线观看| 久久成人精品一区二区三区| 欧美性在线视频| 综合网日日天干夜夜久久| 一区二区在线视频播放| 国产区精品在线观看| 成人久久久久久| 成人免费网站在线| 久久久精品久久久久| 久久久久九九九九| 久久久精品电影| 91免费看片在线| 久久夜色精品国产亚洲aⅴ| 国产精品女主播| www.亚洲一区| 欧美理论片在线观看| 成人欧美一区二区三区在线| 久久影视电视剧免费网站| 国产成人一区二区| 免费97视频在线精品国自产拍| 日韩精品在线视频美女| 亚洲第一网中文字幕| 亚洲综合视频1区| 这里精品视频免费| 亚洲欧美精品中文字幕在线| 性欧美xxxx| 欧美成人精品一区| 国产香蕉一区二区三区在线视频| 国产精品久久久久久久久| 成人精品一区二区三区| 国产精品久久久久av免费| 高清一区二区三区日本久| 最近中文字幕日韩精品| 亚洲免费电影在线观看| 欧美日韩国产二区| 久久国产加勒比精品无码| 不卡av电影院| 91av在线不卡| 91网站在线看| 成人久久一区二区|