一直等着没下手pythonJava 杂谈

编程就是和心爱的人表白

2016-12-05  本文已影响2380人  AI信仰者

码农的世界里,表白很简单的,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开发项目,不仅增长了自己的创新意识,还提供了一个坚持下去的动力。

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

上一篇下一篇

猜你喜欢

热点阅读