這些是C/C++能做的
服務(wù)器開發(fā)工程師、人工智能司志、云計(jì)算工程師甜紫、信息安全(黑客反黑客)、大數(shù)據(jù) 骂远、數(shù)據(jù)平臺(tái)囚霸、嵌入式工程師、流媒體服務(wù)器激才、數(shù)據(jù)控解拓型、圖像處理额嘿、音頻視頻開發(fā)工程師、游戲服務(wù)器劣挫、分布式系統(tǒng)册养、游戲輔助等
C和C++的區(qū)別:
C是一個(gè)結(jié)構(gòu)化語言压固,它的重點(diǎn)在于算法和數(shù)據(jù)結(jié)構(gòu)球拦。C程序的設(shè)計(jì)首要考慮的是如何通過一個(gè)過程,對(duì)輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)帐我。
C++坎炼,首要考慮的是如何構(gòu)造一個(gè)對(duì)象模型,讓這個(gè)模型能夠契合與之對(duì)應(yīng)的問題域拦键,這樣就可以通過獲取對(duì)象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制点弯。 所以C與C++的最大區(qū)別在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進(jìn)矿咕,是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”抢肛。
C與C++的最大區(qū)別:在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進(jìn)碳柱,是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”巡蘸,而就語言本身而言梧宫,在C中更多的是算法的概念。那么是不是C就不重要了,錯(cuò)痊硕!算法是程序設(shè)計(jì)的基礎(chǔ),好的設(shè)計(jì)如果沒有好的算法收擦,一樣不行溪食。而且,“C加上好的設(shè)計(jì)”也能寫出非常好的東西半火。 ?
#include
#include
#define KEY_DOWN(vk_c) (GetAsyncKeyState(vk_c)&0x8000?1:0)
#include
#define N 20
int positionx=1;
int positiony=1;
int col=1;
int flag=0;//判斷勝利條件
int screen[N+1][N+1];
//延時(shí)函數(shù)
void delay(){
? ?long i;
? ?for(i=0;i<100000000;i++);
}小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 二六三越妈,六八八,二七六 】钮糖,無論你是大牛還是小白梅掠,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具店归,很多干貨和技術(shù)資料分享阎抒!
void cursor(int i,int j,COLORREF c){
? ?setlinecolor(c);
? ?line(j-10,i-10,j-5,i-10);
? ?line(j+5,i-10,j+10,i-10);
? ?line(j-10,i+10,j-5,i+10);
? ?line(j+5,i+10,j+10,i+10);
? ?line(j-10,i-10,j-10,i-5);
? ?line(j-10,i+5,j-10,i+10);
? ?line(j+10,i-10,j+10,i-5);
? ?line(j+10,i+5,j+10,i+10);
}
void start(){
? ?col=1;
? ?flag=0;
? ?initgraph(20+20*N,20+20*N);
? ?setlinecolor(WHITE);
? ?setbkcolor(BROWN);
? ?cleardevice();
? ?int i;
? ?for(i=10;i<=410;i+=20){
? ? ? ?line(i,10,i,410);
? ? ? ?line(10,i,410,i);
? ?}
? ?}
void updatewithinput(){
//檢測(cè)輸入
? ?while(1){
? ?if(KEY_DOWN(VK_UP)&&positiony>1){
? ?cursor(20*positiony-10,20*positionx-10,BROWN);
? ?positiony--;
? ?cursor(20*positiony-10,20*positionx-10,WHITE);
? ?delay();
? ?}
? ?if(KEY_DOWN(VK_DOWN)&&positiony<=N){
? ?cursor(20*positiony-10,20*positionx-10,BROWN);
? ?positiony++;
? ?cursor(20*positiony-10,20*positionx-10,WHITE);
? ?delay();
? ?}
? ?if(KEY_DOWN(VK_LEFT)&&positionx>1){
? ?cursor(20*positiony-10,20*positionx-10,BROWN);
? ?positionx--;
? ?cursor(20*positiony-10,20*positionx-10,WHITE);
? ?delay();
? ?}
? ?if(KEY_DOWN(VK_RIGHT)&&positionx<=N){
? ?cursor(20*positiony-10,20*positionx-10,BROWN);
? ?positionx++;
? ?cursor(20*positiony-10,20*positionx-10,WHITE);
? ?delay();
? ?}
? ?if(KEY_DOWN(VK_SPACE)){
? ?screen[positiony][positionx]=col;
? ?if(col==1)
? ? ? ?setfillcolor(BLACK);
? ?if(col==-1)
? ? ? ?setfillcolor(WHITE);
? ?fillcircle(positionx*20-10,positiony*20-10,9);
? ?delay();
? ?break;
? ?}
? ?}
? ?col=-col;
}
void updatewithoutinput(){
//判斷勝利條件
? ?if(screen[positiony][positionx]){
? ?if(positiony>=5&&screen[positiony-1][positionx]==screen[positiony][positionx]){
? ? ? ?if(screen[positiony-2][positionx]==screen[positiony][positionx]){
? ? ? ? ? ?if(screen[positiony-3][positionx]==screen[positiony][positionx]){
? ? ? ? ? ? ? ?if(screen[positiony-4][positionx]==screen[positiony][positionx]){
? ? ? ? ? ? ? ? ? ?flag=1;
? ? ? ? ? ?}
? ? ? ? ? ?} ? ?
? ? ? ? ? ?}
? ? ? ? ? ?}
? ?if(positiony<=16&&screen[positiony+1][positionx]==screen[positiony][positionx]){
? ? ? ?if(screen[positiony+2][positionx]==screen[positiony][positionx]){
? ? ? ? ? ?if(screen[positiony+3][positionx]==screen[positiony][positionx]){
? ? ? ? ? ? ? ?if(screen[positiony+4][positionx]==screen[positiony][positionx]){
? ? ? ? ? ? ? ? ? ?flag=1;
? ? ? ? ? ?}
? ? ? ? ? ?} ? ?
? ? ? ? ? ?}
? ? ? ? ? ?}
? ?if(positionx>=5&&screen[positiony][positionx-1]==screen[positiony][positionx]){
? ? ? ?if(screen[positiony][positionx-2]==screen[positiony][positionx]){
? ? ? ? ? ?if(screen[positiony][positionx-3]==screen[positiony][positionx]){
? ? ? ? ? ? ? ?if(screen[positiony][positionx-4]==screen[positiony][positionx]){
? ? ? ? ? ? ? ? ? ?flag=1;
? ? ? ? ? ?}
? ? ? ? ? ?} ? ?
? ? ? ? ? ?}
? ? ? ? ? ?}
? ?if(positionx<=16&&screen[positiony][positionx+1]==screen[positiony][positionx]){
? ? ? ?if(screen[positiony][positionx+2]==screen[positiony][positionx]){
? ? ? ? ? ?if(screen[positiony][positionx+3]==screen[positiony][positionx]){
? ? ? ? ? ? ? ?if(screen[positiony][positionx+4]==screen[positiony][positionx]){
? ? ? ? ? ? ? ? ? ?flag=1;
? ? ? ? ? ?}
? ? ? ? ? ?} ? ?
? ? ? ? ? ?}
? ? ? ? ? ?}
? ?if(positiony>=5&&positionx>=5&&screen[positiony-1][positionx-1]==screen[positiony][positionx]){
? ? ? ?if(screen[positiony-2][positionx-2]==screen[positiony][positionx]){
? ? ? ? ? ?if(screen[positiony-3][positionx-3]==screen[positiony][positionx]){
? ? ? ? ? ? ? ?if(screen[positiony-4][positionx-4]==screen[positiony][positionx]){
? ? ? ? ? ? ? ? ? ?flag=1;
? ? ? ? ? ?}
? ? ? ? ? ?} ? ?
? ? ? ? ? ?}
? ? ? ? ? ?}
? ?if(positiony<=16&&positionx<=16&&screen[positiony+1][positionx+1]==screen[positiony][positionx]){
? ? ? ?if(screen[positiony+2][positionx+2]==screen[positiony][positionx]){
? ? ? ? ? ?if(screen[positiony+3][positionx+3]==screen[positiony][positionx]){
? ? ? ? ? ? ? ?if(screen[positiony+4][positionx+4]==screen[positiony][positionx]){
? ? ? ? ? ? ? ? ? ?flag=1;
? ? ? ? ? ?}
? ? ? ? ? ?} ? ?
? ? ? ? ? ?}
? ? ? ? ? ?}
? ?if(positiony>=5&&positionx<=16&&screen[positiony-1][positionx+1]==screen[positiony][positionx]){
? ? ? ?if(screen[positiony-2][positionx+2]==screen[positiony][positionx]){
? ? ? ? ? ?if(screen[positiony-3][positionx+3]==screen[positiony][positionx]){
? ? ? ? ? ? ? ?if(screen[positiony-4][positionx+4]==screen[positiony][positionx]){
? ? ? ? ? ? ? ? ? ?flag=1;
? ? ? ? ? ?}
? ? ? ? ? ?} ? ?
? ? ? ? ? ?}
? ? ? ? ? ?}
? ?if(positiony<=16&&positionx>=5&&screen[positiony+1][positionx-1]==screen[positiony][positionx]){
? ? ? ?if(screen[positiony+2][positionx-2]==screen[positiony][positionx]){
? ? ? ? ? ?if(screen[positiony+3][positionx-3]==screen[positiony][positionx]){
? ? ? ? ? ? ? ?if(screen[positiony+4][positionx-4]==screen[positiony][positionx]){
? ? ? ? ? ? ? ? ? ?flag=1;
? ? ? ? ? ?}
? ? ? ? ? ?} ? ?
? ? ? ? ? ?}
? ? ? ? ? ?}
}
}
int main(){
begin:
? ?start();
? ?while(1){
? ? ? ?updatewithinput();
? ? ? ?updatewithoutinput();
? ? ? ?if(flag)
? ? ? ? ? ?goto begin;
? ?}小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 二六三,六八八消痛,二七六 】且叁,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)秩伞!裙內(nèi)有開發(fā)工具逞带,很多干貨和技術(shù)資料分享质涛!
? ?return 0;
}
解釋一下算法,繪圖過程是留給大家體會(huì)的
大家都下過五子棋掰担,判斷勝負(fù)應(yīng)該都會(huì)汇陆,五顆同色的連在一起就行,看一眼就知道了對(duì)吧带饱。但是具體是怎么做的呢毡代?人的大腦對(duì)于圖像識(shí)別能力超強(qiáng),幾乎是瞬間完成而且是潛意識(shí)地完成的勺疼。(人腦圖像識(shí)別能力在人臉識(shí)別技術(shù)成熟之前一度被認(rèn)為強(qiáng)于電腦教寂,現(xiàn)在被電腦超越了)。大家可以自己思考一下人腦是如何判斷五子棋勝利條件的执庐,關(guān)鍵是分解步驟對(duì)吧酪耕。分解步驟是一個(gè)極為重要的思想,其實(shí)人臉識(shí)別也是分步驟進(jìn)行轨淌,人腦的圖像處理也是分步進(jìn)行的迂烁。
想象你在下五子棋,對(duì)方落子了递鹉,你首先快速掃了一眼對(duì)方的子周圍盟步,發(fā)現(xiàn)該方向是你的子你就會(huì)忽略該方向,是對(duì)方的子你就向所在方向繼續(xù)重復(fù)以上過程躏结。其實(shí)有兩個(gè)關(guān)鍵步驟却盘。枚舉,遞歸媳拴。只是五子棋的規(guī)則很簡(jiǎn)單黄橘,不用封裝成函數(shù)。如果是圍棋之類的屈溉,我們就要封裝一下了塞关。還有一個(gè)優(yōu)化過程,修剪语婴。如果你把下一步所有可能畫在當(dāng)前步驟之下描孟,就像一棵樹對(duì)吧驶睦。不同的選擇就如同樹的枝丫砰左,如果不去修剪任其生長(zhǎng)的話,就會(huì)白白浪費(fèi)資源场航。如果明顯不可能有結(jié)果缠导,我們就除掉這個(gè)可能性,就像修剪枝丫一樣溉痢。
如果沒有修剪的過程的話僻造,最多就需要判斷877*7=2744次憋他,實(shí)際上完全沒必要。
還有需要解釋的是延時(shí)函數(shù)髓削。如果沒有延時(shí)過程竹挡,(按我的反應(yīng)速度和我的電腦的運(yùn)算速度),我每按下一次鍵盤程序就會(huì)執(zhí)行四五十次立膛。加上延時(shí)函數(shù)揪罕,強(qiáng)行拖慢拖慢程序,使程序執(zhí)行一次的時(shí)間大于人手按下鍵盤到松開鍵盤所需的時(shí)間宝泵,這樣才能有效的和電腦交互好啰。不知大家還記不記得我們之前是怎么實(shí)現(xiàn)延時(shí)的。對(duì)了,Sleep函數(shù)對(duì)吧《蹋現(xiàn)在我們繪制圖形不方便用Sleep函數(shù)框往,就只能自己寫一個(gè)循環(huán)空語句的函數(shù)。之前上課的時(shí)候提到過空語句也是有用的對(duì)吧闯捎,沒錯(cuò)椰弊,用來計(jì)時(shí),cpu的時(shí)鐘頻率是一定的瓤鼻,也就是主頻男应。
利用這點(diǎn),就可以利用空語句執(zhí)行次數(shù)推算出過去的時(shí)間了娱仔。
與此同時(shí)沐飘,kbhit函數(shù)也不好用了。電腦檢測(cè)鍵盤輸入是通過不斷掃描實(shí)現(xiàn)的牲迫。鍵盤一端接高電平耐朴,另一端接IO,鍵盤按下就會(huì)連接電源和IO輸入引腳盹憎,拉高引腳電平筛峭。很多條線路就能唯一確定是哪個(gè)鍵被按下,不同引腳的電平(或高或低)表示為二進(jìn)制以并行信號(hào)的形式輸入IO芯片在以串行信號(hào)輸出到數(shù)據(jù)總線就可以識(shí)別是哪個(gè)鍵了陪每。不過二進(jìn)制不用記影晓,頭文件里都定義好宏了,直接用宏就行檩禾。
- 文/潘曉璐 我一進(jìn)店門搓译,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悲柱,“玉大人,你說我怎么就攤上這事些己∈觯” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵轴总,是天一觀的道長(zhǎng)直颅。 經(jīng)常有香客問我,道長(zhǎng)怀樟,這世上最難降的妖魔是什么功偿? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮往堡,結(jié)果婚禮上械荷,老公的妹妹穿的比我還像新娘。我一直安慰自己虑灰,他們只是感情好吨瞎,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著穆咐,像睡著了一般颤诀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上对湃,一...
- 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼种呐!你這毒婦竟也來了宰翅?” 一聲冷哼從身側(cè)響起,我...
- 序言:老撾萬榮一對(duì)情侶失蹤陕贮,失蹤者是張志新(化名)和其女友劉穎堕油,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肮之,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡掉缺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了戈擒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片眶明。...
- 正文 年R本政府宣布蜀肘,位于F島的核電站,受9級(jí)特大地震影響稽屏,放射性物質(zhì)發(fā)生泄漏扮宠。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一狐榔、第九天 我趴在偏房一處隱蔽的房頂上張望坛增。 院中可真熱鬧,春花似錦薄腻、人聲如沸收捣。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽罢艾。三九已至,卻和暖如春尽纽,著一層夾襖步出監(jiān)牢的瞬間昆婿,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓挎春,卻偏偏與公主長(zhǎng)得像看疙,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子直奋,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 計(jì)算機(jī)二級(jí)C語言上機(jī)題庫(南開版) 1.m個(gè)人的成績(jī)存放在score數(shù)組中能庆,請(qǐng)編寫函數(shù)fun,它的功能是:將低于平...
- 人的情感很奇怪 曾經(jīng)彼此動(dòng)心過的人,許久未見后脚线,明明還有一絲牽動(dòng)心弦搁胆!或許是多年的閱歷,面對(duì)表白更加鎮(zhèn)定,不答應(yīng)不...
- 2017 11月15日 星期三 晴 今天早晨閨女比平時(shí)起的早渠旁,因?yàn)榻裉焖齻兯哪昙?jí)的同學(xué)全部都去西關(guān)小學(xué)...
- “一個(gè)有女朋友的學(xué)長(zhǎng)好像在撩我” “拉黑咯” 不,或許他只是在表示友好杂靶,想在這個(gè)魚龍混雜的班級(jí)里找一個(gè)可以信賴的人...