Appearance
团队合作换牌游戏
规则:
材料:扑克牌一副(抽去大小“司令”,一共为52张),笔、A4纸若干 过程设计:
培训师事先在培训场地上放14张椅子,每7张椅子摆成一个金子塔形状,然 后请14名学员上台,7个人为一组,分为两组。按A、B、C、D、E、F、G、H坐在摆好的椅子上(A坐在金字塔的塔尖,其它按从左至右的顺序坐好。其中A是B、C的上司,B是E、F的上司,C是G、H的上司),同时发给每个人用A4纸裁好的小纸条20张、笔一支、扑克牌四张。
培训师宣布游戏规则:每个人都只能跟上下级交流换牌,而不能同级或越 级交流换牌(如B与C,F与C,A与F);并且每次只能交换一张牌。在15分钟里通过换牌使得这个组织中的每一个人的牌都换到最优。
游戏的结果看看两个小组牌的组合谁最优(先比较牌的组合数的多少,再 比较牌组的大小。依照同花顺、四条、顺子、三拖一、对子的大小来组合,如果出现了一副没有一条符合上述标准的最差的牌组,不计算组合数),即为获胜组。
时间推进表:
游戏准备需10分钟,游戏进行需15分钟,游戏结束后分享需10分钟 注意事项:只允许上下级进行交流,不允许同级或越级交流。
启发性问题:
- 在规定时间内顺利完成任务的关键是什么?
- 组织中A的作用是什么?
- 游戏中信息交流的方式有什么局限?用来交换的牌到底是什么?对企业管理有什么启示?
算法
- 思想
现在假设有n=2k个人,每人手中有n张相同的牌。 现在打乱拍,使得每人手中的牌都不一样,规则同上。
类似冒泡排序算法,复杂度O(n2):
编码,规定每个图案的大小,由1-n。
- 变量:
- 长度:len = n;
- 起始位置:start = 1;
- 结束位置:end = n;
- 轮数:round,奇数轮为true,偶数轮为false;
- 循环起始位置:_start = start。
- 伪代码:
javascript
while(len > 0){
sort(Person[i](card[j]);
if(round){
for(_start;_start <= len;_start += 2){
swap(Person[_start](card[0],card[1]),Person[_start+1](card[2],card[3]);
}
round ~= round;
same(Person[start]) == start ? { start++;len--} : start;
same(Person[end]) == start ? { end--;len--} : end;
_start = start + 1;
}else{
for(_start;_start <= len;_start += 2){
swap(Person[_start](card[0],card[1]),Person[_start+1](card[2],card[3]);
}
round ~= round;
_start = start;
}
}
- 文字描述:
参与人数为手中牌还没有完全相同的人,len;
初始起始位置为1号位,起始结束位置为n号位,它们会随参与人数的减少而增减,start,end;
每轮开始,所有人手中的牌都按升序,从左到右排序;
定义奇数轮执行A操作,偶数轮执行B操作;
- A操作:
从起始位,两两换牌,低位的人交出最大的两张牌,高位的人交出最小的两张牌
- B操作
从起始位的下一位开始两两换牌,方式同A
每次执行完A、B操作,都要判断起始位和结束位的人,自己手中牌是否与对应位置全部的牌一样(例如1号位手中全是5号位的牌不算),如果一样,则示意退出游戏,并且大家记住起始和结束位置的增减,如果不一样,继续游戏;
如果参与人数为0,则游戏结束。
- 实例
最差情况实例:想要的牌都离自己最远
A:8765
B:8765
C:8765
D:8765
E:1234
F:1234
G:1234
H:1234
第一轮:
5566
7788
5566
7788
1122
3344
1122
3344
第二轮:
5566
5577
6688
1177
2288
1144
2233
3344
第三轮:
5555如果可以自由走动,不需要只传给身边的人,就可直接退出游戏了
6677
1166
7788
1122
4488
3333如果可以自由走动,不需要只传给身边的人,就可直接退出游戏了
2244
第四轮:
5555
1166
6677
1177
2288
3344
3388
2244
第五轮:
1155
5566
1166
7777
2244
3388
2233
4488
第六轮:
1155
1155
6666
2277
4477
2233
3388
4488
第七轮:
1111 same start++ len--
5555
2266
6677
2244
3377
3344
8888 same end-- len--
第八轮:
2255
5566
2266
4477
3333
4477
第九轮:
2255
2255
6666
3344
3377
4477
第十轮:
2222 same start++ len--
5555
3366
4466
3344
7777 same end-- len--
第十一轮:
5555
3344
6666
3344
第十二轮:
3355
4455
3366
4466
第十三轮:
3355
3344
5566
4466
第十四轮:
3333 same start++ len--
4455
4455
6666 same end-- len--
第十五轮
4444 same start++ len--
5555 same end-- len--
len=0,游戏结束