锤子

好的技术文章应该让读者更自信而不是更自卑

淺唱寂寞╮ 提交于 2019-12-27 00:44:49
  今天朋友给我微博留言,说我的《大话设计模式》被拍砖了。果不其然,确实是在《 放过设计模式吧 》的评论 第8条 中有。还好博主并没有在博文中点名我的书,还算是留了点客气。不过如此轰动的一篇博文(博客园编辑首页推荐),但却传达了一些让初学者困惑的信息——我们初学者在不知道对错的情况下到底还要不要写设计模式的心得文章?针对此我写了一篇吐槽的博文,说说我的想法。 我对《放过设计模式吧》文中所说的技术内容绝大部分认同,这点需要事先明确。作者谈了很多他对设计模式的理解和现在网上很多初学者误用设计模式的现象,这些都是可取的。比如将GoF的《设计模式:可复用面向对象软件的基础》应该翻译为《面向对象设计23招》这样的趣解,比如说策略模式和桥接模式的根本不应该因为UML图的类似而就认为他们容易混淆,他们根本就是讲了两回事等。作者对设计模式理解的高度应该是足够了。 但阅读完毕后,作为一个读者,特别是站在一个初学者的角度,这篇文章却让我感觉很压抑,有一种“他对设计模式理解得这么深,让我都不敢再去讨论设计模式了,真心怕挨骂呀!”的感觉。我不知道别的读者是否是这样,不过对于阅读本文的那些非擅长设计模式的读者来说,应该有类似的想法。 我一直有一个观点:“ 好的技术文章应该让读者更自信而不是更自卑 ”。自信是指读者读完之后,感觉很有收获,心情愉悦,有兴趣可以试着照做。自卑是指读完之后,甚为不爽,这个看不懂

PAT-B 1018. 锤子剪刀布 (20)

余生长醉 提交于 2019-12-05 03:18:55
https://www.patest.cn/contests/pat-b-practise/1018 题目 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。 输出格式: 输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。 输入样例: 10 C J J B C B B B B C C C C B J B B C J J 输出样例: 5 3 2 2 3 5 B B 分析 一共有9种情况,全部考虑到就可以,另外甲胜=乙负,甲负=乙胜,平局情况相同,可以节省几个变量。 遇到的坑: 使用scanf读取有效字符时一定要在前面加空格,因为: 对于scanf()而言,%c是个较为特殊的说明符。 %c前没空格,scanf()将读取标准输入流中的第一个字符,%c前有空格,scanf()则读取标准输入流中第一个非空白字符。 源代码 //C

PAT 1018 锤子剪刀布

匿名 (未验证) 提交于 2019-12-03 00:23:01
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第1行给出正整数N(<=10^5^),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。 输出格式: 输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。 输入样例: 10 C J J B C B B B B C C C C B J B B C J J 输出样例: 5 3 2 2 3 5 B B #include <cstdio> //变量定义得我蛋疼。。。 int change ( char x ) { //手势转换为数字比较,循环相克,字母由小到大 if ( x == 'B' ) return 0 ; if ( x == 'C' ) return 1 ; if ( x == 'J' ) return 2 ; } int main () { int n ; scanf ( "%d" , & n ); int win = 0 , draw = 0 ,

PAT 1018 锤子剪刀布

匿名 (未验证) 提交于 2019-12-03 00:22:01
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第1行给出正整数N(<=10^5^),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。 输出格式: 输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。 输入样例: 10 C J J B C B B B B C C C C B J B B C J J 输出样例: 5 3 2 2 3 5 B B #include <cstdio> //变量定义得我蛋疼。。。 int change ( char x ) { //手势转换为数字比较,循环相克,字母由小到大 if ( x == 'B' ) return 0 ; if ( x == 'C' ) return 1 ; if ( x == 'J' ) return 2 ; } int main () { int n ; scanf ( "%d" , & n ); int win = 0 , draw = 0 ,

PAT_B_1018 锤子剪刀布

匿名 (未验证) 提交于 2019-12-02 23:52:01
// PAT_1018_锤子剪刀布 # include <stdio.h> int win_lose(char A, char B) { // 平手 if (A==B) return 0; // 甲胜出 else if (A=='C'&&B=='J' || A=='J'&&B=='B' || A=='B'&&B=='C') return 1; // 乙胜出 else if (A=='J'&&B=='C' || A=='B'&&B=='J' || A=='C'&&B=='B') return -1; } int main(void) { int N; // 记录游戏次数 int flag; char ch1, ch2; int win=0, lose=0, draw=0; int A_C=0, A_J=0, A_B=0; int B_C=0, B_J=0, B_B=0; int Max_A=0,Max_B=0; scanf("%d",&N); getchar(); while(N--) { scanf("%c",&ch1); getchar(); scanf("%c",&ch2); getchar(); // 记录胜负平次数 flag = win_lose(ch1, ch2); if (flag == 0) draw++; // 甲胜出 else if (flag == 1) {

锤子便签

我只是一个虾纸丫 提交于 2019-12-02 16:42:25
锤子便签 可能是史上最漂亮的便签应用,你或许会因它重新喜欢上记录和表达。它不仅可以输入文字,还支持插入图片,进行图文混排。你还可以随时随地将便签内容生成精美的长微博或图片并分享。雅致的信纸、精心调整的排版,令内容更加赏心悦目,Smartisan Team 出品。 价格:免费 类别:工具 @ifuntools-优秀软件分享 来源: https://www.cnblogs.com/ifuntools/p/11755389.html

CSS3 简单的砸金蛋样式

荒凉一梦 提交于 2019-11-30 08:27:09
实现样式: 1、鼠标移入后,鼠标样式图标变为“锤子”。 2、用户砸金蛋,锤子简单的扬起效果。 3、砸碎金蛋,显示内容。 分析实现步骤: 1、在html中插入一颗金蛋 找一张静态图片或带一点效果的动态图,直接放入img标签即可。 2、鼠标移入,改变鼠标样式图标 系统自带的鼠标样式就那几种,可以通过CSS修改,简单的一句代码: cursor: url("./IMG/chuizi1.png"), default; 只是需要给定改变样式时的前提要求,此处要求是鼠标移入改变,即hover时改变: ``` body>div aside label img:hover { cursor: url("./IMG/chuizi1.png"), default; } ``` url内为自己选择的“锤子”样式。 3、当用户砸蛋时,让锤子扬起来 因为只能使用CSS,那只有利用鼠标的点击状态(按住鼠标左键)来实现了,当用户点击鼠标左键时, 改表鼠标样式,和上一步一样,只是改变样式时的前提要求不同,这一步为active时改变: <pre style="max-width: 100%;"> body>div aside label img:active { cursor: url("./IMG/chuizi2.png"), default; } web前端开发学习Q-q-u-n: 784783012

互联网思维之用户思维

老子叫甜甜 提交于 2019-11-28 12:14:22
#用户思维是基础思维三个方法: 1.WHO 得屌丝者得天下(屌丝文化)2. WHAT 兜售参与感(获得反馈以及意见 C2B模式 以用户为中心) 3. HOW 体验至上(注意粉丝的效用 细节) #简约思维:专注,少即是多,简约就是美 意思就是产品规划的时候要非常专注 简单的东西更容易传播 功能做加法 背后的流程设计等要减化 作业:三星公司为什么能屹立不倒,同时追随苹果公司不断发展? 1.背后的电子产品背景。 2.迎合用户需求,不断改进产品并且提供多种类型的产品满足用户的需求。不像诺基亚手机。 #极致思维 需求要抓准:痛点 痒点 兴奋点 逼得狠 突破自己的极限 管理要盯的紧 作业:锤子手机在极致思维的思路上做了哪些工作? 1、重视人性化以及个性化。 2、尊重用户隐私和选择权。 [5] 3、锤子手机应用商店的应用。锤子ROM发布会上的第一篇章就是讲的就是界面,创作者对于良好的交互界面有着近乎于偏执的认同,这也将直接影响到锤子手机的研制,以及锤子手机应用商店的维护,其中势必将有大量精致和极具价值的应用上架,这对用户而言可以减少筛选应用的时间,提升智能手机的使用效率。 #迭代思维 因为通常不是一次性满足用户的需求 而是一次次的迭代慢慢满足用户的需求 作业:当前很多随身WIFI,这是在哪个创新点上进行了微创新? 就是对路由器进行了微创新,更容易移动,便捷性。 #流量思维 流量就意味着金钱

艺术活动——《锤子歌》(演奏)

被刻印的时光 ゝ 提交于 2019-11-28 10:14:51
一、活动内容:艺术活动——《锤子歌》(演奏) 二、活动目标: 1.能正确听辨歌曲中大锤子和小锤子不同节奏型“× ×∣××∣”“×× ××∣×× ××∣”,运用动作有控制地玩节奏游戏。 2.学习用轮奏和合奏的方法为歌曲伴奏,体验趣味性演奏的乐趣。 三、活动准备: 物质准备:小鼓、木鱼、碰铃各13个,音乐《锤子歌》。 四、活动过程: (一)律动入室。 引导幼儿按音乐节奏做采茶动作。 (二)初次欣赏,引导幼儿交流听音乐《锤子歌》的感受。 提问:你们听到了些什么?哪一句比较有趣? (三)再次欣赏,发现大锤子和小锤子的不同节奏。 1.引导语:先唱歌的是大锤子还是小锤子?它们唱的歌一样吗? 2.引导幼儿自由选择肢体,分别表现大锤子和小锤子的不同节奏。 大锤子:× ×∣××∣ 小锤子:×× ××∣×× ××∣ (四)视听结合,感受大锤子和小锤子的不同节奏。 1.出示演奏谱,教师边说边念白,幼儿随乐拍大锤子和小锤子的节奏。 2.引导幼儿跟随自己边说唱边拍大锤子和小锤子的节奏;提醒幼儿注意倾听间奏音乐并保持等待,及时跟进最后一句音乐——大小锤子齐奏。 (五)多样化运用动作演奏。 引导幼儿用不同动作模拟大锥子和小锤子的声音进行演奏。 (六)持乐器演奏。 1.出示乐器木鱼、碰铃,请幼儿听辨其音色并说说哪种乐器更适合演奏大锤子、哪种乐器更适合小锤子。 2.幼儿持乐器看图谱演奏。 3.添加小鼓

PTA 1018 锤子剪刀布 (c语言)

一曲冷凌霜 提交于 2019-11-26 19:12:18
1018 锤子剪刀布 (20 分) 这个题,我做的时候一直以为是有捷径可循的,但是后来怎么想都想不出来。 只能暴力了,所谓暴力出奇迹,哈哈哈 代码如下: #include<stdio.h> int main() { int x,i,win=0,pin=0,lose=0,bu=0,ch=0,ji=0,bu1=0,ch1=0,ji1=0; if(scanf("%d",&x)); char a[x],b[x]; for(i=0;i<x;i++) { getchar(); if(scanf("%c %c",&a[i],&b[i])); if((a[i]=='B'&&b[i]=='C')||(a[i]=='C'&&b[i]=='J')||(a[i]=='J'&&b[i]=='B')) { win++; if(a[i]=='B') bu++; else if(a[i]=='C') ch++; else ji++; } if((a[i]=='B'&&b[i]=='J')||(a[i]=='J'&&b[i]=='C')||(a[i]=='C'&&b[i]=='B')) { lose++; if(b[i]=='J') ji1++; else if(b[i]=='C') ch1++; else if(b[i]=='B') bu1++; } if(a[i]==b[i]) pin++; } printf(