纸牌游戏
蜘蛛纸牌游戏规则

蜘蛛纸牌游戏规则
蜘蛛纸牌是一种单人玩的纸牌游戏,它使用两副标准扑克牌,
共104张牌。
游戏的目标是按照规定的顺序将所有的牌按照花色和
数字从大到小排列在8个基础牌堆上。
游戏开始时,玩家需要将两副扑克牌洗牌并放在桌面上。
然后,玩家需要从牌堆中抽取10张牌,将它们面朝下排列在桌面上,每张
牌的上方露出一小部分。
接下来,玩家需要翻开每张牌的上方,如
果有A牌,则将A牌移动到一个特殊的位置,作为基础牌堆的起始。
在游戏进行过程中,玩家需要将牌按照规定的顺序移动到基础
牌堆上。
玩家可以将牌从一列移动到另一列,但是必须按照数字的
降序排列,并且花色必须一致。
例如,可以将红桃10放在黑桃J的
上方,但不能将红桃10放在黑桃9的上方。
当一列的牌按照规定的顺序排列好后,玩家可以将整列移动到
其他列上,或者移动到基础牌堆上。
在移动牌的过程中,玩家需要
尽量减少移动的次数,以便更快地完成游戏。
在游戏进行过程中,如果玩家遇到无法移动的情况,可以从牌
堆中抽取新的牌。
当牌堆中的牌抽完后,玩家需要将桌面上的牌重
新洗牌,形成新的牌堆。
游戏的胜利条件是将所有的牌按照规定的顺序排列在8个基础
牌堆上。
如果玩家成功完成这个目标,就算是获得了胜利。
总的来说,蜘蛛纸牌是一款需要策略和耐心的纸牌游戏,它可
以帮助玩家锻炼逻辑思维能力和专注力。
希望以上介绍的规则能够
帮助玩家更好地理解蜘蛛纸牌游戏,并且在游戏中取得更好的成绩。
纸牌小游戏

纸牌小游戏纸牌小游戏是一种经典的单人游戏,既有趣又具有挑战性。
游戏的目标是通过移动和重新排列纸牌,将所有的纸牌按照规定的顺序和花色排列好。
以下是游戏的规则和玩法。
1. 游戏开始时,将一副标准的52张纸牌洗混并放在桌面上。
2. 从牌堆中翻开一张牌,将其放在桌面上,这张牌将成为游戏的基础牌。
3. 根据游戏规则,你需要将其他的纸牌移动到基础牌上,以按照升序(从A到K)和相同花色的顺序排列。
4. 你可以移动的纸牌有以下几种情况:- 单张纸牌:你可以将一张纸牌移动到基础牌上,但只有当该纸牌的值比基础牌上的纸牌大1,并且花色相同。
- 一组纸牌:你可以将一组连续的纸牌移动到基础牌上,但只有当该组纸牌的最大值比基础牌上的纸牌大1,并且花色相同。
5. 如果在移动纸牌时,你无法找到合适的牌来移动,你可以从牌堆中翻开一张新的牌,尝试找到合适的牌。
6. 如果牌堆中没有剩余的牌可翻开,你可以重新洗牌堆中的已使用过的牌,形成新的牌堆。
7. 当你成功将所有的纸牌按照升序和相同花色排列好时,游戏胜利。
在玩纸牌小游戏时,有一些术语和技巧可以帮助你更好地玩游戏:- 基础牌:游戏开始时翻开的第一张牌,其他纸牌需要按照升序和相同花色移动到该牌上。
- 牌堆:未使用的纸牌堆,你可以从中翻开新的牌。
- 移动:将纸牌从一个位置移动到另一个位置。
- 连续纸牌组:一组连续的纸牌,可以一起移动到基础牌上。
在玩纸牌小游戏时,你可以尝试不同的策略和方法来提高你的成功率。
一些技巧包括:- 观察基础牌和牌堆中的牌,找到可以移动的最佳牌。
- 优先移动连续纸牌组,这样可以为后续移动腾出更多的空间。
- 注意保持牌堆中有足够的牌可翻开,以便在需要时能够找到合适的牌。
希望这些详细的解释可以帮助你理解纸牌小游戏的玩法和规则。
祝你玩得开心!。
扑克牌小游戏

扑克牌小游戏扑克牌是一种非常受欢迎的纸牌游戏,它可以由两个或更多人一起玩。
游戏的目标是通过组合手中的牌获得最高的点数或特定的组合。
规则和玩法:1. 扑克牌游戏使用一副52张的标准扑克牌,不包括大小王。
2. 游戏开始时,每个玩家会分发一定数量的牌,通常是五张。
3. 玩家可以根据手中的牌进行一系列的操作,包括换牌、抓牌和下注等。
4. 游戏中有一些基本的牌型和规则,如以下所示:- 皇家同花顺:同一花色的A、K、Q、J、10的组合,最高的牌型。
- 同花顺:同一花色的五张连续的牌。
- 四条:四张相同点数的牌。
- 葫芦:三张相同点数的牌加上一对相同点数的牌。
- 同花:五张同一花色的牌。
- 顺子:五张连续的牌。
- 三条:三张相同点数的牌。
- 两对:两对相同点数的牌。
- 一对:一对相同点数的牌。
- 高牌:没有任何特殊组合的五张牌。
5. 玩家可以根据自己手中的牌和游戏进展来进行下注,以增加自己获胜的机会。
6. 游戏结束时,玩家会比较各自手中的牌型和点数,点数最高的玩家获胜。
术语和技巧:1. 花色:扑克牌有四种花色,分别是红桃、黑桃、方块和梅花。
2. 点数:扑克牌的点数从2到10,然后是J、Q、K和A,其中A可以作为最小的点数或最大的点数,视情况而定。
3. 换牌:在某些游戏中,玩家可以选择换掉手中的一些牌,以期望得到更好的牌型。
4. 抓牌:在某些游戏中,玩家可以从牌堆中抓取一张牌,以增加自己的手牌。
5. 下注:玩家可以根据自己的判断和策略,在游戏中下注一定数量的筹码,以增加自己获胜的机会。
6. 概率计算:玩家可以通过计算牌堆中剩余的牌和已知的牌来估算自己手中牌型的可能性,从而做出更明智的决策。
创造性和想象力:1. 玩家可以尝试不同的策略和方法来获得最佳的牌型,如何换牌、何时下注等。
2. 玩家可以观察其他玩家的行为和表情,以推测他们手中的牌型,并据此做出决策。
3. 玩家可以尝试不同的玩法和变体,如德州扑克、奥马哈扑克等,以增加游戏的挑战性和乐趣。
海伦司小姐牌扑克游戏规则

海伦司小姐牌扑克游戏规则游戏1:纸牌小姐一副扑克牌取出王牌,无序排列,从第一人称开始抽牌,然后按顺序抽一次。
12345678910jqk的意思不同。
1张牌是指有人蒙住抽牌人的眼睛,指随意在场的人,问牌人是否喝酒,并可以指示喝酒或不喝酒。
如果是,被告会喝酒。
2卡是未命中卡。
如果其他人输了,他们可以找到小姐牌一起喝。
如果失败者忘了找小姐牌喝酒,他们必须喝两次酒,直到下一个人抽到小姐牌为止。
前面和后面的小姐卡需要喝酒才能交出自己的身份。
第三张卡是参观三个花园。
可以说,你可以参观动物园、水果园、蔬菜园等等。
得到3号标志的人说,我们今天将参观这三个花园。
下一个人说要参观哪个花园,然后给下一个指示**花园,然后按顺序说下来。
(例如,我们今天参观了三个花园→什么花园→果园→香蕉→苹果…)不要重复,不要连接或重复饮酒。
这张4号牌是用来摸鼻子的。
获得4张牌的人可以随时随机使用该技能。
观众中的第一个人在给出指示后会摸鼻子,最后一个摸鼻子的人会喝水。
卡5是一个摄像头。
抽到第5张牌的人可以随时随机使用技能。
对着摄像机喊叫后,每个人都动不了了。
搬家的人应该喝酒。
6号是66大顺牌。
触摸6号的人可以直接通过。
7张牌是7的倍数。
赞助商可以随意说出一个号码,然后按顺序拨打该号码。
所有倍数(包括7和7)都应该拍手而不发出声音。
任何犯错误的人都会喝酒。
8号是一张厕所卡。
只有摸了8号的人才能上厕所,8号也可以交给其他人。
9卡是给你喝的。
谁碰了9牌,谁就得自己喝一杯。
10卡是神经病变卡。
不允许每个人都与神经病患者交谈。
谈话后,他们必须喝酒,直到下一个人抽到神经病卡。
前面和后面的神经病变卡需要喝酒才能交出身份。
j卡是一张在家喝酒的卡。
触摸j卡的人需要在家喝酒。
“Q”卡是一张在家喝酒的卡。
触摸“Q”卡的人需要在家喝酒。
K卡用于放置一个杯子。
画K的人会把酒倒进杯子里。
当最后一个K被抽出时,最后一个K的持有者将喝下杯中的所有葡萄酒。
游戏2:三人经典每个人都围坐在一起,每个人只能说“哦”(例如,a对B说他要喝可乐,B如果把可乐传给下一个家庭(喝可乐),会和a说同样的话)。
双扣扑克游戏规则

双扣扑克游戏规则双扣扑克是一种非常受欢迎的纸牌游戏,它是源自中国的一种扑克游戏。
该游戏通常由4名玩家参与,使用一副54张的扑克牌(包括两个大小王)。
双扣扑克游戏规则简单易学,但却充满策略性和挑战性。
下面将介绍双扣扑克的详细规则,希望对你了解这个游戏有所帮助。
一、卡牌设置双扣扑克使用一副经过洗牌的54张扑克牌,每张牌都有自己的点数和花色。
点数从2到A,花色包括黑桃、红桃、梅花和方块,并且有两个大小王。
大小王分别是大王和小王,它们可以用来替代任何其他的牌。
二、规则概述1. 游戏目标:双扣扑克的目标是尽快出完自己手中的牌,并且在其他玩家之前完成手牌。
2. 牌型排序:游戏中,牌的大小关系为:大王 > 小王 > 2 > A > K > Q > J > 10 > 9 > 8 > 7 > 6 > 5 > 4 > 3。
3. 2和大小王特殊规则:在双扣扑克中,2和大小王是特殊的牌型。
2是可以随时打出的牌,而大小王只能作为单牌打出。
4. 出牌顺序:游戏开始后,玩家按照顺序轮流出牌,每一轮只能出一种牌型。
出牌的牌型必须比上一家出的牌大或者相同,如果无法出牌,就需要跳过。
5. 能够出牌的牌型:双扣扑克允许出的牌型有单牌、对子、三张、炸弹、顺子、连对、飞机和四带二等。
6. 游戏结束条件:当有一个玩家打出了全部手中牌时,游戏结束。
而其他玩家需要算自己手中剩余牌的点数,点数越低越接近胜利。
三、详细规则1. 发牌:首先,将一副扑克牌均分给四名玩家,每个玩家手中有13张牌。
余下的两张牌暂时放在桌面上,等待游戏开始时的使用。
2. 出牌规则:游戏开始后,首先由庄家出牌,然后按照顺时针方向轮流出牌。
每一轮出牌时,下家总是需要出与上家相同数量的牌,且牌型必须大于或相同。
如果无法出牌,可以选择跳过。
3. 牌型规则:- 单牌:只有一张牌,例如Q、10等;- 对子:两张相同的牌,例如33、KK等;- 三张:三张相同的牌,例如777、AAA等;- 炸弹:四张相同的牌,例如6666、JJJJ等;- 顺子:五张或以上连续的牌,例如45678、10JQKA等;- 连对:两对或以上连续的对子,例如556677、1010JJQQKKAA等;- 飞机:两个或以上连续的三张牌,例如777888999、JJJQQQKKK等;- 四带两:四张相同的牌加两张单牌或一对,例如7777+9+10、AAAA+JJ等。
纸牌接龙小游戏

纸牌接龙小游戏纸牌接龙是一款非常受欢迎的单人纸牌游戏,目标是通过将纸牌按照特定规则移动和堆叠,将整副牌按照花色和顺序依次堆放到四个基础堆中。
游戏规则:1. 使用一副标准扑克牌,共52张牌,没有大小王。
2. 开始时,将所有的牌随机地面朝下放在桌面上,这些牌构成了牌堆。
3. 从牌堆中翻开一张牌,将其放在桌面上,这张牌成为底牌。
4. 接下来,玩家需要根据以下规则将其他的牌移动到基础堆或其他的牌堆中: - 可以将牌堆中的牌按照从大到小的顺序依次堆放在基础堆的顶部,每个基础堆对应一种花色,初始时,基础堆为空。
- 可以将牌堆中的牌按照从大到小的顺序依次堆放在其他牌堆的顶部,前提是堆放的牌的颜色和目标牌堆的顶部牌的颜色不同,且堆放的牌的点数比目标牌堆的顶部牌的点数小1。
- 可以将牌堆中的牌移动到其他的牌堆中,前提是目标牌堆的顶部牌的颜色和移动的牌的颜色不同,且目标牌堆的顶部牌的点数比移动的牌的点数小1。
- 可以将底牌移动到任意一个牌堆中,前提是目标牌堆的顶部牌的颜色和底牌的颜色不同,且目标牌堆的顶部牌的点数比底牌的点数小1。
5. 当牌堆中的牌都被移动完毕,或者无法再移动牌时,游戏结束。
术语和技巧:- 基础堆:目标是将整副牌按照花色和顺序依次堆放在基础堆中。
- 牌堆:未被翻开的牌堆,从中可以翻开一张牌。
- 底牌:游戏开始时翻开的第一张牌。
- 点数:牌的大小,从A到K依次为1到13。
- 颜色:红色和黑色,红色包括红心和方块,黑色包括梅花和黑桃。
技巧:1. 尽可能地移动牌到基础堆中,这样可以为后续的移动创造更多的空位。
2. 在移动牌时,优先选择移动底牌,因为底牌可以移动到任意一个牌堆中,增加了灵活性。
3. 注意观察牌堆中的牌和基础堆的顶部牌,选择合适的移动策略,避免出现无法移动的局面。
4. 尝试不同的移动顺序和策略,以找到最佳的解决方案。
希望这些细节能帮助你理解纸牌接龙小游戏的玩法和规则。
祝你玩得愉快!。
陕西纸牌游戏喝酒规则

陕西纸牌游戏喝酒规则
1、A是“命令牌”则是指定一个人喝酒,让谁喝就是谁喝;
2、2“陪酒员”就是陪喝酒也就是每个喝酒的人都可以要求这个人去配酒;
3、3“逛三园”也就是水果园,蔬菜缘园,动物园,其实就是大家要讲出这个院子里面的一个东西;
4、4“决斗牌”找—个人去决斗,输的人就是要喝酒的;
5、而5“照相机”就是在抽到这个牌的人喊出照相机的时候就是大家都不能够动,谁动就是喝酒;
6、6就是自己喝,喝半杯;
7、而7”数7“就是数到7或是7的倍数的时候大家就可以跳过,就是不读出来,读出来就是喝酒的人;
8、8”厕所牌“游戏开始以后,只有厕所牌的人可以去厕所,其他的人都是不可以的;
9、抽到9还是自己喝喝—杯;
10、10是“神经病”自己先说自己是神经病。
然后就是谁和你说话谁就喝酒;
11、J就是左边的人喝酒;
12、Q就是右边的人喝—杯;
13、K是“埋地雷”抽到第一张的人决定谁喝酒,而第二个抽到的人就是决定喝几杯。
纸牌抱团

游戏规则:
6、团队中的第二名队员用同样的方法能不能达河对岸 ,“河”两岸的队员交替过河。 7、重复这个过程直到所有人都到达出发的对岸。 8、如果任何一名队员失去平衡用脚或手触碰地面,他 \她就要将纸片捡起重新开始。 9、第一个完成任务的团队获胜。
互动游戏2:过 河
游戏规则: 1、每个团队的一半人排成纵队站在“河岸”一侧,另 一半人面向他们也排成一队站在“河岸”另一侧。 2、将两张纸发给团队中的第一名队员,用来充当过河 的“垫脚石”。 3、游戏开始。第一名队员将一张纸投放在离他们不远 的地方。 4、队员万到这张纸上然后将第二张纸投向远一点的地 方,再迈一步。 5、在第二张纸上站稳之后,捡起第一张再投到更远的 地方,以此来过河。继续往前走,直到走到河对岸。
互动游戏1:纸牌抱团
游戏规则: 1、参加游戏者每人随机获得一张纸牌: ①A-代表1、5、10任意一个数字 ②2-10代表本数字 ③J、Q、K—代表负3 ④大小王代表1-10任意一个数字 2、在主持人喊出一个具体数字后,参与游戏者随机抱 团,通过累加组合成主持人喊出的数字,落单游戏者 或抱团数字不对小组淘汰。 3、以此规则循环游戏,直至产生优胜小组。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
纸牌游戏A.第一版这个小程序是最初的版本,计划最近增强功能以便解决数字不重复的解法。
1。
游戏的基本说明:大家应该都玩过这个游戏,就是用若干个10以内数字,通过加减乘除组合结果为24。
2。
游戏程序思路:通常用加括号的办法可以改变同一顺序的一组数字的运算先后,可是初步考虑这可是编译器级别的难题,因此我想通过组成不同排序的数字来穷尽所有的组合,这样逻辑的计算顺序是由数字的顺序决定的,要容易的多。
3。
主要函数介绍:A. Operation 是一个函数数组,用来存储加减乘除四则运算。
double Add(double , double);double Mul(double , double);double Min(double , double);double Div(double , double);double (*Operation[4])(double , double)= {Add, Min, Mul, Div};B. inputNumber是一个产生所有数字组合的函数,其麻烦处在于每次变化一个数字就返回,我用了一个类似进位的小算法,每次第一位数总加一,到九就便为一,同时下一位数进一,如果下一位数也是九,那么就再进一位,如果最后一位也变为九了说明穷尽了,返回假。
bool inputNumber()C. display原本是为了屏幕输出,后来结果太多改为文件输出,才加了文件参数。
他又有三个内部函数。
1。
void addNumber();很简单把选定的数字组合放入数组的偶数Index位置,操作符号在奇数的Index位置。
2。
void addParenthesis();是加括号的函数,我的算法是只有当加减号在乘除号之前出现时候才加挂号。
它内部又有一个移动拷贝数组的内部小函数,很普通的了。
3。
void displaySolution(ofstream& f);原本是屏幕输出,现在改为可以同时写结果入文件。
void display(bool succeed, ofstream& f){void addNumber();void addParenthesis();void displaySolution(ofstream& f);}D. findSolution是真正的核心函数,我为了图省事,避免用树形结构,结果最后费尽心机,还是用数组实现了一个树形的存储,不过非常的笨拙。
1。
先把第一与第二个数的四则运算结果存入临时数组total的0到四位,然后下面的一个数字与前一个结果就是接着存下去。
也就是4的前n次幂的和。
2。
total[second] = Operation[j -10](total[first], Operand[count+2]);这一句就是前一次的结果与下一个数字的四则运算。
3。
我无法解决先除后乘为整数的结果判断,只好用精确值在0.01来判断。
好像也还不错。
if ((count==Number-3)&&fabs(total[second]-24)<0.01){writeRecord(second);result = true;}bool findSolution(ofstream& f);E. writeRecord是findSolution的一个内部函数,目的是根据D3的判断来倒推出各个步骤的操作符号,我用了类似辗转除法,就是类似10进制转二进制的那种,每次的余数就是操作符号的顺序数字减十(因为,为了把数字和符号同存在一个数组里,我定符号从10开始。
)void writeRecord(int num)4。
不足之处:A.还没有找出取不同数字的简单算法,各位有主意告诉我。
(就是inputNumber 里产生不重复数字,即不产生2,2,3,4的组合。
)B.输出结果能否排列,或剔除相似的结果。
(Forget it, it is too hard!)C.输入数字个数改为3,或者5等等,实际上我的程序是可以的,可是不知道那里有小虫子,还没有找到。
5. 输出的结果文件在此。
#include <iostream>#include <fstream>#include <cmath>using namespace std;const int Number = 4;const int OpNum = 6;const int SignNum =4;enum Op{ADD=10, MIN=11, MUL=12, DIV=13, LEFT=14, RIGHT=15};int OpCount = 0;int NumCount = 0;char *OpStr[OpNum]= {"Addition", "Minus", "Multiply", "Divide", "Left", "Right"}; char *OpSign[OpNum] = {"+", "-", "x","/", "(", ")"};int Operand[Number] = {0};int Operator[Number*3]= {0};void initialize();void display(bool succeed, ofstream& f);bool inputNumber();bool findSolution(ofstream& f);double Add(double , double);double Mul(double , double);double Min(double , double);double Div(double , double);double (*Operation[4])(double , double)= {Add, Min, Mul, Div};int main(){int temp=0, times=0;initialize();ofstream f;f.open("c:\\game24.txt");while (inputNumber()){if (findSolution(f)){// display(true, f);// temp++;;}else;times++;// display(false); //in order to see clearly, omit the no solution display}cout<<"\nTotal "<<NumCount<<" solutions\n";cout<<"\nAnd total number is"<<times<<endl;f<<"\nTotal "<<NumCount<<" solutions out of "<<times<<" combinations\n";return 0;}double Add(double num1, double num2){return num1 + num2;}double Mul(double num1, double num2){return num1 * num2;}double Min(double num1, double num2){return num1 -num2;}double Div(double num1, double num2){return num1/num2;}bool findSolution(ofstream& f){void writeRecord(int num);double total[1000] = {0};int first=0, second=0, last=0, now=0;bool result = false;for (int i=0; i< SignNum; i++){total[i] = Operation[i](Operand[0], Operand[1]);}for (int count = 0; count< Number-2; count++){last += (count==0?0:pow(SignNum,count));now += pow(SignNum, count+1);second = now;for (int first = last; first< now; first++){for (int j= ADD; j<=DIV; j++) //control op{total[second] = Operation[j -10](total[first], Operand[count+2]);if ((count==Number-3)&&fabs(total[second]-24)<0.01) {writeRecord(second);display(true, f);result = true;NumCount++;}second++;}}}return result;}void writeRecord(int num){int pos=num;for (int i=1; i< Number-1; i++){pos -= pow(SignNum, i);}for (i=Number -2; i>=0; i--){Operator[i*2+1]= pos%SignNum+10; //from back to front, andpos = pos/SignNum;}}void initialize(){for (int i=0; i< Number; i++){Operand[i] = 1;}Operand[0] = 0; //this is ugly as I need to add 1 at each time,so make it zero to add 1 }bool inputNumber(){int i=0;while (true){if (Operand[i]< 9) //increase one by one number{Operand[i] ++;return true;}else{if (i==Number -1)break;Operand[i] = 1; //this is something like "进位"i++;}}return false;}void display(bool succeed, ofstream& f){void addNumber();void addParenthesis();void displaySolution(ofstream& f);if (succeed){addNumber();addParenthesis();displaySolution(f);}else{cout<<"\nNo solution for these numbers:\n";for (int i=0; i< Number; i++){cout<<Operand[i]<<'\t';}cout<<endl;}}void displaySolution(ofstream& f){cout<<"\nThe solution is:\n";for (int i =0; i< OpCount; i++){if (Operator[i]< 10){cout<<Operator[i];f<<Operator[i];}else{cout<<" "<<OpSign[Operator[i] - 10]<<" "; f<<" "<<OpSign[Operator[i] - 10]<<" ";}}f<<'\n';}void addNumber(){for (int i=0; i< Number; i++){Operator[i*2] = Operand[i];}OpCount = Number * 2 - 1;}void addParenthesis(){void insertParenthesis(int pos);bool findLow= false, findHigh= false;for (int i =0; i <OpCount; i++){if (Operator[i]==11||Operator[i]==10) //add, minfindLow = true;else{if (Operator[i]==12||Operator[i]==13) //mul, div{if (findLow) //only find add, min then findHigh is meaningful findHigh = true;}}if (findLow&&findHigh){insertParenthesis(i);findLow = false;findHigh = false;}}}void insertParenthesis(int pos){void insert(int pos, int item);insert(pos, RIGHT); //Sequence is important due to pos++insert(0, LEFT);}void insert(int start, int item){int hold1, hold2;hold1 = Operator[start];hold2 = Operator[start+1];for (int i = start; i< OpCount; i++){Operator[i + 1] = hold1;hold1 = hold2;hold2 = Operator[i+2];}Operator[start] = item;OpCount++;}A glimpse of the output in screen. Click to maximize and here is the total outcome file again.。