碼農的世界里唠亚,表白很簡單的链方,1分鐘敲下一個代碼,之后直接交給暗戀對象灶搜,讓她去運行不就可以啦祟蚀!
那么編程不就自然變成了和心愛的人表白的事么?
程序員也可以很浪漫割卖,寫寫浪漫的網頁給女朋友前酿,我們看看這位碼神寫的東西:
再看另外一個大神寫的搞笑的程序
https://baijiahao.baidu.com/s?id=1607861831490061736&wfr=spider&for=pc
1、各種編程語言實現(xiàn)表白
在JAVA代碼中鹏溯,我可以輕松實現(xiàn)表白的功能罢维。
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來實現(xiàn)愛心
創(chuàng)建一個心形圖案需要的最長字符串言津,充分利用 printf 函數(shù)輸出字符串的豐富控制功能,按心形圖案每行所需長度和位置取试,對所創(chuàng)建的字符串進行截斷并在所需位置上輸出悬槽,最后在屏幕上形成由字符組成的心形圖案。
#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循環(huán)實現(xiàn)愛心:
#include "stdafx.h"
#include?"stdio.h"
int main() {
float?x,y,z,f;
for(y=1.5f; y>-1.5f; y-=0.1f )??{ ?//外層循環(huán)控制行的打印
for(x=-1.5f ;x<1.5f; ?x+=0.05f )???{ ?// 內層循環(huán)控制列的打印
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來實現(xiàn)愛心網站。
這是網站的實現(xiàn):
HTML代碼:
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磅叛、各種編程語言來寫游戲
編程也可以說是一種簡單的游戲方式,把代碼寫出來并可以運行出來就像是刷怪升級一樣萨赁,獲得了編程的經驗弊琴,養(yǎng)成了良好的編程思維。
進而從碼農一步步升級為碼圣杖爽,最終達到碼神境界敲董!
c語言的游戲有很多
猜拳游戲:
#include "stdio.h"
int main()
{char gamer;? // 玩家出拳
int computer;? // 電腦出拳
int result;? // 比賽結果
while (1){// 為了避免玩一次游戲就退出程序紫皇,可以將代碼放在循環(huán)中
printf("這是一個猜拳的小游戲,請輸入你要出的拳頭(不區(qū)分大小寫):\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));? // 隨機數(shù)種子
computer=rand()%3;? // 產生隨機數(shù)并取余腋寨,得到電腦出拳
//最后通過玩家和電腦出拳的和來判斷輸贏
result=(int)gamer+computer;? // gamer 為 char 類型聪铺,數(shù)學運算時要強制轉換類型
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)铃剔,然后給出文字提示,讓玩家出拳查刻。
注意:由于每次輸入以回車結束键兜,緩沖區(qū)中除了玩家輸入的字母,還有回車符赖阻〉海回車符要跳過,以免影響下次輸入火欧。Scanf() 函數(shù)的格式控制字符串個數(shù)可以多于參數(shù)個數(shù)棋电,scanf("%c%*c",&gamer);的作用是從緩沖區(qū)多輸出一個字符(回車符),卻不賦給任何變量苇侵。
玩家輸入結束赶盔,使用 switch 語句判斷輸入內容,65(A)榆浓、97(a)于未、66(B)、98(b)陡鹃、67(C)烘浦、99(c)、68(D)萍鲸、100(d)為相應字符的ASCII碼闷叉。
注意:system("cls"); 語句的作用是清屏。System() 函數(shù)用來執(zhí)行 dos 命令脊阴,這里相當于在 dos 里輸入 cls 命令握侧。
2) 玩家出拳結束,電腦開始出拳嘿期。
電腦通過產生隨機數(shù)來出拳:
srand((unsigned)time(NULL));? //為了避免多次運行結果相同品擎,故在前面加入上(需要time.h)
computer=rand()%3;? //獲取0~2的隨機數(shù)
JAVA開發(fā)的臺球游戲:
package Plant;
import java.awt.*;
public class taiqiu extends MyFrame { ? //我在父類中寫了畫窗口和窗口監(jiān)聽器?
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(); ? //在父類中實現(xiàn)了設置窗口和啟動線程
}
由于篇幅有限,父類Myframe并沒有上傳备徐,需要的可以私信萄传!
Android開發(fā)的猜拳游戲:
XML代碼實現(xiàn)的界面:(需要代碼的可以在評論區(qū)加我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 方法和綁定監(jiān)聽器 設置兩個方法
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、打好基礎棠笑,多敲代碼梦碗。
首先把基礎知識鞏固好,多看看網上的視屏蓖救,專業(yè)書籍洪规,也可以看看碼神的博客。
一個優(yōu)秀的程序員敲了10萬行代碼循捺,你必須先敲2萬行代碼斩例。
2、提高編碼的效率从橘。
敲代碼時不要聽歌念赶,敲代碼是需要大腦認真思考的事情,聽歌絕對會分心恰力,因為你會跟著它唱叉谜。
敲代碼時不要打開其他頁面,敲到一半時你就會點開其他頁面踩萎,那你的邏輯思維就會被打亂停局。
敲代碼時不要玩手機,玩手機絕對會使你分心香府,無法專注于電腦屏幕董栽。
3、拉起自己對編程的興趣企孩,寫自己想寫的代碼锭碳。
一旦打好了基礎,你就可以開始寫自己想寫的程序了柠硕,你對哪方面感興趣工禾,你就可以寫相應的程序,那樣的快感是很爽的蝗柔。
我喜歡打桌球钞钙,我就用自己喜歡的語言去把桌球小游戲去開發(fā)出來宰掉。
你喜歡玩貪吃蛇大作戰(zhàn),你也可以試著自己先去寫一個貪吃蛇小游戲。
你喜歡社交嗽上,那么就可以寫一個通訊小程序。
4、享受編程的成就感(運行,炫耀鳞尔,分享,裝逼)
我是個很自戀的人早直,一旦有一些小成就我就會炫耀寥假。
比如寫完臺球小游戲時我就會分享到班群里,讓他們打開eclipse去運行霞扬,然后開始打臺球糕韧,那是多么有趣的事情啊。雖然他們說我裝逼喻圃,但那又算什么萤彩,老子有的是實力。
如果你寫出了一些小程序斧拍,建議你給同行的朋友試試水雀扶,一方面可以滿足自己的成就感,另一方面朋友會給你提出建設性意見肆汹,接著你去認真修改愚墓,進而達到更好的效果。
5县踢、多做一些項目转绷,只要自己喜歡,多多合作硼啤。
我會多交一些有想法的朋友议经,一起發(fā)現(xiàn)生活中的問題,進而想辦法去解決谴返,然后做成一個項目煞肾。
有時會是網站項目,有時會是APP開發(fā)項目嗓袱,不僅增長了自己的創(chuàng)新意識籍救,還提供了一個堅持下去的動力。
當我們團隊把項目完成后渠抹,必定會有相應的獎勵蝙昙,很大的成就感,學以致用梧却,這是一個很好的實踐方法奇颠。