原创 Java之簡單人機五子棋(一)

繼上週實現了C++控制檯版的五子棋之後,這周開始學習Java,順便花了兩三天時間,做出了一直想做的圖形化界面的五子棋小遊戲。同時在原來C++控制檯程序的基礎上對AI的算法進行了一定修正,修復了一些bug,並加入了悔棋的功能 C+

原创 Java之簡單人機五子棋(二)

這一篇接Java之簡單人機五子棋(一),講一下AI算法實現的大致思路。主要思路是分別對黑白棋的局勢進行打分,然後在找到評分最高的地方落點。 具體結構如下: - 首先,point函數負責接收某點座標和棋子顏色,然後返回對該點的

原创 C++運算符重載/總結

運算符重載的實質 運算符重載其實是特殊形式的函數重載。在C++編譯系統中,運算符的功能都是通過調用相應的函數實現的。這類函數被稱爲運算符函數,由關鍵字operator和對應的運算符組成函數名。運算符的操作數即爲函數的形參。例如,兩

原创 C++ 動態數組類模板(向量容器)vector與STL用法總結

vector(向量)類模板定義在頭文件vector中,提供五種構造函數,可以針對不同情況進行初始化: vector<type> name;//構造一個空的vector對象 vector<type> name(length);

原创 C++類的繼承概念辨析:虛函數,虛函數表,抽象基類,純虛函數,虛基類,虛繼承

C++類的繼承概念辨析虛函數和虛函數表動態綁定虛函數應用示例虛函數的實現:虛函數表虛函數的意義抽象類和純虛函數虛基類和虛繼承虛基類的代碼實現 虛函數和虛函數表 在瞭解什麼是虛函數之前,首先要理解什麼是動態綁定。 動態綁定 動態綁

原创 C++編程之自定義日誌類 ——log4cpp使用詳解

C++編程之自定義日誌類 ——log4cpp使用詳解log4cpp簡介與安裝log4cpp安裝log4cpp簡單介紹layout佈局——日誌輸出格式log4cpp::BasicLayoutlog4cpp::PatternLayou

原创 C++三大IO流類總結——標準IO流、文件IO流、內存IO流

C++三大IO流類總結——標準IO流、文件IO流、內存IO流 IO流類一覽標準IO流標準IO流的條件狀態條件狀態標誌條件狀態函數標準IO流的輸入輸出成員函數代碼示例條件狀態put和get函數getline函數標準IO的格式控制

原创 C/C++辨析

開始複習C++,針對C與C++的一些關鍵不同和區別,做以下總結: 命名空間 c++誕生時,程序編寫已經越來越複雜了,爲了避免越來越長的函數和變量名稱,防止重名,於是C++中加入了命名空間機制。 說白了,就是把一堆變量和函數的聲明或

原创 Linux環境:MySQL安裝配置、基礎操作和C語言連接MySQL操作

Linux環境:MySQL基礎操作MySQL 8.0 安裝MySQL語言簡介MySQL數據類型MySQL基礎語句數據庫操作創建數據庫選擇數據庫修改數據庫刪除數據庫查看數據庫查看指定數據庫的創建信息表操作創建表更新表在表中添加新列修

原创 Linux環境:C編程多進程操作

Linux環境:C編程多進程操作進程基礎知識進程標識進程運行身份Linux下進程管理命令創建進程:四類函數標準C函數`system`Linux C 接口`fork` 函數Linux C 接口`exec` 函數族標準C函數`pope

原创 Linux環境:C編程之信號機制

Linux環境:C編程之信號機制信號概述什麼是信號信號的來源進程對信號的處理常用信號signal 信號處理機制signal函數示例程序:信號捕捉和打斷特殊情形處理sigaction信號處理機制sigaction函數:註冊信號處理函

原创 Linux環境:C編程之進程傳遞文件描述符

Linux環境:C編程之進程傳遞文件描述符socketpair函數sendmsg和recvmsg函數struct msghdr結構體struct cmsghdr結構體 在多進程編程時,會用到進程間傳遞文件描述符的情況,例如進程池

原创 Linux環境:C編程之網絡通信

Linux環境:C編程之網絡通信網絡通信概述通信參考模型自頂向下的TCP/IP參考模型應用層傳輸層網絡層鏈路層socket編程預備知識socket概述socket類型socket地址類型數據存儲字節序——大端小端ip地址格式轉換i

原创 Linux環境:C編程之網絡通信進階操作

參考鏈接:IO多路複用之epoll總結 參考鏈接:套接字的阻塞與非阻塞 Linux環境:C編程之網絡通信進階操作套接字選項setsockopt函數getsockopt函數套接字API層常用的socket屬性epoll 多路複用模型

原创 Linux環境:C編程基礎操作

Linux環境(gcc編譯器):C編程基礎操作gcc安裝gcc基礎編譯命令gcc進階命令:靜態庫與動態庫文件的生成批量編譯:Makefile簡介生成可執行文件的Makefile文件生成靜態庫文件的Makefile文件生成動態庫文件