首页 > 代码库 > 只是一个关于表白的小程序而已,如果你不知道怎么拒绝我,那就来掐死我吧。

只是一个关于表白的小程序而已,如果你不知道怎么拒绝我,那就来掐死我吧。

                                                        只是一个关于表白的小程序而已,如果你不知道怎么拒绝我,那就来掐死我吧。

                                                     

    背景:

       小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在一起的话,请点击下右小角的“推荐”吧。