编程就是和心爱的人表白

作者: AI信仰者 | 来源:发表于2016-12-05 13:23 被阅读2380次

    码农的世界里,表白很简单的,1分钟敲下一个代码,之后直接交给暗恋对象,让她去运行不就可以啦!

    那么编程不就自然变成了和心爱的人表白的事么?

    程序员也可以很浪漫,写写浪漫的网页给女朋友,我们看看这位码神写的东西:

    程序员表白程序

    1、各种编程语言实现表白

    在JAVA代码中,我可以轻松实现表白的功能。

    import java.awt.*;

    import javax.swing.JFrame;

    public class Cardioid extends JFrame {

    private static final int WIDTH = 480;

    private static final int HEIGHT = 600; // 获取屏幕大小

    private static int WINDOW_WIDTH = Toolkit.getDefaultToolkit()

    .getScreenSize().width;

    private static int WINDOW_HEIGHT = Toolkit.getDefaultToolkit()

    .getScreenSize().height;

    public Cardioid() {

    super("❤  I love you");  // 设置窗口标题

    this.setBackground(Color.BLACK);  // 设置背景色

    this.setLocation((WINDOW_WIDTH - WIDTH) / 2,

    (WINDOW_HEIGHT - HEIGHT) / 2);// 设置窗口位置

    this.setSize(WIDTH, HEIGHT); // 设置窗口大小

    this.setLayout(getLayout());  // 设置窗口布局

    this.setVisible(true);// 设置窗口可见

    this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);  // 设置窗口默认关闭方式

    }

    public void paint(Graphics g) {

    double x, y, r; // 横纵坐标及半径

    Image image = this.createImage(WIDTH, HEIGHT);

    Graphics pic = image.getGraphics();

    // 绘制图形

    for (int i = -2; i < 90; i++) {

    for (int j =-2; j <90; j++) {

    r = Math.PI / 45 + Math.PI / 45 * i

    * (1 - Math.sin(Math.PI / 45 * j)) * 18;

    x = r * Math.cos(Math.PI / 45 * j) * Math.sin(Math.PI / 45 * i)

    + WIDTH / 2;

    y = -r * Math.sin(Math.PI / 45 * j) + HEIGHT /3;

    pic.setColor(Color.MAGENTA);

    pic.fillOval((int) x, (int) y, 2, 2);

    }

    g.drawImage(image, 0, 0, this);    // 生成图片

    }

    }  public static void main(String[] args) {

    new Cardioid();

    }  }


    上面的代码主要用到GUI的知识,主要是灵活运用Jframe类。

    来看看它的运行结果

    C语言用printf来实现爱心

    创建一个心形图案需要的最长字符串,充分利用 printf 函数输出字符串的丰富控制功能,按心形图案每行所需长度和位置,对所创建的字符串进行截断并在所需位置上输出,最后在屏幕上形成由字符组成的心形图案。

    #include "stdafx.h"

    #include "stdio.h"

    int main(void){

    char a[]="I love you I love you I love you I l";

    printf("\n\n\n");

    printf("%*.*s\n",58,21,"_*=_           _=*_");

    printf("%*.*s\n",61,25,"I love yo       u I love!");

    printf("%*.*s\n",63,29,"I love you I love you I love");

    printf("%*.*s\n",65,33,a);//在屏幕第65个字符处开始输出字符串a的前33个字符,其他各句意义相同

    printf("%*.*s\n",66,35,a);

    printf("%*.*s\n",66,35,a);

    printf("%*.*s\n",65,33,a);

    printf("%*.*s\n",64,31,a);

    printf("%*.*s\n",63,29,a);

    printf("%*.*s\n",61,25,a);

    printf("%*.*s\n",59,21,a);

    printf("%*.*s\n",57,17,a);

    printf("%*.*s\n",55,13,a);

    printf("%*.*s\n",53,9,a);

    printf("%*.*s\n",51,5,a);

    printf("%*.*s\n",50,3,a);

    printf("%*.*s\n",49,1,a);

    return 0;   }    // 来自百度知道

    百度文库中用for循环实现爱心:

    #include "stdafx.h"

    #include "stdio.h"

    int main() {

    float x,y,z,f;

    for(y=1.5f; y>-1.5f; y-=0.1f )  {  //外层循环控制行的打印

    for(x=-1.5f ;x<1.5f;  x+=0.05f )   {  // 内层循环控制列的打印

    z=x*x+y*y-1;

    f=z*z*z-x*x*y*y*y;

    putchar(f<=0.0f?".:-=*#%@"[(int)(f*-8.0f)]:' ');   }  // 按照条件答应相应的符号

    putchar('\n');  }

    getchar();  return 0; }

    它的运行结果挺好看,有兴趣的朋友可以去知乎或CSDN博客寻找更好看的。

    HTML+css来实现爱心网站。

    这是网站的实现:

    HTML代码:

    12行-32行 33行-48行 50行-64行 66行-75行

    CSS代码:

    body,div,dl,dt,dd,ul,li,h1,h2 ,

    input,textarea,p,th,td {

    padding: 0;

    margin: 0;}

    table {

    border-collapse: collapse;

    border-spacing: 0;}

    fieldset,img {

    border: 0;}

    address,caption,cite,code,dfn,em,strong,th,var {

    font-weight: normal;

    font-style: normal;  }

    caption,th {

    text-align: left;}

    h1,h2 {

    font-weight: normal;

    font-size: 100%;}

    .w{

    width: 1210px;

    margin:0 auto;

    box-sizing: border-box;/*设置固定宽度*/

    }

    .fl{float: left;}

    .fr{float: right;}

    .img_wrap_container{

    width: 230px;

    height: 135px;

    overflow: hidden;

    float: left;

    margin-bottom: 10px;}

    #logo{

    float: left;

    display: block;

    position: relative;

    z-index: 9;

    margin: 33px 20px;  }

    #xiangguan{

    font-size: 23px;

    font-weight: bold;  }

    #wenzi{

    float:right;

    font-size: 30px;

    color: #FF3399;

    margin-left: 89px;

    margin-top: 20px;

    margin-bottom: 20px;  }

    #search_btn{

    position: absolute;

    float: left;

    width: 100px;

    height: 40px;

    border: none;

    border: 0;

    background: #FF3399;

    cursor: pointer;

    color: #fff;

    font-size: 14px;

    margin-top: 45px;}

    #search_text{

    float: left;

    width: 393px;

    height: 38px;

    border: 1px solid #FF3399;

    background: #fff;

    line-height: 38px;

    overflow: hidden;

    padding: 0 10px;

    outline: none;

    margin-top: 45px;

    margin-left: 39px;}

    #leibie{

    color: #FF3399;

    float: right;}

    #img_container{

    background: #33ffdd;

    width: 920px;

    height: 290px;

    padding: 5px 0 0 5px;

    margin-top: 30px;}

    body{background:#DDDDDD;}

    需要代码文件的朋友可以私信给我!

    2、各种编程语言来写游戏

    编程也可以说是一种简单的游戏方式,把代码写出来并可以运行出来就像是刷怪升级一样,获得了编程的经验,养成了良好的编程思维。

    进而从码农一步步升级为码圣,最终达到码神境界!

    c语言的游戏有很多

    猜拳游戏:

    #include "stdio.h"

    int main()

    {char gamer;  // 玩家出拳

    int computer;  // 电脑出拳

    int result;  // 比赛结果

    while (1){// 为了避免玩一次游戏就退出程序,可以将代码放在循环中

    printf("这是一个猜拳的小游戏,请输入你要出的拳头(不区分大小写):\n");

    printf("A:剪刀\n B:石头\n C:布\n D:不玩了\n");

    scanf("%c%*c",&gamer);

    switch (gamer){

    case 65:  //A

    case 97:  //a

    gamer=4;   break;

    case 66:  //B

    case 98:  //b

    gamer=7;   break;

    case 67:  //C

    case 99:  //c

    gamer=10;   break;

    case 68:  //D

    case 100:  //d

    return 0;    default:

    printf("你的选择为 %c 选择错误,退出...\n",gamer);

    getchar();

    system("cls"); // 清屏

    return 0;   break;  }

    srand((unsigned)time(NULL));  // 随机数种子

    computer=rand()%3;  // 产生随机数并取余,得到电脑出拳

    //最后通过玩家和电脑出拳的和来判断输赢

    result=(int)gamer+computer;  // gamer 为 char 类型,数学运算时要强制转换类型

    printf("电脑出了");

    switch (computer){

    case 0:printf("剪刀\n");break; //4    1

    case 1:printf("石头\n");break; //7  2

    case 2:printf("布\n");break;  //10 3

    }

    printf("你出了");

    switch (gamer){

    case 4: printf("剪刀\n");break;

    case 7: printf("石头\n");break;

    case 10: printf("布\n");break;}

    if (result==6||result==7||result==11) printf("你赢了!");

    else if (result==5||result==9||result==10) printf("电脑赢了!");

    else printf("平手");

    system("pause>nul && cls");  // 暂停并清屏

    }return 0;}

    总结和分析该代码:

    1) 首先,我们需要定义3个变量来储存玩家出的拳头(gamer)、电脑出的拳头(computer)和最后的结果(result),然后给出文字提示,让玩家出拳。

    注意:由于每次输入以回车结束,缓冲区中除了玩家输入的字母,还有回车符。回车符要跳过,以免影响下次输入。Scanf() 函数的格式控制字符串个数可以多于参数个数,scanf("%c%*c",&gamer);的作用是从缓冲区多输出一个字符(回车符),却不赋给任何变量。

    玩家输入结束,使用 switch 语句判断输入内容,65(A)、97(a)、66(B)、98(b)、67(C)、99(c)、68(D)、100(d)为相应字符的ASCII码。

    注意:system("cls"); 语句的作用是清屏。System() 函数用来执行 dos 命令,这里相当于在 dos 里输入 cls 命令。

    2) 玩家出拳结束,电脑开始出拳。

    电脑通过产生随机数来出拳:

    srand((unsigned)time(NULL));  //为了避免多次运行结果相同,故在前面加入上(需要time.h)

    computer=rand()%3;  //获取0~2的随机数

    JAVA开发的台球游戏:


    package Plant;

    import java.awt.*;

    public class taiqiu extends MyFrame {   //我在父类中写了画窗口和窗口监听器 

    Image img= MyFrame.getImage("image/MsgBox_info.jpg");  

    Image question= MyFrame.getImage("image/Box_question.jpg");  //以两个小圆形图片作台球

    int x=100,y=100;

    int m=800,n=100;  // 声明台球的初始位置

    private double degree=Math.PI/4;

    private double degree2=11*Math.PI/4;

    private double speed=16;

    @Override

    public void paint(Graphics g) {   //在窗口中画组件

    g.drawImage(img, x, y, null);

    g.drawImage(question, m,n, null);

    Color c = g.getColor();

    g.setColor(Color.red);

    g.fillOval(15, 40,30,30); g.fillOval(500,40,30,30); g.fillOval(970,40,30,30);

    g.fillOval(15,465,30,30);g.fillOval(500, 465,30,30);g.fillOval(965,460,30,30);  //画进球框

    g.setColor(c);

    if(speed>0){  //模拟控制台球速度的减小

    speed-=0.05;

    }else

    {speed=0.0;}

    x+=speed*Math.cos(degree);

    y+=speed*Math.sin(degree);// 控制台球的移动

    m+=speed*Math.cos(degree2);

    n+=speed*Math.sin(degree2);

    if(y>460||y<40){  //碰到了边呈相应的角度反弹

    degree=-degree;}

    if(x<10||x>960){

    degree=Math.PI-degree;

    }

    if(n>460||n<40){

    degree2=-degree2;

    }

    if(m<10||m>960){

    degree2=Math.PI-degree2;

    }}

    public static  void main(String[] args) {

    taiqiu w=new taiqiu();

    w.launchFrame();   //在父类中实现了设置窗口和启动线程

    }

    由于篇幅有限,父类Myframe并没有上传,需要的可以私信!

    Android开发的猜拳游戏:


    XML代码实现的界面:(需要代码的可以在评论区加我QQ


    Caiquan.java     //Next.java 在这里就不一一列举了,不然就是一堆代码

    import android.*;   //都是自动导的包,在这里我就省略了。

    public class Caiquan extends Activity {

    private RadioGroup radioGroup1,radioGroup;

    private RadioButton shitouButton1,buButton1,jiandaoButton1;

    private RadioButton jiandaoButton,buButton,shitouButton;

    private Button button1,button2;

    private TextView textview1,textview;

    private ImageView imageview;

    private ImageView imageview1;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_caiquan);

    textview1=(TextView)findViewById(R.id.textView1);

    textview=(TextView)findViewById(R.id.game);

    button1 = (Button) findViewById(R.id.button1);

    button2 = (Button) findViewById(R.id.button2);

    button1.setOnClickListener(new ButtonListener());

    button2.setOnClickListener(new ButtonListener());

    radioGroup=(RadioGroup)findViewById(R.id.radioGroupId);

    radioGroup1=(RadioGroup)findViewById(R.id.radioGroupId1);

    shitouButton1=(RadioButton)findViewById(R.id.radioButton1);

    buButton1=(RadioButton)findViewById(R.id.radioButton3);

    jiandaoButton1=(RadioButton)findViewById(R.id.radioButton5);

    jiandaoButton=(RadioButton)findViewById(R.id.radioButton2);

    shitouButton=(RadioButton)findViewById(R.id.radioButton4);

    buButton=(RadioButton)findViewById(R.id.radioButton6);

    RadioButtonListener Radiolistener = new RadioButtonListener();

    shitouButton1.setOnCheckedChangeListener(Radiolistener);

    buButton1.setOnCheckedChangeListener(Radiolistener);

    jiandaoButton1.setOnCheckedChangeListener(Radiolistener);

    jiandaoButton.setOnCheckedChangeListener(Radiolistener);

    shitouButton.setOnCheckedChangeListener(Radiolistener);

    buButton.setOnCheckedChangeListener(Radiolistener);

    imageview1 = (ImageView) findViewById(R.id.imageView1);

    imageview = (ImageView) findViewById(R.id.imageView2);  

    }  //在这里也可以为findViewById 方法和绑定监听器 设置两个方法

    class ButtonListener implements OnClickListener{

    private String win;

    @Override

    public void onClick(View v) {

    RadioButton radioButtonleft = (RadioButton) findViewById(radioGroup1

    .getCheckedRadioButtonId());

    String radioTextleft = radioButtonleft.getText().toString();

    RadioButton radioButtonright = (RadioButton) findViewById(radioGroup

    .getCheckedRadioButtonId());

    String radioTextright = radioButtonright.getText().toString();

    Intent intent= new Intent();

    intent.setClass(Caiquan.this, Next.class);

    intent.putExtra("checked", radioTextleft);

    intent.putExtra("checked", radioTextright);

    intent.putExtra("com.Jackson.game_intent.jieguo", win);

    startActivity(intent);   }

    }// 用radioText记录被选中的单选按钮的值,传达到下一个  Activity

    public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.

    getMenuInflater().inflate(R.menu.caiquany, menu);

    return true;

    }

    public boolean onOptionsItemSelected(MenuItem item) {

    // Handle action bar item clicks here. The action bar will

    // automatically handle clicks on the Home/Up button, so long

    // as you specify a parent activity in AndroidManifest.xml.

    int id = item.getItemId();

    if (id == R.id.action_settings) {

    return true;

    }

    return false;

    }}


    3、如何成为一步步升级为码神?


    1、打好基础,多敲代码

    首先把基础知识巩固好,多看看网上的视屏,专业书籍,也可以看看码神的博客。

    一个优秀的程序员敲了10万行代码,你必须先敲2万行代码。


    2、提高编码的效率。

    敲代码时不要听歌,敲代码是需要大脑认真思考的事情,听歌绝对会分心,因为你会跟着它唱。

    敲代码时不要打开其他页面,敲到一半时你就会点开其他页面,那你的逻辑思维就会被打乱。

    敲代码时不要玩手机,玩手机绝对会使你分心,无法专注于电脑屏幕。


    3、拉起自己对编程的兴趣,写自己想写的代码。

    一旦打好了基础,你就可以开始写自己想写的程序了,你对哪方面感兴趣,你就可以写相应的程序,那样的快感是很爽的。

    我喜欢打桌球,我就用自己喜欢的语言去把桌球小游戏去开发出来。

    你喜欢玩贪吃蛇大作战,你也可以试着自己先去写一个贪吃蛇小游戏。

    你喜欢社交,那么就可以写一个通讯小程序。

    4、享受编程的成就感(运行,炫耀,分享,装逼)

    我是个很自恋的人,一旦有一些小成就我就会炫耀。

    比如写完台球小游戏时我就会分享到班群里,让他们打开eclipse去运行,然后开始打台球,那是多么有趣的事情啊。虽然他们说我装逼,但那又算什么,老子有的是实力。

    如果你写出了一些小程序,建议你给同行的朋友试试水,一方面可以满足自己的成就感,另一方面朋友会给你提出建设性意见,接着你去认真修改,进而达到更好的效果。


    5、多做一些项目,只要自己喜欢,多多合作。

    我会多交一些有想法的朋友,一起发现生活中的问题,进而想办法去解决,然后做成一个项目。

    有时会是网站项目,有时会是APP开发项目,不仅增长了自己的创新意识,还提供了一个坚持下去的动力。

    当我们团队把项目完成后,必定会有相应的奖励,很大的成就感,学以致用,这是一个很好的实践方法。

    相关文章

      网友评论

        本文标题:编程就是和心爱的人表白

        本文链接:https://www.haomeiwen.com/subject/kcbppttx.html