`
- 浏览:
863260 次
-
privateint[]Bingos=newint[]...{23,7,11,32,9,17};//中奖的号码组
privateList<int[]>Tickets=newList<int[]>();//1000张废奖票
privateList<int[]>BingoTickets=newList<int[]>();//200张有奖奖票
/**////<summary>
///判断是否出现Bingo的直线
///</summary>
///<returns>返回是否出现Bingo的直线</returns>privateboolIsBingoLine(int[]ALine)
...{
bool[]vExists=newbool[Bingos.Length];
for(inti=0;i<ALine.Length;i++)
for(intj=0;j<Bingos.Length;j++)
if(ALine[i]==Bingos[j])
...{
vExists[i]=true;
}
for(inti=0;i<vExists.Length;i++)
...{
if(!vExists[i])returnfalse;
}
returntrue;
}
/**////<summary>
///需要判断的+6+2条直线上的数字下标
///</summary>privateint[,]bingoIndexs=newint[,]...{
...{00,01,02,03,04,05},
...{06,07,08,09,10,11},
...{12,13,14,15,16,17},
...{18,19,20,21,22,23},
...{24,25,26,27,28,29},
...{30,31,32,33,34,35},
...{00,06,12,18,24,30},
...{01,07,13,19,25,31},
...{02,08,14,20,26,32},
...{03,09,15,21,27,33},
...{04,10,16,22,28,34},
...{05,11,17,23,29,35},
...{00,07,14,21,28,35},
...{05,10,15,20,25,30},
};
/**////<summary>
///判断奖票是否中奖
///</summary>
///<paramname="ATicket">奖票数字排列</param>
///<returns>返回奖票是否中奖</returns>privateboolIsBingoTicket(int[]ATicket)
...{
for(inti=0;i<14;i++)
...{
int[]vLine=newint[6];
for(intj=0;j<vLine.Length;j++)
...{
vLine[j]=ATicket[bingoIndexs[i,j]];
}
if(IsBingoLine(vLine))returntrue;
}
returnfalse;
}
/**////<summary>
///判断奖票是否重复
///</summary>
///<paramname="ATicket">奖票数字排列</param>
///<returns>返回奖票在列表中是否存在</returns>privateboolExistsTicket(int[]ATicket)
...{
for(inti=0;i<Tickets.Count;i++)
...{
boolvExists=true;
for(intj=0;j<Tickets[i].Length;j++)
...{
if(Tickets[i][j]!=ATicket[j])
...{
vExists=false;
break;
}
}
if(vExists)returntrue;
}
returnfalse;
}
/**////<summary>
///随机产生一个组奖票
///</summary>
///<returns>返回奖票数字排列的数组</returns>privateint[]RandomTicket()
...{
int[]vResult=newint[36];
for(inti=1;i<=vResult.Length;i++)//顺序得到-36的数组
...{
vResult[i-1]=i;
}
RandomvRandom=newRandom();
for(inti=0;i<vResult.Length;i++)//打乱顺序
...{
intj=vRandom.Next(vResult.Length-i);//随机抽取倒数i前面的数字
intt=vResult[j];
vResult[j]=vResult[vResult.Length-i-1];
vResult[vResult.Length-i-1]=t;
}
returnvResult;
}
/**////<summary>
///判断奖票是否重复
///</summary>
///<paramname="ATicket">奖票数字排列</param>
///<returns>返回奖票在列表中是否存在</returns>privateboolExistsBingoTicket(int[]ATicket)
...{
for(inti=0;i<BingoTickets.Count;i++)
...{
boolvExists=true;
for(intj=0;j<BingoTickets[i].Length;j++)
...{
if(BingoTickets[i][j]!=ATicket[j])
...{
vExists=false;
break;
}
}
if(vExists)returntrue;
}
returnfalse;
}
/**////<summary>
///随机产生一张中将的奖票
///</summary>
///<returns>返回一张中将的奖票</returns>privateint[]RandomBingoTicket()
...{
int[]vResult=newint[36];
//随机排列Bingos数组
int[]vBingos=newint[Bingos.Length];
Bingos.CopyTo(vBingos,0);
RandomvRandom=newRandom();
for(inti=0;i<vBingos.Length;i++)//打乱顺序
...{
intj=vRandom.Next(vBingos.Length-i);//随机抽取倒数i前面的数字
intt=vBingos[j];
vBingos[j]=vBingos[vBingos.Length-i-1];
vBingos[vBingos.Length-i-1]=t;
}
intvIndex=vRandom.Next(14);//随机一条线上填上Bingos号码
for(inti=0;i<6;i++)
...{
vResult[bingoIndexs[vIndex,i]]=vBingos[i];
}
List<int>vNumbers=newList<int>();
for(inti=1;i<=36;i++)
...{
boolvExists=false;
for(intj=0;j<Bingos.Length;j++)
...{
if(Bingos[j]==i)
...{
vExists=true;
break;
}
}
if(!vExists)vNumbers.Add(i);//添加Bingo号码之外的数字
}
for(inti=0;i<vResult.Length;i++)
...{
boolvExists=false;
for(intj=0;j<6;j++)//如果这个位置已经被填值
...{
if(bingoIndexs[vIndex,j]==i)
...{
vExists=true;
break;
}
}
if(!vExists)
...{
intj=vRandom.Next(vNumbers.Count);//从余下的数字中抽取一个
vResult[i]=vNumbers[j];
vNumbers.RemoveAt(j);//移出
}
}
returnvResult;
}
/**////<summary>
///判断一个数是否是奖号中的数
///</summary>
///<paramname="ANumber">测试数值</param>
///<returns>返回一个数是否是奖号中的数</returns>privateboolIsBingoNumber(intANumber)
...{
for(inti=0;i<Bingos.Length;i++)
...{
if(ANumber==Bingos[i])
...{
returntrue;
}
}
returnfalse;
}
privatevoidbutton1_Click(objectsender,EventArgse)
...{
for(inti=0;i<1000;)//产生张废票
...{
int[]vTicket=RandomTicket();
if(ExistsTicket(vTicket)||IsBingoTicket(vTicket))
...{
continue;
}
else
...{
Tickets.Add(vTicket);
i++;
}
/**/////输出
Console.WriteLine("------无奖-------");
for(intj=0;j<vTicket.Length;j++)
...{
if(j%6==0)Console.WriteLine();
if(IsBingoNumber(vTicket[j]))
Console.Write("{0:00}*",vTicket[j]);
elseConsole.Write("{0:00}",vTicket[j]);
}
Console.WriteLine();
}
for(inti=0;i<200;)//产生张有奖奖票
...{
int[]vBingoTicket=RandomBingoTicket();
if(ExistsBingoTicket(vBingoTicket))
...{
continue;
}
else
...{
BingoTickets.Add(vBingoTicket);
i++;
}
/**/////输出
Console.WriteLine("-----有奖--------");
for(intj=0;j<vBingoTicket.Length;j++)
...{
if(j%6==0)Console.WriteLine();
if(IsBingoNumber(vBingoTicket[j]))
Console.Write("{0:00}*",vBingoTicket[j]);
elseConsole.Write("{0:00}",vBingoTicket[j]);
}
Console.WriteLine();
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
随机抽奖程序Bingo Game,可用于公司年会等活动幸运抽奖用。 用Excel表保存数据。数字游戏国外比较流行。
Bingo 抽奖器,适合各种年会!
针对 RTP 和奖品分配的 Bingo 槽差分进化优化。
TimespinnerBingo:适用于Timespinner的Bingo卡生成器
答对了 R Conference Bingo卡生成器
前端开源库-bingo-builder宾果生成器,代码合并
一款经典的小游戏
matlab开发-Bingo。古典宾果游戏
bingo.sql
Tom Negrino编写的JavaScript基础教程中自己实现的bingo程序
AJAX简单的框架。 使用方便,满足基本需求。
答对了 应用程序生成宾果卡并与您的朋友一起玩! 您附近的会议中的下一件大事。 图示 此图标由The Noun Project的Cris Dobbins许可为“知识共享-署名(CC BY 3.0)-骰子”。 原始文件位于此处: :
里面有提示病毒。请不要在意。不是什么病毒。
里面有蓝黑两种主色,结合菜单栏是否固定就有6套模板。 All Purpose Responsive Admin Template
欧洲电视网宾果游戏Eurovision歌词的Bingo卡生成器。 有人说,欧洲电视网的所有歌曲都是一样的。 这可能不是很正确,但是在某些主题倾向于每年重复出现的建议中可能暗示了一个事实。 因此,我认为是欧洲电视网宾...
因公司业务需要,临时凑场,搞了一个flash转盘抽奖的程序,没搞过flash,纯粹初级水平,参考了很多其他网友的资料把功能组合了一下,可以正常使用,仅读取奖品图片不可跨域,其他都没什么问题, ...
基于EDA/SOPC系统开发平台和八位七段管码显示模块,运用QuartusⅡ可编程逻辑器件开发软件,设计一个多功能数字钟并在FPGA开发箱测试通过。
网络游戏-一种基于JavaScript语言的Bingo游戏实现方法.zip
静态版本的Ham Radio Bingo生成器站点可以更广泛地利用。 计划的改进 目前有许多计划的改进,包括: ADIF枚举包括,如IOTA,DXCC列表,美国各州县等 允许使用扩展器折叠和扩展列表 添加生成的“标签”或“密钥”,...
1101 BINGO.doc