【c#】24點遊戲的實現(可存檔且區域網路互聯)

來源:互聯網
上載者:User

          

(更新,附上此款遊戲的原始碼供大家學習吧!http://download.csdn.net/detail/gshengod/5774531)

      lz辛苦考上了北郵的研究生,剛進入實驗室,就接到了一個棘手的任務,被要求編寫一個24點遊戲,而且要可存檔可區域網路互聯。對於我這個剛剛開始學習編程的菜鳥是個不小的挑戰。好了,現在進入正題,大牛們可無視,小菜鳥們可以看過來,我將分享我的學習曆程。

         首先是用vs2008進行介面方面的設計,建立form類的視窗,把工具箱開啟,這樣就可以實現向裡拖拉一些按鈕。然後可以自己搞一些圖片加到背景image中,這樣可以讓程式看起來更好看。如。

接下來是比較複雜的代碼部分了。

         先講level1,是實現機器自動計算實現24點的運算。用random函數,可以實現出現四個隨機數,我們要做的就是將它們加上括弧或是加減乘除的按鈕,讓他們結果為24。這個主要是用的遍曆的思想,因為我們可以將式子分為兩種,一種是((a*b)+c+d)但括弧形式。一種是兩括弧形式,(a+b)*(c-d)形式。

具體計算方法詳見代碼中的Randomnew.cs類。levle1


         level2是要求我們在得知四個數位情況下,輸入運算式,看是否為24.這個因為電腦讀不動string中的符號,所以要用正則方法將數字與算數符分離,因為括弧乘除加減等的優先順序不同,所以要分別將其按不同的優先順序入棧,在計算。具體可見My Code中的類Algorithm.cs,這部分也可到這裡下載看下http://download.csdn.net/detail/gshengod/5738011。至於存檔讀檔,要用的資料流的知識

FileStreamfs=newFileStream("D:\\workplace\\save.txt",FileMode.Create,FileAccess.Write);
StreamWriter sw = new StreamWriter(fs,System.Text.Encoding.GetEncoding("GB2312")); 。還有就是timer控制項,對於倒計時方面主要代碼

int time = int.Parse(arr[1]);
            lefttime = time;
            this.timer1.Start();

this.label7.Text = "剩餘時間" + lefttime.ToString() ;
            lefttime--;
            if (lefttime == 0)
            {
                Randomnew b1 = new Randomnew();
                string answer = b1.compute(label2.Text, label3.Text, label4.Text, label5.Text);
                MessageBox.Show("time out,正確答案是" + answer);

level2圖片如下:


             level3則是關於區域網路互聯的知識,主要是socket編程方面的應用,可以下載這個作為參考,這個代碼寫的很好http://download.csdn.net/detail/gshengod/5738067。

嗯,就是這些吧,我還在改一些小bug,過兩天會吧代碼完整版發上來分享。



ps:大家有什麼問題可以留言一起討論哈!!!






聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.