From 43f9ea3219fe9b46f257b64fde9a7e3a2d13e107 Mon Sep 17 00:00:00 2001 From: NONOThingC <14366189@qq.com> Date: Sun, 10 Mar 2019 13:13:07 +0800 Subject: [PATCH 1/7] homework level1 complete --- ...46\344\271\240\347\254\224\350\256\260.md" | 5 + LICENSE | 21 + README.md | 68 ++ course-C/Goldbach.exe | Bin 0 -> 126192 bytes course-C/NerualNetwork.cpp | 0 course-C/PI.cpp | 13 + course-C/diu.exe | Bin 0 -> 83643 bytes course-C/hanoi.exe | Bin 0 -> 84186 bytes course-C/is_Prime.exe | Bin 0 -> 121130 bytes course-C/map.txt | 20 + course-C/narcissus.exe | Bin 0 -> 84202 bytes course-C/warehouse.txt | 0 level0/README.md | 48 ++ level0/bubbleSort/README.md | 10 + level1/p01_runningLetter/README.md | 10 + level1/p01_runningLetter/runningLetter.cpp | 45 ++ level1/p02_isPrime/README.md | 4 + level1/p02_isPrime/is_Prime.cpp | 38 ++ level1/p03_Diophantus/README.md | 17 + level1/p03_Diophantus/diu.cpp | 9 + level1/p04_ narcissus/README.md | 7 + level1/p04_ narcissus/narcissus.cpp | 29 + level1/p05_allPrimes/README.md | 5 + level1/p05_allPrimes/is_Prime.cpp | 38 ++ level1/p06_Goldbach/Goldbach.cpp | 53 ++ level1/p06_Goldbach/README.md | 3 + level1/p07_encrypt_decrypt/Huffman.cpp | 58 ++ level1/p07_encrypt_decrypt/Huffman.h | 14 + .../p07_encrypt_decrypt/HuffmanCompress.cpp | 466 ++++++++++++++ level1/p07_encrypt_decrypt/README.md | 6 + level1/p08_hanoi/README.md | 5 + level1/p08_hanoi/hanoi.cpp | 21 + level1/p08_hanoi/hanoi.jpg | Bin 0 -> 9997 bytes level1/p09_maze/README.md | 7 + level1/p09_maze/maze.cpp | 591 ++++++++++++++++++ level1/p10_pushBoxes/README.md | 9 + level1/p10_pushBoxes/pushBoxes.cpp | 513 +++++++++++++++ level1/p11_linkedList/README.md | 9 + level1/p11_linkedList/linkedList.c | 112 ++++ level1/p12_warehouse/README.md | 11 + level1/p12_warehouse/warehouse.c | 172 +++++ level2/GA/README.md | 11 + level2/NeuralNetworks/README.md | 10 + level2/PI/README.md | 11 + 44 files changed, 2469 insertions(+) create mode 100644 "C\350\257\255\350\250\200\345\255\246\344\271\240\347\254\224\350\256\260.md" create mode 100644 LICENSE create mode 100644 README.md create mode 100644 course-C/Goldbach.exe create mode 100644 course-C/NerualNetwork.cpp create mode 100644 course-C/PI.cpp create mode 100644 course-C/diu.exe create mode 100644 course-C/hanoi.exe create mode 100644 course-C/is_Prime.exe create mode 100644 course-C/map.txt create mode 100644 course-C/narcissus.exe create mode 100644 course-C/warehouse.txt create mode 100644 level0/README.md create mode 100644 level0/bubbleSort/README.md create mode 100644 level1/p01_runningLetter/README.md create mode 100644 level1/p01_runningLetter/runningLetter.cpp create mode 100644 level1/p02_isPrime/README.md create mode 100644 level1/p02_isPrime/is_Prime.cpp create mode 100644 level1/p03_Diophantus/README.md create mode 100644 level1/p03_Diophantus/diu.cpp create mode 100644 level1/p04_ narcissus/README.md create mode 100644 level1/p04_ narcissus/narcissus.cpp create mode 100644 level1/p05_allPrimes/README.md create mode 100644 level1/p05_allPrimes/is_Prime.cpp create mode 100644 level1/p06_Goldbach/Goldbach.cpp create mode 100644 level1/p06_Goldbach/README.md create mode 100644 level1/p07_encrypt_decrypt/Huffman.cpp create mode 100644 level1/p07_encrypt_decrypt/Huffman.h create mode 100644 level1/p07_encrypt_decrypt/HuffmanCompress.cpp create mode 100644 level1/p07_encrypt_decrypt/README.md create mode 100644 level1/p08_hanoi/README.md create mode 100644 level1/p08_hanoi/hanoi.cpp create mode 100644 level1/p08_hanoi/hanoi.jpg create mode 100644 level1/p09_maze/README.md create mode 100644 level1/p09_maze/maze.cpp create mode 100644 level1/p10_pushBoxes/README.md create mode 100644 level1/p10_pushBoxes/pushBoxes.cpp create mode 100644 level1/p11_linkedList/README.md create mode 100644 level1/p11_linkedList/linkedList.c create mode 100644 level1/p12_warehouse/README.md create mode 100644 level1/p12_warehouse/warehouse.c create mode 100644 level2/GA/README.md create mode 100644 level2/NeuralNetworks/README.md create mode 100644 level2/PI/README.md diff --git "a/C\350\257\255\350\250\200\345\255\246\344\271\240\347\254\224\350\256\260.md" "b/C\350\257\255\350\250\200\345\255\246\344\271\240\347\254\224\350\256\260.md" new file mode 100644 index 00000000..5f40c203 --- /dev/null +++ "b/C\350\257\255\350\250\200\345\255\246\344\271\240\347\254\224\350\256\260.md" @@ -0,0 +1,5 @@ +# C语言学习笔记 + +# 记录你学习过程中的所见所思!酸甜苦辣! + +# 看什么看! 赶紧填坑啊! \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..6c2bc373 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Mark Feng + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 00000000..34c10400 --- /dev/null +++ b/README.md @@ -0,0 +1,68 @@ +# c2019 + +## 基本操作流程 + +1. 从 [https://github.com/luckymark/c2019](https://github.com/luckymark/c2019) fork 到你自己的 github 中 +2. 创建本地仓库:(如果用机房的电脑,则建议 clone 到 U 盘,便于携带) + + ``` + git clone https://github.com/ **YourGithubAccount** /c2019 + cd c2019 + ls + + git config user.name=??? + git config user.email=??? + + git remote -v + git remote add upstream https://github.com/luckymark/c2019 + ``` + +3. 修改、提交代码: + + ``` + git status + git add . + git commit -m "完成了running letter" + git push + ``` + +4. 从 https://github.com/luckymark/c2019 获取更新 + + ``` + git fetch upstream + git merge upstream/master + ``` + + [在 github 网页上更新的方法](https://www.zhihu.com/question/20393785/answer/30725725) + + [fork 后如何同步源的新更新](https://segmentfault.com/q/1010000002590371) + +5. 请求老师 review 代码的方法:在 github 网页上发起一个 PR(pull request)即可 + +## [作业](https://github.com/luckymark/c2019/tree/master/practices) + +1. level0 可选,用于还不够熟练的同学练手(嫌题目太少的同学,那就刷刷咱[神技大学的 OJ](http://acm.uestc.edu.cn/#/)吧,从低到高地刷哈) +2. level1 必做,课堂+课后练习 +3. level2 可选,供精力旺盛到变态的大神们发泄之用 + +## 参考 + +### GIT + +[史上最浅显易懂的 Git 教程! 廖雪峰](http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000) + +[Pro Git(中文版)](http://git.oschina.net/progit/) + +[撸袖子 动手学 Git 专治菜鸟](http://igit.linuxtoy.org/contents.html) + +[Git 远程操作详解 阮一峰](http://www.ruanyifeng.com/blog/2014/06/git_remote.html) + +[fork 后如何跟上源 repo 的变化](https://segmentfault.com/q/1010000002590371) + +### Markdown + +[Markdown 入门指南](http://www.jianshu.com/p/1e402922ee32) + +### 其他 + +[免费的计算机编程类中文书籍](https://github.com/wwj718/free-programming-books-zh_CN) diff --git a/course-C/Goldbach.exe b/course-C/Goldbach.exe new file mode 100644 index 0000000000000000000000000000000000000000..714bf3062eda1aef55c99f6c5cee9bb2ba2726fe GIT binary patch literal 126192 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 literal 0 HcmV?d00001 diff --git a/course-C/NerualNetwork.cpp b/course-C/NerualNetwork.cpp new file mode 100644 index 00000000..e69de29b diff --git a/course-C/PI.cpp b/course-C/PI.cpp new file mode 100644 index 00000000..775339d7 --- /dev/null +++ b/course-C/PI.cpp @@ -0,0 +1,13 @@ +//Refer:https://blog.csdn.net/pilifeng1/article/details/82814997 +//https://baike.baidu.com/item/%E6%A2%85%E9%92%A6%E5%85%AC%E5%BC%8F/9425108? +#include +#define MAX_RANGE /*(2 << 29 - 1)*/ 100000 +double arccot(int n,int digit) +{ + for() +} +int main() +{ + double PI; + PI=4*(4*arccot(5)-arccot(239)); +} \ No newline at end of file diff --git a/course-C/diu.exe b/course-C/diu.exe new file mode 100644 index 0000000000000000000000000000000000000000..92e95f611bdd1461ea10c17667a39629a61c80c5 GIT binary patch literal 83643 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 Y7>nu|g0BqkR@Vc`ia%(oYTDxe0#rns5&!@I literal 0 HcmV?d00001 diff --git a/course-C/hanoi.exe b/course-C/hanoi.exe new file mode 100644 index 0000000000000000000000000000000000000000..ba309a71ad413b188cc66328e618c8682b56427f GIT binary patch literal 84186 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 literal 0 HcmV?d00001 diff --git a/course-C/is_Prime.exe b/course-C/is_Prime.exe new file mode 100644 index 0000000000000000000000000000000000000000..39024217c481c065e8f67e6cb8aafc25bad998ae GIT binary patch literal 121130 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 literal 0 HcmV?d00001 diff --git a/course-C/map.txt b/course-C/map.txt new file mode 100644 index 00000000..a4fb6b16 --- /dev/null +++ b/course-C/map.txt @@ -0,0 +1,20 @@ +0 0 0 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 5 2 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +5 5 5 5 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +5 2 3 0 3 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 +5 5 5 1 3 0 2 5 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 5 3 5 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 5 2 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \ No newline at end of file diff --git a/course-C/narcissus.exe b/course-C/narcissus.exe new file mode 100644 index 0000000000000000000000000000000000000000..4ec0ffff817ead9519717dfae3d92b7a9d96e831 GIT binary patch literal 84202 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 {~6re`R^pyxq zb>l=nYisA`ljZCYyiAnSd9|og*-9c1BM{>IjBbj)tY{V4O`~pTWrIrK((GkCiA5-j zEgP|rOK0X%Mek*kHeGfayG{i&d=JV_7R!AWbD+s8v^2oCX=#9QAe$eoFqZtD&{1a* zD^BKTU6dhHEN2UO_0mjBjC@6w{ER_wD5O4UfHS-_CY93PC+D`sU^?S{(p)w>>o>EbPtnM_}H616ZiJ3XG6$zo}a_nTMb=k2bQAbZyFMMi@x=k^p`^6 z;VcCfda~P>n5v1p{ITchOuh`&W-|2619!4Ck<8|1XEM&7xZ7LEli@}(slrT}fUv5u zDp0I|87|&oOvRMWOvUzHR&AYfQ3>rXhf0$<*v)5>Sp*X01Eun4DKj&O_hyG@bmYWa zqh|ptA~y|P(;0kLS}5aS&~09;a*9=8=q5%eE|%j8GsoJBXz^|BaNW5$-r@+yL}7{< z`c$ergKt#hJFCc!{wGQ0I*P_jC2G63bNf9Vc2$my;xqMwVK){JkM<3_BjM<9FMo_W zJk)20N7r3A17a!FLmN83?8BMdG3k)LYw@ZCeXaVHczA$%`NE9X!c>ZgGa2>Z0+nS7 zjRs|D-@enyOwYRf@&!8M2L;^fEmrbFvmq0?4`+_CvnyNr(o-czCA;*#99Z8y+SS2b zATda$(;fpP3MU{u#fG-%XHaVh#EPlP;wGYTFM|4CD18@6#r+_6KXtYU$PwzUdeB>W z+FB`&+n>#+V`1qK6_-87hNwqZM%|MsOS=BTOemekOUDtkS7;Sj^{FweD5qiDxWV40*`MdKRb<%SF~QdcyR{bnMdz4eYIngiUAFc zPUP4|MOH3`8aY9}d}*GWIzn}+uEY#TUmm4vd~b&g;U}>nKSgF50T_L?3)jsj^S-DYvqn$)1E{pA*ZJj&sY2N`pIlt;yNR#yG?8JmT9p9lir#;Sa%# z9IjUyFvy|1i@t-$?mE=gPG%P9ziP3loxGrI3UV}0a>dPYIcbs?`gtU~&l1DNWNJE{ z6HU%tU?@)EMx~h}Etf~PqPLO*WYt-Dm)uu*m;9yiuFlS#oiKCFUXUgjMGBH}9(zYH z>!M~vDBtaXS7pc1r{M3ynVEbhw{wS^gn>Cq)A)$T?dX3Yt1mG;!d)_5`U)j4(0<2V z474x?nR6#*^ROyYi8*Mb)YsD+k7knTo@3=qcuppclym#Dm^mbKqxqxgJDhl?Jeud8 zHth|d`m;FP9RJrMhranL)$eFp%O%A=uA2>jRY`<)YCphsj^!viII*J4o|5z?eyl8eA9@+d@_Y%p_|R3 z(0ZRUENtxc;arKe+m1q%_vX+EdDf~vrjBrsD-rXy)jOIDVRSY)VJt zTA_tU83%$R12{b=em{14~LqH2{(PGyos!-qK<>6Yf1*jP~@oy77ID!Y0>Sx~aq z(@STALCTn#$foNprYJ8eR@ex^=|~m#=b9=~Rl#IcjHSwjtRh~} zb2P!ij>k2i%fUBG1WUB}Ldj_CWYC3z8tN=FW3~8Ni$_{L+{>h)SJqs`l0jEaR8dvE z$zmBZWH~!Vh7!*fF|@<2MVe2GkR*dNZl{ZuiPlmopj)Mgjwx%}S+G;6X7xxYVMYjF z_b!}X?kK6{T#Otbq}_c30+!^#}Wu|NmSy;Q2Al|pwJQ*}60k<3{2 zAv0Hrjoy%Fx^#rPL9`Y<<}tc2T{yKwL$#^b8(FHnL0&NqKu0dUMD%#E%#3(vdOn4Q zfcdO9m{GwvQSc(P_Aa_nfLhK@dKJea<&Gp3LR4>-k53hjqC@lCPdJ}fiiMUWXw+NL z7|C=Il$96MtoUHAuKB&SRwm>^caY8$Y1P{|K9oH>$@EQ^dH7N#lr1ojgk_+x= z{^rm|?)YQ#Ef`8Txz-3&8I#+YuSX&6)h#P?sElS~j&KzZmL}hJfYo8{l}$&WQCEc& z-sU1R`=%!g^j<`EaTHuscn&`ieL$=5>`pXeyFN(?gsS z6DfP +#include +#include +#define SCREENLENGTH 10 +#define SLEEPTIME 300 //if you can't see the letter move,please modify this number. +void PrintSpace(int n) //enter the amount of space. +{ + for (int i = 0; i < n; i++) + { + printf(" "); + } +} +int main() +{ + while (1) + { + int j = 0; + int TempForDection = 0; + while (j >= 0 && j <= SCREENLENGTH) //Condition is very clear. + { + + PrintSpace(j); + printf("S"); + if (TempForDection == 0) + { + j++; + } + if (TempForDection == 1) + { + j--; + } + if (j == SCREENLENGTH) + { + TempForDection = 1; + } + if (j == 0) + { + TempForDection = 0; + } + Sleep(SLEEPTIME); + system("cls"); + } + } + return 0; +} \ No newline at end of file diff --git a/level1/p02_isPrime/README.md b/level1/p02_isPrime/README.md new file mode 100644 index 00000000..458f2658 --- /dev/null +++ b/level1/p02_isPrime/README.md @@ -0,0 +1,4 @@ +### 功能要求: + +1. 任意输入一个正整数n +1. 判断n是否为素数 \ No newline at end of file diff --git a/level1/p02_isPrime/is_Prime.cpp b/level1/p02_isPrime/is_Prime.cpp new file mode 100644 index 00000000..dec77f82 --- /dev/null +++ b/level1/p02_isPrime/is_Prime.cpp @@ -0,0 +1,38 @@ +#include +#define MAX_RANGE /*(2 << 29 - 1)*/ 100000 +int main() +{ + int n; + int funCode = 1; //zero is allPrimes,one is isPrime + while (scanf("%d", &n) == 1 && n > 1) + { + int A[MAX_RANGE] = {0}; //Use zero to represent this is a prime.Use one to represent this is a prime. + int num = 0; + int TempOfPrime[MAX_RANGE]; + for (int i = 2; i <= n; i++) + { + if (!A[i]) + { + num += 1; + TempOfPrime[num] = i; //Attention:First element is a[1] + } + for (int j = 1; j <= num&&i*TempOfPrime[j]<=n; j++) + { + A[i * TempOfPrime[j]] = 1; + if ((i % TempOfPrime[j])==0) + break; + } + } + if (!funCode) + { + for (int i = 2; i <= n; i++) + if (!A[i]) + printf("%d ", i); + } + else + { + + (!A[n]) ? printf("%d is prime ", n) : printf("%d is not prime ", n); + } + } +} \ No newline at end of file diff --git a/level1/p03_Diophantus/README.md b/level1/p03_Diophantus/README.md new file mode 100644 index 00000000..021fd647 --- /dev/null +++ b/level1/p03_Diophantus/README.md @@ -0,0 +1,17 @@ +### 编程解决下面的问题: + +取自《希腊诗选》(Greek Anthology): + +丢番图的童年经过了他一生的六分之一, + +青年经过了十二分之一, + +又有七分之一的时间是单身汉。 + +结婚五年后得了个儿子, + +儿子比父亲先死四年, + +年级是他的一半。 + +问儿子死时丢番图多大? \ No newline at end of file diff --git a/level1/p03_Diophantus/diu.cpp b/level1/p03_Diophantus/diu.cpp new file mode 100644 index 00000000..2d304075 --- /dev/null +++ b/level1/p03_Diophantus/diu.cpp @@ -0,0 +1,9 @@ +#include +int main() +{ + int i=0; + for(;i<100;i++) + if((1*12*7/6*i+1*12*7/12*i+1*12*7/7*i+5*12*7+1*12*7/2*i+4*12*7)==i*12*7) + break; + printf("His age is :%d",i); +} \ No newline at end of file diff --git a/level1/p04_ narcissus/README.md b/level1/p04_ narcissus/README.md new file mode 100644 index 00000000..c7fc78e3 --- /dev/null +++ b/level1/p04_ narcissus/README.md @@ -0,0 +1,7 @@ +### 功能要求: + +1. 打印出所有3位水仙花数 + +水仙花数:n位数的每个数位的n次方之和等于该n位数本身 + +例如:153=1^3+5^3+3^3 \ No newline at end of file diff --git a/level1/p04_ narcissus/narcissus.cpp b/level1/p04_ narcissus/narcissus.cpp new file mode 100644 index 00000000..5ed57a88 --- /dev/null +++ b/level1/p04_ narcissus/narcissus.cpp @@ -0,0 +1,29 @@ +#include +void get_threeDigit_Number(const int targetnumber,int *digit_number) +{ + int i=targetnumber; + int j=0; + while(i) + { + digit_number[j++]=i%10; + i/=10; + } +} +int main() +{ + int digit_number[3]; + for(int i=100;i<1000;i++) + { + int sum=0; + get_threeDigit_Number(i,digit_number); + for(int j=0;j<3;j++) + { + sum+=digit_number[j]*digit_number[j]*digit_number[j]; + } + if(sum==i){ + printf("%d ",i); + } + + } + return 0; +} \ No newline at end of file diff --git a/level1/p05_allPrimes/README.md b/level1/p05_allPrimes/README.md new file mode 100644 index 00000000..c59786a4 --- /dev/null +++ b/level1/p05_allPrimes/README.md @@ -0,0 +1,5 @@ +### 功能要求: + +1. 打印2-1000以内的所有素数 +1. 打印出总的计算时间 +1. 尽可能优化算法的效率 \ No newline at end of file diff --git a/level1/p05_allPrimes/is_Prime.cpp b/level1/p05_allPrimes/is_Prime.cpp new file mode 100644 index 00000000..dec77f82 --- /dev/null +++ b/level1/p05_allPrimes/is_Prime.cpp @@ -0,0 +1,38 @@ +#include +#define MAX_RANGE /*(2 << 29 - 1)*/ 100000 +int main() +{ + int n; + int funCode = 1; //zero is allPrimes,one is isPrime + while (scanf("%d", &n) == 1 && n > 1) + { + int A[MAX_RANGE] = {0}; //Use zero to represent this is a prime.Use one to represent this is a prime. + int num = 0; + int TempOfPrime[MAX_RANGE]; + for (int i = 2; i <= n; i++) + { + if (!A[i]) + { + num += 1; + TempOfPrime[num] = i; //Attention:First element is a[1] + } + for (int j = 1; j <= num&&i*TempOfPrime[j]<=n; j++) + { + A[i * TempOfPrime[j]] = 1; + if ((i % TempOfPrime[j])==0) + break; + } + } + if (!funCode) + { + for (int i = 2; i <= n; i++) + if (!A[i]) + printf("%d ", i); + } + else + { + + (!A[n]) ? printf("%d is prime ", n) : printf("%d is not prime ", n); + } + } +} \ No newline at end of file diff --git a/level1/p06_Goldbach/Goldbach.cpp b/level1/p06_Goldbach/Goldbach.cpp new file mode 100644 index 00000000..14949a35 --- /dev/null +++ b/level1/p06_Goldbach/Goldbach.cpp @@ -0,0 +1,53 @@ +#include +#include +#define MAX_RANGE /*(2 << 29 - 1)*/ 100000 +using namespace std; +int main() +{ + const int n=101;//The range of number you want to prove + set storage_Prime; + + int A[MAX_RANGE] = {0}; //Use zero to represent this is a prime.Use one to represent this is a prime. + int num = 0; + //generate Prime + int TempOfPrime[MAX_RANGE]; + for (int i = 2; i <= n; i++) + { + if (!A[i]) + { + num += 1; + TempOfPrime[num] = i; //Attention:First element is a[1] + } + for (int j = 1; j <= num && i * TempOfPrime[j] <= n; j++) + { + A[i * TempOfPrime[j]] = 1; + if ((i % TempOfPrime[j]) == 0) + break; + } + for (int i = 2; i <= n; i++) + { + if (!A[i]) + { + storage_Prime.insert(i); + } + } + } + for(int i=4;i::const_iterator citer=storage_Prime.begin();(*citer)<=i&&citer!=storage_Prime.end();citer++) + { + int remainder=i-*citer; + if(storage_Prime.find(remainder) != storage_Prime.end())//If find in Prime Set + { + flag=0;// + } + } + if(flag) + { + printf("Goldbach is not right."); + return 0; + } + } + printf("Goldbach is right."); +} diff --git a/level1/p06_Goldbach/README.md b/level1/p06_Goldbach/README.md new file mode 100644 index 00000000..28ac69b3 --- /dev/null +++ b/level1/p06_Goldbach/README.md @@ -0,0 +1,3 @@ +### 功能要求: + +1. 在100范围内验证哥德巴赫猜想的正确性 \ No newline at end of file diff --git a/level1/p07_encrypt_decrypt/Huffman.cpp b/level1/p07_encrypt_decrypt/Huffman.cpp new file mode 100644 index 00000000..66d81539 --- /dev/null +++ b/level1/p07_encrypt_decrypt/Huffman.cpp @@ -0,0 +1,58 @@ +#include "pch.h" +#include "Huffman.h" +void HuffmanCoding(HNode *HT, HCode *HC, unsigned long long *w, const int n) +{ + //初始化 + int m = 2 * n - 1; + HNode* p = HT; + int i = 0; + for (; i < n; i++, p++, w++) + { + p->weight = *w; + p->lchild = -1; + p->rchild = -1; + p->parent = -1; + } + + for (; i < m; i++, p++) + { + p->weight = 0; + p->lchild = -1; + p->rchild = -1; + p->parent = -1; + } + //构造HUFFMAN TREE + for (i = n; i < m; i++) + { + long long min1 = MAXVALUE, min2 = MAXVALUE; + int min1id = 0, min2id = 0;//min1是最小的,min2次小 + for (int j = 0; j < i; j++) + { + if (HT[j].parent == -1 && HT[j].weight < min1) + { + min2 = min1; min2id = min1id; min1 = HT[j].weight; min1id = j; + } + else if (HT[j].parent == -1 && HT[j].weight < min2) + { + min2 = HT[j].weight; min2id = j; + } + } + HT[min1id].parent = i; HT[min2id].parent = i; + HT[i].lchild = min1id; HT[i].rchild = min2id; + HT[i].weight = min1 + min2; + } + //做字符编码 + + for (int j = 0; j < n; j++) + { + int start = n - 1; + for (int tempid = j,tempparent = HT[j].parent; tempparent != -1; tempid = tempparent, tempparent = HT[tempparent].parent) + { + if (HT[tempparent].lchild == tempid) { + HC[j].bit[start--] = 0; + } + else HC[j].bit[start--] = 1; + } + HC[j].start = start + 1;//记录根节点位置 + } +} \ No newline at end of file diff --git a/level1/p07_encrypt_decrypt/Huffman.h b/level1/p07_encrypt_decrypt/Huffman.h new file mode 100644 index 00000000..6dfe2fa6 --- /dev/null +++ b/level1/p07_encrypt_decrypt/Huffman.h @@ -0,0 +1,14 @@ +#pragma once +#define MAXBIT 256 +const long long MAXVALUE = 9223372036854775806; +typedef struct HNode { + long long weight; + int parent; + int lchild; + int rchild; +} HNode; +typedef struct HCode { + int bit[MAXBIT]; + int start; +} HCode; +void HuffmanCoding(HNode *HT, HCode *HC, unsigned long long *w, const int n); \ No newline at end of file diff --git a/level1/p07_encrypt_decrypt/HuffmanCompress.cpp b/level1/p07_encrypt_decrypt/HuffmanCompress.cpp new file mode 100644 index 00000000..28477880 --- /dev/null +++ b/level1/p07_encrypt_decrypt/HuffmanCompress.cpp @@ -0,0 +1,466 @@ +// HuffmanCompress.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 +#include "pch.h" +#include +#include +#include +#include +#include +#include "Huffman.h" +#include +using namespace std; +size_t WR_SIZE = 1024*1024 ; //每次读写的大小,此处为0.01M +const char displayLoading = 1; //编码进度显示 +const int chFreqSize = 256; +unsigned long long chFreq[chFreqSize]; + +long long getFileSize(const char *FileName) +{ + + FILE *stream_rd; + if (0 == fopen_s(&stream_rd, FileName, "rb")) + { + _fseeki64(stream_rd, 0L, SEEK_SET); + long long begin = _ftelli64(stream_rd); + _fseeki64(stream_rd, 0L, SEEK_END); + long long end = _ftelli64(stream_rd); + fclose(stream_rd); + return (end - begin); + } + else + { + fclose(stream_rd); + return -1; + } +} +void read_count_bitFile(const char *FILE_RD) +{ + FILE *stream_rd; + size_t num_read; + int rw_cnt = 0; + long long offset = 0; + + unsigned char *buf = new unsigned char[WR_SIZE]; + long long fileSize = getFileSize(FILE_RD); + if (0 == fopen_s(&stream_rd, FILE_RD, "rb")) + { + + while (!feof(stream_rd)) + { + //读 + num_read = fread(buf, sizeof(char), WR_SIZE, stream_rd); + if (displayLoading == 1 && 0 != num_read) + { + system("cls"); + long long curpoision = _ftelli64(stream_rd); //得到当前加载位置 + double percent = (double)curpoision / (double)fileSize * 100; + cout << "Loading " << percent << "% " << endl; + } + //统计二进制信息 + unsigned long i = num_read; + //long long count = 0; + while (i--) + { + chFreq[buf[i]]++; + } + if (0 == num_read) + break; + offset = num_read; //文件偏移 + //_fseeki64(stream_rd, offset, SEEK_CUR); //注意,这样做不能随意更改文件流位置 + } + } + //资源释放 + delete[] buf; + fclose(stream_rd); +} +//将一个字符转化为二进制串存入数组 +void b2char(unsigned char a,unsigned char code[], int k) +{ + + for (int i = k; i < k + 8; i++) + code[i] = 0; + + + int c = (int)a; + int n = k+7; + while (c) + { + code[n--] = c % 2; + c = c / 2; + } +} + +//以8为单位,将字符数组a转换为acsii +void char2b(unsigned char a[], unsigned char b[]) +{ + + int j, m; + int k = 0; + for (; a[8 * k] != '\0'; k++) + { + unsigned char c = 0; + for (int i = 8 * k; i < 8 * k + 8; i++) + { + if (a[i] != 0) + { + m = 7 - i + 8 * k; + j = 1 << m; + c = c + (int)(a[i] - '0') * j; + } + } + b[k] = c; + } +} + +void write_bitFile(const char *FILE_RD, const char *FILE_WR, HNode *HT, HCode *HC, const int n) +{ + FILE *stream_rd, *stream_wr, *stream_wr_miyao; + size_t num_read, num_written; + long long offsetRD = 0; + long long offsetWR = 0; + unsigned char *bufRD = new unsigned char[WR_SIZE]; + unsigned char *bufWR = new unsigned char[WR_SIZE]; + unsigned char *buf = new unsigned char[8 * WR_SIZE + 1]; + long long fileSize = getFileSize(FILE_RD); + long long k = 0; + //先处理加密区 + unsigned long long *buff = new unsigned long long[chFreqSize]; + fopen_s(&stream_wr_miyao, "miyao.b", "wb"); + for (int ll = 0; ll < chFreqSize; ll++) + { + buff[ll] = chFreq[ll]; + } + fwrite(buff, sizeof(unsigned long long), chFreqSize, stream_wr_miyao); + delete[] buff; + fclose(stream_wr_miyao); + //打开要写的文件 + errno_t errNum = 0; + try + { + errNum = fopen_s(&stream_wr, FILE_WR, "wb"); + } + catch (...) + { + cout << errNum << endl; + } + //正式文件处理 + if (0 == fopen_s(&stream_rd, FILE_RD, "rb")) + { + + while (!feof(stream_rd)) + { + //读 + num_read = fread(bufRD, sizeof(char), WR_SIZE, stream_rd); + long long debugRD = _ftelli64(stream_rd); + if (displayLoading == 1 && 0 != num_read) + { + system("cls"); + long long curpoision = _ftelli64(stream_rd); //得到当前加载位置 + double percent = (double)curpoision / (double)fileSize * 100; + cout << "Encoding perccent: " << percent << "% " << endl; + } + if (0 == num_read) + break; + offsetRD = num_read; //文件偏移 + //_fseeki64(stream_rd, offsetRD, SEEK_CUR); //注意,这样做不能随意更改文件流位置 + //文件读出后放入新buf区 + long long maxn = num_read; + for (int i = 0; i < maxn; i++) //内存字段扫描,每次1B + { + for (int j = HC[bufRD[i]].start; j < n; j++) //编码扫描 + { + //得到char串 + unsigned char tempchar1bit = (unsigned char)(HC[bufRD[i]].bit[j] + '0'); + buf[k++] = tempchar1bit; + + if (k == 8 * WR_SIZE) //装满了,但是可能j还有信息 + { + buf[k] = '\0'; + char2b(buf, bufWR); //把char串转换成ascii + + num_written = fwrite(bufWR, sizeof(char), WR_SIZE, stream_wr); + offsetWR = num_written; + //_fseeki64(stream_wr, offsetWR, SEEK_CUR); + long long debug1 = _ftelli64(stream_wr); + k = 0; + + // buf[0] = '\0'; + } + } + } + + } + if (num_read != WR_SIZE && k != 0) //说明读完了但是buf区还有东西 + { + int tempi = ((k - 1) % 8 + 1); + if (tempi != 8) + { + for (int kk = 0; kk < 8 - tempi; kk++) + buf[k++] = 0; + } + buf[k] = '\0'; + char2b(buf, bufWR); //把信息转换后存到bufWR + + size_t write_size = k / 8; + k = 0; + num_written = fwrite(bufWR, sizeof(char), write_size, stream_wr); + + offsetWR = num_written; +// _fseeki64(stream_wr, offsetWR, SEEK_CUR); + long long debug1 = _ftelli64(stream_wr); + // buf[0] = '\0'; + } + } + + //资源释放 + delete[] bufRD; + delete[] bufWR; + delete[] buf; + fclose(stream_rd); + fclose(stream_wr); +} +void HuffmanDecoding(const char *FILE_RD, const char *FILE_WR) +{ + FILE *stream_rd_miyao; + + /* + if (0 != fopen_s(&stream_wr, FILE_WR, "wb")) + { //获取待写入文件的句柄 + errNum = errno; + printf("open fail errno = %d reason = %s \n", errNum, (errNum)); + return; + } + */ + + //先处理加密区,得到哈夫曼树和哈夫曼编码 + unsigned long long *buff = new unsigned long long[chFreqSize]; + fopen_s(&stream_rd_miyao, "miyao.b", "rb"); + unsigned long long *REchFreqSize = new unsigned long long[chFreqSize]; + fread(REchFreqSize, sizeof(unsigned long long), chFreqSize, stream_rd_miyao); + HNode *HT = new HNode[2 * chFreqSize - 1]; + HCode *HC = new HCode[chFreqSize]; + HuffmanCoding(HT, HC, REchFreqSize, chFreqSize); + fclose(stream_rd_miyao); + delete[] REchFreqSize; + //找到树的根 + int root[2]; + for (int i = 0, j = 0; i < 2 * chFreqSize - 1; i++) + { + if (HT[i].parent == -1) + root[j++] = i; + } + //读入加密文件 + FILE *stream_rd, *stream_wr; + size_t num_read, num_written; + + errno_t errNum = 0; + try + { + errNum = fopen_s(&stream_wr, FILE_WR, "wb"); + } + catch (...) + { + cout << errNum << endl; + } + + /* + if (0 != fopen_s(&stream_wr, FILE_WR, "wb")) + { //获取待写入文件的句柄 + errNum = errno; + printf("open fail errno = %d reason = %s \n", errNum, (errNum)); + return; + } + */ + unsigned char *bufRD = new unsigned char[WR_SIZE]; + unsigned char *bufWR = new unsigned char[8 * WR_SIZE]; + unsigned char *buf = new unsigned char[8 * WR_SIZE ]; + long long fileSize = getFileSize(FILE_RD); + long long k = 0; + long long offsetRD = 0; + long long offsetWR = 0; + //正式文件处理 + + //读文件 + if (0 == fopen_s(&stream_rd, FILE_RD, "rb")) + { + int Nodeindex = root[0]; + HNode rootNode = HT[Nodeindex]; + int targetindex = 0; + + int count_for_WR = 0; + //unsigned long long aaa = 0,bbb=0; + + while (!feof(stream_rd)) + { + + //读 + num_read = fread(bufRD, sizeof(char), WR_SIZE, stream_rd); + + if (displayLoading == 1 && 0 != num_read) + { + system("cls"); + long long curpoision = _ftelli64(stream_rd); //得到当前加载位置 + double percent = (double)curpoision / (double)fileSize * 100; + cout << "Decoding perccent: " << percent << "% " << endl; + } + + if (0 == num_read) + break; + //变为二进制码 + long k = 0; + for (int i = 0; i < num_read; i++, k += 8) + { + b2char(bufRD[i], buf, k); + } + //解码 + + //aaa += num_read; + + for (long j = 0; j < k; j++) + { + int upflag = 0; + //如果为1,访问右节点,否则左节点 + if (buf[j]) + //如果要访问右节点 + if (rootNode.rchild == -1) //如果已经是叶节点 + { + if (rootNode.lchild != -1) + { + printf("r l error"); + exit(0); + } + targetindex = Nodeindex; + j--; + upflag = 1; + } + else + { + Nodeindex = rootNode.rchild; + rootNode = HT[Nodeindex]; + } + else + { + if (rootNode.lchild == -1) + { + if (rootNode.rchild != -1) + { + printf("l r error"); + exit(0); + } + targetindex = Nodeindex; + j--; + upflag = 1; + } + else + { + Nodeindex = rootNode.lchild; + rootNode = HT[Nodeindex]; + } + } + if (upflag) //如果找到了一个根结点 + { + bufWR[count_for_WR++] = (unsigned char)targetindex; + targetindex = -1; + Nodeindex = root[0]; + rootNode = HT[Nodeindex]; + } + } + //读文件更新 + offsetRD = num_read; //文件偏移 + //_fseeki64(stream_rd, offsetRD, SEEK_CUR); //注意,这样做不能随意更改文件流位置 + //写文件和文件更新 + num_written = fwrite(bufWR, sizeof(char), count_for_WR , stream_wr); + long long debug1 = _ftelli64(stream_wr); + /* + if (displayLoading == 1 ) + { + long long curpoision1 = _ftelli64(stream_wr); //得到当前加载位置 + double percent1 = (double)bbb / (double)aaa * 100; + cout << "Decoding perccent1: " << percent1 << "% " << endl; + } + + bbb += count_for_WR; + */ + count_for_WR = 0;//每次写完后清空 + offsetWR = num_written; +// _fseeki64(stream_wr, offsetWR, SEEK_CUR); + } + } + + //资源释放 + delete[] bufRD; + delete[] bufWR; + delete[] buf; + fclose(stream_rd); + fclose(stream_wr); + + //清空 + delete[] HC; + delete[] HT; +} +int main() +{ + /* + unsigned char a[17] = "0110001111000001"; + unsigned char b[80]; + char2b(a, b); + */ + /* + unsigned char a = 127; + unsigned char code[8]; + b2char(a, code, 0); + */ + const char *FILE_RD = "1.exe"; //原文件 + const char *FILE_WR = "2.exe"; //待写入的文件 + const char *FILE_RE = "3.exe"; //解码出的文件 + for (int i = 0; i < chFreqSize; i++) + chFreq[i] = 0; + //读取和统计二进制文件频率 + read_count_bitFile(FILE_RD); + + //构造HUFFMAN TREE以及编码 + HNode *HT = new HNode[2 * chFreqSize - 1]; + HCode *HC = new HCode[chFreqSize]; + HuffmanCoding(HT, HC, chFreq, chFreqSize); + //写入文件 + write_bitFile(FILE_RD, FILE_WR, HT, HC, chFreqSize); + //HUFFMAN解码 + HuffmanDecoding(FILE_WR, FILE_RE); + //清空 + delete[] HC; + delete[] HT; + + return 0; +} + +/* +#include +#include +using namespace std; + +long print_get_FileSize(const char * filename) +{ + + long l, m; + ifstream in(filename, ios::in | ios::binary); + l = in.tellg(); + in.seekg(0, ios::end); + m = in.tellg(); + in.close(); + cout << "size of " << filename; + cout << " is " << (m - l) << " bytes.\n"; + return (m - l); +} +int read_count_file(const char * filename) +{ + +} +int main() +{ + char * buffer; + + + + + return 0; + +}*/ diff --git a/level1/p07_encrypt_decrypt/README.md b/level1/p07_encrypt_decrypt/README.md new file mode 100644 index 00000000..2cd9e4da --- /dev/null +++ b/level1/p07_encrypt_decrypt/README.md @@ -0,0 +1,6 @@ +### 功能要求: + +1. 分别编写“加密”、“解密”函数,输入为任意长度的字符串 + + +MY program:Huffman encoding.This program can deal with any format below 4GB. \ No newline at end of file diff --git a/level1/p08_hanoi/README.md b/level1/p08_hanoi/README.md new file mode 100644 index 00000000..859be942 --- /dev/null +++ b/level1/p08_hanoi/README.md @@ -0,0 +1,5 @@ +### 功能要求: + +1.汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 + +![](./hanoi.jpg) \ No newline at end of file diff --git a/level1/p08_hanoi/hanoi.cpp b/level1/p08_hanoi/hanoi.cpp new file mode 100644 index 00000000..1abcf45a --- /dev/null +++ b/level1/p08_hanoi/hanoi.cpp @@ -0,0 +1,21 @@ +#include +//Let f(n) be the solution of n plates.So just let f(n-1) move to temp storage pillar,the left one plate to +//the target pillar.At last move (n-1) plates in temp storage pillar to target pillar. +//Obviously,Recursion is a good method to solve this problem. +void hanoi(int n,char current_storage_pillar,char temp_storage_pillar,char target_storage_pillar) +{ + if(n==1) + { + printf("%c->%c ",current_storage_pillar,target_storage_pillar); + return; + } + hanoi(n-1,current_storage_pillar,target_storage_pillar,temp_storage_pillar); + printf("%c->%c ",current_storage_pillar,target_storage_pillar); + hanoi(n-1,temp_storage_pillar,current_storage_pillar,target_storage_pillar); +} +int main() +{ + hanoi(4,'A','B','C'); + printf("\n"); + return 0; +} \ No newline at end of file diff --git a/level1/p08_hanoi/hanoi.jpg b/level1/p08_hanoi/hanoi.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f596da2cd66b9406bd038f276756cf004b77a978 GIT binary patch literal 9997 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 RO#310OGok!$11G(e*kU_l2!l! literal 0 HcmV?d00001 diff --git a/level1/p09_maze/README.md b/level1/p09_maze/README.md new file mode 100644 index 00000000..469cfb33 --- /dev/null +++ b/level1/p09_maze/README.md @@ -0,0 +1,7 @@ +### 题目:迷宫小游戏(基于console) + +### 功能要求: + +1. 在控制台上显示一个迷宫,包括:墙、玩家、出口等; +1. 通过上下左右键,控制玩家行走; +1. 当玩家到达出口,则显示玩家赢得了游戏; \ No newline at end of file diff --git a/level1/p09_maze/maze.cpp b/level1/p09_maze/maze.cpp new file mode 100644 index 00000000..bce1d79b --- /dev/null +++ b/level1/p09_maze/maze.cpp @@ -0,0 +1,591 @@ +/*todolist +1.read map; +2.print map&you; +3.move it:1)input;2)canyoumove?; +4.judge if you win; +5.score;*/ +#include +#include +#include +#define W 219 +#define P 232 +#define K 224 +#define E 215 + +unsigned char screen[22][22]; +void map(int level); +void print_map(void); +void judge(int level); +void gotoxy(int x, int y); + +int main(void) +{ + char input; + + system("chcp 437"); + system("mode con cols=23 lines=23"); + system("cls"); + + printf("Maze\n"); + printf("Info:Use \"w\" \"a\" \"s\" \"d\" to move,and you should"); + printf("get the %c to open the door(%c)\n",K,E); + printf("please choose a map:\n"); + printf("1 2 q.quit\n"); + while((input=getch())!='q') + { + switch(input) + { + case '1': + map(0); + judge(0); + break; + case '2': + map(1); + judge(1); + break; + case 'q': + return 0; + default: + ; + } + + map(-1); + system("cls"); + printf("Super Maze\n"); + printf("Info:Use \"w\" \"a\" \"s\" \"d\" to move,and you should"); + printf("get the %c to open the door(%c)\n",K,E); + printf("please choose a map:\n"); + printf("1 2 q.quit\n"); + + } + + + return 0; +} +void map(int level) +{ + int i,j; + + for(i=0;i<22;i++) + { + screen[i][0]=W; + screen[i][21]=W; + } + for(j=1;j<21;j++) + { + screen[0][j]=W; + screen[21][j]=W; + } + + if(level==0) + { + + for(i=8;i<11;i++) + { + screen[i][1]=W; + } + screen[4][1]=W; + screen[14][1]=W; + screen[16][1]=W; + + for(i=2;i<=14;i=i+2) + { + if(i!=8) + { + screen[i][2]=W; + } + } + for(i=16;i<20;i++) + { + screen[i][2]=W; + } + + for(i=1;i<15;i++) + { + if(i!=3&&i!=5&&i!=9&&i!=11 + &&i!=13) + { + screen[i][3]=W; + } + } + + screen[1][4]=W; + screen[4][4]=W; + screen[8][4]=W; + screen[12][4]=W; + screen[14][4]=W; + for(i=16;i<21;i++) + { + if(i!=18) + { + screen[i][4]=W; + } + } + + for(i=1;i<13;i++) + { + if(i!=2&&i!=7) + { + screen[i][5]=W; + } + } + screen[14][5]=W; + screen[16][5]=W; + screen[19][5]=W; + + screen[1][6]=W; + screen[3][6]=W; + screen[8][6]=W; + screen[16][6]=W; + screen[18][6]=W; + screen[19][6]=W; + + for(i=1;i<8;i=i+2) + { + screen[i][7]=W; + } + screen[8][7]=W; + for(i=10;i<19;i++) + { + if(i!=17) + { + screen[i][7]=W; + } + } + + for(i=3;i<8;i=i+2) + { + screen[i][8]=W; + } + screen[10][8]=W; + screen[16][8]=W; + screen[18][8]=W; + screen[19][8]=W; + + for(i=2;i<15;i++) + { + if(i!=4&&i!=6&&i!=8&&i!=11) + { + screen[i][9]=W; + } + } + + screen[5][10]=W; + screen[7][10]=W; + for(i=10;i<20;i++) + { + if(i!=13&&i!=15) + { + screen[i][10]=W; + } + } + + for(i=1;i<9;i++) + { + if(i!=4&&i!=6) + { + screen[i][11]=W; + } + } + screen[11][11]=W; + screen[14][11]=W; + screen[16][11]=W; + + screen[5][12]=W; + screen[8][12]=W; + screen[9][12]=W; + for(i=13;i<21;i++) + { + screen[i][12]=W; + } + + screen[1][13]=W; + for(i=3;i<12;i++) + { + screen[i][13]=W; + } + + screen[1][14]=W; + screen[3][14]=W; + screen[7][14]=W; + for(i=11;i<21;i++) + { + if(i!=16) + { + screen[i][14]=W; + } + } + + for(i=3;i<20;i=i+2) + { + if(i!=13) + { + screen[i][15]=W; + } + } + + for(i=3;i<20;i=i+2) + { + if(i!=15) + { + screen[i][16]=W; + } + } + screen[2][16]=W; + + for(i=5;i<20;i=i+2) + { + screen[i][17]=W; + } + for(i=14;i<18;i++) + { + screen[i][17]=W; + } + + screen[16][18]=W; + for(i=1;i<6;i++) + { + screen[i][18]=W; + } + for(i=7;i<12;i=i+2) + { + screen[i][18]=W; + } + screen[19][18]=W; + + screen[3][19]=W; + screen[11][19]=W; + for(i=7;i<10;i++) + { + screen[i][19]=W; + } + for(i=13;i<20;i++) + { + if(i!=17) + { + screen[i][19]=W; + } + } + + screen[1][20]=W; + screen[11][20]=W; + screen[5][20]=W; + + screen[0][2]=P; + screen[21][15]=E; + screen[8][18]=K; + } + else if(level==1) + { + for(i=5;i<8;i++) + { + screen[i][1]=W; + } + screen[11][1]=W; + screen[15][1]=W; + + for(i=1;i<14;i=i+2) + { + if(i!=5) + { + screen[i][2]=W; + } + } + for(i=15;i<19;i++) + { + screen[i][2]=W; + } + + for(i=3;i<6;i++) + { + screen[i][3]=W; + } + for(i=9;i<14;i=i+2) + { + screen[i][3]=W; + } + screen[18][3]=W; + screen[20][3]=W; + + screen[2][4]=W; + screen[3][4]=W; + for(i=5;i<10;i++) + { + screen[i][4]=W; + } + for(i=13;i<17;i++) + { + screen[i][4]=W; + } + screen[18][4]=W; + + screen[5][5]=W; + screen[12][5]=W; + screen[13][5]=W; + screen[16][5]=W; + screen[18][5]=W; + screen[19][5]=W; + + for(i=1;i<13;i++) + { + if(i!=4&&i!=6) + { + screen[i][6]=W; + } + } + screen[14][6]=W; + screen[16][6]=W; + + screen[5][7]=W; + screen[14][7]=W; + for(i=16;i<20;i++) + { + screen[i][7]=W; + } + + screen[1][8]=W; + screen[16][8]=W; + screen[19][8]=W; + for(i=3;i<15;i++) + { + if(i!=11) + { + screen[i][8]=W; + } + } + + screen[6][9]=W; + screen[10][9]=W; + screen[16][9]=W; + screen[17][9]=W; + + screen[1][10]=W; + screen[3][10]=W; + for(i=4;i<9;i=i+2) + { + screen[i][10]=W; + } + for(i=10;i<15;i++) + { + screen[i][10]=W; + } + screen[16][10]=W; + screen[19][10]=W; + + for(i=4;i<19;i=i+2) + { + if(i!=6&&i!=12) + { + screen[i][11]=W; + } + } + screen[19][11]=W; + + for(i=1;i<9;i++) + { + if(i!=3) + { + screen[i][12]=W; + } + } + for(i=10;i<17;i=i+2) + { + screen[i][12]=W; + } + screen[19][12]=W; + + screen[4][13]=W; + screen[10][13]=W; + screen[12][13]=W; + screen[16][13]=W; + screen[17][13]=W; + screen[19][13]=W; + + for(i=2;i<18;i++) + { + if(i!=5) + { + screen[i][14]=W; + } + } + + screen[2][15]=W; + screen[4][15]=W; + screen[14][15]=W; + screen[17][15]=W; + screen[19][15]=W; + screen[20][15]=W; + + for(i=1;i<13;i++) + { + if(i!=3) + { + screen[i][16]=W; + } + } + screen[16][16]=W; + screen[17][16]=W; + + screen[2][17]=W; + screen[6][17]=W; + screen[19][17]=W; + for(i=12;i<17;i++) + { + screen[i][17]=W; + } + + for(i=2;i<11;i=i+2) + { + screen[i][18]=W; + } + screen[9][18]=W; + screen[18][18]=W; + + for(i=2;i<9;i=i+2) + { + screen[i][19]=W; + } + screen[3][19]=W; + screen[20][19]=W; + for(i=10;i<19;i++) + { + screen[i][19]=W; + } + + screen[8][20]=W; + + screen[0][15]=P; + screen[0][17]=E; + screen[16][15]=K; + } + else if(level==-1) + { + for(i=0;i<22;i++) + { + for(j=0;j<22;j++) + { + screen[i][j]=' '; + } + } + } +} +void print_map(void) +{ + int i,j; + + system("cls"); + for(i=0;i<22;i++) + { + for(j=0;j<22;j++) + { + printf("%c",screen[i][j]); + } + printf("\n"); + } +} +void judge(int level) +{ + char move; + int i,j,k,l,m,n; + + if(level==0) + { + i=0; + j=2; + k=21; + l=15; + m=8; + n=18; + } + else if(level==1) + { + i=0; + j=15; + k=0; + l=17; + m=16; + n=15; + } + print_map(); + while(screen[k][l]!=P) + { + gotoxy(j,i); + move=getch(); + switch(move) + { + case 'w': + if(i!=0&&screen[i-1][j]!=W&&screen[i-1][j]!=E)//did not come to the final. + { + screen[i][j]=' '; + gotoxy(j,i); + printf("%c",screen[i][j]); + i--; + screen[i][j]=P; + gotoxy(j,i); + printf("%c",screen[i][j]); + } + break; + case 's': + if(i!=21&&screen[i+1][j]!=W&&screen[i+1][j]!=E) + { + screen[i][j]=' '; + gotoxy(j,i); + printf("%c",screen[i][j]); + i++; + screen[i][j]=P; + gotoxy(j,i); + printf("%c",screen[i][j]); + } + break; + case 'a': + if(j!=0&&screen[i][j-1]!=W&&screen[i][j-1]!=E) + { + screen[i][j]=' '; + gotoxy(j,i); + printf("%c",screen[i][j]); + j--; + screen[i][j]=P; + gotoxy(j,i); + printf("%c",screen[i][j]); + } + break; + case 'd': + if(j!=21&&screen[i][j+1]!=W&&screen[i][j+1]!=E) + { + + screen[i][j]=' '; + gotoxy(j,i); + printf("%c",screen[i][j]); + j++; + screen[i][j]=P; + gotoxy(j,i); + printf("%c",screen[i][j]); + } + break; + case 27: + return ; + default: + ; + } + if(screen[m][n]!=K&&screen[k][l]!=P) + { + screen[k][l]=' '; + gotoxy(l,k); + printf("%c",screen[k][l]); + } + + } + system("cls"); + printf("YOU WIN!\n"); + system("pause"); +} +//MFC set Console Cursor Position +void gotoxy(int x, int y) +{ + HANDLE hOutput; + COORD coo; + coo.X = x; + coo.Y = y; + hOutput = GetStdHandle(STD_OUTPUT_HANDLE); + SetConsoleCursorPosition(hOutput, coo); +} diff --git a/level1/p10_pushBoxes/README.md b/level1/p10_pushBoxes/README.md new file mode 100644 index 00000000..5895c0d2 --- /dev/null +++ b/level1/p10_pushBoxes/README.md @@ -0,0 +1,9 @@ +### 题目:推箱子小游戏(基于console) + +### 功能要求: + +1. 将p09迷宫游戏改造为“推箱子”游戏; +1. 在地图中增加箱子、箱子目标位置等图形; +1. 当玩家将所有箱子归位,则显示玩家赢得了游戏; +1. 按玩家走动步数记分; +1. 设计多个关卡,每一关的地图从文件中读取,玩家每关的分数记录到文件中; \ No newline at end of file diff --git a/level1/p10_pushBoxes/pushBoxes.cpp b/level1/p10_pushBoxes/pushBoxes.cpp new file mode 100644 index 00000000..10e1dee4 --- /dev/null +++ b/level1/p10_pushBoxes/pushBoxes.cpp @@ -0,0 +1,513 @@ +#include +#include +#include +#define P 148 //player-1 +#define G 176 //goal-2 +#define B 177 //box-3 +#define BG 178 //box on goal-4 +#define W 219 //wall-5 +#define PG 232 //player on goal-6 +/*todolist +1.read map; +2.print map&you; +3.move it:1)input;2)canyoumove?; +4.judge if you win; +5.score;*/ +void gotoxy(int x,int y); +void print_map(void); +void print_block(int n); +void move(int level); +bool judge(int level); +int wasd(int * x,int * y,char way); +void load_map(int n); + +int block[20][20];//0:空位 1:人物 2:目标位置 3:箱子 4:放在目标位置的箱子 5:墙 6:站在目标位置的人物 +int score=0; + +int main(void) +{ + char jud; + + system("chcp 437"); + system("mode con cols=32 lines=23"); + system("cls"); + + printf("Push Box\n"); + printf("Please choose a map\n"); + printf("1 2 3 4 5 6 7 q.quit\n"); + while((jud=getch())!='q') + { + system("cls"); + score=0; + switch(jud) + { + case '1': + load_map(0); + print_map(); + move(0); + break; + case '2': + load_map(1); + print_map(); + move(1); + break; + case '3': + load_map(2); + print_map(); + move(2); + break; + case '4': + load_map(3); + print_map(); + move(3); + break; + case '5': + load_map(4); + print_map(); + move(4); + break; + case '6': + load_map(5); + print_map(); + move(5); + break; + case '7': + load_map(6); + print_map(); + move(6); + break; + case 'q': + return 0; + default: + ; + } + system("cls"); + printf("Push Box\n"); + printf("Please choose a map\n"); + printf("1 2 3 4 5 6 7 q.quit\n"); + } + + return 0; +} +void move(int level) +{ + int i,j; + char jud; + + if(level==0) + { + i=4; + j=3; + } + else if(level==1) + { + i=1; + j=1; + } + else if(level==2) + { + i=3; + j=2; + } + else if(level==3) + { + i=2; + j=1; + } + else if(level==4) + { + i=1; + j=2; + } + else if(level==5) + { + i=1; + j=8; + } + else if(level==6) + { + i=3; + j=8; + } + while(judge(level)) + { + jud=getch(); + if(!wasd(&i,&j,jud)) + { + return; + } + gotoxy(21,0); + printf("score:%4d",score); + } + system("cls"); + printf("You win!\n"); + printf("Your step is %4d.\n",score); + system("pause"); + +} +int wasd(int * x,int * y,char way) +{ + int di,dj; + + switch(way) + { + case 'w': + di=-1; + dj=0; + break; + case 's': + di=1; + dj=0; + break; + case 'a': + di=0; + dj=-1; + break; + case 'd': + di=0; + dj=1; + break; + case 27: + return 0; + default: + return; + } + if(block[*x+di][*y+dj]==0) + { + if(block[*x][*y]==6) + { + block[*x][*y]=2; + block[*x+di][*y+dj]=1; + } + else if(block[*x][*y]==1) + { + block[*x][*y]=0; + block[*x+di][*y+dj]=1; + } + + gotoxy(*y,*x); + print_block(block[*x][*y]); + *x=*x+di; + *y=*y+dj; + gotoxy(*y,*x); + print_block(block[*x][*y]); + score++; + } + else if(block[*x+di][*y+dj]==2) + { + if(block[*x][*y]==6) + { + block[*x][*y]=2; + block[*x+di][*y+dj]=6; + } + else if(block[*x][*y]==1) + { + block[*x][*y]=0; + block[*x+di][*y+dj]=6; + } + + gotoxy(*y,*x); + print_block(block[*x][*y]); + *x=*x+di; + *y=*y+dj; + gotoxy(*y,*x); + print_block(block[*x][*y]); + score++; + } + else if(block[*x+di][*y+dj]==3) + { + if(block[*x][*y]==6) + { + if(block[*x+2*di][*y+2*dj]==0) + { + block[*x+2*di][*y+2*dj]=3; + block[*x+di][*y+dj]=1; + block[*x][*y]=2; + score++; + } + else if(block[*x+2*di][*y+2*dj]==2) + { + block[*x+2*di][*y+2*dj]=4; + block[*x+di][*y+dj]=1; + block[*x][*y]=2; + score++; + } + else + { + return; + } + } + else + { + if(block[*x+2*di][*y+2*dj]==0) + { + block[*x+2*di][*y+2*dj]=3; + block[*x+di][*y+dj]=1; + block[*x][*y]=0; + score++; + } + else if(block[*x+2*di][*y+2*dj]==2) + { + block[*x+2*di][*y+2*dj]=4; + block[*x+di][*y+dj]=1; + block[*x][*y]=0; + score++; + } + else + { + return; + } + } + gotoxy(*y,*x); + print_block(block[*x][*y]); + *x=*x+di; + *y=*y+dj; + gotoxy(*y,*x); + print_block(block[*x][*y]); + gotoxy(*y+dj,*x+di); + print_block(block[*x+di][*y+dj]); + } + else if(block[*x+di][*y+dj]==4) + { + if(block[*x][*y]==6) + { + if(block[*x+2*di][*y+2*dj]==0) + { + block[*x+2*di][*y+2*dj]=3; + block[*x+di][*y+dj]=6; + block[*x][*y]=2; + score++; + } + else if(block[*x+2*di][*y+2*dj]==2) + { + block[*x+2*di][*y+2*dj]=4; + block[*x+di][*y+dj]=6; + block[*x][*y]=2; + score++; + } + else + { + return; + } + } + else + { + if(block[*x+2*di][*y+2*dj]==0) + { + block[*x+2*di][*y+2*dj]=3; + block[*x+di][*y+dj]=6; + block[*x][*y]=0; + score++; + } + else if(block[*x+2*di][*y+2*dj]==2) + { + block[*x+2*di][*y+2*dj]=4; + block[*x+di][*y+dj]=6; + block[*x][*y]=0; + score++; + } + else + { + return; + } + } + gotoxy(*y,*x); + print_block(block[*x][*y]); + *x=*x+di; + *y=*y+dj; + gotoxy(*y,*x); + print_block(block[*x][*y]); + gotoxy(*y+dj,*x+di); + print_block(block[*x+di][*y+dj]); + } + + return 1; +} +//It's obviously tough to use C,if use C++ just use string +(Operator overloading),for C,we could use strcat +void load_map(int n) +{ + FILE *fp; + int i,j; + + if(n==0) + { + fp=fopen("map1.txt","r"); + } + else if(n==1) + { + fp=fopen("map2.txt","r"); + } + else if(n==2) + { + fp=fopen("map3.txt","r"); + } + else if(n==3) + { + fp=fopen("map4.txt","r"); + } + else if(n==4) + { + fp=fopen("map5.txt","r"); + } + else if(n==5) + { + fp=fopen("map6.txt","r"); + } + else if(n==6) + { + fp=fopen("map7.txt","r"); + } + for(i=0;i<20;i++) + { + for(j=0;j<20;j++) + { + fscanf(fp,"%d",&block[i][j]); + } + } + fclose(fp); + +} +void print_block(int n) +{ + if(n==0) + { + putchar(' '); + } + else if(n==1) + { + putchar(P); + } + else if(n==2) + { + putchar(G); + } + else if(n==3) + { + putchar(B); + } + else if(n==4) + { + putchar(BG); + } + else if(n==5) + { + putchar(W); + } + else if(n==6) + { + putchar(PG); + } + +} +bool judge(int level) +{ + if(level==0) + { + if(block[3][1]==4&&block[1][4]==4&& + block[4][6]==4&&block[6][3]==4) + { + return 0; + } + else + { + return 1; + } + } + else if(level==1) + { + if(block[3][7]==4&&block[4][7]==4&& + block[5][7]==4) + { + return 0; + } + else + { + return 1; + } + } + else if(level==2) + { + if(block[4][2]==4&&block[4][3]==4&& + block[5][2]==4&&block[5][3]==4) + { + return 0; + } + else + { + return 1; + } + } + else if(level==3) + { + if(block[5][1]==4&&block[6][3]==4&& + block[6][1]==4&&block[6][2]==4&& + block[6][4]==4) + { + return 0; + } + else + { + return 1; + } + } + else if(level==4) + { + if(block[4][1]==4&&block[5][1]==4&& + block[6][1]==4) + { + return 0; + } + else + { + return 1; + } + } + else if(level==5) + { + if(block[6][1]==4&&block[6][2]==4&& + block[6][3]==4&&block[6][4]==4&& + block[6][5]==4) + { + return 0; + } + else + { + return 1; + } + } + else if(level==6) + { + if(block[2][2]==4&&block[3][2]==4&& + block[4][2]==4&&block[3][1]==4&& + block[4][1]==4) + { + return 0; + } + else + { + return 1; + } + } +} +void print_map(void) +{ + int i,j; + + for(i=0;i<20;i++) + { + for(j=0;j<20;j++) + { + print_block(block[i][j]); + } + printf("\n"); + } +} +void gotoxy(int x, int y) +{ + HANDLE hOutput; + COORD coo; + coo.X = x; + coo.Y = y; + hOutput = GetStdHandle(STD_OUTPUT_HANDLE); + SetConsoleCursorPosition(hOutput, coo); +} \ No newline at end of file diff --git a/level1/p11_linkedList/README.md b/level1/p11_linkedList/README.md new file mode 100644 index 00000000..6e8c0435 --- /dev/null +++ b/level1/p11_linkedList/README.md @@ -0,0 +1,9 @@ +### 题目:单向链表 + +### 功能要求: + +1. 在main函数中创建一个单向链表; +1. 遍历该链表,依次现实各节点的value; +1. 将该链表所有节点反序; +1. 在该链表中查找第一个值为5的节点,如果找到则返回该节点的序号,否则返回-1; +1. 查找下一个值为5的节点,返回值同上; \ No newline at end of file diff --git a/level1/p11_linkedList/linkedList.c b/level1/p11_linkedList/linkedList.c new file mode 100644 index 00000000..d420ac38 --- /dev/null +++ b/level1/p11_linkedList/linkedList.c @@ -0,0 +1,112 @@ +#include +#include +#include + +struct list +{ + int num; + int value; + struct list *next; +}; +void display(struct list *head); +void is_five(struct list *head); +struct list *exchange(struct list *head, int n); +struct list *move(struct list *head, int n); +int main(void) +{ + struct list *_link, *_head, *q; + int m, i = 0, j; + + _link = q = (struct list *)malloc(sizeof(struct list)); + + printf("Now you can start to enter the value.(q to quit)\n"); + _head = NULL; + while (1 == scanf("%d", &m)&& m!=-1) + { + if (0 == i) + { + _head = _link; + } + else + { + _link->next = q; + _link = q; + } + _link->num = i + 1; + _link->value = m; + + q = (struct list *)malloc(sizeof(struct list)); + + i++; + } + _link->next = NULL; + free(q); + display(_head); + _head = exchange(_head, i); + is_five(_head); + + system("pause"); + + return 0; +} +void display(struct list *head) +{ + struct list *cp; + + cp = head; + while (cp != NULL) + { + printf("No.%d is %d\n", cp->num, cp->value); + cp = cp->next; + } +} +struct list *move(struct list *head, int n) +{ + struct list *cp; + int i; + + cp = head; + for (i = 0; i < n - 1; i++) + { + cp = cp->next; + } + + return cp; +} +struct list *exchange(struct list *head, int n) +{ + struct list *ch1, *ch2; + int i; + + ch1 = head; + ch2 = move(ch1, n); + head = ch2; + for (i = n; i > 1; i--) + { + ch2->next = move(ch1, i - 1); + ch2 = ch2->next; + } + ch2->next = NULL; + + return head; +} +void is_five(struct list *head) +{ + struct list *ch; + bool flag = 0; + ch = head; + while (ch != NULL) + { + if (5 == ch->value) + { + printf("%d\n", ch->num); + flag = 1; + } + ch = ch->next; + } + + if (!flag) + { + printf("-1\n"); + } +} \ No newline at end of file diff --git a/level1/p12_warehouse/README.md b/level1/p12_warehouse/README.md new file mode 100644 index 00000000..cd146f6a --- /dev/null +++ b/level1/p12_warehouse/README.md @@ -0,0 +1,11 @@ +### 题目:简单进销存 + +### 功能要求: + +1. 实现如下的菜单(按数字选择菜单功能): + - 显示存货列表 + - 入库 + - 出库 + - 退出程序 +1. 实现菜单对应功能(需记录货物的型号、数量等信息); +1. 程序启动时从文件中读取当前库存数据,退出时保存库存数据; \ No newline at end of file diff --git a/level1/p12_warehouse/warehouse.c b/level1/p12_warehouse/warehouse.c new file mode 100644 index 00000000..b7eaee53 --- /dev/null +++ b/level1/p12_warehouse/warehouse.c @@ -0,0 +1,172 @@ +#include +#include +#include + +typedef struct goods +{ + char name[16],size[4]; + long long int amount; + +}GOODS; + +void menu(GOODS * Goods,int * n); +void write(GOODS * Goods,int n); +void display(GOODS * Goods,int n); +void input(GOODS** Goods,int * n); +void output(GOODS** Goods,int * n); +long long int is_num(void); + +int main(void){ + FILE *fp; + int max,i; + + fp=fopen("warehouse.txt","r"); + fscanf(fp,"%d",&max); + + GOODS list[100]; + for(i=0;i=0)return n; + else return 0; + +} \ No newline at end of file diff --git a/level2/GA/README.md b/level2/GA/README.md new file mode 100644 index 00000000..a0673755 --- /dev/null +++ b/level2/GA/README.md @@ -0,0 +1,11 @@ +### 题目:寻径GA(遗传算法) + +### 要求: + +1. 任意给出一个迷宫地图(参见level1/p09_maze),采用GA实现一个算法,寻找最佳路径 +1. 绘制出最佳路径 +1. 打印运算时间 + +### 参考: + +[遗传算法入门](http://blog.csdn.net/zzwu/article/details/561577) \ No newline at end of file diff --git a/level2/NeuralNetworks/README.md b/level2/NeuralNetworks/README.md new file mode 100644 index 00000000..29e3fba2 --- /dev/null +++ b/level2/NeuralNetworks/README.md @@ -0,0 +1,10 @@ +### 题目:数字识别 & 神经网络 + +### 要求: + +1. 在一个8*8的点阵中绘制(模拟)手写的数字 +1. 设计并训练一个神经网络,以识别手写的数字 + +### 参考: + +[神经网络入门](http://blog.csdn.net/zzwu/article/details/574931) \ No newline at end of file diff --git a/level2/PI/README.md b/level2/PI/README.md new file mode 100644 index 00000000..c19ad35f --- /dev/null +++ b/level2/PI/README.md @@ -0,0 +1,11 @@ +### 题目:PI(2014级陈飞宇大神挖坑) + +### 要求: + +1. 计算PI,精度>1万位(够黑啊!) +1. 打印总时间 +1. 打印内存消耗的最大值 + +### 参考: + +[2014级柱神作品](https://github.com/holdzhu/uestc2015ccpp/tree/master/Pi) (做完本题后再看啊!!!) \ No newline at end of file From d9a46806f38308a0fa450721aef31e9670e8188e Mon Sep 17 00:00:00 2001 From: NONOThingC <14366189@qq.com> Date: Sun, 10 Mar 2019 13:27:36 +0800 Subject: [PATCH 2/7] --- level0/bubbleSort/README_BACKUP_11416.md | 10 ---------- level0/bubbleSort/README_BACKUP_2856.md | 10 ---------- level0/bubbleSort/README_BASE_11416.md | 0 level0/bubbleSort/README_BASE_2856.md | 0 level0/bubbleSort/README_LOCAL_11416.md | 10 ---------- level0/bubbleSort/README_LOCAL_2856.md | 10 ---------- level0/bubbleSort/README_REMOTE_11416.md | 10 ---------- level0/bubbleSort/README_REMOTE_2856.md | 10 ---------- level1/p07_encrypt_decrypt/README.md | 4 +--- 9 files changed, 1 insertion(+), 63 deletions(-) delete mode 100644 level0/bubbleSort/README_BACKUP_11416.md delete mode 100644 level0/bubbleSort/README_BACKUP_2856.md delete mode 100644 level0/bubbleSort/README_BASE_11416.md delete mode 100644 level0/bubbleSort/README_BASE_2856.md delete mode 100644 level0/bubbleSort/README_LOCAL_11416.md delete mode 100644 level0/bubbleSort/README_LOCAL_2856.md delete mode 100644 level0/bubbleSort/README_REMOTE_11416.md delete mode 100644 level0/bubbleSort/README_REMOTE_2856.md diff --git a/level0/bubbleSort/README_BACKUP_11416.md b/level0/bubbleSort/README_BACKUP_11416.md deleted file mode 100644 index e3d3a32b..00000000 --- a/level0/bubbleSort/README_BACKUP_11416.md +++ /dev/null @@ -1,10 +0,0 @@ -### 题目:冒泡排序 - -### 功能要求: - -1. 采用冒泡算法实现一个排序算法 -1. 构造一个正整数数组,测试该冒泡算法 -1. 测试不同情况下的执行时间 - -### 参考: -[冒泡排序-百度百科](http://baike.baidu.com/link?url=mk5B_WaNbOLIbgx-pjQ45OkfTe14BCxcz1C6ZS86AsAduhwNKFM_Q3kqIK-6a6VDh6XKpd-VW8PR1IvaU1FhYTUqqnh5n4ovRUALgFvGox3nEmhkpALdhpvYxfbTkLGpDL90SiatgfuWCWujleIA8E3FUL3qJmC0TnEQN7kD1fHxmhq6uZeVXeTNfxlURvAd) diff --git a/level0/bubbleSort/README_BACKUP_2856.md b/level0/bubbleSort/README_BACKUP_2856.md deleted file mode 100644 index e3d3a32b..00000000 --- a/level0/bubbleSort/README_BACKUP_2856.md +++ /dev/null @@ -1,10 +0,0 @@ -### 题目:冒泡排序 - -### 功能要求: - -1. 采用冒泡算法实现一个排序算法 -1. 构造一个正整数数组,测试该冒泡算法 -1. 测试不同情况下的执行时间 - -### 参考: -[冒泡排序-百度百科](http://baike.baidu.com/link?url=mk5B_WaNbOLIbgx-pjQ45OkfTe14BCxcz1C6ZS86AsAduhwNKFM_Q3kqIK-6a6VDh6XKpd-VW8PR1IvaU1FhYTUqqnh5n4ovRUALgFvGox3nEmhkpALdhpvYxfbTkLGpDL90SiatgfuWCWujleIA8E3FUL3qJmC0TnEQN7kD1fHxmhq6uZeVXeTNfxlURvAd) diff --git a/level0/bubbleSort/README_BASE_11416.md b/level0/bubbleSort/README_BASE_11416.md deleted file mode 100644 index e69de29b..00000000 diff --git a/level0/bubbleSort/README_BASE_2856.md b/level0/bubbleSort/README_BASE_2856.md deleted file mode 100644 index e69de29b..00000000 diff --git a/level0/bubbleSort/README_LOCAL_11416.md b/level0/bubbleSort/README_LOCAL_11416.md deleted file mode 100644 index e3d3a32b..00000000 --- a/level0/bubbleSort/README_LOCAL_11416.md +++ /dev/null @@ -1,10 +0,0 @@ -### 题目:冒泡排序 - -### 功能要求: - -1. 采用冒泡算法实现一个排序算法 -1. 构造一个正整数数组,测试该冒泡算法 -1. 测试不同情况下的执行时间 - -### 参考: -[冒泡排序-百度百科](http://baike.baidu.com/link?url=mk5B_WaNbOLIbgx-pjQ45OkfTe14BCxcz1C6ZS86AsAduhwNKFM_Q3kqIK-6a6VDh6XKpd-VW8PR1IvaU1FhYTUqqnh5n4ovRUALgFvGox3nEmhkpALdhpvYxfbTkLGpDL90SiatgfuWCWujleIA8E3FUL3qJmC0TnEQN7kD1fHxmhq6uZeVXeTNfxlURvAd) diff --git a/level0/bubbleSort/README_LOCAL_2856.md b/level0/bubbleSort/README_LOCAL_2856.md deleted file mode 100644 index e3d3a32b..00000000 --- a/level0/bubbleSort/README_LOCAL_2856.md +++ /dev/null @@ -1,10 +0,0 @@ -### 题目:冒泡排序 - -### 功能要求: - -1. 采用冒泡算法实现一个排序算法 -1. 构造一个正整数数组,测试该冒泡算法 -1. 测试不同情况下的执行时间 - -### 参考: -[冒泡排序-百度百科](http://baike.baidu.com/link?url=mk5B_WaNbOLIbgx-pjQ45OkfTe14BCxcz1C6ZS86AsAduhwNKFM_Q3kqIK-6a6VDh6XKpd-VW8PR1IvaU1FhYTUqqnh5n4ovRUALgFvGox3nEmhkpALdhpvYxfbTkLGpDL90SiatgfuWCWujleIA8E3FUL3qJmC0TnEQN7kD1fHxmhq6uZeVXeTNfxlURvAd) diff --git a/level0/bubbleSort/README_REMOTE_11416.md b/level0/bubbleSort/README_REMOTE_11416.md deleted file mode 100644 index e3d3a32b..00000000 --- a/level0/bubbleSort/README_REMOTE_11416.md +++ /dev/null @@ -1,10 +0,0 @@ -### 题目:冒泡排序 - -### 功能要求: - -1. 采用冒泡算法实现一个排序算法 -1. 构造一个正整数数组,测试该冒泡算法 -1. 测试不同情况下的执行时间 - -### 参考: -[冒泡排序-百度百科](http://baike.baidu.com/link?url=mk5B_WaNbOLIbgx-pjQ45OkfTe14BCxcz1C6ZS86AsAduhwNKFM_Q3kqIK-6a6VDh6XKpd-VW8PR1IvaU1FhYTUqqnh5n4ovRUALgFvGox3nEmhkpALdhpvYxfbTkLGpDL90SiatgfuWCWujleIA8E3FUL3qJmC0TnEQN7kD1fHxmhq6uZeVXeTNfxlURvAd) diff --git a/level0/bubbleSort/README_REMOTE_2856.md b/level0/bubbleSort/README_REMOTE_2856.md deleted file mode 100644 index e3d3a32b..00000000 --- a/level0/bubbleSort/README_REMOTE_2856.md +++ /dev/null @@ -1,10 +0,0 @@ -### 题目:冒泡排序 - -### 功能要求: - -1. 采用冒泡算法实现一个排序算法 -1. 构造一个正整数数组,测试该冒泡算法 -1. 测试不同情况下的执行时间 - -### 参考: -[冒泡排序-百度百科](http://baike.baidu.com/link?url=mk5B_WaNbOLIbgx-pjQ45OkfTe14BCxcz1C6ZS86AsAduhwNKFM_Q3kqIK-6a6VDh6XKpd-VW8PR1IvaU1FhYTUqqnh5n4ovRUALgFvGox3nEmhkpALdhpvYxfbTkLGpDL90SiatgfuWCWujleIA8E3FUL3qJmC0TnEQN7kD1fHxmhq6uZeVXeTNfxlURvAd) diff --git a/level1/p07_encrypt_decrypt/README.md b/level1/p07_encrypt_decrypt/README.md index 99d9c05b..63a0b714 100644 --- a/level1/p07_encrypt_decrypt/README.md +++ b/level1/p07_encrypt_decrypt/README.md @@ -5,6 +5,4 @@ MY program:Huffman encoding.This program can deal with any format below 4GB. -======= -1. 分别编写“加密”、“解密”函数,输入为任意长度的字符串 ->>>>>>> 2dcb2410180f72e4d7a7cf866840b8333e79c4e5 + From b6045c4943fbb6b82c0e05fce8865b02c277b8ed Mon Sep 17 00:00:00 2001 From: NONOThingC <14366189@qq.com> Date: Thu, 14 Mar 2019 09:21:58 +0800 Subject: [PATCH 3/7] PI float precision is not so well --- course-C/PI.cpp | 2 +- level1/p05_allPrimes/is_Prime.cpp | 2 +- level2/NeuralNetworks/README.md | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/course-C/PI.cpp b/course-C/PI.cpp index 775339d7..f8680d11 100644 --- a/course-C/PI.cpp +++ b/course-C/PI.cpp @@ -2,7 +2,7 @@ //https://baike.baidu.com/item/%E6%A2%85%E9%92%A6%E5%85%AC%E5%BC%8F/9425108? #include #define MAX_RANGE /*(2 << 29 - 1)*/ 100000 -double arccot(int n,int digit) +double arccot(int n,int digit)//所以要怎么控制迭代经度呢?如果用浮点数就会产生问题 { for() } diff --git a/level1/p05_allPrimes/is_Prime.cpp b/level1/p05_allPrimes/is_Prime.cpp index dec77f82..34be6854 100644 --- a/level1/p05_allPrimes/is_Prime.cpp +++ b/level1/p05_allPrimes/is_Prime.cpp @@ -3,7 +3,7 @@ int main() { int n; - int funCode = 1; //zero is allPrimes,one is isPrime + int funCode = 0; //zero is allPrimes,one is isPrime while (scanf("%d", &n) == 1 && n > 1) { int A[MAX_RANGE] = {0}; //Use zero to represent this is a prime.Use one to represent this is a prime. diff --git a/level2/NeuralNetworks/README.md b/level2/NeuralNetworks/README.md index 29e3fba2..35c8ed10 100644 --- a/level2/NeuralNetworks/README.md +++ b/level2/NeuralNetworks/README.md @@ -7,4 +7,6 @@ ### 参考: -[神经网络入门](http://blog.csdn.net/zzwu/article/details/574931) \ No newline at end of file +[神经网络入门](http://blog.csdn.net/zzwu/article/details/574931) + +说实话,用C++写挺麻烦的,数据集也要自己生成。一般来说神经网络倒不是特别难写,不过要借助opencv的库。。。还是先把五子棋做完再来看看吧。 \ No newline at end of file From 6669157e49b6ed72cc1a7dbdb0c6bd75ddc228d6 Mon Sep 17 00:00:00 2001 From: NONOThingC <14366189@qq.com> Date: Thu, 14 Mar 2019 09:46:59 +0800 Subject: [PATCH 4/7] forget time --- level1/p05_allPrimes/is_Prime.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/level1/p05_allPrimes/is_Prime.cpp b/level1/p05_allPrimes/is_Prime.cpp index 34be6854..1a22ce4d 100644 --- a/level1/p05_allPrimes/is_Prime.cpp +++ b/level1/p05_allPrimes/is_Prime.cpp @@ -1,7 +1,9 @@ #include #define MAX_RANGE /*(2 << 29 - 1)*/ 100000 +#include int main() { + clock_t t1 = clock(); int n; int funCode = 0; //zero is allPrimes,one is isPrime while (scanf("%d", &n) == 1 && n > 1) @@ -23,6 +25,7 @@ int main() break; } } + clock_t t2 = clock(); if (!funCode) { for (int i = 2; i <= n; i++) @@ -34,5 +37,6 @@ int main() (!A[n]) ? printf("%d is prime ", n) : printf("%d is not prime ", n); } + printf("Execution time is: %fs\n", double(t2-t1)/CLOCKS_PER_SEC); } } \ No newline at end of file From 0435043a4d3c87d08e95ff1642f5474070583680 Mon Sep 17 00:00:00 2001 From: NONOThingC <14366189@qq.com> Date: Thu, 14 Mar 2019 09:53:50 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=A6=81=E6=B1=82?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E4=BB=A3=E7=A0=81=EF=BC=8C=E9=83=A8?= =?UTF-8?q?=E5=88=86=E9=A2=98=E7=94=B1=E4=BA=8E=E7=94=A8=E4=BA=86STL?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E6=94=B9=E6=88=90c=E8=A6=81=E6=B1=82?= =?UTF-8?q?=E7=9A=84=E6=A0=BC=E5=BC=8F=E4=BA=86...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- level1/p02_isPrime/{is_Prime.cpp => is_Prime.c} | 2 +- level1/p03_Diophantus/diu.cpp | 2 +- level1/p04_ narcissus/narcissus.cpp | 2 +- level1/p05_allPrimes/is_Prime.cpp | 5 +++-- .../{HuffmanCompress.cpp => encrypt_decrypt.cpp} | 0 level1/p08_hanoi/hanoi.cpp | 2 +- level1/p09_maze/{maze.cpp => maze.c} | 0 level1/p10_pushBoxes/{pushBoxes.cpp => pushBoxes.c} | 0 8 files changed, 7 insertions(+), 6 deletions(-) rename level1/p02_isPrime/{is_Prime.cpp => is_Prime.c} (98%) rename level1/p07_encrypt_decrypt/{HuffmanCompress.cpp => encrypt_decrypt.cpp} (100%) rename level1/p09_maze/{maze.cpp => maze.c} (100%) rename level1/p10_pushBoxes/{pushBoxes.cpp => pushBoxes.c} (100%) diff --git a/level1/p02_isPrime/is_Prime.cpp b/level1/p02_isPrime/is_Prime.c similarity index 98% rename from level1/p02_isPrime/is_Prime.cpp rename to level1/p02_isPrime/is_Prime.c index dec77f82..308cbb80 100644 --- a/level1/p02_isPrime/is_Prime.cpp +++ b/level1/p02_isPrime/is_Prime.c @@ -1,4 +1,4 @@ -#include +#include #define MAX_RANGE /*(2 << 29 - 1)*/ 100000 int main() { diff --git a/level1/p03_Diophantus/diu.cpp b/level1/p03_Diophantus/diu.cpp index 2d304075..2cacaefc 100644 --- a/level1/p03_Diophantus/diu.cpp +++ b/level1/p03_Diophantus/diu.cpp @@ -1,4 +1,4 @@ -#include +#include int main() { int i=0; diff --git a/level1/p04_ narcissus/narcissus.cpp b/level1/p04_ narcissus/narcissus.cpp index 5ed57a88..04457612 100644 --- a/level1/p04_ narcissus/narcissus.cpp +++ b/level1/p04_ narcissus/narcissus.cpp @@ -1,4 +1,4 @@ -#include +#include void get_threeDigit_Number(const int targetnumber,int *digit_number) { int i=targetnumber; diff --git a/level1/p05_allPrimes/is_Prime.cpp b/level1/p05_allPrimes/is_Prime.cpp index 1a22ce4d..ba84c74b 100644 --- a/level1/p05_allPrimes/is_Prime.cpp +++ b/level1/p05_allPrimes/is_Prime.cpp @@ -1,4 +1,4 @@ -#include +#include #define MAX_RANGE /*(2 << 29 - 1)*/ 100000 #include int main() @@ -25,7 +25,7 @@ int main() break; } } - clock_t t2 = clock(); + if (!funCode) { for (int i = 2; i <= n; i++) @@ -37,6 +37,7 @@ int main() (!A[n]) ? printf("%d is prime ", n) : printf("%d is not prime ", n); } + clock_t t2 = clock(); printf("Execution time is: %fs\n", double(t2-t1)/CLOCKS_PER_SEC); } } \ No newline at end of file diff --git a/level1/p07_encrypt_decrypt/HuffmanCompress.cpp b/level1/p07_encrypt_decrypt/encrypt_decrypt.cpp similarity index 100% rename from level1/p07_encrypt_decrypt/HuffmanCompress.cpp rename to level1/p07_encrypt_decrypt/encrypt_decrypt.cpp diff --git a/level1/p08_hanoi/hanoi.cpp b/level1/p08_hanoi/hanoi.cpp index 1abcf45a..c160c5e2 100644 --- a/level1/p08_hanoi/hanoi.cpp +++ b/level1/p08_hanoi/hanoi.cpp @@ -1,4 +1,4 @@ -#include +#include //Let f(n) be the solution of n plates.So just let f(n-1) move to temp storage pillar,the left one plate to //the target pillar.At last move (n-1) plates in temp storage pillar to target pillar. //Obviously,Recursion is a good method to solve this problem. diff --git a/level1/p09_maze/maze.cpp b/level1/p09_maze/maze.c similarity index 100% rename from level1/p09_maze/maze.cpp rename to level1/p09_maze/maze.c diff --git a/level1/p10_pushBoxes/pushBoxes.cpp b/level1/p10_pushBoxes/pushBoxes.c similarity index 100% rename from level1/p10_pushBoxes/pushBoxes.cpp rename to level1/p10_pushBoxes/pushBoxes.c From ef4660b6862fb94a11e7efa55f225932f044fde3 Mon Sep 17 00:00:00 2001 From: NONOThingC <14366189@qq.com> Date: Wed, 20 Mar 2019 13:23:39 +0800 Subject: [PATCH 6/7] level 1 completed,fix bug,delete redundancy file --- course-C/Goldbach.exe | Bin 126192 -> 0 bytes course-C/NerualNetwork.cpp | 0 course-C/PI.cpp | 13 ----- course-C/diu.exe | Bin 83643 -> 0 bytes course-C/hanoi.exe | Bin 84186 -> 0 bytes course-C/is_Prime.exe | Bin 121130 -> 0 bytes course-C/map.txt | 20 ------- course-C/narcissus.exe | Bin 84202 -> 0 bytes course-C/warehouse.txt | 0 .../{runningLetter.cpp => runningLetter.c} | 0 level1/p03_Diophantus/{diu.cpp => diu.c} | 0 .../{narcissus.cpp => narcissus.c} | 3 +- .../{is_Prime.cpp => is_Prime.c} | 0 level1/p07_encrypt_decrypt/Huffman.cpp | 50 ++++++++++-------- level1/p08_hanoi/{hanoi.cpp => hanoi.c} | 0 15 files changed, 30 insertions(+), 56 deletions(-) delete mode 100644 course-C/Goldbach.exe delete mode 100644 course-C/NerualNetwork.cpp delete mode 100644 course-C/PI.cpp delete mode 100644 course-C/diu.exe delete mode 100644 course-C/hanoi.exe delete mode 100644 course-C/is_Prime.exe delete mode 100644 course-C/map.txt delete mode 100644 course-C/narcissus.exe delete mode 100644 course-C/warehouse.txt rename level1/p01_runningLetter/{runningLetter.cpp => runningLetter.c} (100%) rename level1/p03_Diophantus/{diu.cpp => diu.c} (100%) rename level1/p04_ narcissus/{narcissus.cpp => narcissus.c} (85%) rename level1/p05_allPrimes/{is_Prime.cpp => is_Prime.c} (100%) rename level1/p08_hanoi/{hanoi.cpp => hanoi.c} (100%) diff --git a/course-C/Goldbach.exe b/course-C/Goldbach.exe deleted file mode 100644 index 714bf3062eda1aef55c99f6c5cee9bb2ba2726fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126192 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 diff --git a/course-C/NerualNetwork.cpp b/course-C/NerualNetwork.cpp deleted file mode 100644 index e69de29b..00000000 diff --git a/course-C/PI.cpp b/course-C/PI.cpp deleted file mode 100644 index f8680d11..00000000 --- a/course-C/PI.cpp +++ /dev/null @@ -1,13 +0,0 @@ -//Refer:https://blog.csdn.net/pilifeng1/article/details/82814997 -//https://baike.baidu.com/item/%E6%A2%85%E9%92%A6%E5%85%AC%E5%BC%8F/9425108? -#include -#define MAX_RANGE /*(2 << 29 - 1)*/ 100000 -double arccot(int n,int digit)//所以要怎么控制迭代经度呢?如果用浮点数就会产生问题 -{ - for() -} -int main() -{ - double PI; - PI=4*(4*arccot(5)-arccot(239)); -} \ No newline at end of file diff --git a/course-C/diu.exe b/course-C/diu.exe deleted file mode 100644 index 92e95f611bdd1461ea10c17667a39629a61c80c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83643 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 Y7>nu|g0BqkR@Vc`ia%(oYTDxe0#rns5&!@I diff --git a/course-C/hanoi.exe b/course-C/hanoi.exe deleted file mode 100644 index ba309a71ad413b188cc66328e618c8682b56427f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84186 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 diff --git a/course-C/is_Prime.exe b/course-C/is_Prime.exe deleted file mode 100644 index 39024217c481c065e8f67e6cb8aafc25bad998ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121130 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 diff --git a/course-C/map.txt b/course-C/map.txt deleted file mode 100644 index a4fb6b16..00000000 --- a/course-C/map.txt +++ /dev/null @@ -1,20 +0,0 @@ -0 0 0 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 5 2 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -5 5 5 5 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -5 2 3 0 3 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 -5 5 5 1 3 0 2 5 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 5 3 5 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 5 2 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \ No newline at end of file diff --git a/course-C/narcissus.exe b/course-C/narcissus.exe deleted file mode 100644 index 4ec0ffff817ead9519717dfae3d92b7a9d96e831..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84202 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 {~6re`R^pyxq zb>l=nYisA`ljZCYyiAnSd9|og*-9c1BM{>IjBbj)tY{V4O`~pTWrIrK((GkCiA5-j zEgP|rOK0X%Mek*kHeGfayG{i&d=JV_7R!AWbD+s8v^2oCX=#9QAe$eoFqZtD&{1a* zD^BKTU6dhHEN2UO_0mjBjC@6w{ER_wD5O4UfHS-_CY93PC+D`sU^?S{(p)w>>o>EbPtnM_}H616ZiJ3XG6$zo}a_nTMb=k2bQAbZyFMMi@x=k^p`^6 z;VcCfda~P>n5v1p{ITchOuh`&W-|2619!4Ck<8|1XEM&7xZ7LEli@}(slrT}fUv5u zDp0I|87|&oOvRMWOvUzHR&AYfQ3>rXhf0$<*v)5>Sp*X01Eun4DKj&O_hyG@bmYWa zqh|ptA~y|P(;0kLS}5aS&~09;a*9=8=q5%eE|%j8GsoJBXz^|BaNW5$-r@+yL}7{< z`c$ergKt#hJFCc!{wGQ0I*P_jC2G63bNf9Vc2$my;xqMwVK){JkM<3_BjM<9FMo_W zJk)20N7r3A17a!FLmN83?8BMdG3k)LYw@ZCeXaVHczA$%`NE9X!c>ZgGa2>Z0+nS7 zjRs|D-@enyOwYRf@&!8M2L;^fEmrbFvmq0?4`+_CvnyNr(o-czCA;*#99Z8y+SS2b zATda$(;fpP3MU{u#fG-%XHaVh#EPlP;wGYTFM|4CD18@6#r+_6KXtYU$PwzUdeB>W z+FB`&+n>#+V`1qK6_-87hNwqZM%|MsOS=BTOemekOUDtkS7;Sj^{FweD5qiDxWV40*`MdKRb<%SF~QdcyR{bnMdz4eYIngiUAFc zPUP4|MOH3`8aY9}d}*GWIzn}+uEY#TUmm4vd~b&g;U}>nKSgF50T_L?3)jsj^S-DYvqn$)1E{pA*ZJj&sY2N`pIlt;yNR#yG?8JmT9p9lir#;Sa%# z9IjUyFvy|1i@t-$?mE=gPG%P9ziP3loxGrI3UV}0a>dPYIcbs?`gtU~&l1DNWNJE{ z6HU%tU?@)EMx~h}Etf~PqPLO*WYt-Dm)uu*m;9yiuFlS#oiKCFUXUgjMGBH}9(zYH z>!M~vDBtaXS7pc1r{M3ynVEbhw{wS^gn>Cq)A)$T?dX3Yt1mG;!d)_5`U)j4(0<2V z474x?nR6#*^ROyYi8*Mb)YsD+k7knTo@3=qcuppclym#Dm^mbKqxqxgJDhl?Jeud8 zHth|d`m;FP9RJrMhranL)$eFp%O%A=uA2>jRY`<)YCphsj^!viII*J4o|5z?eyl8eA9@+d@_Y%p_|R3 z(0ZRUENtxc;arKe+m1q%_vX+EdDf~vrjBrsD-rXy)jOIDVRSY)VJt zTA_tU83%$R12{b=em{14~LqH2{(PGyos!-qK<>6Yf1*jP~@oy77ID!Y0>Sx~aq z(@STALCTn#$foNprYJ8eR@ex^=|~m#=b9=~Rl#IcjHSwjtRh~} zb2P!ij>k2i%fUBG1WUB}Ldj_CWYC3z8tN=FW3~8Ni$_{L+{>h)SJqs`l0jEaR8dvE z$zmBZWH~!Vh7!*fF|@<2MVe2GkR*dNZl{ZuiPlmopj)Mgjwx%}S+G;6X7xxYVMYjF z_b!}X?kK6{T#Otbq}_c30+!^#}Wu|NmSy;Q2Al|pwJQ*}60k<3{2 zAv0Hrjoy%Fx^#rPL9`Y<<}tc2T{yKwL$#^b8(FHnL0&NqKu0dUMD%#E%#3(vdOn4Q zfcdO9m{GwvQSc(P_Aa_nfLhK@dKJea<&Gp3LR4>-k53hjqC@lCPdJ}fiiMUWXw+NL z7|C=Il$96MtoUHAuKB&SRwm>^caY8$Y1P{|K9oH>$@EQ^dH7N#lr1ojgk_+x= z{^rm|?)YQ#Ef`8Txz-3&8I#+YuSX&6)h#P?sElS~j&KzZmL}hJfYo8{l}$&WQCEc& z-sU1R`=%!g^j<`EaTHuscn&`ieL$=5>`pXeyFN(?gsS z6DfP -void get_threeDigit_Number(const int targetnumber,int *digit_number) +void getThreeDigitNumber(const int targetnumber,int *digit_number) { int i=targetnumber; int j=0; @@ -23,7 +23,6 @@ int main() if(sum==i){ printf("%d ",i); } - } return 0; } \ No newline at end of file diff --git a/level1/p05_allPrimes/is_Prime.cpp b/level1/p05_allPrimes/is_Prime.c similarity index 100% rename from level1/p05_allPrimes/is_Prime.cpp rename to level1/p05_allPrimes/is_Prime.c diff --git a/level1/p07_encrypt_decrypt/Huffman.cpp b/level1/p07_encrypt_decrypt/Huffman.cpp index 66d81539..d688c8be 100644 --- a/level1/p07_encrypt_decrypt/Huffman.cpp +++ b/level1/p07_encrypt_decrypt/Huffman.cpp @@ -4,19 +4,20 @@ void HuffmanCoding(HNode *HT, HCode *HC, unsigned long long *w, const int n) { //初始化 int m = 2 * n - 1; - HNode* p = HT; + HNode *p = HT; int i = 0; - for (; i < n; i++, p++, w++) + //听取俸爷建议,重构此处代码 + for (; i < n+m; i++, p++) { - p->weight = *w; - p->lchild = -1; - p->rchild = -1; - p->parent = -1; - } - - for (; i < m; i++, p++) - { - p->weight = 0; + if (i >= n) + { + p->weight = 0; + } + else + { + p->weight = *w; + w++; + } p->lchild = -1; p->rchild = -1; p->parent = -1; @@ -25,34 +26,41 @@ void HuffmanCoding(HNode *HT, HCode *HC, unsigned long long *w, const int n) for (i = n; i < m; i++) { long long min1 = MAXVALUE, min2 = MAXVALUE; - int min1id = 0, min2id = 0;//min1是最小的,min2次小 + int min1id = 0, min2id = 0; //min1是最小的,min2次小 for (int j = 0; j < i; j++) { if (HT[j].parent == -1 && HT[j].weight < min1) { - min2 = min1; min2id = min1id; min1 = HT[j].weight; min1id = j; + min2 = min1; + min2id = min1id; + min1 = HT[j].weight; + min1id = j; } else if (HT[j].parent == -1 && HT[j].weight < min2) { - min2 = HT[j].weight; min2id = j; + min2 = HT[j].weight; + min2id = j; } } - HT[min1id].parent = i; HT[min2id].parent = i; - HT[i].lchild = min1id; HT[i].rchild = min2id; + HT[min1id].parent = i; + HT[min2id].parent = i; + HT[i].lchild = min1id; + HT[i].rchild = min2id; HT[i].weight = min1 + min2; } //做字符编码 - for (int j = 0; j < n; j++) { int start = n - 1; - for (int tempid = j,tempparent = HT[j].parent; tempparent != -1; tempid = tempparent, tempparent = HT[tempparent].parent) + for (int tempid = j, tempparent = HT[j].parent; tempparent != -1; tempid = tempparent, tempparent = HT[tempparent].parent) { - if (HT[tempparent].lchild == tempid) { + if (HT[tempparent].lchild == tempid) + { HC[j].bit[start--] = 0; } - else HC[j].bit[start--] = 1; + else + HC[j].bit[start--] = 1; } - HC[j].start = start + 1;//记录根节点位置 + HC[j].start = start + 1; //记录根节点位置 } } \ No newline at end of file diff --git a/level1/p08_hanoi/hanoi.cpp b/level1/p08_hanoi/hanoi.c similarity index 100% rename from level1/p08_hanoi/hanoi.cpp rename to level1/p08_hanoi/hanoi.c From 2934f29f4c5e4db00383cec04ba0728ff5035f00 Mon Sep 17 00:00:00 2001 From: NONOThingC <14366189@qq.com> Date: Sat, 29 Jun 2019 23:33:47 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E4=BA=94=E5=AD=90=E6=A3=8B=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wuziqi/wuziqi/wuziqi.cpp | 1507 ++++++++++++++++++ "wuziqi/wuziqi/\346\203\263\346\263\225.txt" | 7 + 2 files changed, 1514 insertions(+) create mode 100644 wuziqi/wuziqi/wuziqi.cpp create mode 100644 "wuziqi/wuziqi/\346\203\263\346\263\225.txt" diff --git a/wuziqi/wuziqi/wuziqi.cpp b/wuziqi/wuziqi/wuziqi.cpp new file mode 100644 index 00000000..4044b551 --- /dev/null +++ b/wuziqi/wuziqi/wuziqi.cpp @@ -0,0 +1,1507 @@ +#include "pch.h" +#include "stdio.h" +#include "graphics.h" +#include "conio.h" +#include "windows.h" + +void init_system(); //初始化系统 +void close_system(); //关闭系统 +void init_globales(); //初始化参数 + +void play_chess(); //开始五子棋游戏 +void gamestart(); //开始下棋 +int count_xyk_by_message(MOUSEMSG *m, int *x, int *y, int *a, int *b); //计算鼠标所在区域状态 +int judge(int a, int b, int c); //判断胜负条件 +void regret(int x2, int y2, int chessbox[][2]); //悔棋 +void battleAI(); //AI对战程序 +void AIdecideNext(int *x, int *y, int *a, int *b, int num); //AI决策函数返回数组中下棋的下标。 +int MaxMinSearch(int deep, int alpha, int beta, int num); //alpha-beta搜索 +int generator(int num); //生成棋子位置 +int evaluate(int num); //评估全局面棋子得分 +int evaluate_point(int x, int y, int num); //单个点棋子得分 + +void draw_chessmen(int x, int y, int num, int a, int b); //绘制黑白棋子 +void draw_chessboard(); //画棋盘、菜单、状态框,画标题 +void text(); //绘制标题 +void draw_menu(); //绘制菜单 +void over_black(); //绘制黑棋胜字样 +void over_white(); //绘制白棋胜字样 +void position(); //绘制状态栏及内容 +void text_black(); //绘制黑棋下字样 +void text_white(); //绘制白棋下字样 +void draw_regret(int m, int n, int x2, int y2); //所有悔棋情况 +void draw_re(int x2, int y2); //绘制悔棋棋子 + + +int m_x0, m_y0, m_wh = 40, m_x01, m_y01; //对战区坐标 +int m_x_box, m_y_box, m_x_box1, m_y_box1; //棋盘起始坐标 +int m_x_chess, m_y_chess, m_x_chess1, m_y_chess1; //可下棋坐标 +int m_row = 14, m_row1 = 15; +int num = 0; //步数,偶数轮到黑棋下,奇数轮到白棋下 +int chessbox[255][2]; +int l_chess_range, r_chess_range, u_chess_range,d_chess_range; +int init_visit=1; + + +int Score_point[15][15];//评分数组 +int minmax_result_x, minmax_result_y; +int chess[15][15] = { 0 };//记录棋盘上棋子信息 +#define GAME_RUNNING 1 +#define GAME_OVER 0 +#define MOUSE_POS_ELSE 99 +#define MOUSE_POS_AREA 1 +#define NUM_BLACK 10 +#define NUM_WHITE 20 +#define MOUSE_POS_START 100 +#define MOUSE_POS_REGRET 200 +#define GAME_ROBOT 3 +#define Inf 2 << 20 + +int main() +{ + init_system(); + + draw_chessboard(); + + play_chess(); + + close_system(); + + return 0; +} +/*================================================ +== 函数名:AIdecideNext +== 功 能:AI对战系统 +== 参 数: + int *x, int *y:交叉点横纵坐标 + int *a, int *b:交叉点对应二维数组下标 + level:难度 +== 返回值:无 +=================================================*/ +void AIdecideNext(int *x, int *y, int *a, int *b, int num) +{ + //初始化一些变量start + int deep = 6,beta= Inf,alpha= -Inf; + //初始化一些变量end + int AI_color = num % 2; //偶数0轮到黑棋下,奇数1轮到白棋下 + //alpha beta剪枝开始 + MaxMinSearch(deep,alpha,beta,AI_color); + //alpha beta剪枝结束,结果放在 minmax_result_x,minmax_result_y中 + *a = minmax_result_x; + *b = minmax_result_y; + //得到数组坐标后进行转换 + *x = (*b) * m_wh + m_x0; //坐标横坐标 + *y = (*a) * m_wh + m_y0; //得到后传出 + +} +/*================================================ +== 函数名:evaluate +== 功 能:评估局面分数 +== 参 数: + int num下棋数目 +== 返回值:局面分数 +=================================================*/ +int evaluate(int num)//0就是黑棋将下,1白棋将下 +{ + int x, y, i, j, k; //循环变量 + int number1 = 0, number2 = 0; //number用来统计玩家或电脑棋子连成个数 + int empty = 0; //empty用来统计空点个数 + int player_score = 0, AI_score = 0;//先记下来,后面优化可能用这个 + for (x = 0; x < 15; x++) //把评分数组先清零 + for (y = 0; y < 15; y++) + Score_point[x][y] = 0; + for (x = 0; x < 15; x++) + { + for (y = 0; y < 15; y++) + { + if (chess[x][y] == 0) //如果这个点为空 + { + for (i = -1; i <= 1; i++) + { + for (j = -1; j <= 1; j++) //判断8个方向 + { + if (i != 0 || j != 0) //若是都为0的话,那不就是原坐标嘛 + { + //对玩家落点评分 + for (k = 1; i <= 4; k++) //循环4次 + { //这点没越界 且这点存在黑子(玩家) + if (x + k * i >= 0 && x + k * i <= 14 && + y + k * j >= 0 && y + k * j <= 14 && + chess[x + k * i][y + k * j] == NUM_BLACK) + { + number1++; + } + else if (chess[x + k * i][y + k * j] == 0) //这点是个空点,+1后退出 + { + empty++; + break; + } + else //否则是墙或者对方的棋子了 + { + break; + } + } + for (k = -1; k >= -4; k--) //向它的相反方向判断 + { //这点没越界 且这点存在黑子(玩家) + if (x + k * i >= 0 && x + k * i <= 14 && + y + k * j >= 0 && y + k * j <= 14 && + chess[x + k * i][y + k * j] == NUM_BLACK) + { + number1++; + } + else if (chess[x + k * i][y + k * j] == 0) //这点是个空点,+1后退出 + { + empty++; + break; + } + else + { + break; + } + } + if (number2 == 1) //2个棋子 + { + Score_point[x][y] += 100; + player_score += 100; + + } + else if (number1 == 2) //3个棋子 + { + if (empty == 1) + { + Score_point[x][y] += 100; //有一个空点+5分 死3 + player_score += 100; + } + else if (empty == 2) + { + Score_point[x][y] += 1000; //有两个空点+10分 活3 + player_score += 1000; + } + } + else if (number1 == 3) //4个棋子 + { + if (empty == 1) + { + Score_point[x][y] += 1000; //有一个空点+20分 死4 + player_score += 1000; + } + else if (empty == 2) + { + Score_point[x][y] += 10000; //有2个空点+100分 活4 + player_score += 10000; + } + } + else if (number1 >= 4) + { + Score_point[x][y] += 100000; //对方有5个棋子,分数要高点,先堵 + player_score += 100000; + } + empty = 0; //统计空点个数的变量清零 + //对电脑落点评分 + for (k = 1; i <= 4; k++) //循环4次 + { //这点没越界 且这点存在白子(电脑) + if (x + k * i >= 0 && x + k * i <= 14 && + y + k * j >= 0 && y + k * j <= 14 && + chess[x + k * i][y + k * j] == NUM_WHITE) + { + number2++; + } + else if (chess[x + k * i][y + k * j] == 0) + { + empty++; break; //空点 + } + else + { + break; + } + } + for (k = -1; k >= -4; k--) //向它的相反方向判断 + { + if (x + k * i >= 0 && x + k * i <= 14 && + y + k * j >= 0 && y + k * j <= 14 && + chess[x + k * i][y + k * j] == NUM_WHITE) + { + number2++; + } + else if (chess[x + k * i][y + k * j] == 0) + { + empty++; break; + } + else + { + break; //注释与上面玩家版相同 + } + } + if (number2 == 0) + { + Score_point[x][y] += 10; //1个棋子 + AI_score += 10; + } + else if (number2 == 1) + { + Score_point[x][y] += 100; //2个棋子 + AI_score += 100; + } + else if (number2 == 2) //3个棋子 + { + if (empty == 1) + { + Score_point[x][y] += 100; //死3 + AI_score += 100; + } + else if (empty == 2) + { + Score_point[x][y] += 1000; //活3 + AI_score += 1000; + } + } + else if (number2 == 3) //4个棋子 + { + if (empty == 1) + { + Score_point[x][y] += 1000; //死4 + AI_score += 1000; + } + else if (empty == 2) + { + Score_point[x][y] += 10000; //活4 + AI_score += 10000; + } + } + else if (number2 >= 4) + { + Score_point[x][y] += 100000; //自己落在这点能形成5个,也就能胜利了,分数最高 + AI_score += 100000; + } + + number1 = 0; //清零,以便下次重新统计 + number2 = 0; + empty = 0; + } + } + } + } + } + } + return (num % 2) ? AI_score : player_score;//死编码,后面如果有需要记得改 + +} +/*================================================ +== 函数名:evaluate_point +== 功 能:评估局面分数 +== 参 数: + int x,int y坐标 + int num下棋数 +== 返回值:单个点分数 +=================================================*/ +int evaluate_point(int x,int y,int num)//0就是黑棋将下,1白棋将下 +{ + int i, j, k; //循环变量 + int number1 = 0, number2 = 0; //number用来统计玩家或电脑棋子连成个数 + int empty = 0; //empty用来统计空点个数 + int player_score = 0, AI_score = 0;//先记下来,后面优化可能用这个 + + if (chess[x][y] == 0) //如果这个点为空 + { + for (i = -1; i <= 1; i++) + { + for (j = -1; j <= 1; j++) //判断8个方向 + { + if (i != 0 || j != 0) //若是都为0的话,那不就是原坐标嘛 + { + //对玩家落点评分 + for (k = 1; i <= 4; k++) //循环4次 + { //这点没越界 且这点存在黑子(玩家) + if (x + k * i >= 0 && x + k * i <= 14 && + y + k * j >= 0 && y + k * j <= 14 && + chess[x + k * i][y + k * j] == NUM_BLACK) + { + number1++; + } + else if (chess[x + k * i][y + k * j] == 0) //这点是个空点,+1后退出 + { + empty++; + break; + } + else //否则是墙或者对方的棋子了 + { + break; + } + } + for (k = -1; k >= -4; k--) //向它的相反方向判断 + { //这点没越界 且这点存在黑子(玩家) + if (x + k * i >= 0 && x + k * i <= 14 && + y + k * j >= 0 && y + k * j <= 14 && + chess[x + k * i][y + k * j] == NUM_BLACK) + { + number1++; + } + else if (chess[x + k * i][y + k * j] == 0) //这点是个空点,+1后退出 + { + empty++; + break; + } + else + { + break; + } + } + if (number2 == 1) //2个棋子 + { + + player_score += 100; + + } + else if (number1 == 2) //3个棋子 + { + if (empty == 1) + { + //有一个空点+5分 死3 + player_score += 100; + } + else if (empty == 2) + { + //有两个空点+10分 活3 + player_score += 1000; + } + } + else if (number1 == 3) //4个棋子 + { + if (empty == 1) + { + //有一个空点+20分 死4 + player_score += 1000; + } + else if (empty == 2) + { + //有2个空点+100分 活4 + player_score += 10000; + } + } + else if (number1 >= 4) + { + //对方有5个棋子,分数要高点,先堵 + player_score += 100000; + } + empty = 0; //统计空点个数的变量清零 + //对电脑落点评分 + for (k = 1; i <= 4; k++) //循环4次 + { //这点没越界 且这点存在白子(电脑) + if (x + k * i >= 0 && x + k * i <= 14 && + y + k * j >= 0 && y + k * j <= 14 && + chess[x + k * i][y + k * j] == NUM_WHITE) + { + number2++; + } + else if (chess[x + k * i][y + k * j] == 0) + { + empty++; break; //空点 + } + else + { + break; + } + } + for (k = -1; k >= -4; k--) //向它的相反方向判断 + { + if (x + k * i >= 0 && x + k * i <= 14 && + y + k * j >= 0 && y + k * j <= 14 && + chess[x + k * i][y + k * j] == NUM_WHITE) + { + number2++; + } + else if (chess[x + k * i][y + k * j] == 0) + { + empty++; break; + } + else + { + break; //注释与上面玩家版相同 + } + } + if (number2 == 0) + { + //1个棋子 + AI_score += 10; + } + else if (number2 == 1) + { + //2个棋子 + AI_score += 100; + } + else if (number2 == 2) //3个棋子 + { + if (empty == 1) + { + //死3 + AI_score += 100; + } + else if (empty == 2) + { + //活3 + AI_score += 1000; + } + } + else if (number2 == 3) //4个棋子 + { + if (empty == 1) + { + //死4 + AI_score += 1000; + } + else if (empty == 2) + { + //活4 + AI_score += 10000; + } + } + else if (number2 >= 4) + { + //自己落在这点能形成5个,也就能胜利了,分数最高 + AI_score += 100000; + } + + number1 = 0; //清零,以便下次重新统计 + number2 = 0; + empty = 0; + } + } + } + } + return (num % 2) ? AI_score : player_score;//死编码,后面如果有需要记得改 +} +/*================================================ +== 函数名:generator +== 功 能:计算新的点 +== 参 数: + int num下棋数 + int buff_for_sort[255][3]保存点,用于启发式函数数组,最后排序 +== 返回值:返回可行点数目 +=================================================*/ +int generator(int num, int buff_for_sort[255][3]) +{ + int funtion_code = 1;//1是启发式生成 + //求出可行范围,选取原则是棋子范围+2的矩形 + int left_range = (l_chess_range - 2 >= 0) ? l_chess_range - 2 : 0; + int right_range = ( r_chess_range<=12) ? r_chess_range + 2 : 14; + int down_range = (d_chess_range - 2 >= 0) ? d_chess_range - 2 : 0; + int up_range = (u_chess_range <= 12) ? u_chess_range + 2 : 14; + //可行范围内遍历点 + int count_possible_point = 0;//记录有多少个可行点 + int search_amount = 10;//每个可行范围只搜评分高的10个点,启发式函数用 + for (int i = left_range; i <= right_range; i++) + { + for (int j = down_range; j <= up_range; j++) + { + if (chess[i][j] != NUM_BLACK && chess[i][j] != NUM_WHITE)//此格子上没有棋子时候才统计 + { + if (funtion_code) + { + /*启发式函数用这*/ + buff_for_sort[count_possible_point][0] = evaluate_point(i, j, num);//0记录分数,1记录a,2记录b + } + + /*普通搜索用这里*/ + buff_for_sort[count_possible_point][1] = i;//[0]留出用于启发式函数存东西 + buff_for_sort[count_possible_point][2] = j; + + count_possible_point++; + } + } + } + if (funtion_code) + { + //把分数大的放前面,笨办法,随手写的冒泡,复杂度O(n^2)也算之前没有考虑清楚,应该直接上结构体数组方便用sort,复杂度O(nlogn) + for (int i = 0; i < count_possible_point-1; i++) + { + for (int j = i + 1; j < count_possible_point; j++) + { + if (buff_for_sort[i][0] < buff_for_sort[j][0]) + { + int t = buff_for_sort[i][0]; + buff_for_sort[i][0] = buff_for_sort[j][0]; + buff_for_sort[j][0] = t; + t = buff_for_sort[i][1]; + buff_for_sort[i][1] = buff_for_sort[j][1]; + buff_for_sort[j][1] = t; + t = buff_for_sort[i][2]; + buff_for_sort[i][2] = buff_for_sort[j][2]; + buff_for_sort[j][2] = t; + } + } + } + } + return count_possible_point; +} +/*================================================ +== 函数名:MaxMinSearch(int deep,int beta,int alpha,int num) +== 功 能:alpha-beta搜索,带启发式搜索功能 +== 参 数: + int deep 深度 + alpha, beta 分别代表了最大层的最大值和最小层的最小值 + +== 返回值:评估得分 +=================================================*/ +int MaxMinSearch(int deep,int alpha,int beta,int num) //alpha是最大 +{ + int heuristic_number = 10;//因为启发式函数已经排好序了,所以通常不用再搜那么多点,设置最多搜多少个点有好处。 + int buff_for_sort[255][3]; + for (int i = 0; i < 255; i++) + for (int j = 0; j < 3; j++) + buff_for_sort[i][j] = 0; + int count_possible_point=generator(num%2,buff_for_sort);//得到可以下子的点,num%2得到的和之前相同,也就是说如果是0就是黑棋将下,1白棋将下,generator改变了buff_for_sort + if (deep == 0 )//深度为0的时候直接评价返回 + return evaluate(num%2); // 根据局面评价函数直接返回,注意深度的层数,evaluate将返回一个人或者AI的分数 + else + { + int i = 0; + //深度为奇数或者偶数都可以 + int heuristic_range = (heuristic_number < count_possible_point) ? heuristic_number :count_possible_point;//因为启发式函数已经排好序了,所以通常不用再搜那么多点,找更小那个就行 + for (;i< heuristic_range;i++)//在可行点内 + { + //MakeNextMove + chess[buff_for_sort[i][1]][buff_for_sort[i][2]] = (num % 2) ? NUM_WHITE: NUM_BLACK;//假设下了这步棋,可行点处都是空棋,不用判断是不是空棋了 + int num_pass = (num == 1) ? 0 : 1;//传入相反棋的颜色 + int val = -MaxMinSearch(deep-1, -beta, -alpha, num_pass); + chess[buff_for_sort[i][1]][buff_for_sort[i][2]] = 0;//撤销假设棋子 + if (val >= beta)//在min层比beta大的不搜 + { + minmax_result_x = buff_for_sort[i][1];//记下最后走哪个点 + minmax_result_y = buff_for_sort[i][2];//记下最后走哪个点 + return beta; + } + /* + if (val <= alpha) + { + minmax_result_x = buff_for_sort[i][1];//记下最后走哪个点 + minmax_result_y = buff_for_sort[i][2];//记下最后走哪个点 + return alpha; + } + */ + if (val > alpha)//相当于只做了beta剪枝,因为转换了问题 + { + alpha = val; + } + } + //如果此时还没有找到 + i = i - 1; + minmax_result_x = buff_for_sort[i][1];//记下最后走哪个点 + minmax_result_y = buff_for_sort[i][2];//记下最后走哪个点 + return alpha; + } +} +/*================================================ +== 函数名:battleAI() +== 功 能:AI对战系统 +== 参 数:无 +== 返回值:无 +=================================================*/ +void battleAI() +{ + for (int ii = 0; ii < 15; ii++) + for (int jj = 0; jj < 15; jj++) + { + chess[ii][jj] = 0; + } + + draw_chessboard(); + num = 0; + int x1, y1; + x1 = m_x0 + m_wh * (m_row + 2); + y1 = m_y0 + m_wh * 5; + TCHAR str[] = _T("请下棋"); + settextstyle(m_wh, m_wh / 2 - 1, _T("楷体")); + setbkmode(OPAQUE); + settextcolor(WHITE); + outtextxy(x1 + 1, y1, str); + + int x, y; //鼠标坐标 + int pos; //鼠标状态 + int x2, y2; + int a, b; + int mstate = GAME_RUNNING; + MOUSEMSG m; + IMAGE img; + int exit_flag = 0; + + + while (1) + { + m = GetMouseMsg(); + pos = count_xyk_by_message(&m, &x, &y, &a, &b); //鼠标点击后就由m得到x,y,a,b + + switch (m.uMsg) + { + case WM_LBUTTONDOWN: + { + if (pos == MOUSE_POS_AREA) + { + if (chess[a][b] == NUM_BLACK || chess[a][b] == NUM_WHITE) + continue; //If there has existed + else + { + //people chess start + draw_chessmen(x, y, num, a, b); //画出刚下的棋 + chessbox[num][0] = a; //记录此步的位置 + chessbox[num][1] = b; + //text tip start + if (num % 2 == 0) + { + text_white(); + } + if (num % 2 != 0) + { + text_black(); + } + //text tip end + // 找出有棋子的矩形范围,方便后续操作start + if (init_visit) + { + l_chess_range = a; + r_chess_range = a; + u_chess_range = b; + d_chess_range = b; + } + else + { + l_chess_range = (l_chess_range > a) ? a : l_chess_range; + r_chess_range = (r_chess_range < a) ? a : r_chess_range; + u_chess_range = (u_chess_range < b) ? b : u_chess_range; + d_chess_range = (d_chess_range > b) ? b : d_chess_range; + + } + // 找出范围,方便后续操作end + num++; //步数++ + + x2 = x; //暂存刚才的那一步,用于悔棋 + y2 = y; + if (judge(a, b, NUM_BLACK)) + { + over_black(); + return; + } + if (judge(a, b, NUM_WHITE)) + { + over_white(); + return; + } + //people chess end + + //AI chess start + AIdecideNext(&x, &y, &a, &b, num); //AI计算下一步去哪里 + // 找出范围,方便后续操作start + l_chess_range = (l_chess_range > a) ? a : l_chess_range; + r_chess_range = (r_chess_range < a) ? a : r_chess_range; + u_chess_range = (u_chess_range < b) ? b : u_chess_range; + d_chess_range = (d_chess_range > b) ? b : d_chess_range; + // 找出范围,方便后续操作end + + draw_chessmen(x, y, num, a, b); //画出刚下的棋 + chessbox[num][0] = a; + chessbox[num][1] = b; + //text tip start + if (num % 2 == 0) + { + text_white(); + } + if (num % 2 != 0) + { + text_black(); + } + //text tip end + num++; + x2 = x; + y2 = y; + if (judge(a, b, NUM_BLACK)) + { + over_black(); + return; + } + if (judge(a, b, NUM_WHITE)) + { + over_white(); + return; + } + //AI chess end + } + } + /* AI暂不支持悔棋 + else if (pos == MOUSE_POS_REGRET) + { + regret(x2, y2, chessbox); + } + */ + else if (pos == GAME_OVER) + { + exit_flag = 1; + } + } + } + if (exit_flag) + break; //如果点了退出回退上个页面 + } +} +/*================================================ +== 函数名:init_system() +== 功 能:初始化系统 +== 参 数:无 +== 返回值:无 +=================================================*/ +void init_system() +{ + initgraph(1024, 768); + init_globales(); + l_chess_range = 0; + r_chess_range = 0; + u_chess_range = 0; + d_chess_range = 0; +} +/*================================================ +== 函数名:close_system() +== 功 能:关闭系统 +== 参 数:无 +== 返回值:无 +=================================================*/ +void close_system() +{ + _getch(); + closegraph(); +} +/*================================================ +== 函数名:init_globales() +== 功 能:初始化参数 +== 参 数:无 +== 返回值:无 +=================================================*/ +void init_globales() +{ + m_x0 = 1024 / 2 - (m_row / 2) * m_wh; /*小棋盘*/ + m_x01 = m_x0 + m_row * m_wh; + m_y0 = 768 / 2 - (m_row / 2) * m_wh; + m_y01 = m_y0 + m_row * m_wh; + + m_x_box = m_x0 - m_wh; /*大棋盘*/ + m_x_box1 = m_x01 + m_wh; + m_y_box = m_y0 - m_wh * 2; + m_y_box1 = m_y01 + m_wh; + + m_x_chess = m_x0 - m_wh / 2; /*可下棋区域*/ + m_y_chess = m_y0 - m_wh / 2; + m_x_chess1 = m_x01 + m_wh / 2; + m_y_chess1 = m_y01 + m_wh / 2; +} +/*================================================ +== 函数名:draw_chessboard() +== 功 能:画棋盘、菜单、状态框,画标题 +== 参 数:无 +== 返回值:无 +=================================================*/ +void draw_chessboard() +{ + //画棋盘 + int i; + setbkcolor(BLACK); + cleardevice(); /*用背景色清空屏幕*/ + setlinestyle(PS_SOLID, 1); + setlinecolor(WHITE); + rectangle(m_x_box, m_y_box, m_x_box1, m_y_box1); + setfillcolor(RGB(172, 81, 24)); + setfillstyle(BS_SOLID); + floodfill((m_x0 + m_x01) / 2, (m_y0 + m_y01) / 2, WHITE); + + setlinestyle(PS_SOLID, 2); + setlinecolor(BLACK); + rectangle(m_x0 - 4, m_y0 - 4, m_x01 + 4, m_y01 + 4); + + setlinestyle(PS_SOLID, 1); + setlinecolor(BLACK); + rectangle(m_x0, m_y0, m_x01, m_y01); + + for (i = m_x0 + m_wh; i < m_x01; i += m_wh) //绘制交叉线 + { + line(i, m_y0, i, m_y01); + } + for (i = m_y0 + m_wh; i < m_y01; i += m_wh) + { + line(m_x0, i, m_x01, i); + } + + setlinecolor(BLACK); + setfillcolor(BLACK); /*绘制画笔颜色以及填充颜色*/ + + fillcircle(m_x0 + m_wh * 3, m_y0 + m_wh * 3, 3); //绘制星位 + fillcircle(m_x0 + m_wh * 11, m_y0 + m_wh * 3, 3); + fillcircle(m_x0 + m_wh * 3, m_y0 + m_wh * 11, 3); + fillcircle(m_x0 + m_wh * 11, m_y0 + m_wh * 11, 3); + fillcircle(m_x0 + m_wh * 7, m_y0 + m_wh * 7, 3); + + draw_menu(); /*绘制菜单*/ + position(); /*绘制状态框*/ + text(); /*绘制标题*/ +} +/*================================================ +== 函数名:play_chess() +== 功 能:开始五子棋游戏 +== 参 数:无 +== 返回值:无 +=================================================*/ +void play_chess() +{ + int x, y; //鼠标坐标 + int pos; //鼠标状态 + int a, b; + MOUSEMSG m; + while (1) + { + m = GetMouseMsg(); + pos = count_xyk_by_message(&m, &x, &y, &a, &b); + + switch (m.uMsg) + { + case WM_LBUTTONDOWN: /*判别鼠标左键点击区域*/ + { + if (pos == MOUSE_POS_ELSE) + continue; //其他区域 + if (pos == MOUSE_POS_START) + { + gamestart(); //开始方框 + break; + } + if (pos == GAME_ROBOT) + { + battleAI(); //开始方框 + break; + } + if (pos == GAME_OVER) + exit(1); //结束方框 + } + } + } +} +/*================================================ +== 函数名:gamestart() +== 功 能:开始下棋 +== 参 数:无 +== 返回值:无 +=================================================*/ +void gamestart() +{ + draw_chessboard(); + + for(int ii=0;ii<15;ii++) + for (int jj = 0; jj < 15; jj++) + { + chess[ii][jj] = 0; + } + + num = 0; + + int x1, y1; + x1 = m_x0 + m_wh * (m_row + 2); + y1 = m_y0 + m_wh * 5; + TCHAR str[] = _T("请下棋"); + settextstyle(m_wh, m_wh / 2 - 1, _T("楷体")); + setbkmode(OPAQUE); + settextcolor(WHITE); + outtextxy(x1 + 1, y1, str); + + int x, y; //鼠标坐标 + int pos; //鼠标状态 + int x2, y2; + int a, b; + int mstate = GAME_RUNNING; + MOUSEMSG m; + IMAGE img; + int exit_flag = 0; + while (1) + { + m = GetMouseMsg(); + pos = count_xyk_by_message(&m, &x, &y, &a, &b); + + switch (m.uMsg) + { + case WM_LBUTTONDOWN: + { + if (pos == MOUSE_POS_AREA) + { + if (chess[a][b] == NUM_BLACK || chess[a][b] == NUM_WHITE) + continue; + else + { + draw_chessmen(x, y, num, a, b); + chessbox[num][0] = a; + chessbox[num][1] = b; + if (num % 2 == 0) + { + text_white(); + } + if (num % 2 != 0) + { + text_black(); + } + num++; + x2 = x; + y2 = y; + if (judge(a, b, NUM_BLACK)) + { + over_black(); + return; + } + if (judge(a, b, NUM_WHITE)) + { + over_white(); + return; + } + } + } + else if (pos == MOUSE_POS_REGRET) + { + regret(x2, y2, chessbox); + } + else if (pos == GAME_OVER) + { + exit_flag = 1; + } + } + } + if (exit_flag) + break; //如果点了退出回退上个页面 + } +} +/*============================================================================ +== 函数名:count_xyk_by_message(MOUSEMSG *m, int *x, int *y, int *a, int *b) +== 功 能:计算鼠标所在区域状态,并返回点击区域信息 +== 参 数:MOUSEMSG *m:鼠标信息 + int *x, int *y:交叉点横纵坐标 + int *a, int *b:交叉点对应二维数组下标 +== 返回值:MOUSE_POS_AREA :可下棋区域 + MOUSE_POS_START :菜单开始方框 + MOUSE_POS_REGRET:菜单悔棋方框 + GAME_OVER :菜单结束方框 + MOUSE_POS_ELSE :非功能区域 + GAME_ROBOT :人机对战区域 +==============================================================================*/ +int count_xyk_by_message(MOUSEMSG *m, int *x, int *y, int *a, int *b) +{ + int x1, y1; + + x1 = m->x; // 鼠标的x信息 + y1 = m->y; + + if ((x1 >= m_x_chess && x1 <= m_x_chess1) && (y1 >= m_y_chess && y1 <= m_y_chess1)) //鼠标点在可下棋范围内 + { + *x = m_x0 + (m->x - m_x_chess) / m_wh * m_wh; //交叉点横坐标等于这个转换公式 + *y = m_y0 + (m->y - m_y_chess) / m_wh * m_wh; + + *b = (*x - m_x_chess) / m_wh; //数组横坐标 + *a = (*y - m_y_chess) / m_wh; + + return (MOUSE_POS_AREA); + } + + if ((x1 >= m_x0 - m_wh * 4 && x1 <= m_x0 - m_wh * 2) && (y1 >= m_y0 + m_wh * 3 && y1 <= m_y0 + m_wh * 4)) + return (MOUSE_POS_START); + + if ((x1 >= m_x0 - m_wh * 4 && x1 <= m_x0 - m_wh * 2) && (y1 >= m_y0 + m_wh * 5 && y1 <= m_y0 + m_wh * 6)) + return (MOUSE_POS_REGRET); + + if ((x1 >= m_x0 - m_wh * 4 && x1 <= m_x0 - m_wh * 2) && (y1 >= m_y0 + m_wh * 7 && y1 <= m_y0 + m_wh * 8)) + return (GAME_OVER); + + if ((x1 >= m_x0 - m_wh * 4 && x1 <= m_x0 - m_wh * 2) && (y1 >= m_y0 + m_wh * 9 && y1 <= m_y0 + m_wh * 10)) + return (GAME_ROBOT); + + return (MOUSE_POS_ELSE); +} +/*========================================================================= +== 函数名:void regret(int x2, int y2, int chessbox[][2]) +== 功 能:悔棋 +== 参 数:int x2, int y2:棋子所在的交叉点坐标 + int chess[15][15]:交叉点棋子信息(判定是黑、白、无棋) + int chessbox[][2]:上一棋子数组下标 +== 返回值:无 +==========================================================================*/ +void regret(int x2, int y2, int chessbox[][2]) +{ + int amount = 1; + while (amount > 0) + { + int m, n; + m = chessbox[num - 1][0]; + n = chessbox[num - 1][1]; + draw_regret(m, n, x2, y2); + chess[m][n] = 0; + num = num - 1; + + if (num % 2 == 0) + { + text_black(); + } + if (num % 2 != 0) + { + text_white(); + } + amount--; + } +} +/*================================================ +== 函数名:draw_regret(int m, int n, int x2, int y2) +== 功 能:绘制所有悔棋情况 +== 参 数:int m, int n:棋子所在交叉点下标 + int x2, int y2:棋子所在交叉点坐标 +== 返回值:无 +=================================================*/ +void draw_regret(int m, int n, int x2, int y2) +{ + draw_re(x2, y2); + if (m == 3 && n == 3) + { + setlinecolor(BLACK); + setfillcolor(BLACK); /*绘制画笔颜色以及填充颜色*/ + fillcircle(m_x0 + m_wh * 3, m_y0 + m_wh * 3, 3); //绘制星位 + } + if (m == 3 && n == 11) + { + setlinecolor(BLACK); + setfillcolor(BLACK); /*绘制画笔颜色以及填充颜色*/ + fillcircle(m_x0 + m_wh * 11, m_y0 + m_wh * 3, 3); + } + if (m == 11 && n == 3) + { + setlinecolor(BLACK); + setfillcolor(BLACK); /*绘制画笔颜色以及填充颜色*/ + fillcircle(m_x0 + m_wh * 3, m_y0 + m_wh * 11, 3); + } + if (m == 11 && n == 11) + { + setlinecolor(BLACK); + setfillcolor(BLACK); /*绘制画笔颜色以及填充颜色*/ + fillcircle(m_x0 + m_wh * 11, m_y0 + m_wh * 11, 3); + } + if (m == 7 && n == 7) + { + setlinecolor(BLACK); + setfillcolor(BLACK); /*绘制画笔颜色以及填充颜色*/ + fillcircle(x2, y2, 3); + } + if (m == 0 && n == 0) + { + setlinecolor(RGB(172, 81, 24)); + setlinestyle(PS_SOLID, 1); + line(x2, y2, x2 - 15, y2); + line(x2, y2, x2, y2 - 15); + setlinestyle(PS_SOLID, 2); + setlinecolor(BLACK); + rectangle(m_x0 - 4, m_y0 - 4, m_x01 + 4, m_y01 + 4); + } + if (m == 0 && n == 14) + { + setlinecolor(RGB(172, 81, 24)); + setlinestyle(PS_SOLID, 1); + line(x2, y2, x2 + 15, y2); + line(x2, y2, x2, y2 - 15); + setlinestyle(PS_SOLID, 2); + setlinecolor(BLACK); + rectangle(m_x0 - 4, m_y0 - 4, m_x01 + 4, m_y01 + 4); + } + if (m == 14 && n == 0) + { + setlinecolor(RGB(172, 81, 24)); + setlinestyle(PS_SOLID, 1); + line(x2, y2, x2 - 15, y2); + line(x2, y2, x2, y2 + 15); + setlinestyle(PS_SOLID, 2); + setlinecolor(BLACK); + rectangle(m_x0 - 4, m_y0 - 4, m_x01 + 4, m_y01 + 4); + } + if (m == 14 && n == 14) + { + setlinecolor(RGB(172, 81, 24)); + setlinestyle(PS_SOLID, 1); + line(x2, y2, x2 + 15, y2); + line(x2, y2, x2, y2 + 15); + setlinestyle(PS_SOLID, 2); + setlinecolor(BLACK); + rectangle(m_x0 - 4, m_y0 - 4, m_x01 + 4, m_y01 + 4); + } + if ((n > 0 && n < 14) && m == 0) + { + setlinecolor(RGB(172, 81, 24)); + setlinestyle(PS_SOLID, 1); + line(x2, y2, x2, y2 - 15); + setlinestyle(PS_SOLID, 2); + setlinecolor(BLACK); + rectangle(m_x0 - 4, m_y0 - 4, m_x01 + 4, m_y01 + 4); + } + if ((n > 0 && n < 14) && m == 14) + { + setlinecolor(RGB(172, 81, 24)); + setlinestyle(PS_SOLID, 1); + line(x2, y2, x2, y2 + 15); + setlinestyle(PS_SOLID, 2); + setlinecolor(BLACK); + rectangle(m_x0 - 4, m_y0 - 4, m_x01 + 4, m_y01 + 4); + } + if ((m > 0 && m < 14) && n == 0) + { + setlinecolor(RGB(172, 81, 24)); + setlinestyle(PS_SOLID, 1); + line(x2, y2, x2 - 15, y2); + setlinestyle(PS_SOLID, 2); + setlinecolor(BLACK); + rectangle(m_x0 - 4, m_y0 - 4, m_x01 + 4, m_y01 + 4); + } + if ((m > 0 && m < 14) && n == 14) + { + setlinecolor(RGB(172, 81, 24)); + setlinestyle(PS_SOLID, 1); + line(x2, y2, x2 + 15, y2); + setlinestyle(PS_SOLID, 2); + setlinecolor(BLACK); + rectangle(m_x0 - 4, m_y0 - 4, m_x01 + 4, m_y01 + 4); + } +} +/*================================================ +== 函数名:draw_re(int x2, int y2) +== 功 能:绘制悔棋棋子 +== 参 数:int x2, int y2:棋子所在交叉点坐标 +== 返回值:无 +=================================================*/ +void draw_re(int x2, int y2) +{ + setlinecolor(RGB(172, 81, 24)); + setfillcolor(RGB(172, 81, 24)); + fillcircle(x2, y2, 15); + setlinecolor(BLACK); + setlinestyle(PS_SOLID, 1); + line(x2 - 15, y2, x2 + 15, y2); + line(x2, y2 - 15, x2, y2 + 15); +} +/*============================================================================= +== 函数名:draw_chessmen(int x, int y, int num, int a, int b) +== 功 能:绘制黑白棋子 +== 参 数:int x, int y :下棋交叉点横纵坐标 + int num :棋子数 + int a, int b :交叉点数组下标 + int chess[][15]:交叉点数组信息 +== 返回值:无 +===============================================================================*/ +void draw_chessmen(int x, int y, int num, int a, int b) +{ + if (num % 2 == 0) + { + setlinecolor(BLACK); + setfillcolor(BLACK); + fillcircle(x, y, 15); + chess[a][b] = NUM_BLACK; + } + + if (num % 2 != 0) + { + setlinecolor(WHITE); + setfillcolor(WHITE); + fillcircle(x, y, 15); + chess[a][b] = NUM_WHITE; + } +} +/*================================================ +== 函数名:text() +== 功 能:绘制标题 +== 参 数:无 +== 返回值:无 +=================================================*/ +void text() +{ + int x1, y1; + TCHAR str[] = _T("五 子 棋"); + settextstyle(m_wh, m_wh, _T("黑体")); + setbkcolor(RGB(172, 81, 24)); + settextcolor(BLACK); + x1 = m_x0 + m_wh * 3; + y1 = m_y0 - m_wh / 3 * 2 - 30; + outtextxy(x1, y1, str); +} +/*================================================ +== 函数名:judge(int a, int b, int c) +== 功 能:判断胜负条件 +== 参 数:int a,int b :数组下标(代表行和列) + int c :代表颜色 + int chess[][15]:代表棋子颜色 +== 返回值:无 +=================================================*/ +int judge(int a, int b, int c) +{ + int i, j, n1, n2; //i 表示行,j表示列 + while (1) + { + n1 = 0; + n2 = 0; + /*水平向左统计同种颜色棋子个数*/ + for (i = a, j = b; j >= 0; j--) + { + if (chess[i][j] == c) + n1++; + else + break; + } + /*水平向右统计同种颜色棋子个数*/ + for (i = a, j = b; j <= m_row1; j++) + { + if (chess[i][j] == c) + n2++; + else + break; + } + if (n1 + n2 - 1 >= 5) + { + return (1); + break; + } + /*垂直向上统计同种颜色棋子个数*/ + n1 = 0; + n2 = 0; + for (i = a, j = b; i >= 0; i--) + { + if (chess[i][j] == c) + n1++; + else + break; + } + /*垂直向下统计同种颜色棋子个数*/ + for (i = a, j = b; i <= m_row1; i++) + { + if (chess[i][j] == c) + n2++; + else + break; + } + if (n1 + n2 - 1 >= 5) + { + return (1); + break; + } + /*向左上方统计同种颜色棋子个数*/ + n1 = 0; + n2 = 0; + for (i = a, j = b; i >= 0, j >= 0; i--, j--) + { + if (chess[i][j] == c) + n1++; + else + break; + } + /*向右下方统计同种颜色棋子个数*/ + for (i = a, j = b; i <= m_row1, j <= m_row1; i++, j++) + { + if (chess[i][j] == c) + n2++; + else + break; + } + if (n1 + n2 - 1 >= 5) + { + return (1); + break; + } + /*向右上方统计同种颜色棋子个数*/ + n1 = 0; + n2 = 0; + for (i = a, j = b; i >= 0, j <= m_row1; i--, j++) + { + if (chess[i][j] == c) + n1++; + else + break; + } + /*向左下方统计同种颜色棋子个数*/ + for (i = a, j = b; i <= m_row1, j >= 0; i++, j--) + { + if (chess[i][j] == c) + n2++; + else + break; + } + + if (n1 + n2 - 1 >= 5) + { + return (1); + break; + } + return (0); + break; + } +} +/*================================================ +== 函数名:draw_menu() +== 功 能:绘制菜单 +== 参 数:无 +== 返回值:无 +=================================================*/ +void draw_menu() +{ + int x, y; + + setlinestyle(PS_SOLID, 1); + setlinecolor(WHITE); + + x = m_x0 - m_wh * 4; + y = m_y0 + m_wh * 3; + rectangle(x, y, x + m_wh * 2, y + m_wh); //开始方框 + setfillcolor(RGB(172, 81, 24)); + setfillstyle(BS_SOLID); + floodfill(x + 1, y + 1, WHITE); + TCHAR str1[] = _T("双人"); + settextstyle(m_wh - 2, m_wh / 2 - 2, _T("楷体")); + setbkcolor(RGB(172, 81, 24)); + settextcolor(BLACK); + outtextxy(x + 4, y + 1, str1); + + x = x; + y = y + m_wh * 2; + rectangle(x, y, x + m_wh * 2, y + m_wh); //悔棋方框 + setfillcolor(RGB(172, 81, 24)); + setfillstyle(BS_SOLID); + floodfill(x + 1, y + 1, WHITE); + TCHAR str2[] = _T("悔棋"); + settextstyle(m_wh - 2, m_wh / 2 - 2, _T("楷体")); + setbkcolor(RGB(172, 81, 24)); + settextcolor(BLACK); + outtextxy(x + 4, y + 1, str2); + + x = x; + y = y + m_wh * 2; + rectangle(x, y, x + m_wh * 2, y + m_wh); //结束方框 + setfillcolor(RGB(172, 81, 24)); + setfillstyle(BS_SOLID); + floodfill(x + 1, y + 1, WHITE); + TCHAR str3[] = _T("结束"); + settextstyle(m_wh - 2, m_wh / 2 - 2, _T("楷体")); + setbkcolor(RGB(172, 81, 24)); + settextcolor(BLACK); + outtextxy(x + 4, y + 1, str3); + + x = x; + y = y + m_wh * 2; + rectangle(x, y, x + m_wh * 2, y + m_wh); //人机对战方框 + setfillcolor(RGB(172, 81, 24)); + setfillstyle(BS_SOLID); + floodfill(x + 1, y + 1, WHITE); + TCHAR str4[] = _T("人机"); + settextstyle(m_wh - 2, m_wh / 2 - 2, _T("楷体")); + setbkcolor(RGB(172, 81, 24)); + settextcolor(BLACK); + outtextxy(x + 4, y + 1, str4); +} +/*================================================ +== 函数名:over_black() +== 功 能:绘制黑棋胜字样 +== 参 数:无 +== 返回值:无 +=================================================*/ +void over_black() +{ + int x, y; + x = m_x0 + m_wh * (m_row + 2); + y = m_y0 + m_wh * 5; + TCHAR str[] = _T("黑方胜"); + settextstyle(m_wh, m_wh / 2 - 1, _T("楷体")); + setbkmode(OPAQUE); + settextcolor(WHITE); + outtextxy(x + 1, y, str); + TCHAR str1[] = _T("按开始再来一局"); + settextstyle(m_wh / 2, m_wh / 5 - 1, _T("黑体")); + setbkmode(OPAQUE); + settextcolor(WHITE); + x = m_x0 + m_wh * (m_row + 2) + 7; + y = m_y0 + m_wh * 6; + outtextxy(x + 1, y, str1); +} +/*================================================ +== 函数名:over_white() +== 功 能:绘制白棋胜字样 +== 参 数:无 +== 返回值:无 +=================================================*/ +void over_white() +{ + int x, y; + x = m_x0 + m_wh * (m_row + 2); + y = m_y0 + m_wh * 5; + TCHAR str[] = _T("白方胜"); + settextstyle(m_wh, m_wh / 2 - 1, _T("楷体")); + setbkmode(OPAQUE); + settextcolor(WHITE); + outtextxy(x + 1, y, str); + TCHAR str1[] = _T("按开始再来一局"); + settextstyle(m_wh / 2, m_wh / 5 - 1, _T("黑体")); + setbkmode(OPAQUE); + settextcolor(WHITE); + x = m_x0 + m_wh * (m_row + 2) + 7; + y = m_y0 + m_wh * 6; + outtextxy(x + 1, y, str1); +} +/*================================================ +== 函数名:position() +== 功 能:绘制状态栏及内容 +== 参 数:无 +== 返回值:无 +=================================================*/ +void position() +{ + int x, y; + x = m_x0 + m_wh * (m_row + 2); + y = m_y0 + m_wh * 4; + setlinecolor(WHITE); + rectangle(x, y, x + m_wh * 3, y + m_wh * 3); + setfillcolor(RGB(172, 81, 24)); + setfillstyle(BS_SOLID); + floodfill(x + 1, y + 1, WHITE); + + TCHAR str1[] = _T("提示"); + settextstyle(m_wh / 2, m_wh / 3, _T("楷体")); + setbkmode(TRANSPARENT); + settextcolor(WHITE); + outtextxy(x + m_wh / 3 * 2, y + 2, str1); + + x = x; + y = y + m_wh; + TCHAR str[] = _T("请点击开始"); + settextstyle(m_wh, m_wh / 3 - 2, _T("楷体")); + setbkmode(TRANSPARENT); + settextcolor(WHITE); + outtextxy(x, y, str); +} +/*================================================ +== 函数名:text_black() +== 功 能:绘制黑棋下字样 +== 参 数:无 +== 返回值:无 +=================================================*/ +void text_black() +{ + int x, y; + x = m_x0 + m_wh * (m_row + 2); + y = m_y0 + m_wh * 5; + TCHAR str[] = _T("黑子下"); + settextstyle(m_wh, m_wh / 2 - 1, _T("楷体")); + setbkmode(OPAQUE); + settextcolor(WHITE); + outtextxy(x + 1, y, str); +} +/*================================================ +== 函数名:text_white() +== 功 能:绘制白棋下字样 +== 参 数:无 +== 返回值:无 +=================================================*/ +void text_white() +{ + int x, y; + x = m_x0 + m_wh * (m_row + 2); + y = m_y0 + m_wh * 5; + TCHAR str[] = _T("白子下"); + settextstyle(m_wh, m_wh / 2 - 1, _T("楷体")); + setbkmode(OPAQUE); + settextcolor(WHITE); + outtextxy(x + 1, y, str); +} diff --git "a/wuziqi/wuziqi/\346\203\263\346\263\225.txt" "b/wuziqi/wuziqi/\346\203\263\346\263\225.txt" new file mode 100644 index 00000000..a6df2cd3 --- /dev/null +++ "b/wuziqi/wuziqi/\346\203\263\346\263\225.txt" @@ -0,0 +1,7 @@ +每次记下棋子所成矩形会更方便。 +评分函数:搜索得到整个局面的分数:直接搜索,计算分数 +评估函数是两部分,一个是总体评分,按照行,列,斜列进行模式匹配。可以使用AC算法。 +一个是单个点的评分,分两部分:生成和评分 +生成找棋子所成矩阵边长+2的矩阵 +评分用原来整体评分+下了棋后米字形的自己方棋的增加分-下了棋后米字形的对方棋的减少分(如果评分不是整数的就要事先算出各种情况的增分和减分)或者用原先的整体评价函数来评分 +以此分数做alpha-beta剪枝即可。