From 264154694d4e378e6e15bdc8ee20bbbeb2feaa02 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Fri, 24 Feb 2017 22:51:20 +0800 Subject: [PATCH 01/82] C_level0_c0_chenshuwei MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit written by 陈叔炜 --- practices/c/level0/c0 | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 practices/c/level0/c0 diff --git a/practices/c/level0/c0 b/practices/c/level0/c0 new file mode 100644 index 00000000..18973113 --- /dev/null +++ b/practices/c/level0/c0 @@ -0,0 +1,5 @@ +#include +void main() +{ + printf("Hello,world!我是陈叔炜"); +} From 283418ffd122fa82d427977bd7b5c57d4ba2a2b5 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Fri, 24 Feb 2017 23:29:46 +0800 Subject: [PATCH 02/82] Create c1_1 --- practices/ c/ level0/c1_1 | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 practices/ c/ level0/c1_1 diff --git a/practices/ c/ level0/c1_1 b/practices/ c/ level0/c1_1 new file mode 100644 index 00000000..e18c1601 --- /dev/null +++ b/practices/ c/ level0/c1_1 @@ -0,0 +1,21 @@ +#include +int main() +{ + int a; + printf("请输入一个数"); + scanf("%d", &a); + if (a > 0) + { + printf("这个数是正数"); + } + else if (a != 0) + { + printf("这个数是负数"); + } + else printf("这个数既不是正数也不是负数"); + if (0 == a % 2) + { + printf("这个数是偶数"); + } + else printf("这个数是奇数"); +} From c6b066c201255c9b0c94e94f49829b852e8aa8a7 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Fri, 24 Feb 2017 23:31:20 +0800 Subject: [PATCH 03/82] Create c1_1 --- practices/c/level0/c1_1 | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 practices/c/level0/c1_1 diff --git a/practices/c/level0/c1_1 b/practices/c/level0/c1_1 new file mode 100644 index 00000000..e18c1601 --- /dev/null +++ b/practices/c/level0/c1_1 @@ -0,0 +1,21 @@ +#include +int main() +{ + int a; + printf("请输入一个数"); + scanf("%d", &a); + if (a > 0) + { + printf("这个数是正数"); + } + else if (a != 0) + { + printf("这个数是负数"); + } + else printf("这个数既不是正数也不是负数"); + if (0 == a % 2) + { + printf("这个数是偶数"); + } + else printf("这个数是奇数"); +} From a1f8b7a3afccad4724d0faa8da01cd7c6945aa2a Mon Sep 17 00:00:00 2001 From: csw981001 Date: Fri, 24 Feb 2017 23:39:57 +0800 Subject: [PATCH 04/82] Create c1_2 --- practices/c/level0/c1_2 | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 practices/c/level0/c1_2 diff --git a/practices/c/level0/c1_2 b/practices/c/level0/c1_2 new file mode 100644 index 00000000..2bf8a3af --- /dev/null +++ b/practices/c/level0/c1_2 @@ -0,0 +1,13 @@ +#include +int main() +{ + int a; + printf("请输入一个数"); + scanf("%d", &a); + if (0 == a % 13) + { + printf("这个数是13的倍数"); + } + else + printf("这个数不是13的倍数"); +} From 8c20a43b06276af4ec462ca398bfa21e7178535d Mon Sep 17 00:00:00 2001 From: csw981001 Date: Fri, 24 Feb 2017 23:46:58 +0800 Subject: [PATCH 05/82] Create c1_3 --- practices/c/level0/c1_3 | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 practices/c/level0/c1_3 diff --git a/practices/c/level0/c1_3 b/practices/c/level0/c1_3 new file mode 100644 index 00000000..782d1c66 --- /dev/null +++ b/practices/c/level0/c1_3 @@ -0,0 +1,11 @@ +#include +int main() +{ + int a; + printf("请输入年数"); + scanf("%d", &a); + if ((0 == a % 4 && 0 != a % 100) || 0 == a % 400) + printf("这一年是闰年"); + else + printf("这一年不是闰年"); +} From e908cc721b9979ad621c7c0eec6b5499c8e66f1b Mon Sep 17 00:00:00 2001 From: csw981001 Date: Fri, 24 Feb 2017 23:51:09 +0800 Subject: [PATCH 06/82] Create c1_4 --- practices/c/level0/c1_4 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 practices/c/level0/c1_4 diff --git a/practices/c/level0/c1_4 b/practices/c/level0/c1_4 new file mode 100644 index 00000000..17df14d2 --- /dev/null +++ b/practices/c/level0/c1_4 @@ -0,0 +1,10 @@ +#include +int main() +{ + int a, b; + printf("请输入两个数"); + scanf("%d%d", &a, &b); + if (a < b) + a = b; + printf("两个数中较大的数是%d", a); +} From 836969334c67b368e5cdcd79d91ddbe5d81e5f7b Mon Sep 17 00:00:00 2001 From: csw981001 Date: Fri, 24 Feb 2017 23:59:26 +0800 Subject: [PATCH 07/82] Create c1_5 --- practices/c/level0/c1_5 | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 practices/c/level0/c1_5 diff --git a/practices/c/level0/c1_5 b/practices/c/level0/c1_5 new file mode 100644 index 00000000..fdf52239 --- /dev/null +++ b/practices/c/level0/c1_5 @@ -0,0 +1,20 @@ +#include +int main() +{ + int a, b, c; + printf("请输入三个数"); + scanf("%d%d%d", &a, &b, &c); + if (a > b) + { + if (c > a) + a = c; + } + else + { + if (b > c) + a = b; + else + a = c; + } + printf("这三个数中最大的是%d", a); +} From 3fd184c275c734832faed178e6e232bd19c90b66 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sat, 25 Feb 2017 00:28:36 +0800 Subject: [PATCH 08/82] Create c1_6 --- practices/ c/ level0/c1_6 | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 practices/ c/ level0/c1_6 diff --git a/practices/ c/ level0/c1_6 b/practices/ c/ level0/c1_6 new file mode 100644 index 00000000..41802e0c --- /dev/null +++ b/practices/ c/ level0/c1_6 @@ -0,0 +1,17 @@ +#include +int main() +{ + int i,n,max_number=0; + printf("请输入要比较的数的个数"); + scanf("%d", &n); + int number; + for (i = 0; i < n; i++) + { + scanf("%d", &number); + if (number > max_number) + { + max_number = number; + } + } + printf("这n个数中最大的数是%d", max_number); +} From 6642610b9984eef37e2ab515abad77b771170f96 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sat, 25 Feb 2017 00:30:09 +0800 Subject: [PATCH 09/82] Create c1_6 --- practices/c/level0/c1_6 | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 practices/c/level0/c1_6 diff --git a/practices/c/level0/c1_6 b/practices/c/level0/c1_6 new file mode 100644 index 00000000..41802e0c --- /dev/null +++ b/practices/c/level0/c1_6 @@ -0,0 +1,17 @@ +#include +int main() +{ + int i,n,max_number=0; + printf("请输入要比较的数的个数"); + scanf("%d", &n); + int number; + for (i = 0; i < n; i++) + { + scanf("%d", &number); + if (number > max_number) + { + max_number = number; + } + } + printf("这n个数中最大的数是%d", max_number); +} From ca6f2041f7fecb1496cce63748e026ea0b1860bc Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sat, 25 Feb 2017 00:35:01 +0800 Subject: [PATCH 10/82] Create c2_1 --- practices/c/level0/c2_1 | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 practices/c/level0/c2_1 diff --git a/practices/c/level0/c2_1 b/practices/c/level0/c2_1 new file mode 100644 index 00000000..7013ee4a --- /dev/null +++ b/practices/c/level0/c2_1 @@ -0,0 +1,11 @@ +#include +#include +void main() +{ + int i,t=50; + for (i = 0; i < 10000; i++) + { + printf("你好"); + Sleep(t); + } +} From 5bc0147ea3b6229b780e26b5dc049b7efcf0d535 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sat, 25 Feb 2017 00:42:11 +0800 Subject: [PATCH 11/82] Create c2_2 --- practices/c/level0/c2_2 | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 practices/c/level0/c2_2 diff --git a/practices/c/level0/c2_2 b/practices/c/level0/c2_2 new file mode 100644 index 00000000..14ac34e9 --- /dev/null +++ b/practices/c/level0/c2_2 @@ -0,0 +1,13 @@ +#include +void main() +{ + system("color 0a"); + while (1) + { + printf("0 1"); + } +} +//结果分析 +//结果:屏幕无限制打印绿色字体的‘0’、‘1’ +//system ("color 0a")使字体变绿 +//while 语句条件表达式为1,代表真,无限执行循环“打印绿色字体0 1” From b57b0a72d2c3b541873a6872fc9da00d39e7c0ff Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sat, 25 Feb 2017 15:46:45 +0800 Subject: [PATCH 12/82] Create c2_1.1.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 打印2-200内的偶数 --- practices/c/level0/c2_1.1.1 | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 practices/c/level0/c2_1.1.1 diff --git a/practices/c/level0/c2_1.1.1 b/practices/c/level0/c2_1.1.1 new file mode 100644 index 00000000..d12917cc --- /dev/null +++ b/practices/c/level0/c2_1.1.1 @@ -0,0 +1,12 @@ +#include +int main() +{ + int i; + for (i = 2; i <= 200; i++) + { + if (0 == i % 2) + { + printf("%d\t", i); + } + } +} From 529e15024d8bccca6db1b335ae9c698f06530a4e Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sat, 25 Feb 2017 15:54:13 +0800 Subject: [PATCH 13/82] Create c2_1.1.2 --- practices/c/level0/c2_1.1.2 | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 practices/c/level0/c2_1.1.2 diff --git a/practices/c/level0/c2_1.1.2 b/practices/c/level0/c2_1.1.2 new file mode 100644 index 00000000..5c68dfb3 --- /dev/null +++ b/practices/c/level0/c2_1.1.2 @@ -0,0 +1,12 @@ +#include +int main() +{ + int i; + for (i = 1; i <= 100; i++) + { + if ((0 == i % 3) && (0 != i % 5)) + { + printf("%d\t", i); + } + } +} From c5befaed33e6c7e18e0c2bf5a98a60f5bedc213d Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sat, 25 Feb 2017 16:14:04 +0800 Subject: [PATCH 14/82] Create c2_1.1.3 --- practices/c/level0/c2_1.1.3 | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 practices/c/level0/c2_1.1.3 diff --git a/practices/c/level0/c2_1.1.3 b/practices/c/level0/c2_1.1.3 new file mode 100644 index 00000000..e3408c8e --- /dev/null +++ b/practices/c/level0/c2_1.1.3 @@ -0,0 +1,13 @@ +#include +void main() +{ + int i, sum = 0; + for (i = 1; i <= 100; i++) + { + if ((0 == i % 7) || (7 == i % 10)) + { + printf("%d\t", i); + sum += i; + } + } +} From dc8d86902789a590daf183a0e5d2c6f19015e45f Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sat, 25 Feb 2017 16:47:30 +0800 Subject: [PATCH 15/82] Create c2_1.1.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 九九乘法表 --- c2_1.1.4 | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 c2_1.1.4 diff --git a/c2_1.1.4 b/c2_1.1.4 new file mode 100644 index 00000000..6c8f7d87 --- /dev/null +++ b/c2_1.1.4 @@ -0,0 +1,20 @@ +#include +void printf_X(int a); +void main() +{ + int i, j; + for (i = 1; i <= 9; i++) + { + printf_X(i); + printf("\n"); + } +} + +void printf_X(int a) +{ + int j; + for (j = 1; j <= a; j++) + { + printf("%dX%d=%d\t", a, j, a*j); + } +} From fff07fa57f9bc4d83073f57a14e34e517072dc7b Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sat, 25 Feb 2017 16:49:15 +0800 Subject: [PATCH 16/82] Create c2_1.1.4 --- practices/c/level0/c2_1.1.4 | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 practices/c/level0/c2_1.1.4 diff --git a/practices/c/level0/c2_1.1.4 b/practices/c/level0/c2_1.1.4 new file mode 100644 index 00000000..a96bea71 --- /dev/null +++ b/practices/c/level0/c2_1.1.4 @@ -0,0 +1,22 @@ +#include +void printf_X(int a); +void main() +{ + int i, j; + for (i = 1; i <= 9; i++) + { + printf_X(i); + printf("\n"); + } +} + + +//自定义的printf_X函数 +void printf_X(int a) +{ + int j; + for (j = 1; j <= a; j++) + { + printf("%dX%d=%d\t", a, j, a*j); + } +} From 99bf1fa94c4db8e204d31d5553961fe9ebf0ad59 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Thu, 2 Mar 2017 23:05:32 +0800 Subject: [PATCH 17/82] Create level0_c3_1.1.6 --- practices/c/level0/level0_c3_1.1.6 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 practices/c/level0/level0_c3_1.1.6 diff --git a/practices/c/level0/level0_c3_1.1.6 b/practices/c/level0/level0_c3_1.1.6 new file mode 100644 index 00000000..222efd79 --- /dev/null +++ b/practices/c/level0/level0_c3_1.1.6 @@ -0,0 +1,16 @@ +#include +const int n=5; +void main() +{ + int i,j; + int number[10]={0,1,2,3,4,5,6,7,8,9}; + for(i=1;i<6;i++){ + scanf("%d",&j); + number[j]=0; + } + for (i=0;i<10;i++){ + if(number[i]!=0){ + printf("%d\t",number[i]); + } + } +} From f2e36d80fd9e3f2027e4f530bde5b491e155b1c0 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Thu, 2 Mar 2017 23:06:37 +0800 Subject: [PATCH 18/82] Create level0_c3_1.1.5.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 逆序 --- practices/c/level0/level0_c3_1.1.5.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 practices/c/level0/level0_c3_1.1.5.c diff --git a/practices/c/level0/level0_c3_1.1.5.c b/practices/c/level0/level0_c3_1.1.5.c new file mode 100644 index 00000000..a13a140d --- /dev/null +++ b/practices/c/level0/level0_c3_1.1.5.c @@ -0,0 +1,13 @@ +#include +void main() +{ + int i,n; + scanf("%d",&n); + int number[n]; + for(i=1;i<=n;i++){ + scanf("%d",&number[i]); + } + for(i=n;i>=1;i--){ + printf("%d\t",number[i]); + } +} From 206bf1cfbba7ec5b5cbf3becd7b3fd58e154ee0f Mon Sep 17 00:00:00 2001 From: csw981001 Date: Thu, 2 Mar 2017 23:18:19 +0800 Subject: [PATCH 19/82] Create level0_c3_1.1.7.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 排序0~9的数字顺序 --- practices/c/level0/level0_c3_1.1.7.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 practices/c/level0/level0_c3_1.1.7.c diff --git a/practices/c/level0/level0_c3_1.1.7.c b/practices/c/level0/level0_c3_1.1.7.c new file mode 100644 index 00000000..e1551f54 --- /dev/null +++ b/practices/c/level0/level0_c3_1.1.7.c @@ -0,0 +1,27 @@ +#include +const int n=5; +void main() +{ + int i,j,changed; + int number[n+1]; + for(i=1;inumber[i+1]){ + number[0]=number[i]; + number[i]=number[i+1]; + number[i+1]=number[0]; + changed=1; + } + } + if(changed==0){ + break; + } + } + for(i=1;i<=n;i++){ + printf("%d\t",number[i]); + } +} From e4bf74578c8141b2224215c573cc4c93debbf138 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Thu, 2 Mar 2017 23:18:49 +0800 Subject: [PATCH 20/82] Rename level0_c3_1.1.5.c to level0_c2_1.1.5.c --- practices/c/level0/{level0_c3_1.1.5.c => level0_c2_1.1.5.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/c/level0/{level0_c3_1.1.5.c => level0_c2_1.1.5.c} (100%) diff --git a/practices/c/level0/level0_c3_1.1.5.c b/practices/c/level0/level0_c2_1.1.5.c similarity index 100% rename from practices/c/level0/level0_c3_1.1.5.c rename to practices/c/level0/level0_c2_1.1.5.c From 520e187e0bb7f9ae1194102c1ee3d067e34e8792 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Thu, 2 Mar 2017 23:19:28 +0800 Subject: [PATCH 21/82] Rename level0_c3_1.1.6 to level0_c2_1.1.6 --- practices/c/level0/{level0_c3_1.1.6 => level0_c2_1.1.6} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/c/level0/{level0_c3_1.1.6 => level0_c2_1.1.6} (100%) diff --git a/practices/c/level0/level0_c3_1.1.6 b/practices/c/level0/level0_c2_1.1.6 similarity index 100% rename from practices/c/level0/level0_c3_1.1.6 rename to practices/c/level0/level0_c2_1.1.6 From 7f9fd9fae25f63779e8a7db31e51e96e18c6e300 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Thu, 2 Mar 2017 23:19:53 +0800 Subject: [PATCH 22/82] Rename level0_c3_1.1.7.c to level0_c2_1.1.7.c --- practices/c/level0/{level0_c3_1.1.7.c => level0_c2_1.1.7.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/c/level0/{level0_c3_1.1.7.c => level0_c2_1.1.7.c} (100%) diff --git a/practices/c/level0/level0_c3_1.1.7.c b/practices/c/level0/level0_c2_1.1.7.c similarity index 100% rename from practices/c/level0/level0_c3_1.1.7.c rename to practices/c/level0/level0_c2_1.1.7.c From 8f1f954925d604596492ce973c7207953f413b89 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Thu, 2 Mar 2017 23:20:21 +0800 Subject: [PATCH 23/82] Rename level0_c2_1.1.6 to level0_c2_1.1.6.c --- practices/c/level0/{level0_c2_1.1.6 => level0_c2_1.1.6.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/c/level0/{level0_c2_1.1.6 => level0_c2_1.1.6.c} (100%) diff --git a/practices/c/level0/level0_c2_1.1.6 b/practices/c/level0/level0_c2_1.1.6.c similarity index 100% rename from practices/c/level0/level0_c2_1.1.6 rename to practices/c/level0/level0_c2_1.1.6.c From de01525b0b4f11b2e30dfd6d2cdd5769d73f3341 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Thu, 2 Mar 2017 23:27:32 +0800 Subject: [PATCH 24/82] Create c3_1.c --- practices/c/level0/c3_1.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 practices/c/level0/c3_1.c diff --git a/practices/c/level0/c3_1.c b/practices/c/level0/c3_1.c new file mode 100644 index 00000000..4e4e2b2d --- /dev/null +++ b/practices/c/level0/c3_1.c @@ -0,0 +1,15 @@ +#include +const int n=10; +int main() +{ + int i,sum=0; + int number[n]; + for(i=0;i Date: Thu, 2 Mar 2017 23:30:58 +0800 Subject: [PATCH 25/82] Create level0_c3_2.c --- practices/c/level0/level0_c3_2.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 practices/c/level0/level0_c3_2.c diff --git a/practices/c/level0/level0_c3_2.c b/practices/c/level0/level0_c3_2.c new file mode 100644 index 00000000..1ddada1c --- /dev/null +++ b/practices/c/level0/level0_c3_2.c @@ -0,0 +1,12 @@ +#include +int main() +{ + int i,sum=1; + int n; + scanf("%d",&n); + for(i=1;i<=n;i++){ + sum*=i; + } + printf("%d",sum); + return 0; +} From e49cc7bd991744a81b7c305e75699f028e873faa Mon Sep 17 00:00:00 2001 From: csw981001 Date: Fri, 3 Mar 2017 00:07:51 +0800 Subject: [PATCH 26/82] Rename c3_1.c to level0_c3_1.c --- practices/c/level0/{c3_1.c => level0_c3_1.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/c/level0/{c3_1.c => level0_c3_1.c} (100%) diff --git a/practices/c/level0/c3_1.c b/practices/c/level0/level0_c3_1.c similarity index 100% rename from practices/c/level0/c3_1.c rename to practices/c/level0/level0_c3_1.c From 82a888b95cf9bef073353e56400e0a6755aace77 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Fri, 3 Mar 2017 00:08:57 +0800 Subject: [PATCH 27/82] Create level0_c3_3.c --- practices/c/level0/level0_c3_3.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 practices/c/level0/level0_c3_3.c diff --git a/practices/c/level0/level0_c3_3.c b/practices/c/level0/level0_c3_3.c new file mode 100644 index 00000000..86b154a0 --- /dev/null +++ b/practices/c/level0/level0_c3_3.c @@ -0,0 +1,15 @@ +#include +const int n=15; +void main() +{ + int i; + int x[n]; + x[0]=1,x[1]=1; + printf("%d\t%d\t",x[0],x[1]); + for(i=2;i Date: Fri, 3 Mar 2017 00:19:40 +0800 Subject: [PATCH 28/82] Create level0_c3_4.c --- practices/c/level0/level0_c3_4.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 practices/c/level0/level0_c3_4.c diff --git a/practices/c/level0/level0_c3_4.c b/practices/c/level0/level0_c3_4.c new file mode 100644 index 00000000..4007238f --- /dev/null +++ b/practices/c/level0/level0_c3_4.c @@ -0,0 +1,13 @@ +#include +void main() +{ + int a,b,c; + scanf("%d%d%d",&a,&b,&c); + if(a*a== b*b+ c*c||b*b== a*a+ c*c||c*c== a*a+ b*b){ + printf("这个三角形是直角三角形"); + } + else{ + printf("这个三角形不是直角三角形"); + } + +} From 8d0340ab77fadf0a990c0eb4c07cd07e68a47fd1 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Fri, 3 Mar 2017 00:42:34 +0800 Subject: [PATCH 29/82] Create level0_c3_6.c --- practices/c/level0/level0_c3_6.c | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 practices/c/level0/level0_c3_6.c diff --git a/practices/c/level0/level0_c3_6.c b/practices/c/level0/level0_c3_6.c new file mode 100644 index 00000000..791c6236 --- /dev/null +++ b/practices/c/level0/level0_c3_6.c @@ -0,0 +1,10 @@ +#include +float main() +{ + float rate; + float dollar,RMB; + scanf("%f%f%f",&rate,&dollar,&RMB); + RMB=dollar*rate; + printf("%fdollar=%fRMB",dollar,RMB); + return 0; +} From 285311b6733e27a9d89b3f858f26c9c8f3f89412 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Fri, 3 Mar 2017 22:42:07 +0800 Subject: [PATCH 30/82] Create level0_c3_5.c --- practices/c/level0/level0_c3_5.c | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 practices/c/level0/level0_c3_5.c diff --git a/practices/c/level0/level0_c3_5.c b/practices/c/level0/level0_c3_5.c new file mode 100644 index 00000000..a04a9986 --- /dev/null +++ b/practices/c/level0/level0_c3_5.c @@ -0,0 +1,35 @@ +#include +void main() +{ + //输入两个矩形的左上角和右下角的点的坐标(x1,y1)(x2,y2)(x3,y3)(x4,y4) + float x1,y1,x2,y2; + float x3,y3,x4,y4; + float wide; + int x=0; + scanf("%f%f%f%f%f%f%f%f", &x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4); + if (x2 - x1 > x4-x3) { + wide = (x4 - x3) / 2; + if (wide > x1&&wide < x2&&y3 < y4) { + printf("两个矩形重叠"); + x=1; + } + } + else { + wide = (x2 - x1) / 2; + if (wide > x3&&wide < x4&&y1 < y4) { + printf("两个矩形重叠"); + x=1; + } + } + if (x3 > x1&&x3 < x2&&y3 > y2&&y3 < y1) { + printf("两个矩形重叠"); + x=1; + } + if (x1 > x3&&x1 < x4&&y1>y4&&y1 Date: Fri, 3 Mar 2017 23:15:46 +0800 Subject: [PATCH 31/82] Create level0_c3_5.changed.c --- practices/c/level0_c3_5.changed.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 practices/c/level0_c3_5.changed.c diff --git a/practices/c/level0_c3_5.changed.c b/practices/c/level0_c3_5.changed.c new file mode 100644 index 00000000..b9569470 --- /dev/null +++ b/practices/c/level0_c3_5.changed.c @@ -0,0 +1,20 @@ +#include +void main() +{ + //输入两个矩形的左上角和右下角的点的坐标(x1,y1)(x2,y2)(x3,y3)(x4,y4) + float x1,y1,x2,y2; + float x3,y3,x4,y4; + scanf("%f%f%f%f%f%f%f%f",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4); + if((x1x2)||(x1>x3&& x1x4)){ + if((y1>y3&& y1y4)||(y3>y1&& y3y2)){ + printf("这两个矩形重叠"); + } + else{ + printf("这两个矩形不重叠"); + } + } + else{ + printf("这两个矩形不重叠"); + } +} + From b796fed09f532110f10353811a11e3afc97524e2 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Fri, 3 Mar 2017 23:16:06 +0800 Subject: [PATCH 32/82] Delete level0_c3_5.changed.c --- practices/c/level0_c3_5.changed.c | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 practices/c/level0_c3_5.changed.c diff --git a/practices/c/level0_c3_5.changed.c b/practices/c/level0_c3_5.changed.c deleted file mode 100644 index b9569470..00000000 --- a/practices/c/level0_c3_5.changed.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -void main() -{ - //输入两个矩形的左上角和右下角的点的坐标(x1,y1)(x2,y2)(x3,y3)(x4,y4) - float x1,y1,x2,y2; - float x3,y3,x4,y4; - scanf("%f%f%f%f%f%f%f%f",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4); - if((x1x2)||(x1>x3&& x1x4)){ - if((y1>y3&& y1y4)||(y3>y1&& y3y2)){ - printf("这两个矩形重叠"); - } - else{ - printf("这两个矩形不重叠"); - } - } - else{ - printf("这两个矩形不重叠"); - } -} - From 45f6e6b42dd8b517a176a813c5c0c5ddd2d6989a Mon Sep 17 00:00:00 2001 From: csw981001 Date: Fri, 3 Mar 2017 23:16:34 +0800 Subject: [PATCH 33/82] Create level0_c3_5.changed.c --- practices/c/level0/level0_c3_5.changed.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 practices/c/level0/level0_c3_5.changed.c diff --git a/practices/c/level0/level0_c3_5.changed.c b/practices/c/level0/level0_c3_5.changed.c new file mode 100644 index 00000000..b9569470 --- /dev/null +++ b/practices/c/level0/level0_c3_5.changed.c @@ -0,0 +1,20 @@ +#include +void main() +{ + //输入两个矩形的左上角和右下角的点的坐标(x1,y1)(x2,y2)(x3,y3)(x4,y4) + float x1,y1,x2,y2; + float x3,y3,x4,y4; + scanf("%f%f%f%f%f%f%f%f",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4); + if((x1x2)||(x1>x3&& x1x4)){ + if((y1>y3&& y1y4)||(y3>y1&& y3y2)){ + printf("这两个矩形重叠"); + } + else{ + printf("这两个矩形不重叠"); + } + } + else{ + printf("这两个矩形不重叠"); + } +} + From 4e2390f358d72a04c79136ba6e0b4864a28fb3d2 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Fri, 3 Mar 2017 23:52:48 +0800 Subject: [PATCH 34/82] Create level0_c3_5_changed_changed.c --- .../c/level0/level0_c3_5_changed_changed.c | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 practices/c/level0/level0_c3_5_changed_changed.c diff --git a/practices/c/level0/level0_c3_5_changed_changed.c b/practices/c/level0/level0_c3_5_changed_changed.c new file mode 100644 index 00000000..aac1011f --- /dev/null +++ b/practices/c/level0/level0_c3_5_changed_changed.c @@ -0,0 +1,20 @@ +#include +void main() +{ + //输入两个矩形的左上角和右下角的点的坐标(x1,y1)(x2,y2)(x3,y3)(x4,y4) + float x1,y1,x2,y2; + float x3,y3,x4,y4; + int t=0; + scanf("%f%f%f%f%f%f%f%f",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4); + if((x1 Date: Wed, 15 Mar 2017 23:13:31 +0800 Subject: [PATCH 35/82] Rename practices/c/level0/c0 to practices/ c/ level0/c0.c --- practices/{c/level0/c0 => c/ level0/c0.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/{c/level0/c0 => c/ level0/c0.c} (100%) diff --git a/practices/c/level0/c0 b/practices/ c/ level0/c0.c similarity index 100% rename from practices/c/level0/c0 rename to practices/ c/ level0/c0.c From 8cedf75e6f66df15dbc2d6e3bcdd9a78daf97476 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 15 Mar 2017 23:17:40 +0800 Subject: [PATCH 36/82] Rename practices/c/level0/c1_1 to practices/ c/ level0/c1_1.c --- practices/{c/level0/c1_1 => c/ level0/c1_1.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/{c/level0/c1_1 => c/ level0/c1_1.c} (100%) diff --git a/practices/c/level0/c1_1 b/practices/ c/ level0/c1_1.c similarity index 100% rename from practices/c/level0/c1_1 rename to practices/ c/ level0/c1_1.c From f47626d495d140665fe52563a5bdb9d0788592e5 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 15 Mar 2017 23:20:59 +0800 Subject: [PATCH 37/82] Rename practices/c/level0/c2_2 to practices/ c/ level0/c2_2.c --- practices/{c/level0/c2_2 => c/ level0/c2_2.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/{c/level0/c2_2 => c/ level0/c2_2.c} (100%) diff --git a/practices/c/level0/c2_2 b/practices/ c/ level0/c2_2.c similarity index 100% rename from practices/c/level0/c2_2 rename to practices/ c/ level0/c2_2.c From 2ae321bb6c3d0294dae3a6076b722230b55e08c4 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 15 Mar 2017 23:26:40 +0800 Subject: [PATCH 38/82] Rename practices/c/level0/c1_2 to practices/ c/ level0/c1_2.c --- practices/{c/level0/c1_2 => c/ level0/c1_2.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/{c/level0/c1_2 => c/ level0/c1_2.c} (100%) diff --git a/practices/c/level0/c1_2 b/practices/ c/ level0/c1_2.c similarity index 100% rename from practices/c/level0/c1_2 rename to practices/ c/ level0/c1_2.c From 06581aabd31957bbceb1ba71314517a76a7633d8 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 15 Mar 2017 23:28:21 +0800 Subject: [PATCH 39/82] Rename practices/c/level0/c1_3 to practices/ c/ level0/c1_3.c --- practices/{c/level0/c1_3 => c/ level0/c1_3.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/{c/level0/c1_3 => c/ level0/c1_3.c} (100%) diff --git a/practices/c/level0/c1_3 b/practices/ c/ level0/c1_3.c similarity index 100% rename from practices/c/level0/c1_3 rename to practices/ c/ level0/c1_3.c From 78a1c2018094e1f9d3807d1f49df0b54bd84c781 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 15 Mar 2017 23:28:58 +0800 Subject: [PATCH 40/82] Rename c1_4 to c1_4.c --- practices/c/level0/{c1_4 => c1_4.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/c/level0/{c1_4 => c1_4.c} (100%) diff --git a/practices/c/level0/c1_4 b/practices/c/level0/c1_4.c similarity index 100% rename from practices/c/level0/c1_4 rename to practices/c/level0/c1_4.c From 10e51d0cfc9e97d5e17c424ce9cc86021226bbd2 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 15 Mar 2017 23:29:28 +0800 Subject: [PATCH 41/82] Rename practices/c/level0/c1_5 to practices/ c/ level0/c1_5.c --- practices/{c/level0/c1_5 => c/ level0/c1_5.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/{c/level0/c1_5 => c/ level0/c1_5.c} (100%) diff --git a/practices/c/level0/c1_5 b/practices/ c/ level0/c1_5.c similarity index 100% rename from practices/c/level0/c1_5 rename to practices/ c/ level0/c1_5.c From 5fe60347d4f27170158d9c72a3a800463f8afebc Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 15 Mar 2017 23:30:54 +0800 Subject: [PATCH 42/82] Rename practices/c/level0/c2_1.1.1 to practices/ c/ level0/c2_1.1.1.c --- practices/{c/level0/c2_1.1.1 => c/ level0/c2_1.1.1.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/{c/level0/c2_1.1.1 => c/ level0/c2_1.1.1.c} (100%) diff --git a/practices/c/level0/c2_1.1.1 b/practices/ c/ level0/c2_1.1.1.c similarity index 100% rename from practices/c/level0/c2_1.1.1 rename to practices/ c/ level0/c2_1.1.1.c From 5eddd99138c7cc2f1e844a53175b2df5dcdda4d9 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 15 Mar 2017 23:31:46 +0800 Subject: [PATCH 43/82] Rename c2_1.1.4 to c2_1.1.4.c --- practices/c/level0/{c2_1.1.4 => c2_1.1.4.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/c/level0/{c2_1.1.4 => c2_1.1.4.c} (100%) diff --git a/practices/c/level0/c2_1.1.4 b/practices/c/level0/c2_1.1.4.c similarity index 100% rename from practices/c/level0/c2_1.1.4 rename to practices/c/level0/c2_1.1.4.c From 1ac744c9545f70b7cd974726cc2fe0c7be4055d5 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 15 Mar 2017 23:32:15 +0800 Subject: [PATCH 44/82] Update and rename c1_6. to c1_6.c --- practices/c/level0/{c1_6 => c1_6.c} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename practices/c/level0/{c1_6 => c1_6.c} (93%) diff --git a/practices/c/level0/c1_6 b/practices/c/level0/c1_6.c similarity index 93% rename from practices/c/level0/c1_6 rename to practices/c/level0/c1_6.c index 41802e0c..c07605d2 100644 --- a/practices/c/level0/c1_6 +++ b/practices/c/level0/c1_6.c @@ -1,4 +1,4 @@ -#include +c#include int main() { int i,n,max_number=0; From 9b98a0aa51805a2ca2cca0a5a266559e10203b4f Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 15 Mar 2017 23:33:12 +0800 Subject: [PATCH 45/82] Rename practices/c/level0/c2_1 to practices/ c/ level0/c2_1.c --- practices/{c/level0/c2_1 => c/ level0/c2_1.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/{c/level0/c2_1 => c/ level0/c2_1.c} (100%) diff --git a/practices/c/level0/c2_1 b/practices/ c/ level0/c2_1.c similarity index 100% rename from practices/c/level0/c2_1 rename to practices/ c/ level0/c2_1.c From 9d9cf3eb593829dae3a91c2d5ae1527e95ef19c1 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 15 Mar 2017 23:34:33 +0800 Subject: [PATCH 46/82] Rename practices/c/level0/c2_1.1.2 to practices/ c/ level0/c2_1.1.2.c --- practices/{c/level0/c2_1.1.2 => c/ level0/c2_1.1.2.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/{c/level0/c2_1.1.2 => c/ level0/c2_1.1.2.c} (100%) diff --git a/practices/c/level0/c2_1.1.2 b/practices/ c/ level0/c2_1.1.2.c similarity index 100% rename from practices/c/level0/c2_1.1.2 rename to practices/ c/ level0/c2_1.1.2.c From 0fa484ead94e6a7ff71f053fad341d4d6078f49e Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 15 Mar 2017 23:35:24 +0800 Subject: [PATCH 47/82] Rename practices/c/level0/c2_1.1.3 to practices/ c/ level0/c2_1.1.3.c --- practices/{c/level0/c2_1.1.3 => c/ level0/c2_1.1.3.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/{c/level0/c2_1.1.3 => c/ level0/c2_1.1.3.c} (100%) diff --git a/practices/c/level0/c2_1.1.3 b/practices/ c/ level0/c2_1.1.3.c similarity index 100% rename from practices/c/level0/c2_1.1.3 rename to practices/ c/ level0/c2_1.1.3.c From 117ef0d71933c6620d507a2bae44ba33f6fff716 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 15 Mar 2017 23:36:52 +0800 Subject: [PATCH 48/82] Rename practices/ c/ level0/c1_6 to practices/ c/ level0/c1_6.c --- practices/ c/ level0/{c1_6 => c1_6.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/ c/ level0/{c1_6 => c1_6.c} (100%) diff --git a/practices/ c/ level0/c1_6 b/practices/ c/ level0/c1_6.c similarity index 100% rename from practices/ c/ level0/c1_6 rename to practices/ c/ level0/c1_6.c From 680ea732670d0624c8e4e493c3a1ea299449b4ee Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 15 Mar 2017 23:40:39 +0800 Subject: [PATCH 49/82] Delete c1_1 --- practices/ c/ level0/c1_1 | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 practices/ c/ level0/c1_1 diff --git a/practices/ c/ level0/c1_1 b/practices/ c/ level0/c1_1 deleted file mode 100644 index e18c1601..00000000 --- a/practices/ c/ level0/c1_1 +++ /dev/null @@ -1,21 +0,0 @@ -#include -int main() -{ - int a; - printf("请输入一个数"); - scanf("%d", &a); - if (a > 0) - { - printf("这个数是正数"); - } - else if (a != 0) - { - printf("这个数是负数"); - } - else printf("这个数既不是正数也不是负数"); - if (0 == a % 2) - { - printf("这个数是偶数"); - } - else printf("这个数是奇数"); -} From 128dc1ede995d30b783767cecd1b623429413102 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 22 Mar 2017 18:57:41 +0800 Subject: [PATCH 50/82] Create runningletter.c --- .../ p01_runningLetter/runningletter.c | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 practices/ c/ level1/ p01_runningLetter/runningletter.c diff --git a/practices/ c/ level1/ p01_runningLetter/runningletter.c b/practices/ c/ level1/ p01_runningLetter/runningletter.c new file mode 100644 index 00000000..f316aad4 --- /dev/null +++ b/practices/ c/ level1/ p01_runningLetter/runningletter.c @@ -0,0 +1,26 @@ +#include +#include +int for_back_word(int a); +const int n = 120; +int main() +{ + int i; + for (i = 1; i < n; i++) { + for_back_word(i); + } + for (i; i > 0; i--) { + for_back_word(i); + } + return 0; +} + +int for_back_word(int a) +{ + int j,m=100; + for (j = 1; j < a; j++) { + printf(" "); + } + printf("R"); + Sleep(m); + system("cls"); +} From 29d9cfc3d4dc7d7c1f8a1e1653091f9bc3136070 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Mon, 27 Mar 2017 23:08:27 +0800 Subject: [PATCH 51/82] Create isprime.c --- practices/ c/ level1/ p02_isPrime/isprime.c | 35 +++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 practices/ c/ level1/ p02_isPrime/isprime.c diff --git a/practices/ c/ level1/ p02_isPrime/isprime.c b/practices/ c/ level1/ p02_isPrime/isprime.c new file mode 100644 index 00000000..c759029f --- /dev/null +++ b/practices/ c/ level1/ p02_isPrime/isprime.c @@ -0,0 +1,35 @@ +#include +#include +int is_prime(int a); +int main() +{ + int x; + scanf_s("%d", &x); + if (is_prime(x)) { + printf("%d is a prime", x); + } + else { + printf("%d is not a prime", x); + } + return 0; +} + +int is_prime(int a) +{ + int k; + if (a == 1) { + return 0; + }if (a == 2) { + return 1; + }if (a > 2) { + for (k = 2; k <= sqrt(a); k++) { + if (a%k == 0) { + return 0; + break; + } + else { + return 1; + } + } + } +} From 32bef3ff3bb682dd035ec254c71e79c8b2f8edae Mon Sep 17 00:00:00 2001 From: csw981001 Date: Mon, 27 Mar 2017 23:09:38 +0800 Subject: [PATCH 52/82] Create Diophantus.c --- practices/ c/ level1/ p03_Diophantus/Diophantus.c | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 practices/ c/ level1/ p03_Diophantus/Diophantus.c diff --git a/practices/ c/ level1/ p03_Diophantus/Diophantus.c b/practices/ c/ level1/ p03_Diophantus/Diophantus.c new file mode 100644 index 00000000..d1120edc --- /dev/null +++ b/practices/ c/ level1/ p03_Diophantus/Diophantus.c @@ -0,0 +1,11 @@ +#include +int main() +{ + int x; + for (x = 1; x <= 150; x++) { + if (x*(1 / 6.0 + 1 / 7.0 + 1 / 12.0) + 5 + x / 2.0 + 4 == x) { + printf("%d", x-4); + } + } + return 0; +} From ae978cfaa2f75595b0540c6a7afe455fffd3d6b1 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Mon, 27 Mar 2017 23:10:04 +0800 Subject: [PATCH 53/82] Rename Diophantus.c to Diophants.c --- practices/ c/ level1/ p03_Diophantus/Diophants.c | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 practices/ c/ level1/ p03_Diophantus/Diophants.c diff --git a/practices/ c/ level1/ p03_Diophantus/Diophants.c b/practices/ c/ level1/ p03_Diophantus/Diophants.c new file mode 100644 index 00000000..d1120edc --- /dev/null +++ b/practices/ c/ level1/ p03_Diophantus/Diophants.c @@ -0,0 +1,11 @@ +#include +int main() +{ + int x; + for (x = 1; x <= 150; x++) { + if (x*(1 / 6.0 + 1 / 7.0 + 1 / 12.0) + 5 + x / 2.0 + 4 == x) { + printf("%d", x-4); + } + } + return 0; +} From 438c37345078dcd92941c0cd5444282b9715a373 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Mon, 27 Mar 2017 23:20:13 +0800 Subject: [PATCH 54/82] Create shuixian.c --- .../ p04_\346\260\264\344\273\231/shuixian.c" | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 "practices/ c/ level1/ p04_\346\260\264\344\273\231/shuixian.c" diff --git "a/practices/ c/ level1/ p04_\346\260\264\344\273\231/shuixian.c" "b/practices/ c/ level1/ p04_\346\260\264\344\273\231/shuixian.c" new file mode 100644 index 00000000..a9be53e1 --- /dev/null +++ "b/practices/ c/ level1/ p04_\346\260\264\344\273\231/shuixian.c" @@ -0,0 +1,16 @@ +#include +#include +int main() +{ + int x; + int a, b, c; + for (x = 100; x < 1000; x++) { + a = x % 100; + b = (x / 10) % 10; + c = x % 10; + if ((pow(a, 3) + pow(b, 3) + pow(c, 3)) == x) { + printf("%d\t", x); + } + } + return 0; +} From f6816bf924f55b76b1def9d0a51a018c0bdbd2c5 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Mon, 27 Mar 2017 23:22:26 +0800 Subject: [PATCH 55/82] Create allprimes.c --- .../ c/ level1/ p05_allPrimes/allprimes.c | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 practices/ c/ level1/ p05_allPrimes/allprimes.c diff --git a/practices/ c/ level1/ p05_allPrimes/allprimes.c b/practices/ c/ level1/ p05_allPrimes/allprimes.c new file mode 100644 index 00000000..9a6bc173 --- /dev/null +++ b/practices/ c/ level1/ p05_allPrimes/allprimes.c @@ -0,0 +1,23 @@ +#include +#include +#include +int main() +{ + clock_t t1, t2; + t1=clock(); + int i, j; + int num[1001] = {0}; + for (i = 2; i <= 1000; i++) { + for (j = 2 * i; j <= 1000; j += i) { + num[j] = 1; + } + } + for (i = 2; i <= 1000; i++) { + if (num[i] == 0) { + printf("%d\t", i); + } + } + t2 = clock(); + printf("\n%d\n", t2 - t1); +return 0; +} From ac155ee5f8998fa1027adbc8d71792ca73c79756 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Mon, 27 Mar 2017 23:23:30 +0800 Subject: [PATCH 56/82] Create Goldbach.c --- practices/ c/ level1/ p06_Goldbach/Goldbach.c | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 practices/ c/ level1/ p06_Goldbach/Goldbach.c diff --git a/practices/ c/ level1/ p06_Goldbach/Goldbach.c b/practices/ c/ level1/ p06_Goldbach/Goldbach.c new file mode 100644 index 00000000..9c241a04 --- /dev/null +++ b/practices/ c/ level1/ p06_Goldbach/Goldbach.c @@ -0,0 +1,27 @@ +//Goldbach:任一大于2的偶数都可写成两个质数之和 +#include +#include +#include +int main() +{ + int i, j; + int k; + int m, n; + int num[101] = {0}; + for (i = 2; i < 51; i++) { + for (j = 2 * i; j < 101; j += i){ + num[j] = 1; + } + } + for (k = 4; k < 101; k += 2) { + for (m = 2; m < 101; m++) { + for (n = 2; n < 101; n++) { + if (num[m] == 0 && num[n] == 0 && m + n == k) { + printf("%d=%d+%d\n", k, m, n); + } + } + } + } + system("pause"); + return 0; +} From 74f0f078ae907ecd5f4f20f80cde106eba2b9631 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Tue, 28 Mar 2017 00:16:12 +0800 Subject: [PATCH 57/82] Create hanoi.c --- practices/ c/ level1/ p08_hanoi/hanoi.c | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 practices/ c/ level1/ p08_hanoi/hanoi.c diff --git a/practices/ c/ level1/ p08_hanoi/hanoi.c b/practices/ c/ level1/ p08_hanoi/hanoi.c new file mode 100644 index 00000000..7d903844 --- /dev/null +++ b/practices/ c/ level1/ p08_hanoi/hanoi.c @@ -0,0 +1,29 @@ +#include +void move(int a, char from, char to); +void hanoi(int x, char from, char by, char to); +void main() +{ + int n; + char a = 'A', b = 'B', c = 'C'; + printf("请输入圆盘个数"); + scanf_s("%d", &n); + printf("圆盘移动情况如下:"); + hanoi(n,a,b,c); +} + +void move(int a, char from, char to) +{ + printf("第%d个盘从%c->%c\n",a, from, to); +} + +void hanoi(int x, char from, char by, char to) +{ + if (x == 1) { + move(x, from, to); + } + if (x > 1) { + hanoi(x - 1, from, to, by); + move(x, from, to); + hanoi(x - 1, by, from,to); + } +} From 8f23e0c83204a5e1b8ebe70a259c64a138f4a81c Mon Sep 17 00:00:00 2001 From: csw981001 Date: Tue, 28 Mar 2017 00:25:07 +0800 Subject: [PATCH 58/82] Update and rename practices/ c/ level1/ p08_hanoi/hanoi.c to practices/ c/ level1/ p08_hanoi/hanoi.c --- practices/ c/ level1/ p08_hanoi/hanoi.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/practices/ c/ level1/ p08_hanoi/hanoi.c b/practices/ c/ level1/ p08_hanoi/hanoi.c index 7d903844..94500b20 100644 --- a/practices/ c/ level1/ p08_hanoi/hanoi.c +++ b/practices/ c/ level1/ p08_hanoi/hanoi.c @@ -1,6 +1,8 @@ #include void move(int a, char from, char to); +int i = 1; void hanoi(int x, char from, char by, char to); +#include void main() { int n; @@ -9,11 +11,13 @@ void main() scanf_s("%d", &n); printf("圆盘移动情况如下:"); hanoi(n,a,b,c); + system("pause"); } void move(int a, char from, char to) { - printf("第%d个盘从%c->%c\n",a, from, to); + printf("第%d步:第%d个盘从%c->%c\n",i,a, from, to); + i++; } void hanoi(int x, char from, char by, char to) From b55de5c0b3afe4bfd682f393779ff47e27fa3a57 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Mon, 1 May 2017 16:38:03 +0800 Subject: [PATCH 59/82] list --- practices/ c/ level1/ p11_linkedList/list | 67 +++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 practices/ c/ level1/ p11_linkedList/list diff --git a/practices/ c/ level1/ p11_linkedList/list b/practices/ c/ level1/ p11_linkedList/list new file mode 100644 index 00000000..92c89073 --- /dev/null +++ b/practices/ c/ level1/ p11_linkedList/list @@ -0,0 +1,67 @@ +#include +#include +#define LEN sizeof(Node) +struct list { + int data; + struct list *next; +}; +typedef struct list Node; +int main() +{ + int n=0; + Node *head, *p, *p_new; + head = + p_new = (Node*)malloc(LEN); + scanf_s("%d", &p_new->data); + while (p_new->data != 0) { + p = p_new; + p_new = (Node*)malloc(LEN); + scanf_s("%d", &p_new->data); + p->next = + p_new; + } + p_new->next = + NULL; + printf("存储的数据为:\n"); + p = head; + while (p != NULL) { + printf("%d\t", p->data); + p = + p->next; + } + printf("\n反序结果如下:\n"); + Node *pre, *cur, *next; + cur = + head; + pre = NULL; + while (cur!= NULL) { + next = + cur->next; + cur->next = + pre; + pre = cur; + cur = next; + } + head = + pre; + p = head; + while (p->next!= NULL) { + printf("%d\t", p->data); + p = + p->next; + } + printf("%d\n", p->data); + Node*pp = head; + while (pp != NULL) { + if (pp->data == 5) { + n++; + printf("值为5的节点序号为%d\n", n); + } + pp = + pp->next; + } + if (n == 0) { + return -1; + } + system("pause"); +} From 1118318c516387115f1537466d32a54ede329440 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Mon, 1 May 2017 16:39:18 +0800 Subject: [PATCH 60/82] Create jinxiaoxun --- .../ c/ level1/ p12_warehouse/jinxiaoxun | 160 ++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 practices/ c/ level1/ p12_warehouse/jinxiaoxun diff --git a/practices/ c/ level1/ p12_warehouse/jinxiaoxun b/practices/ c/ level1/ p12_warehouse/jinxiaoxun new file mode 100644 index 00000000..a7fbad1b --- /dev/null +++ b/practices/ c/ level1/ p12_warehouse/jinxiaoxun @@ -0,0 +1,160 @@ +#include +#include +#include +struct type_number { + char name[20]; + int num; + struct type_number *next; +}; +typedef struct type_number xinxi; +xinxi node; +xinxi *head; + +void xianshi(); +void show(); ; +void input(); +void output(); +void save(); + +int num; +char name[20]; +int n = 0; + +void main() +{ + xianshi(); + while (1) { + system("cls"); + printf("请选择操作类型\n"); + printf(" 1.查看库存信息\n 2.入库\n 3.出库\n 4.退出程序\n "); + int option; + scanf_s("%d", &option); + switch (option) + { + case 1: + system("cls"); + show(); + break; + case 2: + system("cls"); + input(); + break; + case 3: + system("cls"); + output(); + break; + case 4: + save(); + exit(0); + default: + system("cls"); + printf("错误,请重新输入\n"); + } + } +} + + +void xianshi() +{ + head = (xinxi*)malloc(sizeof(xinxi)); + head->next = + NULL; + FILE *fp; + fp = fopen("shuju.txt", "r"); + if (fscanf(fp, "%d", &n) != EOF) { + for (int i = 0; i < n; i++); + fscanf(fp, "%s", name); + fscanf(fp, "%d", &num); + show(); + } + fclose(fp); +} + +void show() +{ + xinxi *p; + p = head->next; + while (p != NULL) { + printf("Name:%s\t\tNum:%d\n", p->name, p->num); + p = + p->next; + } +} + +void input() +{ + int compare = 0; + xinxi *p; + p = + head->next; + printf("please input name\n"); + scanf("%s", name); + printf("pleade input num\n"); + scanf_s("%d", &num); + while (p != NULL) { + if (strcmp(p->name, name) == 0) { + compare = 1; + p->num += num; + } + p = + p->next; + } + if (compare == 0) { + xinxi *pp; + pp = (xinxi*)malloc(sizeof(xinxi)); + strcpy(p->name ,name); + p->num = num; + pp->next = + head->next; + head->next = + pp; + n++; + } +} + +void output() +{ + int search = 0; + xinxi *p, *q; + p = head->next; + q = head; + printf("请输入出库对象:\n"); + scanf("%s", name); + printf("请输入出库数量:\n"); + scanf("%d", &num); + while (p != NULL) { + if (strcmp(p->name, name) == 0) { + search = 1; + if (p->num < num) { + printf("数量不足出库需求\n"); + break; + } + else { + p->num -= num; + } + } + p = + p->next; + } + if (search = 0) { + printf("库存中无该物品\n"); + } +} + +void save() +{ + FILE *fp; + fp = fopen("shuju", "w"); + fprintf(fp, "%d\n", n); + xinxi *p, *q; + p = head->next; + q = head; + free(q); + while (p != NULL) { + fprintf(fp, "%s\n", p->name); + fprintf(fp, "%d\n", p->num); + q = p; + p = p->next; + free(q); + } +} From 2363369ebb8d8e76469c2545b372cf2269889f93 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Mon, 1 May 2017 16:41:17 +0800 Subject: [PATCH 61/82] Create pushbox --- .../font-font- p10_pushBoxes /font /pushbox | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 practices/ c/ level1/font-font- p10_pushBoxes /font /pushbox diff --git a/practices/ c/ level1/font-font- p10_pushBoxes /font /pushbox b/practices/ c/ level1/font-font- p10_pushBoxes /font /pushbox new file mode 100644 index 00000000..a95facaa --- /dev/null +++ b/practices/ c/ level1/font-font- p10_pushBoxes /font /pushbox @@ -0,0 +1,117 @@ +#include +#include +#include +#define SIZE 9 +int intmaze[SIZE][SIZE]; +void print_map(); +void scanfmap(); +void move(int nn); +void main() +{ + scanfmap(); + move(SIZE); + system("pause"); +} + +void scanfmap() +{ + FILE *p; + p =fopen("level1.txt", "r"); + for (int i = 0; i < SIZE; i++) { + for (int j= 0; j < SIZE; j++) { + fscanf(p, "%d", &intmaze[i][j]); + } + } + fclose(p); +} +void print_map() +{ + for (int i = 0; i < SIZE; i++) { + for (int j = 0; j < SIZE; j++) { + if (intmaze[i][j] == 0) { + intmaze[i][j] = ' '; //空格 + }if (intmaze[i][j] == 1) { + intmaze[i][j] = '*'; //墙壁 + }if (intmaze[i][j] == 9) { + intmaze[i][j] = 'P'; //人 + }if (intmaze[i][j]== 2) { + intmaze[i][j] = '@'; //目的地; + }if (intmaze[i][j]== 3) { + intmaze[i][j] = '#'; //箱子 + } + } + } + for (int i = 0; i < SIZE; i++) { + for (int j = 0; j < SIZE; j++) { + printf("%c", intmaze[i][j]); + } + printf("\n"); + } +} + +void move(int nn) +{ + int x = 4, y = 4; + char walk; + while (1) { + print_map(); + walk = _getch(); + if (walk == 'w') { + if ((intmaze[x - 1][y] == ' ') && (x>0)) { + intmaze[x - 1][y] = 9; + intmaze[x][y] = 0; + x--; + } + else if ((intmaze[x - 1][y] == '#') && (intmaze[x - 2][y] != '*') && (x > 1)) { + intmaze[x - 1][y] = 9; + intmaze[x - 2][y] = 3; + intmaze[x][y] = 0; + x--; + } + } + if (walk == 's') { + if ((intmaze[x + 1][y] == ' ') && (x < nn - 1)) { + intmaze[x + 1][y] = 9; + intmaze[x][y] = 0; + x++; + } + else if ((intmaze[x + 1][y] == '#') && (intmaze[x + 2][y] != '*') && (x < nn - 2)) { + intmaze[x + 1][y] = 9; + intmaze[x + 2][y] = 3; + intmaze[x][y] = 0; + x++; + } + } + if (walk == 'a'){ + if ((intmaze[x][y - 1] == ' ') && (y > 0)) { + intmaze[x][y - 1] = 9; + intmaze[x][y] = 0; + y--; + } + else if ((intmaze[x][y - 1] == '#') && (intmaze[x][y - 2] != '*') && (y>1)) { + intmaze[x][y - 1] = 9; + intmaze[x][y - 2] = 3; + intmaze[x][y] = 0; + y--; + } + } + if (walk == 'd') { + if ((intmaze[x][y + 1] == ' ') && (y < nn - 1)) { + intmaze[x][y + 1] = 9; + intmaze[x][y] = 0; + y++; + } + else if ((walk == 'd') && (intmaze[x][y + 1] == '#') && (intmaze[x][y + 2] != '*') && (y < nn - 2)) { + intmaze[x][y + 1] = 9; + intmaze[x][y + 2] = 3; + intmaze[x][y] = 0; + y++; + } + } + system("cls"); + if (intmaze[1][4] != '@' && intmaze[4][1] != '@' && intmaze[7][4] != '@' && intmaze[4][7] != '@') { + printf("YOU WIN\n"); + break; + } + } +} From 345fbb3daf47390567ffa0143bf5e661fa1cdf1b Mon Sep 17 00:00:00 2001 From: csw981001 Date: Mon, 1 May 2017 16:42:48 +0800 Subject: [PATCH 62/82] Create maze --- practices/ c/ level1/ p09_maze/maze | 82 +++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 practices/ c/ level1/ p09_maze/maze diff --git a/practices/ c/ level1/ p09_maze/maze b/practices/ c/ level1/ p09_maze/maze new file mode 100644 index 00000000..3213d1e6 --- /dev/null +++ b/practices/ c/ level1/ p09_maze/maze @@ -0,0 +1,82 @@ +#include +#include +#include +#define size 10 +int position[size][size]; +void input_map(int nn); +void print_map(int nn); +void move_position(int nn); +void main() +{ + int n; + printf("请输入地图大小:\n"); + scanf("%d", &n); + input_map(n); + move_position(n); + system("pause"); +} + +void input_map(int nn) +{ + for (int i = 0; i < nn; i++) { + for (int j = 0; j < nn; j++) { + scanf("%d", &position[i][j]); + } + } +} + +void print_map(int nn) +{ + for (int i = 0; i < nn; i++) { + for (int j = 0; j < nn; j++) { + if (position[i][j] == 0) { + printf(" "); + } + else if (position[i][j] == 1) { + printf("#"); + } + else if (position[i][j] == 9) { + printf("P"); + } + } + printf("\n"); + } +} + +void move_position(int nn) +{ + int x, y; + x = y = 0; + position[x][y] = 9; + print_map(nn); + char walk; + while (1) { + walk = _getch(); + if (walk == 'w'&&(position[x-1][y]!=1)&&(x>0)) { + position[x-1][y] = 9; + position[x][y] = 0; + x--; + } + if (walk == 's' && (position[x+1][y] != 1) && (x0)) { + position[x][y-1] = 9; + position[x][y] = 0; + y--; + } + if (walk == 'd'&&(position[x][y+1]!=1)&&(y Date: Mon, 1 May 2017 16:51:56 +0800 Subject: [PATCH 63/82] Update and rename practices/ c/ level1/ p12_warehouse/jinxiaoxun to practices/ c/ level1/ p12_warehouse/jinxiaoxun --- .../ c/ level1/ p12_warehouse/jinxiaoxun | 50 +++++++++++-------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/practices/ c/ level1/ p12_warehouse/jinxiaoxun b/practices/ c/ level1/ p12_warehouse/jinxiaoxun index a7fbad1b..b1547457 100644 --- a/practices/ c/ level1/ p12_warehouse/jinxiaoxun +++ b/practices/ c/ level1/ p12_warehouse/jinxiaoxun @@ -34,7 +34,15 @@ void main() case 1: system("cls"); show(); - break; + int nn; + printf("返回上一层请按1,否则结束程序\n"); + scanf("%d", &nn); + if (nn == 1) { + break; + } + else { + exit(0); + } case 2: system("cls"); input(); @@ -85,31 +93,31 @@ void input() { int compare = 0; xinxi *p; - p = + p = head->next; printf("please input name\n"); scanf("%s", name); printf("pleade input num\n"); - scanf_s("%d", &num); - while (p != NULL) { - if (strcmp(p->name, name) == 0) { - compare = 1; - p->num += num; - } - p = - p->next; - } - if (compare == 0) { - xinxi *pp; - pp = (xinxi*)malloc(sizeof(xinxi)); - strcpy(p->name ,name); - p->num = num; - pp->next = - head->next; - head->next = - pp; - n++; + scanf_s("%d", &num); + while (p != NULL) { + if (strcmp(p->name, name) == 0) { + compare = 1; + p->num += num; } + p = + p->next; + } + if (compare == 0) { + xinxi *new_p; + new_p = (xinxi*)malloc(sizeof(xinxi)); + strcpy(new_p->name, name); + new_p->num = num; + new_p->next = + head->next; + head->next = + new_p; + n++; + } } void output() From 531d251ff201764da6f2584b9f0e24fec0718138 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 3 May 2017 23:00:29 +0800 Subject: [PATCH 64/82] Rename practices/ c/ level1/ p11_linkedList/list to practices/ c/ level1/ p11_linkedList/list.c --- practices/ c/ level1/ p11_linkedList/{list => list.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/ c/ level1/ p11_linkedList/{list => list.c} (100%) diff --git a/practices/ c/ level1/ p11_linkedList/list b/practices/ c/ level1/ p11_linkedList/list.c similarity index 100% rename from practices/ c/ level1/ p11_linkedList/list rename to practices/ c/ level1/ p11_linkedList/list.c From 4afca501ce2cb7398e4b13f5f0d75b9548a019d1 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 3 May 2017 23:01:06 +0800 Subject: [PATCH 65/82] Rename practices/ c/ level1/ p12_warehouse/jinxiaoxun to practices/ c/ level1/ p12_warehouse/jinxiaoxun.c --- practices/ c/ level1/ p12_warehouse/{jinxiaoxun => jinxiaoxun.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/ c/ level1/ p12_warehouse/{jinxiaoxun => jinxiaoxun.c} (100%) diff --git a/practices/ c/ level1/ p12_warehouse/jinxiaoxun b/practices/ c/ level1/ p12_warehouse/jinxiaoxun.c similarity index 100% rename from practices/ c/ level1/ p12_warehouse/jinxiaoxun rename to practices/ c/ level1/ p12_warehouse/jinxiaoxun.c From 6bf494b45f20872b5b420c5f75b33a45e872c71c Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 3 May 2017 23:01:37 +0800 Subject: [PATCH 66/82] Rename practices/ c/ level1/font-font- p10_pushBoxes /font /pushbox to practices/ c/ level1/ font-font- p10_pushBoxes/ font/pushbox.c --- .../font /pushbox => font-font- p10_pushBoxes/ font/pushbox.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/ c/ level1/{font-font- p10_pushBoxes /font /pushbox => font-font- p10_pushBoxes/ font/pushbox.c} (100%) diff --git a/practices/ c/ level1/font-font- p10_pushBoxes /font /pushbox b/practices/ c/ level1/ font-font- p10_pushBoxes/ font/pushbox.c similarity index 100% rename from practices/ c/ level1/font-font- p10_pushBoxes /font /pushbox rename to practices/ c/ level1/ font-font- p10_pushBoxes/ font/pushbox.c From 186e5a93ed03b9de1b942159a77a39afa2765b97 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 3 May 2017 23:02:12 +0800 Subject: [PATCH 67/82] Rename practices/ c/ level1/ p09_maze/maze to practices/ c/ level1/ p09_maze/maze.c --- practices/ c/ level1/ p09_maze/{maze => maze.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename practices/ c/ level1/ p09_maze/{maze => maze.c} (100%) diff --git a/practices/ c/ level1/ p09_maze/maze b/practices/ c/ level1/ p09_maze/maze.c similarity index 100% rename from practices/ c/ level1/ p09_maze/maze rename to practices/ c/ level1/ p09_maze/maze.c From dd935e94da69512af955c53ecb590195b20d0354 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Thu, 4 May 2017 00:00:20 +0800 Subject: [PATCH 68/82] Create queue.cpp --- practices/ cpp/ level1/ p01_Queue/queue.cpp | 77 +++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 practices/ cpp/ level1/ p01_Queue/queue.cpp diff --git a/practices/ cpp/ level1/ p01_Queue/queue.cpp b/practices/ cpp/ level1/ p01_Queue/queue.cpp new file mode 100644 index 00000000..a0ae04aa --- /dev/null +++ b/practices/ cpp/ level1/ p01_Queue/queue.cpp @@ -0,0 +1,77 @@ +#include +using namespace std; + +class Queue { +private: + int num[100]; + int app_num; + int pop_num; + int *p; +public: + Queue(); + void append(); + void pop(); + bool if_full(); + bool if_empty(); +}; + +Queue::Queue() +{ + num[100] = { 0 }; + app_num = 0; + pop_num = 0; + p = num; +} +void Queue::append() +{ + for (int i = 0; i < 100; i++) { + num[i] = i; + app_num++; + cout << num[i]<<"\t"; + } +} + +void Queue::pop() +{ + for (int i = 1; i < 101; i++) { + p++; + pop_num++; + } +} + +bool Queue::if_full() +{ + if (app_num == 100) { + return true; + } + else { + return false; + } +} + +bool Queue::if_empty() +{ + if (pop_num == 100||app_num==0) { + return true; + } + else { + return false; + } +} + +Queue queue; +void main() +{ + if (queue.if_empty()){ + cout << "The queue is now empty." << endl; + } + queue.append(); + cout << "\n"; + if (queue.if_full()) { + cout << "The queue is now full." << endl; + queue.pop(); + if (queue.if_empty()){ + cout << "The queue is now empty." << endl; + } + } +} From 7d17655198a289c19e0c7a0d5c85013c2a4731d9 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sun, 7 May 2017 17:56:25 +0800 Subject: [PATCH 69/82] Update and rename practices/ cpp/ level1/ p01_Queue/queue.cpp to practices/ cpp/ level1/ p01_Queue/queue.cpp --- practices/ cpp/ level1/ p01_Queue/queue.cpp | 92 ++++++++++++--------- 1 file changed, 52 insertions(+), 40 deletions(-) diff --git a/practices/ cpp/ level1/ p01_Queue/queue.cpp b/practices/ cpp/ level1/ p01_Queue/queue.cpp index a0ae04aa..65fb5a62 100644 --- a/practices/ cpp/ level1/ p01_Queue/queue.cpp +++ b/practices/ cpp/ level1/ p01_Queue/queue.cpp @@ -1,77 +1,89 @@ #include using namespace std; -class Queue { +class queue { private: - int num[100]; - int app_num; - int pop_num; - int *p; + struct node { + int num; + struct node* next; + }; + int len, count; + struct node *head, *p, *p_new, *temp; public: - Queue(); + queue(); void append(); void pop(); bool if_full(); bool if_empty(); -}; +}Queue; -Queue::Queue() +queue::queue() { - num[100] = { 0 }; - app_num = 0; - pop_num = 0; - p = num; + head = NULL; + len = 100; + count = 0; } -void Queue::append() +void queue::append() { - for (int i = 0; i < 100; i++) { - num[i] = i; - app_num++; - cout << num[i]<<"\t"; + head=p_new = new(struct node); + int i = 1; + p_new->num = i; + while (count != 99) { + i++; + p = p_new; + p_new = new(struct node); + p_new->num = i; + p->next = + p_new; + count++; } + p_new->next= + NULL; + p = head; + while (p != NULL) { + cout << p->num << endl; + p = p->next; + } + cout << "it's full now" << endl; } - -void Queue::pop() +void queue::pop() { - for (int i = 1; i < 101; i++) { - p++; - pop_num++; + while (count != 0) { + temp = head->next; + head->next = + head->next->next; + free(temp); + count--; } } - -bool Queue::if_full() +bool queue::if_full() { - if (app_num == 100) { + if (count == len) { return true; } else { return false; } } - -bool Queue::if_empty() +bool queue::if_empty() { - if (pop_num == 100||app_num==0) { + if (count == 0) { return true; } else { return false; } } - -Queue queue; void main() { - if (queue.if_empty()){ - cout << "The queue is now empty." << endl; + queue(); + if (Queue.if_empty()) { + Queue.append(); + } + if (Queue.if_full()) { + Queue.pop(); } - queue.append(); - cout << "\n"; - if (queue.if_full()) { - cout << "The queue is now full." << endl; - queue.pop(); - if (queue.if_empty()){ - cout << "The queue is now empty." << endl; - } + else { + cout << "it's empty now"<< endl; } } From 3a66ab8ed47c6bcc9432871746a677488956dced Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sun, 7 May 2017 21:16:43 +0800 Subject: [PATCH 70/82] Create stack.cpp --- practices/ cpp/ level1/ p02_Stack/stack.cpp | 90 +++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 practices/ cpp/ level1/ p02_Stack/stack.cpp diff --git a/practices/ cpp/ level1/ p02_Stack/stack.cpp b/practices/ cpp/ level1/ p02_Stack/stack.cpp new file mode 100644 index 00000000..cc6f8450 --- /dev/null +++ b/practices/ cpp/ level1/ p02_Stack/stack.cpp @@ -0,0 +1,90 @@ +#include +using namespace std; + +class queue { +private: + struct node { + int num; + struct node* next; + }; + int len, count; + struct node *head, *p, *p_new, *temp; +public: + queue(); + void append(); + void pop(); + bool if_full(); + bool if_empty(); +}Queue; + +queue::queue() +{ + int n; + cin >> n; + head = NULL; + len = n; + count = 0; +} +void queue::append() +{ + head = p = new(struct node); + p->next=NULL; + int i = 1; + p->num = i; + while (count != len-1) { + i++; + p_new = new(struct node); + p_new->num = i; + p_new->next= + head; + head=p_new; + count++; + } + p = head; + while (p != NULL) { + cout << p->num << endl; + p = p->next; + } + cout << "it's full now" << endl; +} +void queue::pop() +{ + while (count != 0) { + temp = head->next; + head->next = + temp->next; + free(temp); + count--; + } +} +bool queue::if_full() +{ + if (count == len) { + return true; + } + else { + return false; + } +} +bool queue::if_empty() +{ + if (count == 0) { + return true; + } + else { + return false; + } +} +void main() +{ + queue(); + if (Queue.if_empty()) { + Queue.append(); + } + if (Queue.if_full()) { + Queue.pop(); + } + else { + cout << "it's empty now"<< endl; + } +} From 014d82c2e31c249d86ec2afa652d89f203180fbb Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sun, 7 May 2017 22:07:50 +0800 Subject: [PATCH 71/82] Create safearray.cpp --- .../ cpp/ level1/ p03_SafeArray/safearray.cpp | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 practices/ cpp/ level1/ p03_SafeArray/safearray.cpp diff --git a/practices/ cpp/ level1/ p03_SafeArray/safearray.cpp b/practices/ cpp/ level1/ p03_SafeArray/safearray.cpp new file mode 100644 index 00000000..f7c49a34 --- /dev/null +++ b/practices/ cpp/ level1/ p03_SafeArray/safearray.cpp @@ -0,0 +1,57 @@ +#include +using namespace std; + +class SafeArray { +private: + int num; + int index; + int len; + int *p; +public: + SafeArray(); + bool if_out(); + void give_value(); + ~SafeArray(); +}safearray; + +SafeArray::SafeArray() +{ + int n; + cin >> n; + len = n; + index = 0; + p = new int[len]; +} +bool SafeArray::if_out() +{ + if (index >= len) { + return 1; + } + else { + return 0; + } +} +void SafeArray::give_value() +{ + while (1) { + int value; + cin >> value; + if (if_out()) { + cout << "out of range!" << endl; + break; + } + else { + SafeArray::p[index] = value; + index++; + } + } +} +SafeArray::~SafeArray() +{ + delete p; +} + +void main() +{ + safearray.give_value(); +} From 419211a763c9e5f5786cb248267dd2732a7f366c Mon Sep 17 00:00:00 2001 From: csw981001 Date: Mon, 8 May 2017 18:31:54 +0800 Subject: [PATCH 72/82] Create canvas.cpp --- practices/ cpp/ level1/ p05_Canvas/canvas.cpp | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 practices/ cpp/ level1/ p05_Canvas/canvas.cpp diff --git a/practices/ cpp/ level1/ p05_Canvas/canvas.cpp b/practices/ cpp/ level1/ p05_Canvas/canvas.cpp new file mode 100644 index 00000000..d6bfee14 --- /dev/null +++ b/practices/ cpp/ level1/ p05_Canvas/canvas.cpp @@ -0,0 +1,103 @@ +#include +using namespace std; + +class Canvas { +private: + struct Circle { + int center_x,center_y,radii; //圆形参数:名称、中心位置、半径 + struct Circle *next; + }circle; + struct Rectangle { + int center_x, center_y, length, width; //矩形参数:名称、中心位置、长宽、宽度 + struct Rectangle *next; + }rectangle; + struct Circle *head1, *p1, *p_new1; + struct Rectangle *head2, *p2, *p_new2; +public: + Canvas(); + void if_add(); + void add_circle(); + void add_rectangle(); + void show_figure(); +}canvas; + +Canvas::Canvas() +{ + head1 = NULL; + head2 = NULL; +} +void Canvas::if_add() +{ + while (1) { + system("cls"); + cout << "add or exit?" << endl; + cout << "1.add a circle" << endl; //添加圆的信息 + cout << "2.add a rectangle" << endl; //添加矩形的信息 + cout << "3.stop adding and see information" << endl; //停止添加,查看已有信息 + int n; + cin >> n; + system("cls"); + if (1 == n) { + add_circle(); //添加圆信息 + } + else if (2 == n) { + add_rectangle(); //添加矩形信息 + } + else { + break; //停止添加 + } + } +} +void Canvas::add_circle() +{ + p_new1 = new(struct Circle); + cout << "please input the center_x" << endl; + cin >> p_new1->center_x; + cout << endl << "please input the center_y" << endl; + cin >> p_new1->center_y; + cout << endl << "please input the length" << endl; + cin >> p_new1->radii; + p_new1->next = head1; + head1 = p_new1; +} +void Canvas::add_rectangle() +{ + p_new2 = new(struct Rectangle); + cout << "please input the center_x" << endl; + cin >> p_new2->center_x; + cout << endl << "please input the center_y" << endl; + cin >> p_new2->center_y; + cout << endl << "please input the length" << endl; + cin >> p_new2->length; + cout << endl << "please input the width" << endl; + cin >> p_new2->width; + p_new2->next = head2; + head2 = p_new2; +} +void Canvas::show_figure() +{ + int i = 1, j = 1; + p1 = head1; + cout << "circle no."<<"\t\t"<<"center_x"<<"\t\t"<<"center_y"<<"\t\t"<<"radii" << endl; + while (p1 != NULL) { + cout << i <<"\t\t\t"<< p1->center_x <<"\t\t\t"<< p1->center_y <<"\t\t\t"<< p1->radii << endl; + p1 = + p1->next; + i++; + } + p2 = head2; + cout << "rectangle no."<<"\t\t"<<"center_x"<<"\t\t"<<"center_y"<<"\t\t"<<"length"<<"\t\t"<<"width"<< endl; + while (p2 != NULL) { + cout << j <<"\t\t\t"<center_x <<"\t\t\t"<< p2->center_y <<"\t\t\t" <length <<"\t\t"<< p2->width << endl; + p2 = + p2->next; + j++; + } +} + +void main() +{ + canvas.if_add(); + canvas.show_figure(); + system("pause"); +} From fa1b608b4cf96b974d8d92402ae51fd26bfa0912 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Tue, 9 May 2017 00:08:47 +0800 Subject: [PATCH 73/82] Create CircleAndPoint.cpp --- .../ p06_CircleAndPoint/CircleAndPoint.cpp | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 practices/ cpp/ level1/ p06_CircleAndPoint/CircleAndPoint.cpp diff --git a/practices/ cpp/ level1/ p06_CircleAndPoint/CircleAndPoint.cpp b/practices/ cpp/ level1/ p06_CircleAndPoint/CircleAndPoint.cpp new file mode 100644 index 00000000..f71b4c94 --- /dev/null +++ b/practices/ cpp/ level1/ p06_CircleAndPoint/CircleAndPoint.cpp @@ -0,0 +1,51 @@ +#include +using namespace std; + +class point { +private: + int x, y; //点横坐标x,纵坐标y +public: + point(int xx = 0, int yy = 0) + { + x = xx, y = yy; + } + void move(); + void show(); +}Point; +void point::move() +{ + int move_x, move_y; + cout << "请输入即将移动横坐标的大小:" << endl; + cin >> move_x; + cout << "请输入即将移动的纵坐标的大小" << endl; + cin >> move_y; + x += move_x, y += move_y; +} +void point::show() +{ + cout <<"点坐标"<< "(" << x << "," << y << ")" << endl; //移动后点坐标 +} + +class circle :public point +{ +private: + int radii; //圆的直径 +public: + circle(int R, int x, int y) :point(x, y) + { + radii = R; + } + void show_cir() + { + show(); + cout << "the radii of tthe circle is " << radii << endl; + } +}; + +void main() +{ + circle Circle(1,0,0); + Circle.show_cir(); + Circle.move(); + Circle.show_cir(); +} From db127fba2d16c42cb466b470f92a462300b1f4a5 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 10 May 2017 13:24:05 +0800 Subject: [PATCH 74/82] Create cppScoreManagement.cpp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 功能都已实现,且对可能出现的不同的情况都有相应的解决方法。但是代码过于冗长,之后有时间会进行改善 --- .../cppScoreManagement.cpp | 219 ++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 practices/ cpp/ level1/ p04_cppScoreManagement/cppScoreManagement.cpp diff --git a/practices/ cpp/ level1/ p04_cppScoreManagement/cppScoreManagement.cpp b/practices/ cpp/ level1/ p04_cppScoreManagement/cppScoreManagement.cpp new file mode 100644 index 00000000..bac959f3 --- /dev/null +++ b/practices/ cpp/ level1/ p04_cppScoreManagement/cppScoreManagement.cpp @@ -0,0 +1,219 @@ +#include +#include +using namespace std; +/* run this program using the console pauser or add your own getch, system("pause") or input loop */ + +int sleep_time = 2000; +class student { +private: + struct DATA { + int stu_no; //学生编号 + char name[20]; //姓名 + int score; //成绩 + struct DATA *next; + }; + struct DATA *head, *p_new, *temp1, *temp2; +public: + student(); + void show(); + void add_stu(); + void del_stu(); + void get_score(); +}; + +student::student() +{ + head = NULL; +} +void student::add_stu() //添加学生信息的函数 +{ + int if_add; + while (1) { + int have_exist = 0; //用于判定将要加入的学生是否已存在 + p_new = new(struct DATA); + cout << "请输入学生的学号:" << endl; + cin >> p_new->stu_no; + temp1 = head; + while (temp1 != NULL) { + if (temp1->stu_no == p_new->stu_no) { + cout << "该学生信息已存在,若要继续添加,请先删除" << endl; + Sleep(sleep_time); + have_exist = 1; + break; + } + temp1 = + temp1->next; + } + if (have_exist) { + break; + } + cout << "请输入学生的姓名:" << endl; + cin >> p_new->name; + p_new->score = 0; + p_new->next = head; + head = p_new; + cout << "选择即将进行操作的序号" << endl; + cout << "1.继续添加" << endl; + cout << "2.返回上一层" << endl; + cin >> if_add; + if (2==if_add) { + break; + } + } +} +void student::del_stu() //删除学生信息的函数 +{ + int number; //存储将要删除对象的编号 + while (1) { + int have_find = 0; + cout << "请输入删除对象的编号" << endl; + cin >> number; + temp1 = head; + temp2 = + head->next; + if (temp2==NULL) { + if (temp1->stu_no == number) { + head = temp2; + delete(temp1); + cout << "删除成功" << endl; + Sleep(sleep_time); + break; + } + else { + cout << "信息库中无该对象" << endl; + Sleep(sleep_time); + break; + } + } + else if(1){ + if (temp1->stu_no == number) { + head = temp2; + delete(temp1); + cout << "删除成功" << endl; + Sleep(sleep_time); + break; + } + else { + while (temp2 != NULL) { + if (temp2->stu_no == number) { + have_find++; + temp1->next = + temp2->next; + delete(temp2); + cout << "删除成功" << endl; + Sleep(sleep_time); + break; + } + if (have_find == 0) { + temp1 = temp2; + temp2 = + temp2->next; + } + } + } + if (have_find) { + break; + } + else { + cout << "信息库中无该对象" << endl; + Sleep(sleep_time); + break; + } + } + } +} +void student::get_score() //添加学生成绩的函数 +{ + int if_get; + while (1) { + cout << "请输入进行添加成绩对象的号码:" << endl; + int number; + cin >> number; + int if_find = 0; + temp1 = head; + while (temp1 != NULL) { + if (temp1->stu_no == number) { + cout << "请输入分数" << endl; + cin >> temp1->score; + if_find++; + break; + } + temp1 = + temp1->next; + } + if (0 == if_find) { + cout << "没有该学生的信息!" << endl; + cout << "选择即将进行操作的序号" << endl; + cout << "1.继续添加" << endl; + cout << "2.返回上一层" << endl; + cin >> if_get; + if (2 == if_get) { + break; + } + }if (0 != if_find) { + cout << "选择即将进行操作的序号" << endl; + cout << "1.继续添加" << endl; + cout << "2.返回上一层" << endl; + cin >> if_get; + if (2 == if_get) { + break; + } + } + } +} +void student::show() //显示学生信息的函数 +{ + cout << "学生编号" << "\t\t" << "学生姓名" << "\t\t" << "学生成绩" << endl; + temp1 = head; + while (temp1 != NULL) + { + cout << temp1->stu_no << "\t\t\t" << temp1->name << "\t\t\t" << temp1->score << endl; + temp1 = temp1->next; + } +} + +int main(int argc, char** argv) { + class student STUDENT; + while (1) { + system("cls"); + cout << "请输入将要执行操作的编号:" << endl; + cout << "1.查看学生名单;" << endl; + cout << "2.添加学生;" << endl; + cout << "3.删除学生;" << endl; + cout << "4.录入成绩;" << endl; + cout << "5.退出程序;" << endl; + int n; + cin >> n; + system("cls"); + switch (n) { + case 1: + STUDENT.show(); + int if_show; + cout << "选择即将进行操作的序号" << endl; + cout << "1.返回上一层" << endl; + cout << "2.退出程序" << endl; + cin >> if_show; + if (1 == if_show) { + break; + } + else { + return -1; + } + case 2: + STUDENT.add_stu(); + break; + case 3: + STUDENT.del_stu(); + break; + case 4: + STUDENT.get_score(); + break; + case 5: + return -1; + default: + cout << "没有该选项!"; + Sleep(sleep_time); + } + } + return 0; +} From 9df24259b7b887db2fbdb12a026291ff2d144e2e Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sun, 21 May 2017 16:48:35 +0800 Subject: [PATCH 75/82] Create fighter.cpp --- .../ cpp/ level1/ p11_Fighters/fighter.cpp | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 practices/ cpp/ level1/ p11_Fighters/fighter.cpp diff --git a/practices/ cpp/ level1/ p11_Fighters/fighter.cpp b/practices/ cpp/ level1/ p11_Fighters/fighter.cpp new file mode 100644 index 00000000..c81a3ea9 --- /dev/null +++ b/practices/ cpp/ level1/ p11_Fighters/fighter.cpp @@ -0,0 +1,98 @@ +#include +#include +#define move_speed 0.5 +#define window_length 1280 +#define window_width 960 +#define missile_speed 1 +class MISSILE{ +private: +public: +sf::Texture tex_missile; +sf::Sprite missile; + + MISSILE() + { +if (!tex_missile.loadFromFile("missile.jpg")){ + // 未找到文件的情况 + } + missile.setTexture(tex_missile); + missile.setScale(0.6f,0.6f); + missile.setOrigin(62.5,62.5); + } +}; +void move_aircraft(sf::Sprite &duixiang) +{ + sf::Vector2f position = duixiang.getPosition(); + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)&&(position.x>53)){ + duixiang.move(-move_speed, 0); //左移 + } + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)&&(position.x0+75)){ + duixiang.move(0,-move_speed); //上移 + } + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down)&&(position.ymissile.setPosition(position.x,position.y-100); + sf::Vector2f position_missile=p->missile.getPosition(); + while(position_missile.y>0){ + + p->missile.move(0,-missile_speed); + position_missile=p->missile.getPosition(); + move_aircraft(aircraft); + window.draw(p->missile); + window.display(); + window.clear(sf::Color::White); + window.draw(aircraft); + } + delete p; + } + + + window.clear(sf::Color::White); + window.draw(aircraft); + window.display(); + } + return 0; +} From ff1c8b67b7be5860dbc1d924b00e30d12372a3ac Mon Sep 17 00:00:00 2001 From: csw981001 Date: Mon, 22 May 2017 00:06:02 +0800 Subject: [PATCH 76/82] Update and rename practices/ cpp/ level1/ p11_Fighters/fighter.cpp to practices/ cpp/ level1/ p11_Fighters/fighter.cpp --- .../ cpp/ level1/ p11_Fighters/fighter.cpp | 127 ++++++++++++------ 1 file changed, 88 insertions(+), 39 deletions(-) diff --git a/practices/ cpp/ level1/ p11_Fighters/fighter.cpp b/practices/ cpp/ level1/ p11_Fighters/fighter.cpp index c81a3ea9..30118b1a 100644 --- a/practices/ cpp/ level1/ p11_Fighters/fighter.cpp +++ b/practices/ cpp/ level1/ p11_Fighters/fighter.cpp @@ -1,66 +1,83 @@ #include #include +#include #define move_speed 0.5 #define window_length 1280 #define window_width 960 #define missile_speed 1 +#define enemy_speed 0.1 +//导弹的类 class MISSILE{ -private: public: -sf::Texture tex_missile; -sf::Sprite missile; - - MISSILE() - { -if (!tex_missile.loadFromFile("missile.jpg")){ + sf::Texture tex_missile; + sf::Sprite missile; + MISSILE(){ + if (!tex_missile.loadFromFile("missile.jpg")){ // 未找到文件的情况 } missile.setTexture(tex_missile); missile.setScale(0.6f,0.6f); - missile.setOrigin(62.5,62.5); + missile.setOrigin(62.5,62.5); + } +}; +//敌机的类 +class ENEMY{ +public: + sf::Texture tex_enemy; + sf::Sprite enemy; + ENEMY(){ + if (!tex_enemy.loadFromFile("enemy.png")){ + // 未找到文件的情况 + } + enemy.setTexture(tex_enemy); + enemy.setOrigin(149,134); + enemy.setScale(0.4f,0.4f); } }; +//定义我方飞机的移动函数 void move_aircraft(sf::Sprite &duixiang) { sf::Vector2f position = duixiang.getPosition(); - if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)&&(position.x>53)){ - duixiang.move(-move_speed, 0); //左移 +//左移 + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)&&(position.x>53)){ + duixiang.move(-move_speed, 0); } - if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)&&(position.x0+75)){ - duixiang.move(0,-move_speed); //上移 +//上移 + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)&&(position.y>0+75)){ + duixiang.move(0,-move_speed); } - if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down)&&(position.ymissile.setPosition(position.x,position.y-100); - sf::Vector2f position_missile=p->missile.getPosition(); - while(position_missile.y>0){ - - p->missile.move(0,-missile_speed); +//移动飞机 + move_aircraft(aircraft); +//发射导弹 + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Space)){ + MISSILE*p=new MISSILE; + sf::Vector2f position = aircraft.getPosition(); + p->missile.setPosition(position.x,position.y-100); + sf::Vector2f position_missile=p->missile.getPosition(); + while(position_missile.y>0){ + p->missile.move(0,-missile_speed); position_missile=p->missile.getPosition(); - move_aircraft(aircraft); - window.draw(p->missile); - window.display(); - window.clear(sf::Color::White); - window.draw(aircraft); + move_aircraft(aircraft); + window.draw(p->missile); + window.display(); + window.clear(sf::Color::White); + window.draw(aircraft); } delete p; - } - - + } window.clear(sf::Color::White); window.draw(aircraft); window.display(); +//根据随机数种子设置敌机位置 + int enemy_idx=rand()%1280+1; + ENEMY *q=new ENEMY; + q->enemy.setPosition(enemy_idx,0); + sf::Vector2f position_enemy=q->enemy.getPosition(); + while(position_enemy.yenemy.move(0,enemy_speed); + position_enemy=q->enemy.getPosition(); + move_aircraft(aircraft); + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Space)){ + MISSILE*p=new MISSILE; + sf::Vector2f position = aircraft.getPosition(); + p->missile.setPosition(position.x,position.y-100); + sf::Vector2f position_missile=p->missile.getPosition(); + while(position_missile.y>0){ + q->enemy.move(0,enemy_speed); + p->missile.move(0,-missile_speed); + position_missile=p->missile.getPosition(); + move_aircraft(aircraft); + window.draw(p->missile); + window.draw(q->enemy); + window.display(); + window.clear(sf::Color::White); + window.draw(aircraft); + } + delete p; + } + move_aircraft(aircraft); + window.draw(q->enemy); + window.display(); + window.clear(sf::Color::White); + window.draw(aircraft); +} +delete q; } return 0; } From cf3659392b22998a94e010da3dbe47c51eb15ce3 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Tue, 30 May 2017 23:15:52 +0800 Subject: [PATCH 77/82] Create fighter --- practices/ cpp/ level1/ p11_Fighters/fighter | 218 +++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 practices/ cpp/ level1/ p11_Fighters/fighter diff --git a/practices/ cpp/ level1/ p11_Fighters/fighter b/practices/ cpp/ level1/ p11_Fighters/fighter new file mode 100644 index 00000000..d0b8e873 --- /dev/null +++ b/practices/ cpp/ level1/ p11_Fighters/fighter @@ -0,0 +1,218 @@ +#include +#include +#include +#include +#include +#define move_speed_my_aircraft 0.5 +#define move_speed_my_missle 0.3 +#define move_speed_enemy_aircraft 0.15 +#define window_lenth 1920 +#define window_width 1020 + +void move_aircraft(sf::Sprite &duixiang) +{ + sf::Vector2f now_position=duixiang.getPosition(); + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)&&(now_position.x>53.25)){ + duixiang.move(-move_speed_my_aircraft, 0); + } + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)&&(now_position.x75)){ + duixiang.move(0, -move_speed_my_aircraft); + } + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down)&&(now_position.y0){ + MY_AIRCRAFT *my_aircraft=new (MY_AIRCRAFT); + if_my_aircraft_exist=1; + while (window.isOpen()){ + //window.setFramerateLimit(60); + sf::Event event; + while (window.pollEvent(event)) + { + if (event.type == sf::Event::Closed) + window.close(); + } + finish_time=clock(); + between_time=finish_time-start_time; + if(between_time>3000){ + enemy_number=rand()%3+1; + for(int j=0;j<30;j++){ + if(0==enemy_aircraft[j].if_exist){ + enemy_aircraft[j].if_exist=1; + enemy_index=rand()%window_lenth+1; + enemy_aircraft[j].aircraft.setPosition(enemy_index,80); + enemy_number--; + if(0==enemy_number){ + break; + } + } + } + start_time=finish_time; + } + move_aircraft(my_aircraft->aircraft); + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Space)){ + sf::Time elapsed = clock1.getElapsedTime(); + clock1.restart(); + if(elapsed.asSeconds()>0.05){ + for(int i=0;i<50;i++){ + if(0==my_missile[i].if_exist){ + my_missile[i].missile.setPosition(my_aircraft->aircraft.getPosition()); + my_missile[i].if_exist=1; + break; + } + } + } + } + for(int i=0;i<50;i++){ + if(1==my_missile[i].if_exist){ + my_missile[i].missile.move(0,-move_speed_my_missle); + } + if(my_missile[i].missile.getPosition().y<-20){ + my_missile[i].if_exist=0; + } + } + for(int j=0;j<30;j++){ + if(1==enemy_aircraft[j].if_exist){ + enemy_aircraft[j].aircraft.move(0,move_speed_enemy_aircraft); + } + if(enemy_aircraft[j].aircraft.getPosition().y>window_width){ + enemy_aircraft[j].if_exist=0; + } + } + window.clear(sf::Color::White); + window.draw(my_aircraft->aircraft); + for(int i=0;i<50;i++){ + if(1==my_missile[i].if_exist){ + + window.draw(my_missile[i].missile); + } + } + for(int j=0;j<30;j++){ + if(1==enemy_aircraft[j].if_exist){ + + window.draw(enemy_aircraft[j].aircraft); + } + } + for(int i=0;i<50;i++){ + for(int j=0;j<30;j++){ + if((1==my_missile[i].if_exist)&&(1==enemy_aircraft[j].if_exist)){ + sf::FloatRect boundingBox1 = enemy_aircraft[j].aircraft.getGlobalBounds(); + sf::FloatRect boundingBox2 = my_missile[i].missile.getGlobalBounds(); + if(boundingBox1.intersects(boundingBox2)){ + my_missile[i].if_exist=0; + enemy_aircraft[j].if_exist=0; + } + } + } + } + sf::FloatRect boundingBox3 = my_aircraft->aircraft.getGlobalBounds(); + for(int j=0;j<30;j++){ + if(1==enemy_aircraft[j].if_exist){ + sf::FloatRect boundingBox1 = enemy_aircraft[j].aircraft.getGlobalBounds(); + if(boundingBox3.intersects(boundingBox1)){ + if_my_aircraft_exist=0; + your_life--; + break; + } + } + } + if(0==if_my_aircraft_exist){ + window.clear(sf::Color::White); + window.display(); + Sleep(3000); + break; + } + window.display(); +} + } + return 0; +} From 195d663d44898d4118adbaeab8d4a7b376aa320d Mon Sep 17 00:00:00 2001 From: csw981001 Date: Wed, 31 May 2017 09:35:17 +0800 Subject: [PATCH 78/82] Update and rename practices/ cpp/ level1/ p11_Fighters/fighter to practices/ cpp/ level1/ p11_Fighters/Fighter.cpp --- .../ p11_Fighters/{fighter => Fighter.cpp} | 140 +++++++++++++----- 1 file changed, 105 insertions(+), 35 deletions(-) rename practices/ cpp/ level1/ p11_Fighters/{fighter => Fighter.cpp} (59%) diff --git a/practices/ cpp/ level1/ p11_Fighters/fighter b/practices/ cpp/ level1/ p11_Fighters/Fighter.cpp similarity index 59% rename from practices/ cpp/ level1/ p11_Fighters/fighter rename to practices/ cpp/ level1/ p11_Fighters/Fighter.cpp index d0b8e873..adc599ab 100644 --- a/practices/ cpp/ level1/ p11_Fighters/fighter +++ b/practices/ cpp/ level1/ p11_Fighters/Fighter.cpp @@ -3,9 +3,10 @@ #include #include #include -#define move_speed_my_aircraft 0.5 -#define move_speed_my_missle 0.3 -#define move_speed_enemy_aircraft 0.15 +#define move_speed_my_aircraft 5 +#define move_speed_my_missle 3 +#define move_speed_enemy_aircraft 1.5 +#define move_speed_enemy_missile 2 #define window_lenth 1920 #define window_width 1020 @@ -37,7 +38,7 @@ class MISSILE{ sf::Texture tex_missile; sf::Sprite missile; }; - +//我方战机类 class MY_AIRCRAFT:public AIRCRAFT { public: @@ -50,17 +51,9 @@ aircraft.setTexture(tex_aircraft); aircraft.setOrigin(106.5,150); aircraft.setPosition(960,930); aircraft.setScale(0.5f,0.5f); - - - } - - -sf::FloatRect boundingBox= aircraft.getGlobalBounds(); - - }; - +//我方导弹类 class MY_MISSILE:public MISSILE { public: @@ -75,10 +68,11 @@ missile.setOrigin(62.5,62.5); missile.setScale(0.3f,0.3f); } }; - +//敌机类 class ENEMY_AIRCRAFT:public AIRCRAFT { public: + int index=0; int if_exist=0; ENEMY_AIRCRAFT() { @@ -90,6 +84,23 @@ aircraft.setOrigin(147,134); aircraft.setScale(0.4f,0.4f); } }; +//敌机导弹类 +class ENEMY_MISSILE:public MISSILE +{ +public: + int if_begin_move=0; + int index=0; + int if_exist=0; + ENEMY_MISSILE() + { + if (!tex_missile.loadFromFile("missile.jpg")){ + // error... +} +missile.setTexture(tex_missile); +missile.setOrigin(62.5,62.5); +missile.setScale(0.3f,0.3f); + } +}; int main() { //播放背景音乐 @@ -97,20 +108,23 @@ int main() if (!music.openFromFile("Sight.wav")){ return -1; } - music.setVolume(30); + music.setVolume(10); music.play(); music.setLoop(true); sf::Clock clock1; MY_MISSILE my_missile[50]; ENEMY_AIRCRAFT enemy_aircraft[30]; - int between_time,enemy_number,enemy_index; + ENEMY_MISSILE enemy_missile[30]; + int between_time,enemy_number; int if_my_aircraft_exist; int your_life=3; + int your_blood_number; sf::RenderWindow window(sf::VideoMode(window_lenth,window_width), "SFML works!"); clock_t start_time,finish_time; start_time=clock(); srand(time(0)); while(your_life>0){ + your_blood_number=300; MY_AIRCRAFT *my_aircraft=new (MY_AIRCRAFT); if_my_aircraft_exist=1; while (window.isOpen()){ @@ -121,15 +135,17 @@ int main() if (event.type == sf::Event::Closed) window.close(); } - finish_time=clock(); + finish_time=clock(); between_time=finish_time-start_time; - if(between_time>3000){ + if(between_time>6000){ enemy_number=rand()%3+1; for(int j=0;j<30;j++){ - if(0==enemy_aircraft[j].if_exist){ + if((0==enemy_aircraft[j].if_exist)&&(0==enemy_missile[j].if_exist)){ enemy_aircraft[j].if_exist=1; - enemy_index=rand()%window_lenth+1; - enemy_aircraft[j].aircraft.setPosition(enemy_index,80); + enemy_aircraft[j].index=rand()%window_lenth+1; + enemy_aircraft[j].aircraft.setPosition(enemy_aircraft[j].index,0); + enemy_missile[j].index=(rand()%window_width+1)/2; + enemy_missile[j].missile.setPosition(enemy_aircraft[j].index,enemy_missile[j].index); enemy_number--; if(0==enemy_number){ break; @@ -152,7 +168,7 @@ int main() } } } - for(int i=0;i<50;i++){ + for(int i=0;i<50;i++){ if(1==my_missile[i].if_exist){ my_missile[i].missile.move(0,-move_speed_my_missle); } @@ -160,36 +176,68 @@ int main() my_missile[i].if_exist=0; } } - for(int j=0;j<30;j++){ - if(1==enemy_aircraft[j].if_exist){ - enemy_aircraft[j].aircraft.move(0,move_speed_enemy_aircraft); - } + for(int j=0;j<30;j++){ + if(enemy_aircraft[j].if_exist==1){ + if((enemy_aircraft[j].aircraft.getPosition().y)>=(enemy_missile[j].index)){ + enemy_missile[j].if_begin_move=1; + } + } + if((1==enemy_missile[j].if_begin_move)&&(enemy_missile[j].missile.getPosition().ywindow_width){ enemy_aircraft[j].if_exist=0; - } } + } + if(1==enemy_missile[j].if_begin_move){ + if(enemy_missile[j].missile.getPosition().y>=window_width){ + enemy_missile[j].if_exist=0; + enemy_missile[j].if_begin_move=0; + } + } +} window.clear(sf::Color::White); window.draw(my_aircraft->aircraft); for(int i=0;i<50;i++){ if(1==my_missile[i].if_exist){ - window.draw(my_missile[i].missile); } } for(int j=0;j<30;j++){ if(1==enemy_aircraft[j].if_exist){ - window.draw(enemy_aircraft[j].aircraft); } + if(1==enemy_missile[j].if_exist){ + window.draw(enemy_missile[j].missile); + } } + + + + sf::VertexArray quad(sf::Quads,4); + quad[0].position=sf::Vector2f(10,10); + quad[1].position=sf::Vector2f(10+your_blood_number,10); + quad[2].position=sf::Vector2f(10+your_blood_number,60); + quad[3].position=sf::Vector2f(10,60); + quad[0].color=sf::Color::Red; + quad[1].color=sf::Color::Red; + quad[2].color=sf::Color::Red; + quad[3].color=sf::Color::Red; + window.draw(quad); + for(int i=0;i<50;i++){ for(int j=0;j<30;j++){ if((1==my_missile[i].if_exist)&&(1==enemy_aircraft[j].if_exist)){ - sf::FloatRect boundingBox1 = enemy_aircraft[j].aircraft.getGlobalBounds(); + sf::FloatRect boundingBox1 = enemy_aircraft[j].aircraft.getGlobalBounds(); sf::FloatRect boundingBox2 = my_missile[i].missile.getGlobalBounds(); if(boundingBox1.intersects(boundingBox2)){ - my_missile[i].if_exist=0; - enemy_aircraft[j].if_exist=0; + my_missile[i].if_exist=0; + enemy_aircraft[j].if_exist=0; } } } @@ -197,15 +245,37 @@ int main() sf::FloatRect boundingBox3 = my_aircraft->aircraft.getGlobalBounds(); for(int j=0;j<30;j++){ if(1==enemy_aircraft[j].if_exist){ - sf::FloatRect boundingBox1 = enemy_aircraft[j].aircraft.getGlobalBounds(); + sf::FloatRect boundingBox1 = enemy_aircraft[j].aircraft.getGlobalBounds(); if(boundingBox3.intersects(boundingBox1)){ - if_my_aircraft_exist=0; - your_life--; + + enemy_aircraft[j].if_exist=0; + your_blood_number-=20; break; } } + } + for(int j=0;j<30;j++){ + if(1==enemy_missile[j].if_exist){ + sf::FloatRect boundingBox2 = enemy_missile[j].missile.getGlobalBounds(); + if(boundingBox2.intersects(boundingBox3)){ + enemy_missile[j].if_exist=0; + enemy_missile[j].if_begin_move=0; + enemy_missile[j].index=window_lenth; + your_blood_number-=10; + break; + } + } + } + if(your_blood_number<=0){ + if_my_aircraft_exist=0; + } if(0==if_my_aircraft_exist){ + for(int j=0;j<30;j++){ + enemy_aircraft[j].if_exist=0; + enemy_missile[j].if_exist=0; + enemy_missile[j].if_begin_move=0; + } window.clear(sf::Color::White); window.display(); Sleep(3000); From 019eafbd6a7bdbcb88034fccb830e59e4b85f5de Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sat, 10 Jun 2017 02:56:09 +0800 Subject: [PATCH 79/82] Create fighter_another.cpp --- .../ level1/ p11_Fighters/fighter_another.cpp | 872 ++++++++++++++++++ 1 file changed, 872 insertions(+) create mode 100644 practices/ cpp/ level1/ p11_Fighters/fighter_another.cpp diff --git a/practices/ cpp/ level1/ p11_Fighters/fighter_another.cpp b/practices/ cpp/ level1/ p11_Fighters/fighter_another.cpp new file mode 100644 index 00000000..5aa906a3 --- /dev/null +++ b/practices/ cpp/ level1/ p11_Fighters/fighter_another.cpp @@ -0,0 +1,872 @@ +#include +#include +#include +#include +#include"move_aircraft.h" +#include"missile.h" +#include"aircraft.h" +#include"my_aircraft.h" +#include"my_missile.h" +#include"enemy_aircraft.h" +#include"enemy_aircraft_2.h" +#include"enemy_missile.h" +#include"boss_1.h" +#include"boss_2.h" +#include"energy.h" +#include"blood_plus.h" +#define move_speed_my_missle 0.6 +#define move_speed_enemy_aircraft 0.25 +#define move_speed_enemy_missile 0.3 +#define move_speed_energy 0.5 +#define max_enemy_num 50 +#define max_enemy_missile_num 200 +#define max_my_missile_num 80 +#define window_lenth 1920 +#define window_width 1080 +#define PI 3.14 +int main() +{ + + srand(time(0)); + //播放背景音乐 + sf::Music backgound_music; + sf::Music enemy_boom; + sf::Music i_boom; + sf::Music boss_boom; + sf::Music fire; + if (!backgound_music.openFromFile("Sight.wav")) { + std::cout << "wrong0" << std::endl; + } + if (!enemy_boom.openFromFile("enemy_boom.wav")) { + std::cout << "wrong1" << std::endl; + } + if (!i_boom.openFromFile("i_boom.wav")) { + std::cout << "wrong2" << std::endl;; + } + if (!boss_boom.openFromFile("boss_boom.wav")) { + std::cout << "wrong0" << std::endl; + } + if (!fire.openFromFile("fire.wav")) { + std::cout << "wrong0" << std::endl; + } + backgound_music.setVolume(40); + enemy_boom.setVolume(50); + boss_boom.setVolume(60); + i_boom.setVolume(100); + fire.setVolume(40); + backgound_music.play(); + backgound_music.setLoop(true); + //设置背景图片 + sf::Texture tex_background; + sf::Sprite background; + if (!tex_background.loadFromFile("background.jpg")) { + std::cout << "wrong3" << std::endl; + } + background.setTexture(tex_background); + background.setOrigin(266.5, 150); + background.setScale(3.8f, 3.6f); + background.setPosition(window_lenth / 2, window_width / 2); + //爆炸特效 + sf::Texture tex_enemy_boom; + sf::Sprite enemy_boom_pic; + if (!tex_enemy_boom.loadFromFile("enemy_boom.png")) { + std::cout << "wrong" << std::endl; + } + enemy_boom_pic.setTexture(tex_enemy_boom); + enemy_boom_pic.setOrigin(61, 55); + //死亡时触发图片 + sf::Texture tex_death; + sf::Sprite death_picture; + if (!tex_death.loadFromFile("death.jpg")) { + std::cout << "wrong4" << std::endl; + } + death_picture.setTexture(tex_death); + death_picture.setOrigin(232.5, 150); + death_picture.setScale(4.5f, 3.5f); + death_picture.setPosition(window_lenth / 2, window_width / 2); + //游戏结束时触发图片 + sf::Texture tex_gameover; + sf::Sprite game_over; + if (!tex_gameover.loadFromFile("gameover.jpg")) { + std::cout << "wrong5" << std::endl; + } + game_over.setTexture(tex_gameover); + game_over.setOrigin(254.5,150); + game_over.setScale(3.8f, 3.5f); + game_over.setPosition(window_lenth / 2, window_width / 2); + //可以使用技能时,进行提醒 + sf::Font font; + if (!font.loadFromFile("BertramLP.ttf")){ + std::cout << "wrong6" << std::endl; + } + sf::Text text1; + text1.setFont(font); + text1.setString("You Can Use Skill_1: Z"); + text1.setCharacterSize(36); + text1.setFillColor(sf::Color::Blue); + text1.setPosition(10, 100); + sf::Text text2; + text2.setFont(font); + text2.setString("You Can Use Skill_2: X"); + text2.setCharacterSize(36); + text2.setFillColor(sf::Color::Red); + text2.setPosition(10, 150); + MY_MISSILE my_missile[max_my_missile_num]; + ENEMY_AIRCRAFT enemy_aircraft[max_enemy_num]; + ENEMY_AIRCRAFT_2 enemy_aircraft_2[max_enemy_num]; + ENEMY_MISSILE enemy_missile[max_enemy_missile_num]; + ENEMY_MISSILE enemy_missile_2[max_enemy_missile_num]; + ENERGY energy[max_enemy_num]; + ENERGY energy_2[max_enemy_num]; + BOSS_1 boss_1; + BOSS_2 boss_2; + ENEMY_MISSILE boss_1_missile[max_enemy_missile_num]; + ENEMY_MISSILE boss_2_missile[max_enemy_missile_num]; + BLOOD_PLUS blood[2]; + sf::Clock clock; + sf::Clock clock1; + sf::Clock clock2; + sf::Clock clock3; + sf::Clock clock4; + sf::Clock clock5; + sf::Clock clock6; + sf::Clock clock7; + sf::Clock clock8; + int if_my_aircraft_exist; + float renew_aircraft_time = 2; + int renew_boss_1_time = 18, renew_boss_2_time = 15; + int your_blood_number, your_energy_number, your_protected_blood, if_protect_exist, your_score=0, your_life = 3; + sf::RenderWindow window(sf::VideoMode(window_lenth, window_width), "SFML works!"); + while (your_life > 0) { + your_blood_number = 300; + your_energy_number = 300; + MY_AIRCRAFT *my_aircraft = new (MY_AIRCRAFT); + if_my_aircraft_exist = 1; + while (window.isOpen()) { + sf::Event event; + while (window.pollEvent(event)) { + if (event.type == sf::Event::Closed) + window.close(); + } + //累积能量 + sf::Time elapsed1 = clock1.getElapsedTime(); + if (elapsed1.asSeconds()>1) { + your_energy_number += 5; + clock1.restart(); + if (your_energy_number > 300) { + your_energy_number = 300; + } + } + //显示分数,生命 + sf::Text text3; + text3.setFont(font); + char s1[100]; + sprintf_s(s1, "YOUR SCORE:%d\n", your_score); + text3.setString(s1); + text3.setCharacterSize(36); + text3.setFillColor(sf::Color::Blue); + text3.setPosition(window_lenth-400, 100); + sf::Text text4; + text4.setFont(font); + char s2[100]; + sprintf_s(s2, "YOUR LIFE:%d\n", your_life); + text4.setString(s2); + text4.setCharacterSize(36); + text4.setFillColor(sf::Color::White); + text4.setPosition(window_lenth-400,50); + sf::Time elapsed2 = clock2.getElapsedTime(); + if(elapsed2.asSeconds()>renew_aircraft_time){ + for (int j = 0; j < max_enemy_num; j++) { + if ((0 == enemy_aircraft[j].if_exist) && (0 == enemy_missile[j].if_exist)) { + enemy_aircraft[j].if_exist = 1; + enemy_aircraft[j].aircraft.setPosition(rand() % window_lenth, 0); + break; + } + } + clock2.restart(); + } + sf::Time elapsed8 = clock8.getElapsedTime(); + if (elapsed8.asSeconds() > 5*renew_aircraft_time) { + for (int j = 0; j < max_enemy_num; j++) { + if ((0 == enemy_aircraft_2[j].if_exist) && (0 == enemy_missile_2[j].if_exist)) { + enemy_aircraft_2[j].if_exist = 1; + enemy_aircraft_2[j].aircraft.setPosition(rand() % window_lenth, 0); + break; + } + } + clock8.restart(); + } + //刷新向下移动的敌机 + for (int j = 0; j window_width) { + enemy_aircraft[j].if_exist = 0; + } + } + } + //刷新左右来回移动的敌机 + for (int j = 0; j window_width) { + enemy_aircraft_2[j].if_exist = 0; + } + break; + } + } + //刷新向下移动的boss_1 + sf::Time elapsed3 = clock3.getElapsedTime(); + if ((elapsed3.asSeconds()>renew_boss_1_time)&&(your_score>150)) { + boss_1.if_exist = 1; + boss_1.life = 3; + boss_1.aircraft.setPosition(rand() % window_lenth, 0); + clock3.restart(); + } + if (1==boss_1.if_exist) { + boss_1.aircraft.move(0,move_speed_enemy_aircraft/2); + } + if(boss_1.aircraft.getPosition().y>window_width){ + boss_1.if_exist = 0; + } + //刷新向下移动的boss_2 + sf::Time elapsed4 = clock4.getElapsedTime(); + if ((elapsed4.asSeconds() > renew_boss_2_time)&&(your_score>300)) { + boss_2.if_exist = 1; + boss_2.life = 5; + boss_2.aircraft.setPosition(rand() % window_lenth, 0); + clock4.restart(); + } + if (1 == boss_2.if_exist) { + boss_2.aircraft.move(0, move_speed_enemy_aircraft/2); + } + if (boss_2.aircraft.getPosition().y>window_width) { + boss_2.if_exist = 0; + } + //产生敌机的子弹 + sf::Time elapsed5 = clock5.getElapsedTime(); + if (elapsed5.asSeconds() > 2.5) { + for (int j = 0; j < max_enemy_num; j++) { + if (1 == enemy_aircraft[j].if_exist) { + for (int i = 0; i < max_enemy_missile_num; i++) { + if (enemy_missile[i].if_exist == 0) { + enemy_missile[i].if_exist = 1; + enemy_missile[i].missile.setPosition(enemy_aircraft[j].aircraft.getPosition()); + break; + } + } + } + if (1 == enemy_aircraft_2[j].if_exist) { + for (int i = 0; i < max_enemy_missile_num; i++) { + if (enemy_missile_2[i].if_exist == 0) { + enemy_missile_2[i].if_exist = 1; + enemy_missile_2[i].missile.setPosition(enemy_aircraft_2[j].aircraft.getPosition()); + break; + } + } + } + } + if (1 == boss_1.if_exist) { + for (int i = 0; i < 10; i++) { + std::cout << i << std::endl; + for (int j = 0; j < max_enemy_missile_num; j++) { + if (boss_1_missile[j].if_exist == 0) { + boss_1_missile[j].if_exist = 1; + boss_1_missile[j].missile.setPosition(boss_1.aircraft.getPosition()); + break; + } + } + } + } + clock5.restart(); + } + sf::Time elapsed6 = clock6.getElapsedTime(); + if (elapsed6.asSeconds() > 0.2) { + if (1 == boss_2.if_exist) { + for (int j = 0; j < max_enemy_missile_num; j++) { + if (boss_2_missile[j].if_exist == 0) { + boss_2_missile[j].if_exist = 1; + boss_2_missile[j].missile.setPosition(boss_2.aircraft.getPosition()); + clock6.restart(); + break; + } + } + } + } + //boss子弹轨迹方程 + for (int i = 0; i < max_enemy_missile_num; i++) { + float vx = 0.8*cos(PI*(i % 10) / 9.0); + float vy = 0.8*sin(PI*(i % 10) / 9.0); + if (boss_1_missile[i].if_exist == 1) { + boss_1_missile[i].missile.move(vx, vy); + } + } + for (int i = 0; i < max_enemy_missile_num; i++) { + float vx = 0.5*cos(PI*(i % 18) / 9.0); + float vy = 0.5*sin(PI*(i % 18) / 9.0); + if (boss_2_missile[i].if_exist == 1) { + boss_2_missile[i].missile.move(vx, vy); + } + } + //敌机子弹出边界处理 + for (int i = 0; i < max_enemy_missile_num; i++) { + if (enemy_missile[i].if_exist == 1) { + enemy_missile[i].missile.move(0, move_speed_enemy_missile); + } + if (enemy_missile_2[i].if_exist == 1) { + enemy_missile_2[i].missile.move(0, move_speed_enemy_missile); + } + if (enemy_missile[i].missile.getPosition().y>window_width) { + enemy_missile[i].if_exist = 0; + } + if (enemy_missile_2[i].missile.getPosition().y>window_width) { + enemy_missile_2[i].if_exist = 0; + } + } + //boss飞出边界对子弹和敌机的处理 + if (boss_1.aircraft.getPosition().y>window_width) { + boss_1.if_exist = 0; + } + if (boss_2.aircraft.getPosition().y>window_width) { + boss_2.if_exist = 0; + } + if (boss_1.if_exist == 0) { + for (int i = 0; i < max_enemy_missile_num; i++) { + sf::Vector2f boss_1_position=boss_1_missile[i].missile.getPosition(); + if ((boss_1_position.x<0)||(boss_1_position.x>window_lenth)||(boss_1_position.y>window_lenth)) { + boss_1_missile[i].if_exist = 0; + } + } + } + if (boss_2.if_exist == 0) { + for (int i = 0; i < max_enemy_missile_num; i++) { + sf::Vector2f boss_2_position = boss_2_missile[i].missile.getPosition(); + if ((boss_2_position.x<0) || (boss_2_position.x>window_lenth) || (boss_2_position.y>window_lenth)) { + boss_2_missile[i].if_exist = 0; + } + } + } + //移动我方战机 + move_aircraft(my_aircraft->aircraft); + //发射我方向上移动的子弹 + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Space)) { + sf::Time elapsed = clock.getElapsedTime(); + if (elapsed.asSeconds() > 0.08) { + fire.play(); + for (int i = 0; i < max_my_missile_num; i++) { + if (0 == my_missile[i].if_exist) { + my_missile[i].if_exist = 1; + my_missile[i].missile.setPosition(my_aircraft->aircraft.getPosition()); + clock.restart(); + break; + } + } + } + } + //我方子弹飞出边界处理 + for (int i = 0; i < max_my_missile_num; i++) { + if (1 == my_missile[i].if_exist) { + my_missile[i].missile.move(0, -move_speed_my_missle); + } + if (my_missile[i].missile.getPosition().y < 0) { + my_missile[i].if_exist = 0; + } + } + //击毁敌机,产生能量 + for (int j = 0; j < max_enemy_num; j++) { + if (1 == energy[j].if_exist) { + energy[j].missile.move(0, move_speed_energy); + } + if (1 == energy_2[j].if_exist) { + energy_2[j].missile.move(0, move_speed_energy); + } + if (energy[j].missile.getPosition().y >= window_width) { + energy[j].if_exist = 0; + } + if (energy_2[j].missile.getPosition().y >= window_width) { + energy_2[j].if_exist = 0; + } + } + //boss死亡,产生生命补给包 + for (int i = 0; i < 2; i++) { + if (1 == blood[i].if_exist) { + blood[i].missile.move(0, move_speed_energy); + } + if (blood[i].missile.getPosition().y >= window_width) { + blood[i].if_exist = 0; + } + } + sf::FloatRect boundingBox = my_aircraft->aircraft.getGlobalBounds(); + for (int i = 0; i < max_my_missile_num; i++) { + //子弹射中敌机 + for (int j = 0; j < max_enemy_num; j++) { + if ((1 == my_missile[i].if_exist) && (1 == enemy_aircraft[j].if_exist)) { + sf::FloatRect boundingBox1= enemy_aircraft[j].aircraft.getGlobalBounds(); + sf::FloatRect boundingBox2 = my_missile[i].missile.getGlobalBounds(); + if (boundingBox1.intersects(boundingBox2)) { + enemy_boom.play(); + energy[j].if_exist = 1; + energy[j].missile.setPosition(enemy_aircraft[j].aircraft.getPosition()); + my_missile[i].if_exist = 0; + enemy_aircraft[j].if_exist = 0; + your_score += 5; + } + } + if ((1 == my_missile[i].if_exist) && (1 == enemy_aircraft_2[j].if_exist)) { + sf::FloatRect boundingBox1 = enemy_aircraft_2[j].aircraft.getGlobalBounds(); + sf::FloatRect boundingBox2 = my_missile[i].missile.getGlobalBounds(); + if (boundingBox1.intersects(boundingBox2)) { + enemy_boom.play(); + energy_2[j].if_exist = 1; + energy_2[j].missile.setPosition(enemy_aircraft_2[j].aircraft.getPosition()); + my_missile[i].if_exist = 0; + enemy_aircraft_2[j].if_exist = 0; + your_score += 5; + } + } + } + //子弹射中boss_1 + if ((1 == my_missile[i].if_exist) && (1 == boss_1.if_exist)) { + sf::FloatRect boundingBox1 = boss_1.aircraft.getGlobalBounds(); + sf::FloatRect boundingBox2 = my_missile[i].missile.getGlobalBounds(); + if (boundingBox1.intersects(boundingBox2)) { + my_missile[i].if_exist = 0; + boss_1.life--; + if (boss_1.life == 0) { + boss_boom.play(); + for (int j = 0; j < 2; j++) { + if (blood[j].if_exist == 0) { + blood[j].if_exist = 1; + blood[j].missile.setPosition(boss_1.aircraft.getPosition()); + break; + } + } + your_score += 30; + boss_1.if_exist = 0; + } + } + } + //子弹射中boss_2 + if ((1 == my_missile[i].if_exist) && (1 == boss_2.if_exist)) { + sf::FloatRect boundingBox1 = boss_2.aircraft.getGlobalBounds(); + sf::FloatRect boundingBox2 = my_missile[i].missile.getGlobalBounds(); + if (boundingBox1.intersects(boundingBox2)) { + boss_boom.play(); + my_missile[i].if_exist = 0; + boss_2.life--; + if (boss_2.life == 0) { + boss_boom.play(); + for (int j = 0; j < 2; j++) { + if (blood[j].if_exist == 0) { + blood[j].if_exist = 1; + blood[j].missile.setPosition(boss_2.aircraft.getPosition()); + break; + } + } + your_score += 30; + boss_2.if_exist = 0; + } + } + } + } + //获得能量 + for (int j = 0; j < max_enemy_num; j++) { + if (1 == energy[j].if_exist) { + sf::FloatRect boundingBox1= energy[j].missile.getGlobalBounds(); + if (boundingBox.intersects(boundingBox1)) { + energy[j].if_exist = 0; + your_energy_number += 5; + if (your_energy_number > 300) { + your_energy_number = 300; + } + } + } + if (1 == energy_2[j].if_exist) { + sf::FloatRect boundingBox1 = energy_2[j].missile.getGlobalBounds(); + if (boundingBox.intersects(boundingBox1)) { + energy_2[j].if_exist = 0; + your_energy_number += 5; + if (your_energy_number > 300) { + your_energy_number = 300; + } + } + } + } + //获得血包 + for (int j = 0; j < 2; j++) { + if (1 == blood[j].if_exist) { + sf::FloatRect boundingBox1 = blood[j].missile.getGlobalBounds(); + if (boundingBox.intersects(boundingBox1)) { + blood[j].if_exist = 0; + your_blood_number +=20; + if (your_blood_number > 300) { + your_blood_number = 300; + } + } + } + } + //与敌机碰撞 + for (int j = 0; j < max_enemy_num; j++) { + if (1 == enemy_aircraft[j].if_exist) { + sf::FloatRect boundingBox1 = enemy_aircraft[j].aircraft.getGlobalBounds(); + if (boundingBox.intersects(boundingBox1)) { + enemy_boom.play(); + enemy_aircraft[j].if_exist = 0; + if (1 == if_protect_exist) { + your_protected_blood -= 20; + } + else { + your_blood_number -= 20; + } + break; + } + } + if (1 == enemy_aircraft_2[j].if_exist) { + sf::FloatRect boundingBox1 = enemy_aircraft_2[j].aircraft.getGlobalBounds(); + if (boundingBox.intersects(boundingBox1)) { + enemy_boom.play(); + enemy_aircraft_2[j].if_exist = 0; + if (1 == if_protect_exist) { + your_protected_blood -= 20; + } + else { + your_blood_number -= 20; + } + break; + } + } + } + //与boss_1碰撞 + if (1 == boss_1.if_exist) { + sf::FloatRect boundingBox1 = boss_1.aircraft.getGlobalBounds(); + if (boundingBox.intersects(boundingBox1)) { + enemy_boom.play(); + boss_1.if_exist = 0; + if (1 == if_protect_exist) { + your_protected_blood -= 80; + } + else { + your_blood_number -= 80; + } + } + } + //与boss_2碰撞 + if (1 == boss_2.if_exist) { + sf::FloatRect boundingBox1 = boss_2.aircraft.getGlobalBounds(); + if (boundingBox.intersects(boundingBox1)) { + enemy_boom.play(); + boss_2.if_exist = 0; + if (1 == if_protect_exist) { + your_protected_blood -= 50; + } + else { + your_blood_number -= 50; + } + } + } + //被敌机子弹射中 + for (int j = 0; j < max_enemy_missile_num; j++) { + if (1 == enemy_missile[j].if_exist) { + sf::FloatRect boundingBox1 = enemy_missile[j].missile.getGlobalBounds(); + if (boundingBox.intersects(boundingBox1)) { + enemy_missile[j].if_exist = 0; + if (1 == if_protect_exist) { + your_protected_blood -= 10; + } + else { + your_blood_number -= 10; + } + break; + } + } + if (1 == enemy_missile_2[j].if_exist) { + sf::FloatRect boundingBox1 = enemy_missile_2[j].missile.getGlobalBounds(); + if (boundingBox.intersects(boundingBox1)) { + enemy_missile_2[j].if_exist = 0; + if (1 == if_protect_exist) { + your_protected_blood -= 10; + } + else { + your_blood_number -= 10; + } + break; + } + } + } + //被boss_1子弹射中 + for (int j = 0; j < max_enemy_missile_num; j++) { + if (1 == boss_1_missile[j].if_exist) { + sf::FloatRect boundingBox1= boss_1_missile[j].missile.getGlobalBounds(); + if (boundingBox.intersects(boundingBox1)) { + boss_1_missile[j].if_exist = 0; + if (1 == if_protect_exist) { + your_protected_blood -= 20; + } + else { + your_blood_number -= 20; + } + break; + } + } + } + //被boss_2子弹射中 + for (int j = 0; j < max_enemy_missile_num; j++) { + if (1 == boss_2_missile[j].if_exist) { + sf::FloatRect boundingBox1 = boss_2_missile[j].missile.getGlobalBounds(); + if (boundingBox.intersects(boundingBox1)) { + boss_2_missile[j].if_exist = 0; + if (1 == if_protect_exist) { + your_protected_blood -= 30; + } + else { + your_blood_number -= 30; + } + break; + } + } + } + //血量 + sf::VertexArray quad1(sf::Quads, 4); + quad1[0].position = sf::Vector2f(10, 10); + quad1[1].position = sf::Vector2f(10 + your_blood_number, 10); + quad1[2].position = sf::Vector2f(10 + your_blood_number, 30); + quad1[3].position = sf::Vector2f(10, 30); + quad1[0].color = sf::Color::Red; + quad1[1].color = sf::Color::Red; + quad1[2].color = sf::Color::Red; + quad1[3].color = sf::Color::Red; + //能量 + sf::VertexArray quad2(sf::Quads, 4); + quad2[0].position = sf::Vector2f(10, 50); + quad2[1].position = sf::Vector2f(10, 70); + quad2[2].position = sf::Vector2f(10+your_energy_number, 70); + quad2[3].position = sf::Vector2f(10+ your_energy_number, 50); + quad2[0].color = sf::Color::Green; + quad2[1].color = sf::Color::Green; + quad2[2].color = sf::Color::Green; + quad2[3].color = sf::Color::Green; + window.clear(); + window.draw(background); + window.draw(my_aircraft->aircraft); + window.draw(text3); + window.draw(text4); + //死亡,生命-1 + if (your_blood_number <= 0) { + if_my_aircraft_exist = 0; + your_life--; + } + //使用1技能 + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Z) && (your_energy_number >= 100)) { + sf::Time elapsed7 = clock7.getElapsedTime(); + if (elapsed7.asSeconds() > 0.5) { + if_protect_exist = 1; + your_protected_blood = 100; + your_energy_number -= 100; + clock7.restart(); + } + } + if (1 == if_protect_exist) { + if (your_blood_number + your_protected_blood <= 300) { + sf::VertexArray quad3(sf::Quads, 4); + quad3[0].position = sf::Vector2f(10 + your_blood_number, 10); + quad3[1].position = sf::Vector2f(10 + your_blood_number, 30); + quad3[2].position = sf::Vector2f(10 + your_blood_number + your_protected_blood, 30); + quad3[3].position = sf::Vector2f(10 + your_blood_number + your_protected_blood, 10); + quad3[0].color = sf::Color::White; + quad3[1].color = sf::Color::White; + quad3[2].color = sf::Color::White; + quad3[3].color = sf::Color::White; + window.draw(quad3); + } + if ((your_blood_number + your_protected_blood > 300) && (your_blood_number != 300)) { + sf::VertexArray quad4(sf::Quads, 4); + quad4[0].position = sf::Vector2f(10 + your_blood_number, 30); + quad4[1].position = sf::Vector2f(10 + your_blood_number, 10); + quad4[2].position = sf::Vector2f(310, 10); + quad4[3].position = sf::Vector2f(310, 30); + quad4[0].color = sf::Color::White; + quad4[1].color = sf::Color::White; + quad4[2].color = sf::Color::White; + quad4[3].color = sf::Color::White; + window.draw(quad4); + } + if ((your_blood_number + your_protected_blood > 300) && (your_blood_number == 300)) { + sf::VertexArray quad5(sf::Quads, 4); + quad5[0].position = sf::Vector2f(310, 30); + quad5[1].position = sf::Vector2f(310, 10); + quad5[2].position = sf::Vector2f(310 - your_protected_blood, 10); + quad5[3].position = sf::Vector2f(310 - your_protected_blood, 30); + quad5[0].color = sf::Color::White; + quad5[1].color = sf::Color::White; + quad5[2].color = sf::Color::White; + quad5[3].color = sf::Color::White; + window.draw(quad5); + } + } + if (your_protected_blood <= 0);{ + if_protect_exist = 0; + } + if (1 == if_protect_exist) { + sf::CircleShape shape(75); + shape.setFillColor(sf::Color::Transparent); + shape.setOrigin(75, 75); + shape.setPosition(my_aircraft->aircraft.getPosition()); + shape.setOutlineThickness(10); + shape.setOutlineColor(sf::Color(250, 150, 100)); + window.draw(shape); + } + //使用2技能 + if (sf::Keyboard::isKeyPressed(sf::Keyboard::X) && (your_energy_number >= 200)) { + int index_x = 0; + int index_y = window_width; + for (int i = max_my_missile_num - 30; i < max_my_missile_num; i++) { + my_missile[i].if_exist = 1; + } + index_y = window_width - 50; + for (int i = max_my_missile_num - 30; i < max_my_missile_num - 20; i++) { + index_x += window_lenth / 10; + my_missile[i].missile.setPosition(index_x, index_y); + } + index_y -= 50; + index_x = 0; + for (int i = max_my_missile_num - 20; i < max_my_missile_num - 10; i++) { + index_x += window_lenth / 10; + my_missile[i].missile.setPosition(index_x, index_y); + } + index_y -= 50; index_x = 0; + for (int i = max_my_missile_num - 10; i < max_my_missile_num; i++) { + index_x += window_lenth / 10; + my_missile[i].missile.setPosition(index_x, index_y); + } + your_energy_number -= 200; + } + if (your_energy_number >= 100) { + window.draw(text1); + } + if (your_energy_number >= 200) { + window.draw(text2); + } + //绘制我方子弹 + for (int i = 0; i < max_my_missile_num; i++) { + if (1 == my_missile[i].if_exist) { + window.draw(my_missile[i].missile); + } + } + //绘制敌机 + for (int j = 0; j < max_enemy_num; j++) { + if (1 == enemy_aircraft[j].if_exist) { + window.draw(enemy_aircraft[j].aircraft); + } + if (1 == enemy_aircraft_2[j].if_exist) { + window.draw(enemy_aircraft_2[j].aircraft); + } + } + //绘制敌机子弹 + for (int j = 0; j < max_enemy_missile_num; j++) { + if (1 == enemy_missile[j].if_exist) { + window.draw(enemy_missile[j].missile); + } + if (1 == enemy_missile_2[j].if_exist) { + window.draw(enemy_missile_2[j].missile); + } + if (1 == boss_1_missile[j].if_exist) { + window.draw(boss_1_missile[j].missile); + } + if (1 == boss_2_missile[j].if_exist) { + window.draw(boss_2_missile[j].missile); + } + } + //绘制boss + if (1 == boss_1.if_exist) { + window.draw(boss_1.aircraft); + } + if (1 == boss_2.if_exist) { + window.draw(boss_2.aircraft); + } + window.draw(quad1); + window.draw(quad2); + //绘制能量 + for (int j = 0; j < max_enemy_num; j++) { + if (1 == energy[j].if_exist) { + window.draw(energy[j].missile); + } + if (1 == energy_2[j].if_exist) { + window.draw(energy_2[j].missile); + } + } + for (int j = 0; j < 2; j++) { + if (1 == blood[j].if_exist) { + window.draw(blood[j].missile); + } + } + //改变敌机刷新时间 + if ((your_score % 100 == 0) && (your_score<=500)){ + renew_aircraft_time -= 0.2; + your_score += 5; + } + //改变boss_1刷新时间 + if ((your_score%150==0) && (your_score<=1050)) { + renew_boss_1_time -= 1; + your_score += 5; + } + //改变boss_2刷新时间 + if ((your_score % 200 == 0) && (your_score <= 1200)) { + renew_boss_2_time -= 1; + your_score += 5; + } + if ((0 == if_my_aircraft_exist) &&(your_life!=0)){ + blood[0].if_exist = 0; + blood[1].if_exist = 0; + for (int j = 0; j < max_enemy_num; j++) { + enemy_aircraft[j].if_exist = 0; + energy[j] .if_exist= 0; + } + for (int j = 0; j < max_my_missile_num; j++) { + my_missile[j].if_exist = 0; + } + for (int j = 0; j < max_enemy_missile_num; j++) { + enemy_missile[j].if_exist = 0; + boss_1_missile[j].if_exist= 0; + boss_2_missile[j].if_exist= 0; + boss_1.if_exist = 0; + boss_2.if_exist = 0; + } + i_boom.play(); + window.draw(death_picture); + window.display(); + Sleep(3000); + break; + } + if ((0 == if_my_aircraft_exist) && (your_life == 0)) { + if (your_life == 0) { + sf::Text text5; + text5.setFont(font); + char s3[100]; + sprintf_s(s3, "YOUR FINAL SCORE:%d\n", your_score); + text5.setString(s3); + text5.setCharacterSize(54); + text5.setFillColor(sf::Color::Red); + text5.setPosition(window_lenth/2-300 , 200); + window.draw(game_over); + window.draw(text5); + window.display(); + Sleep(5000); + break; + } + } + window.display(); + } + } + return 0; +} From d7cb9bba857403b598cd52fc77bceb55d22c5a2c Mon Sep 17 00:00:00 2001 From: csw981001 Date: Thu, 15 Jun 2017 17:46:04 +0800 Subject: [PATCH 80/82] =?UTF-8?q?Update=20and=20rename=20practices/=20cpp/?= =?UTF-8?q?=20level1/=20p11=5FFighters/fighter=5Fanother.cpp=20to=20?= =?UTF-8?q?=E5=81=9A=E6=B3=95/=20CPP/=201=E7=BA=A7/=20p11=5FFighters/fight?= =?UTF-8?q?er=5Fanother.cpp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ p11_Fighters/fighter_another.cpp" | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) rename practices/ cpp/ level1/ p11_Fighters/fighter_another.cpp => "\345\201\232\346\263\225/ CPP/ 1\347\272\247/ p11_Fighters/fighter_another.cpp" (97%) diff --git a/practices/ cpp/ level1/ p11_Fighters/fighter_another.cpp "b/\345\201\232\346\263\225/ CPP/ 1\347\272\247/ p11_Fighters/fighter_another.cpp" similarity index 97% rename from practices/ cpp/ level1/ p11_Fighters/fighter_another.cpp rename to "\345\201\232\346\263\225/ CPP/ 1\347\272\247/ p11_Fighters/fighter_another.cpp" index 5aa906a3..675cc863 100644 --- a/practices/ cpp/ level1/ p11_Fighters/fighter_another.cpp +++ "b/\345\201\232\346\263\225/ CPP/ 1\347\272\247/ p11_Fighters/fighter_another.cpp" @@ -133,9 +133,9 @@ int main() sf::Clock clock7; sf::Clock clock8; int if_my_aircraft_exist; - float renew_aircraft_time = 2; + float renew_aircraft_time = 2, speed_multiple = 1; int renew_boss_1_time = 18, renew_boss_2_time = 15; - int your_blood_number, your_energy_number, your_protected_blood, if_protect_exist, your_score=0, your_life = 3; + int your_blood_number, your_energy_number, your_protected_blood, if_protect_exist, your_score=200, your_life = 3; sf::RenderWindow window(sf::VideoMode(window_lenth, window_width), "SFML works!"); while (your_life > 0) { your_blood_number = 300; @@ -186,7 +186,7 @@ int main() clock2.restart(); } sf::Time elapsed8 = clock8.getElapsedTime(); - if (elapsed8.asSeconds() > 5*renew_aircraft_time) { + if (elapsed8.asSeconds() > 3*renew_aircraft_time) { for (int j = 0; j < max_enemy_num; j++) { if ((0 == enemy_aircraft_2[j].if_exist) && (0 == enemy_missile_2[j].if_exist)) { enemy_aircraft_2[j].if_exist = 1; @@ -209,15 +209,15 @@ int main() for (int j = 0; j= window_lenth) { enemy_aircraft_2[j].fly_way = 2; } if (enemy_aircraft_2[j].aircraft.getPosition().y > window_width) { @@ -279,7 +279,6 @@ int main() } if (1 == boss_1.if_exist) { for (int i = 0; i < 10; i++) { - std::cout << i << std::endl; for (int j = 0; j < max_enemy_missile_num; j++) { if (boss_1_missile[j].if_exist == 0) { boss_1_missile[j].if_exist = 1; @@ -313,8 +312,8 @@ int main() } } for (int i = 0; i < max_enemy_missile_num; i++) { - float vx = 0.5*cos(PI*(i % 18) / 9.0); - float vy = 0.5*sin(PI*(i % 18) / 9.0); + float vx = speed_multiple*0.5*cos(PI*(i % 18) / 9.0); + float vy = speed_multiple*0.5*sin(PI*(i % 18) / 9.0); if (boss_2_missile[i].if_exist == 1) { boss_2_missile[i].missile.move(vx, vy); } @@ -322,7 +321,7 @@ int main() //敌机子弹出边界处理 for (int i = 0; i < max_enemy_missile_num; i++) { if (enemy_missile[i].if_exist == 1) { - enemy_missile[i].missile.move(0, move_speed_enemy_missile); + enemy_missile[i].missile.move(0, 1.5*move_speed_enemy_missile); } if (enemy_missile_2[i].if_exist == 1) { enemy_missile_2[i].missile.move(0, move_speed_enemy_missile); @@ -658,6 +657,8 @@ int main() quad2[3].color = sf::Color::Green; window.clear(); window.draw(background); + window.draw(quad1); + window.draw(quad2); window.draw(my_aircraft->aircraft); window.draw(text3); window.draw(text4); @@ -714,7 +715,7 @@ int main() window.draw(quad5); } } - if (your_protected_blood <= 0);{ + if (your_protected_blood <= 0){ if_protect_exist = 0; } if (1 == if_protect_exist) { @@ -794,8 +795,6 @@ int main() if (1 == boss_2.if_exist) { window.draw(boss_2.aircraft); } - window.draw(quad1); - window.draw(quad2); //绘制能量 for (int j = 0; j < max_enemy_num; j++) { if (1 == energy[j].if_exist) { @@ -823,6 +822,7 @@ int main() //改变boss_2刷新时间 if ((your_score % 200 == 0) && (your_score <= 1200)) { renew_boss_2_time -= 1; + speed_multiple += 0.2; your_score += 5; } if ((0 == if_my_aircraft_exist) &&(your_life!=0)){ From e3c4bcb12224e4481b7a852248fd4a1b8d24b47b Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sun, 18 Jun 2017 01:35:12 +0800 Subject: [PATCH 81/82] Update fighter_another.cpp --- .../ p11_Fighters/fighter_another.cpp" | 23 +++++-------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git "a/\345\201\232\346\263\225/ CPP/ 1\347\272\247/ p11_Fighters/fighter_another.cpp" "b/\345\201\232\346\263\225/ CPP/ 1\347\272\247/ p11_Fighters/fighter_another.cpp" index 675cc863..c9a4c968 100644 --- "a/\345\201\232\346\263\225/ CPP/ 1\347\272\247/ p11_Fighters/fighter_another.cpp" +++ "b/\345\201\232\346\263\225/ CPP/ 1\347\272\247/ p11_Fighters/fighter_another.cpp" @@ -2,22 +2,11 @@ #include #include #include -#include"move_aircraft.h" -#include"missile.h" -#include"aircraft.h" -#include"my_aircraft.h" -#include"my_missile.h" -#include"enemy_aircraft.h" -#include"enemy_aircraft_2.h" -#include"enemy_missile.h" -#include"boss_1.h" -#include"boss_2.h" -#include"energy.h" -#include"blood_plus.h" -#define move_speed_my_missle 0.6 -#define move_speed_enemy_aircraft 0.25 -#define move_speed_enemy_missile 0.3 -#define move_speed_energy 0.5 +#include"classes.h" +#define move_speed_my_missle 1.2 +#define move_speed_enemy_aircraft 0.5 +#define move_speed_enemy_missile 0.6 +#define move_speed_energy 1 #define max_enemy_num 50 #define max_enemy_missile_num 200 #define max_my_missile_num 80 @@ -135,7 +124,7 @@ int main() int if_my_aircraft_exist; float renew_aircraft_time = 2, speed_multiple = 1; int renew_boss_1_time = 18, renew_boss_2_time = 15; - int your_blood_number, your_energy_number, your_protected_blood, if_protect_exist, your_score=200, your_life = 3; + int your_blood_number, your_energy_number, your_protected_blood, if_protect_exist, your_score=300, your_life = 3; sf::RenderWindow window(sf::VideoMode(window_lenth, window_width), "SFML works!"); while (your_life > 0) { your_blood_number = 300; From 4a73c4a79b60263ae7de99b1e51720475ab59f27 Mon Sep 17 00:00:00 2001 From: csw981001 Date: Sun, 18 Jun 2017 01:36:14 +0800 Subject: [PATCH 82/82] Create classes.h --- .../ cpp/ level1/ p11_Fighters/classes.h | 170 ++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 practices/ cpp/ level1/ p11_Fighters/classes.h diff --git a/practices/ cpp/ level1/ p11_Fighters/classes.h b/practices/ cpp/ level1/ p11_Fighters/classes.h new file mode 100644 index 00000000..9f3b004c --- /dev/null +++ b/practices/ cpp/ level1/ p11_Fighters/classes.h @@ -0,0 +1,170 @@ +#define move_speed_my_aircraft 2 +#define window_lenth 1920 +#define window_width 1080 +void move_aircraft(sf::Sprite &duixiang) +{ + sf::Vector2f now_position = duixiang.getPosition(); + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left) && (now_position.x>53.25)) { + duixiang.move(-move_speed_my_aircraft, 0); + } + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right) && (now_position.x75)) { + duixiang.move(0, -move_speed_my_aircraft); + } + if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down) && (now_position.y