编程就是和心爱的人表白
码农的世界里,表白很简单的,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开发项目,不仅增长了自己的创新意识,还提供了一个坚持下去的动力。
当我们团队把项目完成后,必定会有相应的奖励,很大的成就感,学以致用,这是一个很好的实践方法。