当前位置:首页 > 新闻资讯 > 科技生活 > 新闻
极客战记——四步如何走完森林九个点
  • 2019/3/8 10:07:46
  • 类型:原创
  • 来源:电脑报
  • 报纸编辑:电脑报
  • 作者:
【电脑报在线】地牢里的关卡主要是偏向锻炼用户的基本语法结构和计算机思维,让大家熟悉极客战记的操作与代码的使用。来到了森林这个关卡将会变得更多更难,同样,到了森林,大家就正式开始接触编程的几大重要知识点:条件判断、运算符、函数、对象属性


地牢里的关卡主要是偏向锻炼用户的基本语法结构和计算机思维,让大家熟悉极客战记的操作与代码的使用。来到了森林这个关卡将会变得更多更难,同样,到了森林,大家就正式开始接触编程的几大重要知识点:条件判断、运算符、函数、对象属性

 

1.九颗宝石

关卡简介:「九颗宝石」这个关卡用于帮助大家熟悉moveXY()函数,熟悉XY平面直角坐标系,没有涉及编程知识,考察的内容还带着点地牢的影子,略带益智性,九颗宝石不能一步步地拾取,那需要如何在四步内收集所有的宝石呢?这就需要大家跳出游戏去思考了。通关展示如图1:

 

 

2.思路讲解

第一次接触这一关时,大多数人都是把这九个宝石当成九个点(图2),想着如何用最少的步骤走过九个点:然而,无论怎么想,似乎都必须使用四步以上的步骤完成(图3)。显然,如果我们不跳出「九个点」的局限思维,四步之内是难以完成的,但如果让路线超出点的限制,那就像(4)这样:

 

 

 

 

是不是有了一种豁然开朗的感觉?本关其实并不算是一道编程题,没有涉及太多的编程原理,唯一的过关思路就是:跳出自己的局限思维。通关代码如图5

 

 

Arduino 入门到精通 例程21

Arduino技巧之PS2摇杆实验

PS2摇杆一般可以用来控制小车等等,其构造主要就是两个10K的电位器,还有一个按键开关。五个端口分别为VCCXButtonYGND(如图1),接线示意见图2:

 

 

 

程序代码:

 

#include <LiquidCrystal.h>   //调用arduino自带的LiquidCrystal

LiquidCrystal lcd(12, 11, 10, 9, 8, 7);//设置接口

int xpotPin = 0;  //设置模拟口0X的信号输入端口

int ypotPin = 1;  //设置模拟口1Y的信号输入端口

int xval=0;    //设置变量

int yval=0;

void setup()

{

  pinMode(xpotPin,INPUT);//

  pinMode(ypotPin,INPUT);//

  lcd.begin(16, 2);  //初始化LCD

  delay(1000); //延时1000ms

}

void loop ()

{

  xval = analogRead(xpotPin);   //xval变量为从0信号口读取到的数值

  yval = analogRead(ypotPin);   //yval变量为从1信号口读取到的数值

  lcd.clear(); //清屏

  lcd.setCursor(0, 0) ; //设置光标位置为第一行第一个位置

  lcd.print("X=");      //使屏幕显示文字X=

  lcd.print(xval);

  lcd.setCursor(7, 0) ; //设置光标位置为第一行第八个位置

  lcd.print("Y=");      //使屏幕显示文字Y=

  lcd.print(yval);

  delay(100);                     //延时0.1秒,这里也就是刷新速度。

}

1. #include <LiquidCrystal.h>   //调用arduino自带的LiquidCrystal

2. 

3. 

4. 

5. LiquidCrystal lcd(12, 11, 10, 9, 8, 7);//设置接口

6. 

7. 

8. 

9. int xpotPin = 0;  //设置模拟口0X的信号输入端口

10. 

11. int ypotPin = 1;  //设置模拟口1Y的信号输入端口

12. 

13. int bpotPin = 2;  //设置模拟口2Button的信号输入端口

14. 

15. 

16. 

17. int xval=0;    //设置变量

18. 

19. int yval=0;

20. 

21. int bval=0;

22. 

23. 

24. 

25. void setup()

26. 

27. {

28. 

29. lcd.begin(16, 2);  //初始化LCD

30. 

31. delay(1000); //延时1000ms

32. 

33. }

34. 

35. 

36. 

37. void loop ()

38. 

39. {

40. 

41. 

42. 

43. xval = analogRead(xpotPin);   //xval变量为从0信号口读取到的数值

44. 

45. yval = analogRead(ypotPin);   //yval变量为从1信号口读取到的数值

46. 

47. bval = analogRead(bpotPin);   //bval变量为从2信号口读取到的数值

48. 

49. lcd.clear(); //清屏

50. 

51. lcd.setCursor(0, 0) ; //设置光标位置为第一行第一个位置

52. 

53. lcd.print("X=");      //使屏幕显示文字X=

54. 

55. lcd.print(xval);

56. 

57. lcd.setCursor(7, 0) ; //设置光标位置为第一行第八个位置

58. 

59. lcd.print("Y=");      //使屏幕显示文字Y=

60. 

61. lcd.print(yval);

62. 

63. 

64. 

65. if (bval<500)

66. 

67. {

68. 

69. lcd.setCursor(0, 1) ;   //设置光标位置为第二行第一个位置

70. 

71. lcd.print("Button ON"); //使屏幕显示文字Button ON

72. 

73. }

74. 

75. else

76. 

77. {

78. 

79. lcd.setCursor(0, 1) ;

80. 

81. lcd.print("Button OFF"); //使屏幕显示文字Button OFF

82. 

83. }

84. 

85. 

86. 

87. delay(100);                     //延时0.1秒,这里也就是刷新速度。

88. 

89. 

90. 

91. }

92. 

实验结果:推动摇杆时,电位器阻值发生变化,相应的电压也会发生变化,液晶屏上的数字就是每一个轴的电压数字输出,实验效果图3:

 

 

学编程,搞懂CSTA K-12计算机科学学习标准

科学信息技术逐步成为现代人生活和经济的核心。不论是为了适应频繁使用计算机的当今社会,还是为了为将来的职业做好准备,学生们都必须对计算机科学原理和实践拥有一个更加清晰的理解。为达到现在人们对于信心技术教育的普及与规范化过程中,美国应运而生一系列课程标准体系。CSTA K-12计算机科学教育标准便是主流课程标准体系之一。

1.CSTA K-12计算机科学学习标准详述

CSTA计算机科学标准将K-12 阶段计算机科学学习分为123,(Level 1-3)三个等级。阐明了不同年龄学生完成K-12阶段计算机科学概念和应用的主要要求,其中主要概念着重计算机科学原理,而核心运用则注重计算机实践。等级1A1B23A均为所有学生设置。等级3B则是为对于计算机学习有更进一步要求的学生设计。

2. 按照主要概念和主要运用划分

3. 

CSTA计算机科学标准中关于计算机主要概念的项目共计133项。其中关于算法和编程(Algorithms and Programming)有关的项目接近所有标准的一半,计59项。以编程教育在计算机科学教育中的比重来看,编程教育及为现在计算机科学教育的重中之重。标准中对于孩子编程学习要求按照不同的年龄层细合理划分,在1A部分有大多数的项目重于描述孩子早期对于编程规则和学习兴趣的培养。

1A阶段的孩子还不能很好的了解语句,则用更加易懂的符号语言来替代。

1B的学生开始需要认识变量概念,逐步开始使用文本语言;

2-3级的学生使用变量的要求也逐步增高,且更加抽象。

可见学生需要掌握运用编程中的变量有关的知识,从运用理解具体的符号语言开始,继而向更加抽象的文字代码编写过度。在编程学习美国CSTA非常重视学生对于基本语法的概念掌握,以及在掌握语法的基础上对于真实代码的编写能力。有这些还不足够,学生还需要在学习编程的过程中获得学会将复杂编程问题简单化,步骤化的编程思维方式。

本文出自2019-03-11出版的《电脑报》2019年第09期 A.新闻周刊
(网站编辑:PCW-hjz)


我来说两句(0人参与讨论)
发表给力评论!看新闻,说两句。
匿名 ctrl+enter快捷提交
读者活动
48小时点击排行
论坛热帖