高中老师将羊了个羊改编成历了个史，这种创新教学方法让历史课瞬间变得趣味无穷，如何看待此事？
这种改编我也在做,最近和知乎科技一起办的一个编程比赛,其实作为C语言教学入门游戏是完全没有问题的。 我专门找过几个没学过编程的朋友来尝试，效果都不错，看完就会，有手就行。 游戏是这样的： 而你，是一个木得感情的杀手 你出生在地图的左上角，你的目标，出生在地图的右下角 游戏的规则是，每一回合，你可以上下左右移动一格，或者朝移动方向，发射一枚子弹，干掉你的对手，那么怎么办呢 开始写代码 可惜很遗憾，上面的代码是不能运行的，因为c语言不是汉语,语言就要遵循语言的规则,如果你要使用,需要使用"函数"的方式来调用,说太多就没意思了,你可以把"函数"理解为让杀手(计算机)为你做一些事情,在数学中函数是怎么写的呢? f(x),f(x,y),f(x,y,z) 所以,因为往左往右走不需要额外的参数,所以我们可以把上面的代码改成下面这样的,同时,用中文直接写代码可能会被你的同行鄙视,所以我们改成英文 你可能会问了,为什么括号里没东西,你想啊 f(x)=x*3,这个x就叫参数; 但f(x)=998;这个虽然有参数,但不管x是什么都无所谓,所以干脆就不要了直接写f();上面一个意思,很多函数是不要参数的 编译运行一下 你是不是觉得吧MoveRight();这个代码复制黏贴15次有点蠢,能不能有一种办法,比如循环的方式,把这个代码循环执行15次 是不是清爽多了,诶，所以,我们把上面的代码依样画瓢,写出c语言认得出的样子 解释一下 整数怎么说,integer对不对,我们把它缩写成int，所以第一行你看到一个int，表示定义了一个变量x “从”这个字呢，我们可以翻译为“for”所以出现了一个for单词，x=0，表示for执行开始时，x的值是0，如果x<15呢,就执行花括号里的代码,每次执行完花括号里的代码后,x++,那什么是x++呢,这里它可以看出是 也就是x的值+1 运行一下,结果是一样的 游戏要获胜,其实有两种方式,第一种是用子弹干掉对面,第二种是尽量把地图"染成你的颜色♪",如果过了一段时间后,地图上你的颜色比对面的颜色要多,你一样可以获胜,所以,要获胜我们可以兵不血刃. 爬行者的目标是尽可能占据地图的大片区域获得胜利，以此付出的代价是，它没有攻击能力： 编写代码 运行效果 思考一个问题,如果我们想要一个循环无限进行下去,可以怎么做? 其实for循环也可以办到,比如 这个for循环没有终止条件,所以循环执行的代码会一直执行下去,时至今日,仍然有很多人喜欢这种写法 另一种是 因为括号里是1,所以花括号里的代码会一直执行所以,翻译成人话就是"一直循环",通过这个一直循环,我们可以实现一个加特林机关枪 运行结果: 要‌​​​‌​​​‌‌‌​​‌​‌‌‌​你命3000出自周星驰电影《国产凌凌漆》中的经典武器，它的发明者是达闻西，这种武器由十多种武器混合制作而成，威力巨大，因此叫做要你命3000 在游戏中由@huhu可爱捏 编写的要你命8888,其运行效果如下,是不是你一看也懂了,就是移动到地图中间,然后上下左右发射子弹: 我们可以根据上面所学的知识,编写出要你命8888 目前要你命8888在榜单中排名第75,胜率21.7%,倒数第11,要更进一步那就要获得更强的力量,我们继续. if翻译过来的意思就是假如,按照c语言的写法 其中,else可以省略不写,比如下面这个 如果我们要判断相等,一定要使用"=="符号而不是"="符号 一般情况下不建议初学者在if的括号里写"="号,当然如果你已经是老司机了,那请无视这个规则. 而break语句是跳出循环的代码,比如while循环我们不想执行了,我们就可以用break语句 显然上面的另一些代码不会执行,因为已经跳出循环了,通过这个,我们可以将for和while等价使用,例如 它会等价于 虽然这节课代码稍微多了一丢丢,但相信各位未来的院士应该也是多看几秒钟就能理解的事 现在,让我们进化程序编写"刺杀者"代码. 刺杀者,顾名思义,就是不把对面干掉不罢休的程序,他会跟踪对面的位置,然后不断向对手发射子弹,通过调用 来定位追踪对手位置 刺杀者的胜率是28%,可谓是比要你命8888又高了 一截 到这里,大家应该都有代码阅读能力了,那么大家就练习一下,看看刺杀者的代码吧 我们可以自己定义自己的功能函数,就像数学里的那样 f(x)=x*2+1 它用c语言的表达就是 其中,开头的int表示f(x)计算的结果是一个整数,括号里的int x表示函数接受一个整数类型的参数 return表示函数的结果,后面紧接着是结果的表达式,上面的代码可以写成 *重点:c语言从main函数开始执行,因此如果我们要使用函数,就是下面这种形式,是不是和数学里的写法几乎一模一样?  流浪者,顾名思义就是使用随机算法,让我们的杀手随机行动,让对手捉摸不透,再冷不丁的发射一枪,干掉对手,我们用到了上面学到的所有知识. 流浪者的胜率达到了34%,是不是感觉力量更强了呢 下面,我们贴上它的完整代码,在代码中,我们使用了一个自己写的随机数生成算法rand,它使用了一个线性同余方法来生成随机数,需要一丢丢的小学数学基础 好了,本文是否勾起了你进一步的学习C语言的兴趣呢,可以看到,你花了十分钟看完本文,你已经入门了,现在你就可以加入战斗,一起来玩这个编程游戏: 但目前这个教程也只能让你止步于30%的胜率.但千里之行始于足下,谁不是从新手过来的呢? 