关于T.J.MAXX的信息
TJX公司的全名叫什么?
TJX公司总部设在美国波士顿,在北美地区和许多欧洲国家开有连锁分店,仅在美国就有2500多家分店。
TJX Companies, Inc. 是美国和全世界的服装和家庭时尚低价零售商。公司经营T.J. Maxx stores, Marshalls stores, and Winners Apparel Ltd. stores。Winners Apparel Ltd. stores是一家加拿大的低价家庭服装和家庭时尚连锁店。公司同时操作HomeGoods, 一家美国低价家庭时尚连锁店;以及T.K. Maxx 、一家在英国、爱尔兰共和国和荷兰的低价家庭服装和家庭时尚连锁店。另外, 公司经营A.J. Wright, 一个新的美国低价家庭服装和家庭时尚商店连锁店。2007年TJX以17516.4百万美元的营业收入和738.0 百万美元的利润额排列世界500强第417位
美国真的是购物天堂?
(图)俯瞰纽约
美国著名诗人哈特?克兰(Hart Crane)曾有“不爱国”之名言,“美国与撒哈拉是世界上唯二(only two)极其无聊的地方。”这话说得妙,克兰1932年驾鹤西行,他看到尽是美国一片大兴土木之景,置身于世界上最大的工地之中,感觉想必好不到哪里去,因而牢骚满腹。可叹老先生生不逢时,无缘看到美国梦的高潮期——纽约翻修的百老汇大街与圣路易斯的大拱门。只是这一梦黄粱,恍然醒悟,今日的美国,似乎又轮回到克兰笔下。这个国家,似乎不太好玩。
但是偏偏有人愿意为美国摇旗呐喊,而且还是中国网民,这太奇怪。有调查结果称,中国人最喜欢的国家是美国,而且中国人公认的四大购物天堂,美国竟然也占其中之一,直可与巴黎、香港、东京相媲美。为了称道美国,网络写手们也是拼了命,物价低廉、品种繁多、购物方便、服务周到,似乎这世界上好事让美国一国占尽,其他国家只有流口水的份儿。吹嘘之处,真是令人酸到掉牙。
为了写这篇文章,我自己倒是充当了一回网络信息分析师,查出来的结果让我倒吸一口凉气,鼓吹美国是消费天堂的帖子,竟然多达十几万条,帖子里有图片,有数据,有真相,有分析,真是让人不信都难。
但是据国际门户网站统计,世界上排名前十位的优质购物城市(Best Selling Cities),几乎没有美国的份儿,倒是中国的香港、上海、北京接连上榜。除了纽约之外,美国也似乎难以有哪个城市真的属于“血拼之城”。要说青山绿水城市的排名,美国恐怕会因地广人稀而折桂,但要真说“购物天堂”,我看美国还排不上号。
毕竟此时此刻就在美国,并且已经生活了不算短的一段时间,而且正在自驾旅行十余州,堪称云游了半个美国。美国是不是购物天堂?美国的物价真的比中国便宜?答案与真相早已了然于胸。因此,即使当我再面对这些天花乱坠的网文时,既无法相信,也懒于一驳。
可是,在美国购物,确是一种完全不同的体验,除了在一篇文章中曾提到过的“旧货市场”之外,美国其余的购物场所,也别具一格。毕竟意味着不同的异域文化,这显然是值得成文一篇的。
(一)
(图)二十世纪纽约街头商贩
本文所称的“购物”,并非只是大包小包的“血拼”,而是包括日常购物在内的零售。
要想了解美国的购物,势必要了解美国的城市格局。与中国不同,美国没有明显的城乡差异,除了一个州主要的几座城市之外,其余的一眼望去,都是乡村,但仔细一看,一些高档超市、购物区都隐藏在茂林修竹之中,因为美国的富人区、大学与工业园,基本上都在乡下。
如果你认为富人区在乡下,进而可以大大的“血拼”,那就大错特错。以本人所居住的庙岭镇为例,这里既是美国的大学城,也属于北卡州的富人区之一,就在我们公寓的周围,大约有几家步行可达的超市与“商圈”,荒郊野岭,只能说是满足日常需求,决然谈不上繁华。
细致说来,我们公寓周围大概有如下几个商圈,一个是举步可达的Whole Food超市,这是全国连锁的高档超市,主要出售有机食物与进口食品,大约相当于我们“华联BHG”或是“中百Theater”;一个距离亦不遥远,也是全国连锁的Harris Teeter超市,论规模,与Whole Food不差上下,但论档次却略逊色于Whole Food,就在这家超市对面,有一个规模不大的市场(mart),叫大学商城(University Mall)。
这两家超市都只有一层(美国几乎没有两层楼的超市),孤零零地矗立在一片空地之上。里面售卖的商品价格比国内略贵,但也能接受。但凡除了电器之外的日常生活用品,在里面都能买到,可选择的空间也很大,与国内超市相差无几,但要说逛超市,确实没有什么可看之处,因为里面大多数东西中国人都不会购买——譬如奶酪、培根之类,而这些商品占了超市相当大的一片空间。
如果细论价格,美国超市里的蔬菜绝对不能算是便宜——除了二十磅一袋的土豆之外。其余蔬菜的价格,基本上是国内同类产品的三至五倍。但如果打上“Organic(有机)”的字样,价格还会更高,像鸡蛋、牛奶、鲜肉等等,一旦属于“有机”食品,立刻像获得功名的举子,身价立刻翻倍。
而大学商城则是一个乏善可陈的商场,里面有数十家不同的店铺、餐厅与一家名为南季超市(Southern Season)所组成,大约像我们的“万达商场”的微缩版。但是商店所售卖的商品实在难以激起我的兴趣,因为许多店铺都在不约而同地出售非常粗劣、款式极其难看且不知品牌的服装与鞋类——大约类似于三线城市的“服装城”,而“南季超市”则销售物价颇高但质量委实一般的商品。
“我们是不会去南季超市的。”一位旅居北卡多年的华侨如是说,“这里买的东西太贵,也没有什么值得买的东西,很多东西比一般超市贵一两倍,质量又不好。”
在美国其他州,也基本上是这种情况。除了在都会市中心(downtown)之外,绝大多数的购物区都是满足基本需求,如果不是真的有需要,这些购物场所,难以激起购物欲。
(二)
(图)美国纽约街头
当然,这远远不是美国生活零售市场的全部。
在不计其数的“网帖”中,纠结最多的,并非是日常用品,而是服装、化妆品等“大牌”。不少网民普遍认为,美国的这类“品牌货”价格比中国低不少。
美国的服装、化妆品等“品牌货”,一般在三种地方销售,一是百货商店,如梅西百货(Macy)、贝克百货(Belk)等等,当然这些商店里的折扣都不会太高,且装修也比较简陋,有点像中国九十年代的商场;二是奥特莱斯(Outlets),美国的奥特莱斯,一个州能拿得出手的也就一两个,论规模,也不过与中国二线城市的奥特莱斯相仿,价位、折扣也差不到哪里去。
我想说的是第三种市场,叫微型折扣店,以斯坦商场(Stein Mart)、马歇尔(Marshalls)、马克斯(T.J Maxx)等等,这些都是全美连锁的小商场,他们均匀地分布在全美各地的商圈内,是不少美国人购买“品牌货”的主要渠道。
这些店铺规模都不大,基本上都是两三百平米左右。主要出售各种打折的品牌服装,也兼售一些快过期的日化品。中国国内被称为大牌的Ralph Lauren、Tommy、CK、Lee牌与阿迪达斯等各类服装,在这种店铺里堆砌如山,价格从十几美金到几十美金不等,其余品牌可以说是闻所未闻。档次再高一点的衣服,这里就看不到了。
中国网民最喜欢比较的,就是美国的休闲服饰与牛仔裤的价格。这一点微型折扣店里,尤其明显。
美国人做衣服,符合美国的国情,所谓国情,就是国人的平均体型。我在国内买衣服,需要三四个加号的大码,到了美国,大号足以。若是三四个加号的衣服,恐怕可以装下两个我,当然,还有五个加号的巨硕服装,一般是五尺二腰围的裤子,或是袖长一米二的衬衣,连乔丹、艾弗森穿起恐怕都可以扬起水袖。这种衣服在美国也没有多少人适合,到了微型折扣店,也就几美元一件。
这种衣服当然比中国同品牌的衣物便宜不少,但是却鲜有人问津。我们当然不能因为其便宜,就认为美国所有的商品都便宜,这一叶障目,很容易受到误导。
微型折扣店在美国可大行其道,很大程度乃是因为美国国内消费能力有限,而因为人力资本昂贵,使得库存费用成为许多厂商难以承受的负担。这些折扣店集中盘活了库存,将服装这种没有保质期的商品推销到全国各地,当中既有断码的商品,也有不少是残次、瑕疵商品,实在谈不上使人有购买的欲望。
因此,在微型折扣店中,买到称心如意的商品只能靠机遇。就我个人而言,为了打发时间,我也会经常去这些店铺看看,但是说实话,实在是没有什么商品值得我购买,这几年中国人生活质量也直线上升,国人也不是什么洋垃圾都往身上套的三等公民。记得当时在Stein Mart商店里闲逛时,偶然碰到一位在刚来此地做生意的上海人,我问他是否常来这里,他倒是一脸惊讶:“我今天是第一次来,这里的东西太差劲,今后恐怕是不会再来了。”
(三)
(图)昔日美国城市景象
超市如是,零售业如此。那么美国的专卖店与网上购物又如何呢?
美国没有淘宝网,只有类似于淘宝网的“亚马逊”。若论它与淘宝网的方便程度,相去何止以道里计。很关键因素在于,美国没有中国如此发达的快递业务,美国只有邮局一家送快递,而且美国的网上购物也并非人人青睐,因此“亚马逊”上的商品比商场里也便宜不了多少。
有趣的是,美国许多专卖店都有网店,有点类似于我们的“凡客诚品”之类的购物网站,特别是服装、图书与日用品类,网上购物与网下购物同步。享誉美国的社区日化杂货店Walgreens(近似于我们的“屈臣氏”超市)就有网上购物区,甚至你可以通过网上检索,来看离你最近的连锁店里有无你需要的商品。
这样的方便程度,目前国内大多数连锁商店都没有做到,显然这是值得我们借鉴的。但我们也应看到,因为美国人口稀少,且分布开阔,因此每个商场里的顾客不过寥寥几人而已,大多数商场里服务员比顾客人数还要多许多。
当中印象最为深刻的,是乔治·班克(Jos.A. Bank)服装店。
我曾在《何谓公心》一文中提到过这家服装店,但囿于篇幅,没能说清楚。这家商店是美国最资深、最有品位的服装店之一,与阿兰·爱蒙(Allen Almonds)的皮鞋齐名,是美国历届总统、政要最为青睐的“国货”。据说乔治·班克曾一度连续服务十三届美国总统,直至肯尼迪(J. Kennedy)遇刺之后这才作罢,但不计其数的部长、议员仍然青睐于乔治·班克的量身定做(specially tailored),堪称“纸牌屋”的重要见证人,也是无数“老克勒”的衣橱标配,但它迟迟未有进入中国市场,因此一直未能被中国顾客认可。
近年来,阿兰·爱蒙与乔治·班克相继走向美国的民间,价格也亲民不少,在我们小区旁边就有一家。其店铺设计老成持重、富于绅士风情,与周围其他的时装店、童装店与运动用品店形成了鲜明的对比。前几次我被店内的标价吓得望而却步,不敢进入。后来发现,标价是一回事,折扣又是另一回事,打折下来,竟然比国内的衬衣还便宜不少,于是斗胆开始试衣。
说是试衣,其实就是享受非常周到细腻的服务。在乔治·班克的店铺内,永远会有一位裁缝作为标配,他既承担修改裤腿、缝扣子、剪西服袖标的职责,也负责帮顾客量体选衣,而且一般都是五六十岁的长者,着装一丝不苟,动作专业细致,营业员永远是笑脸相迎,宛如招待旧雨新知。这样的服务,在美国也只有极少数老派的店铺提供,乔治·班克算是个中翘楚。
在美国购物,最使人深刻的就是对于传统的敬畏。但凡是百年名店,服务员都会让顾客感受到宾至如归,这大概是不少中国人觉得贴心之处。但是,这几年美国的欧洲传统开始逐渐丢失,年轻人似乎也不太敬畏传统,嘻哈文化、街头文化以及哈莱姆(Harlem)文化兴起,崇尚繁文缛节的乔治·班克究竟还能维持多久?很难说。
(四)
(图)美国纽约旧照
乔治·班克只是个案,美国大多数零售服务行业,其实并不太使人愉悦。
究其根本原因,乃是美国的种族歧视制度使之然也。在美国的零售业中,除了如乔治·班克这样老派的店铺之外,其余商店的中下层与底层基本上收入微薄的黑人或是南美人,而中层以上直至高管,则以白人居多。在这种前提下,服务员的态度,比较难指望。
在美国,有几种超市的巨无霸,像沃尔玛(Walmart)、Target等等,属于“什么都卖”的超市,上到冰箱电视,下到棉签牙刷,可谓是应有尽有,规模都是上万平米,光是在里面闲逛,就需要几个小时的时间。
在来到美国前,我曾听过一个段子,一个中国人在美国的沃尔玛超市购物,因为多收了一美元,顾客发觉之后,找服务员理论,结果惊动了经理,当天数百美元的购物全部免单,经理亲自驾车,将顾客送回家里。
这个故事流传太广,以至于我时常“被阅读”,因为美国的卖场客人不多,因此很难有找错钱的情况。所以来到美国几个月,也没有被我们体验过这种“超上帝服务”。
人算不如天算,有一日,我与妻驾车从北卡州动物园旅行回家,忽然发现路边有一家沃尔玛,当时我们正好需要一箱矿泉水,于是我与妻赶紧就近停车,走了进去,里面空空荡荡,我们买了两箱矿泉水,结账之后才发现,账单上打印的矿泉水,竟然不是我选购的那一种,总价要贵两美金多。
忽然间,我如获至宝,因为传说中的“经理道歉”终于快被我等到了。
待我拿着账单,走到服务员面前时,没想到服务员却是一副冷若冰霜的表情,我有点激动地陈述完事实之后,然后目不转睛地盯着她的眼睛。
“经理你过来一下。”服务员对着收银台旁的对讲机说了几句。
原来真的要惊动经理!
我兴冲冲地看着一个胖胖的女士走了过来,她似乎已经知道发生什么了,左手捏着几枚硬币,她看了一眼账单,右手迅速从左手的硬币中抠出了几枚,扔在台面上,脸上写满了不耐烦,涂抹猩红的嘴唇一撅一张,“这里是多收的钱,你自己拿好。”
还没等我回过神来,服务员倒是盛气凌人地看了我一眼,态度有些鄙夷。我倒是非常惊讶,看到经理扭捏地走回了自己的办公室,没有道歉,没有鞠躬,更谈不上什么免单之类。倒是后面有几位在买单的顾客用莫名其妙的眼神看着我,仿佛我占了超市的便宜一般。
回到公寓,正好遇到比邻而居的一位华侨朋友,向他说了这件事情,他倒是爽朗一笑:“你怎么可能会等到他们道歉呢?这些人,就算是错的,也觉得自己永远是对的。美国当然比不上上海、香港了,那里才是购物的天堂,美国显然不是。”
(原载于《世界文化》2016年5月期)
「历史大学堂」特邀作者 丨 韩晗
求一份用C语言编写的俄罗斯方块的源代码!
俄罗斯方块C源代码
#include?stdio.h
#include?windows.h
#include?conio.h
#include?time.h
#define??ZL??4 ? ? //坐标增量,?不使游戏窗口靠边
#define?WID??36 ?? //游戏窗口的宽度
#define?HEI??20 ?? //游戏窗口的高度
int?i,j,Ta,Tb,Tc; ? ?? //?Ta,Tb,Tc用于记住和转换方块变量的值
int?a[60][60]={0}; ?? //标记游戏屏幕各坐标点:0,1,2分别为空、方块、边框
int?b[4]; ? ? ?? //标记4个"口"方块:1有,0无,类似开关
int?x,y,?level,score,speed; ?? //方块中心位置的x,y坐标,游戏等级、得分和游戏速度
int?flag,next; ? //当前要操作的方块类型序号,下一个方块类型序号
void?gtxy(int?m,?int?n); ? //以下声明要用到的自编函数
void?gflag(?);? //获得下一方块序号
void?csh(?);? //初始化界面
void?start(?);? //开始部分
void?prfk?(?);? //打印方块
void?clfk(?);? //清除方块
void?mkfk(?);? //制作方块
void?keyD(?);? //按键操作
int??ifmov(?);? //判断方块能否移动或变体
void clHA(?);? //清除满行的方块
void?clNEXT(?);? //清除边框外的NEXT方块
int?main(?)
{?csh(?);
while(1)
?? {start(?);??//开始部分
? ?? while(1)
? ?? {?prfk(?);?
? ? ?? Sleep(speed);? //延时
? ? ? ? clfk(?);
? ? ? ? Tb=x;Tc=flag;??//临存当前x坐标和序号,以备撤销操作
? ? ? ? keyD(?);
? ? ? ? y++;?????//方块向下移动
? ? ?? if?(ifmov(?)==0)?{?y--;?prfk(?);?dlHA(?);?break;}?//不可动放下,删行,跨出循环
? ?? }
? ? for(i=y-2;iy+2;i++){?if?(i==ZL)?{?j=0;?}?}? //方块触到框顶
?? if?(j==0)?{?system("cls");gtxy(10,10);printf("游戏结束!");?getch();?break;?}?
?? clNEXT(?); ? //清除框外的NEXT方块
? }
return?0;
}
void?gtxy(int?m,?int?n)??//控制光标移动
{COORD?pos;??//定义变量
pos.X?=?m;??//横坐标
pos.Y?=?n;???//纵坐标
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),?pos);
}
void?csh(?)????//初始化界面
{gtxy(ZL+WID/2-5,ZL-2);?printf("俄罗斯方块");??????//打印游戏名称
gtxy(ZL+WID+3,ZL+7);?printf("*******?NEXT:");??//打印菜单信息
gtxy(ZL+WID+3,ZL+13);?printf("**********");
gtxy(ZL+WID+3,ZL+15);?printf("Esc?:退出游戏");
gtxy(ZL+WID+3,ZL+17);?printf("↑键:变体");
gtxy(ZL+WID+3,ZL+19);?printf("空格:暂停游戏");
gtxy(ZL,ZL);??printf("╔");??gtxy(ZL+WID-2,ZL);??printf("╗");??//打印框角
gtxy(ZL,ZL+HEI);??printf("╚");??gtxy(ZL+WID-2,ZL+HEI);??printf("╝");
a[ZL][ZL+HEI]=2;??a[ZL+WID-2][ZL+HEI]=2;??//记住有图案
for(i=2;iWID-2;i+=2)?{gtxy(ZL+i,ZL);??printf("═");?}??//打印上横框
for(i=2;iWID-2;i+=2)?{gtxy(ZL+i,ZL+HEI);?printf("═");?a[ZL+i][ZL+HEI]=2;?}?//下框
for(i=1;iHEI;i++)?{?gtxy(ZL,ZL+i);??printf("║");?a[ZL][ZL+i]=2;?}??//左竖框记住有图案
for(i=1;iHEI;i++)?{gtxy(ZL+WID-2,ZL+i);?printf("║");?a[ZL+WID-2][ZL+i]=2;?}?//右框
CONSOLE_CURSOR_INFO?cursor_info={1,0};???//以下是隐藏光标的设置
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),cursor_info);
level=1;?score=0;?speed=400;
gflag(?);??flag=next;??//获得一个当前方块序号
}
void?gflag(?) ? //获得下一个方块的序号
{?srand((unsigned)time(NULL));?next?=?rand()%19+1; }
void?start(?)??//开始部分
{?gflag(?);?Ta=flag;?flag=next;??//保存当前方块序号,将下一方块序号临时操作
x=ZL+WID+6;?y=ZL+10;?prfk(?);??//给x,y赋值,在框外打印出下一方块
flag=Ta;?x=ZL+WID/2;?y=ZL-1;??//取回当前方块序号,并给x,y赋值
}
void?prfk?(?)??//打印俄罗斯方块
{?for(i=0;i4;i++)?{b[i]=1;?}??//数组b[4]每个元素的值都为1
mkfk?(?);??//制作俄罗斯方块
for(?i=?x-2;?i=x+4;?i+=2?)??//打印方块
{?for(j=y-2;j=?y+1;j++)?{?if(?a[i][j]==1??jZL?){?gtxy(i,j);?printf("□");?}?}?}
gtxy(ZL+WID+3,ZL+1); ? printf("level?:?%d",level); ?//以下打印菜单信息
gtxy(ZL+WID+3,ZL+3);? printf("score?:?%d",score);
gtxy(ZL+WID+3,ZL+5);? printf("speed?:?%d",speed);
}
void?clfk(?)??//清除俄罗斯方块
{?for(i=0;i4;i++)?{?b[i]=0;?}??//数组b[4]每个元素的值都为0
mkfk?(?);??//制作俄罗斯方块
for(?i=x-2;?i=x+4;?i+=2?)??//清除方块
{?for(j=y-2;j=y+1;j++){?if(?a[i][j]==0??jZL?){?gtxy(i,j);?printf("??");?}?}?}
}
void?mkfk(?)??//制作俄罗斯方块
{?a[x][?y]=b[0];??//方块中心位置状态:?1-有,0-无
switch(flag)???//共6大类,19种小类型
{?case?1:?{?a[x][y-1]=b[1];?a[x+2][y-1]=b[2];?a[x+2][y]=b[3];?break;?}??//田字方块
case?2:?{?a[x-2][y]=b[1];?a[x+2][y]=b[2];?a[x+4][y]=b[3];?break;?}??//直线方块:----
case?3:?{?a[x][y-1]=b[1];?a[x][y-2]=b[2];?a[x][y+1]=b[3];?break;?}??//直线方块:?|
case?4:?{?a[x-2][y]=b[1];?a[x+2][y]=b[2];?a[x][y+1]=b[3];?break;?}??//T字方块
case?5:?{?a[x][y-1]=b[1];?a[x][y+1]=b[2];?a[x-2][y]=b[3];?break;?}??//T字顺时针转90度
case?6:?{?a[x][y-1]=b[1];?a[x-2][y]=b[2];?a[x+2][y]=b[3];?break;?}??//T字顺转180度
case?7:?{?a[x][y-1]=b[1];?a[x][y+1]=b[2];?a[x+2][y]=b[3];?break;?}??//T字顺转270度
case?8:?{?a[x][y+1]=b[1];?a[x-2][y]=b[2];?a[x+2][y+1]=b[3];?break;?}?//Z字方块
case?9:?{?a[x][y-1]=b[1];?a[x-2][y]=b[2];?a[x-2][y+1]=b[3];?break;?}??//Z字顺转90度
case?10:?{?a[x][y-1]=b[1];?a[x-2][y-1]=b[2];?a[x+2][y]=b[3];?break;?}??//Z字顺转180度
case?11:?{?a[x][y+1]=b[1];?a[x+2][y-1]=b[2];?a[x+2][?y]=b[3];?break;?}?//Z字顺转270度
case?12:?{?a[x][y-1]=b[1];?a[x][y+1]=b[2];?a[x-2][y-1]=b[3];?break;?}??//7字方块
case?13:?{a[x-2][y]=b[1];?a[x+2][y-1]=b[2];?a[x+2][y]=b[3];?break;?}??//7字顺转90度
case?14:?{?a[x][y-1]=b[1];?a[x][y+1]=b[2];?a[x+2][y+1]=b[3];?break;?}??//7字顺转180度
case?15:?{?a[x-2][y]=b[1];?a[x-2][y+1]=b[2];?a[x+2][y]=b[3];?break;?}??//7字顺转270度
case?16:?{?a[x][y+1]=b[1];?a[x][y-1]=b[2];?a[x+2][y-1]=b[3];?break;?}??//倒7字方块
case?17:?{?a[x-2][y]=b[1];?a[x+2][y+1]=b[2];?a[x+2][y]=b[3];?break;?}??//倒7字顺转90度
case?18:?{?a[x][y-1]=b[1];?a[x][y+1]=b[2];?a[x-2][y+1]=b[3];?break;?}??//倒7字顺转180度
case?19:?{?a[x-2][y]=b[1];?a[x-2][y-1]=b[2];?a[x+2][y]=b[3];?break;?}??//倒7字顺转270度
}
}
void?keyD(?)??//按键操作
{?if?(kbhit(?))
{?int?key;
?? key=getch();
if?(key==224)
{?key=getch();
? ? ?? if?(key==75)?{?x-=2;?}??//按下左方向键,中心横坐标减2
if?(key==77)?{?x+=2;?}??//按下右方向键,中心横坐标加2
? ? ? if?(key==72)?????//按下向上方向键,方块变体
{?if?(flag=2??flag=3?)?{?flag++;?flag%=2;?flag+=2;?}
if?(?flag=4??flag=7?)?{?flag++;?flag%=4;?flag+=4;?}
if?(flag=8??flag=11?)?{?flag++;?flag%=4;?flag+=8;?}
if?(flag=12??flag=15?)?{?flag++;?flag%=4;?flag+=12;?}
if?(?flag=16??flag=19?)?{?flag++;?flag%=4;?flag+=16;?}?}
? ? ?? }
? ? if?(key==32)?????//按空格键,暂停
{?prfk(?);?while(1)?{?if?(getch(?)==32)?{?clfk(?);break;}?}?}? //再按空格键,继续游戏
? ? if?(ifmov(?)==0)?{?x=Tb;?flag=Tc;?}? //如果不可动,撤销上面操作
? ? else?{?prfk(?);?Sleep(speed);?clfk(?);?Tb=x;Tc=flag;} ? //如果可动,执行操作
}
}
int?ifmov(?)???//判断能否移动
{?if?(a[x][y]!=0)?{?return?0;?}??//方块中心处有图案返回0,不可移动
else{?if?(?(flag==1??(?a[x][?y-1]==0??a[x+2][y-1]==0??a[x+2][y]==0?)?)?||
? ? ?? (flag==2??(?a[x-2][y]==0??a[x+2][y]==0??a[x+4][y]==0?)?)?||
? ? ?? (flag==3??(?a[x][y-1]==0??a[x][y-2]==0??a[x][y+1]==0?)?)?||
? ? ?? (flag==4??(?a[x-2][y]==0??a[x+2][y]==0??a[x][y+1]==0?)?)?||
? ? ?? (flag==5??(?a[x][y-1]==0??a[x][y+1]==0??a[x-2][y]==0?)?)?||
? ? ?? (flag==6??(?a[x][?y-1]==0??a[x-2][y]==0??a[x+2][y]==0?)?)?||
? ? ?? (flag==7??(?a[x][y-1]==0??a[x][y+1]==0??a[x+2][y]==0?)?)?||
? ? ?? (flag==8??(?a[x][y+1]==0??a[x-2][y]==0??a[x+2][y+1]==0?)?)?||
? ? ?? (flag==9??(?a[x][y-1]==0??a[x-2][y]==0??a[x-2][y+1]==0?)?)?||
? ? ?? (flag==10??(?a[x][y-1]==0??a[x-2][y-1]==0??a[x+2][y]==0?)?)?||
? ? ?? (flag==11??(?a[x][y+1]==0??a[x+2][y-1]==0??a[x+2][y]==0?)?)?||
? ? ?? (flag==12??(?a[x][y-1]==0??a[x][y+1]==0??a[x-2][y-1]==0?)?)?||
? ? ? ( flag==13 ( a[x-2][y]==0 a[x+2][y-1]==0 a[x+2][y]==0 ) ) ||
????( flag==14 ( a[x][y-1]==0 a[x][y+1]==0 a[x+2][y+1]==0 ) ) ||
? ?? (flag==15 ( a[x-2][y]==0 a[x-2][y+1]==0 a[x+2][y]==0 ) ) ||
? ?? (flag==16 ( a[x][y+1]==0 a[x][y-1]==0 a[x+2][y-1]==0 ) ) ||
? ?? ( flag==17 ( a[x-2][y]==0 a[x+2][y+1]==0 a[x+2][y]==0 ) ) ||
????(flag==18 ( a[x][y-1]==0 a[x][y+1]==0 a[x-2][y+1]==0 ) ) ||
? ?? (flag==19 ( a[x-2][y]==0 a[x-2][y-1]==0
? ? ? ? ? ? ?a[x+2][y]==0?)?)?)?{?return?1;?}
}
return?0; ? //其它情况返回0
}
void?clNEXT(?) ? //清除框外的NEXT方块
{?flag?=?next;??x=ZL+WID+6;??y=ZL+10;??clfk(?);?}
void clHA(?) ? //清除满行的方块
{?int?k,?Hang=0; ?? //k是某行方块个数,?Hang是删除的方块行数
for(j=ZL+HEI-1;j=ZL+1;j--)??//当某行有WID/2-2个方块时,则为满行
{?k=0;?for(i=ZL+2;iZL+WID-2;i+=2)
{?if?(a[i][j]==1)???//竖坐标从下往上,横坐标由左至右依次判断是否满行
{?k++; ? //下面将操作删除行
? ?? if?(k==WID/2-2)? { ? for(k=ZL+2;kZL+WID-2;k+=2)
? ? ? ?? {?a[k][j]=0;?gtxy(k,j);?printf("??");?Sleep(1);?}
? ? ? ? for(k=j-1;kZL;k--)
? ? ? ? {?for(i=ZL+2;iZL+WID-2;i+=2)??//已删行数上面有方块,先清除再全部下移一行
? ? ? ? ? {?if(a[i][k]==1)?{?a[i][k]=0;?gtxy(i,k);?printf("??");a[i][k+1]=1;
? ? ? ? ? ? gtxy(i,k+1);?printf("□");?}?}
? ? ? ? ? }
? ? ? ? j++;?????//方块下移后,重新判断删除行是否满行
? ? ? ? Hang++;??//记录删除方块的行数
? ? ?? }
? ? }
?? }
}
score+=100*Hang; ? //每删除一行,得100分
if?(?Hang0??(score%500==0?||?score/500?level-1?)?) ?//得分满500速度加快升一级
? {?speed-=20;?level++;?if(speed200)speed+=20; }
}
tjmaxx是什么
t.j.maxx是一个网上商店,Shop online or in-store for designer and brand name fashion for 20-60% off department and specialty store prices.。
网址是tjmaxx.tjx.com
耐克和阿迪达斯在美国真的是地摊货吗?
耐克和阿迪达斯在美国真的是地摊货吗?不是的啊,耐耐克和阿迪达斯在美国也是属于高档的体育用品
化妆品(huà zhuāng pǐn):为了美化、保留或改变人的外表(例如为了表演)而用于人体的调剂(除肥皂),或为了净、染、擦、矫正或保护皮肤、头发、指甲、眼睛或牙齿而用的调剂。
英文翻译
cosmetics[2]
发展历史
古代
在原始社会,一些部落在祭祀活动时,会把动物油脂涂抹在皮肤上,使自己的肤色看起来健康而有光泽,这也算是最早的护肤行为了。由此可见,化妆品的历史几乎可以推算到自人类的存在开始。在公元前5世纪到公元7世纪期间,各国有不少关于制作和使用化妆品的传说和记载,如古埃及人用粘土卷曲头发,古埃及皇后用铜绿描画眼圈,用驴乳浴身,古希腊美人亚斯巴齐用鱼胶掩盖皱纹等等,还出现了许多化妆用具。中国古代也喜好用胭脂抹腮,用头油滋润头发,衬托容颜的美丽和魅力。
矿物油时代
上个世纪70年代,日本多家名牌化妆品企业,被18位因使用其化妆品而罹患严重黑皮症的妇女联名控告,此事件既轰动了国际美容界,也促进了护肤品的重大革命。早期护肤品化妆品起源于化学工业,那个时候从植物中天然提炼还很难,而石化合成工业很发达。所以很多护肤品化妆品的原料来源于化学工业,仍然有很多国际国内的牌子还再用那个时代的原料,价格低廉、原料相对简单、成本低,所以矿物油时代也就是日用化学品时代。
天然成分时代
从上个世纪80年代开始,皮肤专家发现:在护肤品中添加各种天然原料,对肌肤有一定的滋润作用。这个时候大规模的天然萃取分离工业已经成熟,此后,市场上护肤品成分中慢慢能够找到的天然成份!从陆地到海洋,从植物到动物,各种天然成份应有尽有。有些人甚至到人迹罕至的地方,试图寻找到特殊的原料,创造护肤的奇迹,包括热带雨林。当然此时的天然有很多是噱头,可能大部分底料还是沿用矿物油时代的成分,只是偶尔添加些天然成分,因为这里面的成分混合,防腐等等仍然有很多难题很难攻克。也有的公司已经能完全抛弃原来的工业流水线,生产纯天然的东西了,慢慢形成一些顶级的很专注的牌子。
绝对属于高端的啊,体育用品
求助:谁有C++的多边形扫描线填充算法的源代码!
typedef struct tEdge
{ int yUpper;
float xIntersect,dxPerScan;
struct tEdge *next;
}Edge;
void insertEdge(Edge *list Edge *edge)//将结点插入边表
{
Edge *p,*q=list;
p=q-next;
while (p!=NULL)
{ if (edge-xIntersectp-xIntersect) p=NULL;
else { q=p; p=p-next;}
}
edge-next=q-next;
q-next=edge;
}
int yNext(int k,int cnt, dcPt *pts)//求奇异点
{
int j;
if ((k+1)(cnt-1)) j=0;
else j=k+1;
while (pts[k].y==pts[j].y)
if((j+1)(cnt-1)) j=0;
else j++;
return (pts[j].y);
}
void makeEdgeRec(dcPt lower,dcPt upper,int yComp, Edge *edge, Edge *edges[]) //生成边表结点,并插入到边表中
{
edge-dxPerScan=(float)(upper.x-lower.x)/(upper.y-lower.y);
edge-xIntersect=lower.x;
if (upper.yyComp)
edge-yUpper=upper.y-1;
else
edge-yUpper=upper.y;
insertEdge(edges[lower.y],edge);
}
void buildEdgeList(int cnt,dcPt *pts, Edge *edges[])//创建边表的主体函数
{
Edge *edge;
dcPt v1,v2;
int i,yPrev=pts[cnt-2].y;
v1.x=pts[cnt-1].x; v1.y=pts[cnt-1].y;
for (i=0;icnt;i++)
{ v2=pts[i];
if (v1.y!=v2.y)
{ edge=(Edge *)malloc(sizeof(Edge));
if (v1.yv2.y)
makeEdgeRec(v1,v2,yNext(i,cnt,pts),edge,edges);
else makeEdgeRec(v2,v1,yPrev,edge,edges);
}
yPrev=v1.y;
v1=v2;
}
}
void buildActiveList(int scan,Edge * active,Edge *edges[])//建立活动边表的主题函数
{ Edge *p,*q;
p=edges[scan]-next;
while (p)
{ q=p-next;
insertEdge(active,p);
p=q;
}
}
void fillScan(int scan,Edge *active)//填充一对交点
{
Edge *p1,*p2;
int i
p1=active-next;
while(p1)
{
p2=p1-next;
for (i=p1-xIntersect;ip2-xIntersect;i++)
setPixel((int)i,scan);
p1=p2-next;
}
}
void delectAfter(Edge *q)//删除链表中结点
{
Edge *p=q-next;
q-next=p-next;
free(p);
}
void updateActiveList(int scan,Edge *active)//填充完后,更新活动边表
{
Edge *q=active,*p=active-next;
while (p)
if (scan=p-yUpper)
{
p=p-next;
deleteAfter(q);
}
else
{ p-xIntersect=p-xIntersect+p-dxPerScan;
q=p;
p=p-next;
}
}
void resortActiveList(Edge *active)//对活动边表结点重新排序
{
Edge *q,*p=active-next;
active-next=NULL;
while(p)
{ q=p-next;
insertEdge(active,p);
p=q;
}
}
void scanFill(int cnt,dcPt *pts)//多边形填充主体程序
{
Edge *edge[WINDOW_HEIGHT],*active;
int i,scan;
for (i=0;iWINDOW_HEIGHT;i++)
{
edges[i]=(Edge *)malloc(sizeof(Edge));
edges[i]-next=NULL;
}
buildEdgeList(cnt,pts,edges);
active=(Edge *)malloc (sizeof(Edge));
active-next=NULL;
for(scan=0;scanWINDOW_HEIGHT;scan++)
{
buildActiveList(scan,active,edges);
if (active-next)
{fillScan(sacn,active);br/ updateActiveList(scan,active);br/ resortActiveList(active);br/}
}
}
}
}
}