只是一個關於表白的小程序而已,如果你不知道怎么拒絕我,那就來掐死我吧。


                                                        只是一個關於表白的小程序而已,如果你不知道怎么拒絕我,那就來掐死我吧。

                                                     

    背景:

       小M同學喜歡小X同學,並且小M同學跟你們一樣是枚程序猿。小M同學決定向小X同學表白。但是小M同學他是個程序猿啊,所以他害羞靦腆,不好意思直接說,於是他決定寫了小程序向小X同學表白。於是發生了如下的事情。

 

                                                     時間:某年某月20日    人物:小M和小X    地點:說多是淚

     (通話中)

    小M:X嗎?我是小M

    小X:是啊,怎么了?

    小M:是這樣的,我最近寫了個小程序,不知道你有沒有時間幫我測一下啊?

    小X:時間倒是有的,不過,那是個關於什么的程序啊?容不容易啊?

    小M:這個蠻容易的,就是關於一個類似於問卷調查的一個問題,里面有三個選項,其中有兩個比較容易選擇,一個比較難選擇,但是都是能選擇到的。你選擇一下,告訴我結果就好了。

    小X:就是你發給我一個東西,然后這個東西上會有一個問題,還有三個選項,我回答一下,告訴你結果就可以了,對不對?

    小M:嗯,對的,對的。就是這么個意思。

    小X:這個簡單,那是單選還是多選啊?

    小M:這個嘛,算是個單選題吧。還有哦,這個是我一直想問你的問題,你好好回答一下的哦。

    小X:放心吧,既然是你一直想問我的問題,我肯定會好好回答的。

    小M:那你要答應,就是你一定要選擇一個,不可以不選擇哦。如果不選擇的話就算你選擇了兩個容易選擇中的其中一個好吧。

    小X:還要這樣啊。嗯,好吧,看在你為我買過良品的面子是就答應你了。

 

 

 

    不是很明白,小M到底是想做什么。

 

 

 

      小背景

    小M在家寫代碼。跟小M同是同學且合租在一起的小C也在。小M已經寫完了,准備讓小C一起測一起,找點問題什么的。

 

 

                                  時間:當天晚上        人物:小M和小C             地點:S市小M和小C合租的房子 

     小M:C,你過來幫我看一下,這是我寫給小X的一個小程序,你看下覺得怎么樣。哪些地方要調調的。

     小C:(一口東北口音)你寫的是什么小程序啊?

     小M:就是一個窗體,特別簡單的。有三個按鈕,兩個一下子就能點,一個比較難點而已。點了之后就彈出不同的話。大概就是這樣子。

     小C看了一下原來窗體是這個樣子的:

 

 

     小C:看圖的話,把“沒問題”和“可以”整得這么大。你倒是很想讓別人選擇點“沒問題”和“可以”,不想讓人選擇“讓我好好想想”。

     小M:這個是自然的,我可不想被人拒絕。想被人應允。

     小C:被應允和拒絕什么呀?

     小M:你看代碼就知道了。

     小M點了下窗體,進入到了代碼頁面。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Windows.Forms;
 9 
10 namespace watch_white
11 {
12     public partial class Form1 : Form
13     {
14         public Form1()
15         {
16             InitializeComponent();
17         }
18 
19         private void Form1_Load(object sender, EventArgs e)
20         {
21             this.Text = "小X同學,當我女朋友是可以還是沒問題?";
22         }
23 
24         private void button1_Click(object sender, EventArgs e)
25         {
26            MessageBox.Show("來,讓小杜同學抱一個!");
27             //this.Close();
28         
29         }
30 
31         private void button2_Click(object sender, EventArgs e)
32         {
33             
34             MessageBox.Show("來,讓小杜同學親一個!");
35             //this.Close();
36         }
37 
38         private void button3_MouseEnter(object sender, EventArgs e)
39         {
40             int maxHeight = this.ClientSize.Height - this.button3.Height;
41             int maxWidth = this.ClientSize.Width - this.button3.Width;
42             Random r = new Random();
43             int x = r.Next(0, maxWidth);
44             int y = r.Next(0, maxHeight);
45             button3.Location=new Point(x,y);
46         }
47 
48         private void button3_Click(object sender, EventArgs e)
49         {
50             MessageBox.Show("我聽你的便是了。");
51            // this.Close();
52         }   
53 
54     }
55 }
非常簡單的最開始的代碼

     小C:原來你是要跟人表白啊?

     小M:是啊,喜歡蠻久的,可不想被她的學長學弟搶走。

     小C:不錯不錯,邁出勇敢的一步了。

     小M:我努力就是,你先看看哪需要改的。

     小C:嗯,(看了會),還真是一個簡單的小程序。我發現了一個,一個可優化也可不優化的的地方。

     小M:哪里?

    小C:你想的是當你鼠標進入到“讓我好好想想”的那個按鈕的時候,按鈕會隨機到一新的在這個窗體里的一個位置上去,是這樣嗎?

    小M:(小M看了一下)是啊,是這么想的。這樣才不會那么容易被拒絕嘛。

    小C:但是你看看你這代碼。可不是這個意思哦。

    小M:這沒錯啊,我試過了,這個是可以正常運行的啊。

    小C:不,你再仔細看一下。產生110的隨機是怎么寫?

    小M:噢,我明白了,就是我在隨機產生X坐標和Y坐標的時候,應該將得到maxWidthmaxHeight都加1對吧。因為隨機時是不會包含后面的那個數字的。我一會改進一下的。

    小C:對的,就是這個意思。另外忽略命名規范的話,就是你寫了一段沒用的代碼,還是當鼠標點擊“讓我好好想想”的時候。這個根本就不用寫吧。因為根本就點不着的啊。

    小M:這個嘛,我答應了別人,三個都是可以選擇的,只是有難選的和容易選擇的。所以是可以點得到的。

    小C:這不可能吧,怎么才能點到?

    小M:你先想想,我洗個澡先,如果我出來,你還想不出來,我就告訴你答案好了。

(作者注:以上的怎么才能點到的問題,如果園友感覺想不看下面的故事情節而得到答案,那么你可以試着先寫一下,試着找一下,也就幾分鍾的事)。

 

 

 

 

 

     十五分鍾后

    小M:(從衛生間出來,擦着頭發)怎么樣啊,想出來沒有啊?

    小C:你是不是在忽悠我,這個根本就不可能點得點的啊。即使我以非常快的速度進去點,不對不對,還是一進去它就逃跑了,你這程序就是這么寫的。

    小M:要不我告訴你答案好了。

    小C:不要,你究竟是在忽悠我還是在忽悠我(作者注:此處不是病句)?

    小M:我真心沒忽悠你。

    小C:(小眼眯起斜視小M)蒸的?煮的?

    小M:蒸的蒸的,不是煮的,也不是燉的。

    小C:提示1.

    小M:好的,提示1(聲音拉長)我沒將這個窗體的大小設置為不可變的

    小C:(想了一會,一副疑惑表情)這個還是沒什么關系啊,窗體大小和這個按鈕隨機移動沒什么關系啊。

    小M:提示2,看看代碼,this.

    小C:(看着代碼,一副很疑惑表情)當鼠標進入這個按鈕的時候,按鈕就會隨機到當前,當前,當前(試圖能從this當中悟出點什么)窗體里的一個地方,(沉默3S)但是,這又,這又(無比憂傷),這又怎么樣?

    小M:提示3,提示1+揭示=提示3,如果無處可逃

    小C:(再次想了會,然后,操作了幾下就點到了。他就點到了。)你這是幾乎不給人拒絕的機會啊。關於這點你其實可以做得再狠一點,比如將新坐標X設置為一點二或者一點三倍的maxWidth,將坐標Y設置為一點二或者一點三倍的maxHeight,那么別人有可能點着點着就沒了,也有可能會點着,只是點着真心需要些運氣。

    小M:這個倒確實是可以這么做的,嗯,我那會不小心將XY坐標寫反了,跟這個是同一個道理,因為不能保證每次都是正方形,有時候它就會跑到窗體外邊去,得把窗體拉大了才了進入按鈕,不過我感覺還是不用的。倒是比較需要在打開的時候加點背景音樂,換個漂亮背景圖片什么的。

    小C:這倒也是。那你再繼續改改。最好弄一個表達你心聲的音樂和一個漂亮的背景,比如,譬如,說是你們以前的合影神馬的。

    小M:我先改改先。

    

    園友,你應該知道怎么選擇那個“讓我好好想想”的按鈕了吧。如果你還不知道怎么拒絕我,那就來掐死我吧。

 

      小M繼續修改中,換了略漂亮的圖片,把鼠標樣式做了特定的修改。沒有加音樂,因為不會。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Windows.Forms;
 9 
10 namespace watch_white
11 {
12     public partial class Form1 : Form
13     {
14         public Form1()
15         {
16             InitializeComponent();
17         }
18 
19         private void Form1_Load(object sender, EventArgs e)
20         {
21             this.Text = "小X同學,當我女朋友是可以還是沒問題?";
22         }
23 
24         private void button1_Click(object sender, EventArgs e)
25         {
26            MessageBox.Show("來,讓小杜同學抱一個!");
27             //this.Close();
28         
29         }
30 
31         private void button2_Click(object sender, EventArgs e)
32         {
33             this.Cursor = Cursors.Default;
34             MessageBox.Show("來,讓小杜同學親一個!");
35             //this.Close();
36         }
37 
38         private void button3_MouseEnter(object sender, EventArgs e)
39         {
40             this.Cursor = Cursors.WaitCursor;
41             int maxHeight = this.ClientSize.Height - this.button3.Height;
42             int maxWidth = this.ClientSize.Width - this.button3.Width;
43             Random r = new Random();
44             int x = r.Next(0, maxWidth + 1);
45             int y = r.Next(0, maxHeight + 1);
46             button3.Location=new Point(x,y);
47         }
48 
49         private void button3_Click(object sender, EventArgs e)
50         {
51             MessageBox.Show("我聽你的便是了。");
52            // this.Close();
53         }
54 
55         private void button3_MouseLeave(object sender, EventArgs e)
56         {
57             this.Cursor = Cursors.Default;
58         }
59 
60         private void button1_MouseEnter(object sender, EventArgs e)
61         {
62             this.Cursor = Cursors.Hand;
63         }
64 
65         private void button1_MouseLeave(object sender, EventArgs e)
66         {
67             this.Cursor = Cursors.Default;
68         }
69 
70         private void button2_MouseEnter(object sender, EventArgs e)
71         {
72             this.Cursor = Cursors.Hand;
73         }
74 
75         private void button2_MouseLeave(object sender, EventArgs e)
76         {
77             this.Cursor = Cursors.Default;
78         }
79 
80        
81         
82     }
83 }
小M修改后的代碼

 

       因着,此小程序,小X同學答應了已經在苦逼天天敲代碼小M同學,沒有理睬可能是高富帥的學長,后來小M同學來到了小X讀研的城市工作。然后比較快樂的呆在了一起,而后的幾年,他們走上了幸福的紅地毯。且鑒於他們是生活在這個不能生二胎天朝,他們只是相當極其遺憾的生了一個帥氣的男孩或者一個漂亮的女孩。小M呢,也因着想當年在宿舍的時候也有敏洪的精神,諸如自己的水果零售神馬的雖然不是說均而食之,但確實是人人有份等諸事,偶爾也會像永浩一樣比較能說會道一點。所以很榮幸的邀請了幾個好朋友創了點小業,開了個小軟件公司,且算是有點小成就,不至於讓小X沒飯吃。另外大抵是在小M步入中年的時候,公司里來了個實習的漂亮女大學生,她表示喜歡上了小M,不過被小M無情的拒絕了,因為小M是很愛小X的。

 

      END.....

 

       后記:此故事純屬小杜虛構,如有雷同,不勝榮幸!且此程序委實太易,還請諒解,願此文能跟你帶來點那么不一樣的感覺。另外如果您支持和您一樣是程序員的小M和小X在一起的話,請點擊下右小角的“推薦”吧。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM