来搞搞随机选号!!!!

我说我行就是行 2011-03-22 02:09:17
哎,最近买彩票真倒霉,一个都没中,烦死了!!

所以,我就想来玩玩彩票网的设计,但是又有点模糊!所以来这里请教大神了!





第一个功能:根据期数,获取时间,就是第XX期离截止时间还有:X天X时X分X秒

第二个功能:(白色方框是checkbox),当点击一个的时候,就在下面的白色框中显示,篮球和红球都一样,随便勾选一个

下面的框中就显示了,(红球最多可选6个,篮球最多可选一个,因为下面的框就是6+1)

第三个功能:机选,点击下机选,就会随机出现6个红球和1一个篮球,上面红球和篮球的checkbox要选中随机选择的球(就是机选的数字假设为:03,05,12,15,19,22,05,那么红球的checkbox的03,05,12,15,19,22要自动有勾,篮球的05要自动有勾)


第四个功能:假如这期的号为:04,09,13,18,24,27,03 假如你选择的号是:03,08,13,18,25,27,05

这两个比较,
如果是:0+1,1+1,2+1,得5分,
如果是:4+0,3+1 得20分

如果是:4+1,5+0 得100分

如果是:5+1 得300分

如果是:6+0 得500分

如果是:6+1 得1000分

没头绪,不想做,但是又想知道答案,大家能给代码的分数2倍,给思路的,分数1倍,顶贴的2分!



ps:请问版主,我的帖子分怎么就可以给到200的,我想给400分或者300分,为啥不给我给这么多,为啥只能是20-200分!
...全文
420 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
wu302791539 2011-04-25
  • 打赏
  • 举报
回复
LZ好好 算啊,搞了一个500W,我就买你这程序,嘿嘿!
kingdom_0 2011-04-02
  • 打赏
  • 举报
回复
我是来顶滴。
小童 2011-04-01
  • 打赏
  • 举报
回复


Create function getResult(@ID int,@honghao varchar(50),@lanhao varchar(5))
Returns nvarchar(50)
As
Begin
declare @res varchar(20)
declare @H int
declare @L int
declare @jifen int
declare @UserName varchar(20)

select @UserName=UserName,
@H=
case when charindex(Hong1,@honghao)>0 then 1 else 0 end +
case when charindex(Hong2,@honghao)>0 then 1 else 0 end +
case when charindex(Hong3,@honghao)>0 then 1 else 0 end +
case when charindex(Hong4,@honghao)>0 then 1 else 0 end +
case when charindex(Hong5,@honghao)>0 then 1 else 0 end,
@L=case when Lanqiu=@lanhao then 1 else 0 end from TableName
where ID=@ID
set @res=Convert(nvarchar(2),@H)+'+'+Convert(nvarchar(2),@L)

if(@res='0+1' or @res='1+1' or @res='2+1')
set @jifen=5;
if(@res='4+0' or @res='3+1')
set @jifen=20
if(@res='4+1' or @res='5+0')
set @jifen=100
if(@res='5+1')
set @jifen=300
if(@res='6+0')
set @jifen=500
if(@res='6+1')
set @jifen=1000

Return @res+'积分:'+isNull(convert(varchar(5),@jifen),0)
End


select *,dbo.getResult(ID,'02,11,20,22,24,30','05') as res from tableName
li358871791 2011-04-01
  • 打赏
  • 举报
回复
lz你不会是想用这个来买彩票吧,这东西可遇不可求,lz平常心对待
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 changjiangzhibin 的回复:]
找个现成的彩票项目,稍微改改就成了

MS,逻辑很简单滴
[/Quote]

最主要。。。。asp.net的没找到。。。。。

你还能给个地址????
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 lanqiang456 的回复:]
额 我做过`````直接上源码给你 这是我做的第一个应用程序 是WINFORM的``````

C# code

Random rd = new Random();
ArrayList a1 = new ArrayList();
private void button1_Click(object sender, EventArgs e)
……
[/Quote]

你这随机数搞的也太逻辑了吧,我随机已经搞好了哎,上面有代码哎,呵呵,谢谢啊!我现在要的是一个问题和第四个问题!
cjh200102 2011-04-01
  • 打赏
  • 举报
回复
楼主研究好久了吧
lanqiang456 2011-03-31
  • 打赏
  • 举报
回复
额 我做过`````直接上源码给你 这是我做的第一个应用程序 是WINFORM的``````

Random rd = new Random();
ArrayList a1 = new ArrayList();
private void button1_Click(object sender, EventArgs e)
{

this.textBox7.Text = rd.Next(1, 16).ToString();
this.textBox14.Text = rd.Next(1, 16).ToString();
this.textBox21.Text = rd.Next(1, 16).ToString();
this.textBox28.Text = rd.Next(1, 16).ToString();
this.textBox35.Text = rd.Next(1, 16).ToString();
while (1 == 1)
{
int f1 = rd.Next(1, 34);
int e1 = rd.Next(1, 34);
int d1 = rd.Next(1, 34);
int c1 = rd.Next(1, 34);
int a1 = rd.Next(1, 34);
int b1 = rd.Next(1, 34);
if (a1 != b1)
{


if ((a1 != c1) && (b1 != c1))
{


if ((d1 != a1) && (d1 != b1) && (d1 != c1))
{


if ((e1 != a1) && (e1 != b1) && (e1 != c1) && (e1 != d1))
{


if ((f1 != a1) && (f1 != b1) && (f1 != c1) && (f1 != d1) && (f1 != e1))
{
int[] z = new int[6];
z[0] = a1;
z[1] = b1;
z[2] = c1;
z[3] = d1;
z[4] = e1;
z[5] = f1;
int i, j, temp;
for (i = 0; i < 6; i++)
{
for (j = 5; j > i; j--)
{

if (z[j] < z[j - 1])
{
temp = 0;
temp = z[j];
z[j] = z[j - 1];
z[j - 1] = temp;
}
}
}
this.textBox1.Text = z[0].ToString();
this.textBox2.Text = z[1].ToString();
this.textBox3.Text = z[2].ToString();
this.textBox4.Text = z[3].ToString();
this.textBox5.Text = z[4].ToString();
this.textBox6.Text = z[5].ToString();
break;
}
}
}
}
}
}
changjiangzhibin 2011-03-31
  • 打赏
  • 举报
回复
找个现成的彩票项目,稍微改改就成了

MS,逻辑很简单滴
cfvgodot 2011-03-30
  • 打赏
  • 举报
回复
你把你那些ASP:的标签先去了先,你弄这么大一串看着不头疼啊!

第一个功能不给你讲,懒得打字!

用INPUT的方式写,然后JS负责选择,不是啥难事吧,ID里边直接放数字的名字,然后JS方法里边参数接受,下边那几个框框,在上边点选的时候改变框框的值,至于你想做什么点一次之后再点一次就取消了,那就随便你了,这种IF ELSE的语句不用赘述!

右边的也是同理!


第三个功能就是个随机种子数,用JS还是C#都行,推荐JS,函数自己查,我也记不住!我用的时候都现查的,哈哈。。用一个INT数组,数组元素从1-33,种子范围是1-33,也就是代表那红球,FOR做6次循环,每一次便抽取一个数字,并同时删除一个数组元素,当然,你也可以兑换过来,种子范围33个,然后弄个数组为6个元素,DO WHILE就可以了,知道数组的元素全部填充完毕,退出循环!用FOR的话,如果抽取失败(即已经被选择过),则把循环次数-1次就可以了!

第四个功能啥意思?比较啥?啥0+1,1+1的。。。不明白,我不买彩票,小时候抽奖没中过洗衣粉,所以戒了!

不过既然是比较,那就循环遍历就好了,遍历两组数字,相同的不同的都记录下来就可以了!
  • 打赏
  • 举报
回复
接上面的

private void RandomOK()
{
List<int> list = GenerateNumber1();
int i = 0;
while (i < list.Count)
{
//如果直接一个控件显示的话,就使用这句代码叠加
//temp += list[i].ToString() + "\n";
i++;
}
//this.Lable1.Text=temp;
if (list[0] < 10)
{
this.TextBox1.Text = "0" + list[0].ToString();
}
else
{
this.TextBox1.Text = list[0].ToString();
}
if (list[1] < 10)
{
this.TextBox2.Text = "0" + list[1].ToString();
}
else
{
this.TextBox2.Text = list[1].ToString();
}
if (list[2] < 10)
{
this.TextBox3.Text = "0" + list[2].ToString();
}
else
{
this.TextBox3.Text = list[2].ToString();
}
if (list[3] < 10)
{
this.TextBox4.Text = "0" + list[3].ToString();
}
else
{
this.TextBox4.Text = list[3].ToString();
}
if (list[4] < 10)
{
this.TextBox5.Text = "0" + list[4].ToString();
}
else
{
this.TextBox5.Text = list[4].ToString();
}
if (list[5] < 10)
{
this.TextBox6.Text = "0" + list[5].ToString();
}
else
{
this.TextBox6.Text = list[5].ToString();
}
int blueBall = GetBlueBall();
if (blueBall < 10)
{
this.TextBox7.Text = ("0" + blueBall).ToString();
}
else
{
this.TextBox7.Text = blueBall.ToString();
}
}
//获取篮球随机号1-16中随机一个数字
private int GetBlueBall()
{
Random rand = new Random();
return rand.Next(1, 17);

}

protected void btnClear_Click(object sender, EventArgs e)
{
//首先清空checkboxList
clearAllBall();
//然后清空textbox
this.TextBox1.Text = null;
this.TextBox2.Text = null;
this.TextBox3.Text = null;
this.TextBox4.Text = null;
this.TextBox5.Text = null;
this.TextBox6.Text = null;
this.TextBox7.Text = null;
count = 0;
}
protected void cblBlueBall_SelectedIndexChanged(object sender, EventArgs e)
{
SelectBlueBallIndexChanged();
}


第一个问题和第四个问题还没相通

尤其是第一个问题:期数怎么获取1,手动更新?2,自动生成??3.获取体彩网信息???

根据期数才能获取时间倒计时哎!没思路,
  • 打赏
  • 举报
回复
后台代码:现在实现第二个和第三个功能,

大家看看,能帮我优化下不!
 private int count
{
get { return (int)ViewState["count"]; }
set { ViewState["count"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
count = 0;
}
}

/// <summary>
///
/// </summary>功能四
/// <param name="sender"></param>
/// <param name="e"></param>

protected void btnCompare_Click(object sender, EventArgs e)
{
//第四个问题
}
/// <summary>
///功能三
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnRandom_Click(object sender, EventArgs e)
{
//首先作第一次清除
clearAllBall();
//调用随机数方法
RandomOK();
//调用选中红球时方法
ShowRedBall();
//调用选中篮球时方法
ShowBlueBall();
count = 6;
}
//当机选的时候,checkboxlist显示机选红球的值
private void ShowRedBall()
{
string[] red = new string[] { this.TextBox1.Text, this.TextBox2.Text, this.TextBox3.Text, this.TextBox4.Text, this.TextBox5.Text, this.TextBox6.Text };
for (int i = 0; i < red.Length; i++)
{
foreach (ListItem li in this.cblRedBall.Items)
{
if (red[i].Contains(li.Value))
{
li.Selected = true;
}

}
}
}
////当机选的时候,checkboxlist显示机选篮球的值
private void ShowBlueBall()
{
string blue = this.TextBox7.Text;
foreach (ListItem li in this.cblBlueBall.Items)
{
if (blue.Contains(li.Value))
{
li.Selected = true;
}
}
}
//清空当前选中的值
private void clearAllBall()
{
cblBlueBall.ClearSelection();
cblRedBall.ClearSelection();
}
/// <summary>
/// 功能二
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void cblRedBall_SelectedIndexChanged(object sender, EventArgs e)
{

SelectRedBallIndexChanged();
}

//用户点击红球选中与取消
private void SelectRedBallIndexChanged()
{
for (int i = 0; i < cblRedBall.Items.Count; i++)
{

if (count <= 6)
{
if (cblRedBall.Items[i].Selected)
{
if (string.IsNullOrEmpty(this.TextBox1.Text) && cblRedBall.Items[i].Value != TextBox3.Text && cblRedBall.Items[i].Value != TextBox2.Text && cblRedBall.Items[i].Value != TextBox4.Text && cblRedBall.Items[i].Value != TextBox5.Text && cblRedBall.Items[i].Value != TextBox6.Text)
{
this.TextBox1.Text = cblRedBall.Items[i].Value;
count++;
}
else if (string.IsNullOrEmpty(this.TextBox2.Text) && cblRedBall.Items[i].Value != TextBox1.Text && cblRedBall.Items[i].Value != TextBox3.Text && cblRedBall.Items[i].Value != TextBox4.Text && cblRedBall.Items[i].Value != TextBox5.Text && cblRedBall.Items[i].Value != TextBox6.Text)
{
this.TextBox2.Text = cblRedBall.Items[i].Value;
count++;
}
else if (string.IsNullOrEmpty(this.TextBox3.Text) && cblRedBall.Items[i].Value != TextBox1.Text && cblRedBall.Items[i].Value != TextBox2.Text && cblRedBall.Items[i].Value != TextBox4.Text && cblRedBall.Items[i].Value != TextBox5.Text && cblRedBall.Items[i].Value != TextBox6.Text)
{
this.TextBox3.Text = cblRedBall.Items[i].Value;
count++;
}
else if (string.IsNullOrEmpty(this.TextBox4.Text) && cblRedBall.Items[i].Value != TextBox1.Text && cblRedBall.Items[i].Value != TextBox2.Text && cblRedBall.Items[i].Value != TextBox3.Text && cblRedBall.Items[i].Value != TextBox5.Text && cblRedBall.Items[i].Value != TextBox6.Text)
{
this.TextBox4.Text = cblRedBall.Items[i].Value;
count++;
}
else if (string.IsNullOrEmpty(this.TextBox5.Text) && cblRedBall.Items[i].Value != TextBox1.Text && cblRedBall.Items[i].Value != TextBox2.Text && cblRedBall.Items[i].Value != TextBox3.Text && cblRedBall.Items[i].Value != TextBox4.Text && cblRedBall.Items[i].Value != TextBox6.Text)
{
this.TextBox5.Text = cblRedBall.Items[i].Value;
count++;
}
else if (string.IsNullOrEmpty(this.TextBox6.Text) && cblRedBall.Items[i].Value != TextBox1.Text && cblRedBall.Items[i].Value != TextBox2.Text && cblRedBall.Items[i].Value != TextBox3.Text && cblRedBall.Items[i].Value != TextBox4.Text && cblRedBall.Items[i].Value != TextBox5.Text)
{
this.TextBox6.Text = cblRedBall.Items[i].Value;
count++;
}


}
else
{
//是否在这里面写呢?问题:去掉一个checkboxlist选框,对应在文本框中的数字也不显示
if (this.cblRedBall.Items[i].Value == this.TextBox1.Text && cblRedBall.Items[i].Value != TextBox3.Text && cblRedBall.Items[i].Value != TextBox2.Text && cblRedBall.Items[i].Value != TextBox4.Text && cblRedBall.Items[i].Value != TextBox5.Text && cblRedBall.Items[i].Value != TextBox6.Text)
{
this.TextBox1.Text = "";
count--;
}
else if (this.cblRedBall.Items[i].Value == this.TextBox2.Text && cblRedBall.Items[i].Value != TextBox1.Text && cblRedBall.Items[i].Value != TextBox3.Text && cblRedBall.Items[i].Value != TextBox4.Text && cblRedBall.Items[i].Value != TextBox5.Text && cblRedBall.Items[i].Value != TextBox6.Text)
{
this.TextBox2.Text = "";
count--;
}
else if (this.cblRedBall.Items[i].Value == this.TextBox3.Text && cblRedBall.Items[i].Value != TextBox1.Text && cblRedBall.Items[i].Value != TextBox2.Text && cblRedBall.Items[i].Value != TextBox4.Text && cblRedBall.Items[i].Value != TextBox5.Text && cblRedBall.Items[i].Value != TextBox6.Text)
{
this.TextBox3.Text = "";
count--;
}
else if (this.cblRedBall.Items[i].Value == this.TextBox4.Text && cblRedBall.Items[i].Value != TextBox1.Text && cblRedBall.Items[i].Value != TextBox2.Text && cblRedBall.Items[i].Value != TextBox3.Text && cblRedBall.Items[i].Value != TextBox5.Text && cblRedBall.Items[i].Value != TextBox6.Text)
{
this.TextBox4.Text = "";
count--;
}
else if (this.cblRedBall.Items[i].Value == this.TextBox5.Text && cblRedBall.Items[i].Value != TextBox1.Text && cblRedBall.Items[i].Value != TextBox2.Text && cblRedBall.Items[i].Value != TextBox3.Text && cblRedBall.Items[i].Value != TextBox4.Text && cblRedBall.Items[i].Value != TextBox6.Text)
{
this.TextBox5.Text = "";
count--;
}
else if (this.cblRedBall.Items[i].Value == this.TextBox6.Text && cblRedBall.Items[i].Value != TextBox1.Text && cblRedBall.Items[i].Value != TextBox2.Text && cblRedBall.Items[i].Value != TextBox3.Text && cblRedBall.Items[i].Value != TextBox4.Text && cblRedBall.Items[i].Value != TextBox5.Text)
{
this.TextBox6.Text = "";
count--;
}
}

}
else
{
Response.Write("<script>alert('不能超过6个数字!');</script>");
//cblRedBall.Items[i].Selected = false;
break;
}
//if (count != 0)
//{
// break;
//}
}
Label1.Text = "";
}

//用户点击篮球时选中与取消
private void SelectBlueBallIndexChanged()
{
int count = 0;
for (int i = 0; i < this.cblBlueBall.Items.Count; i++)
{
if (count < 2)
{
if (this.cblBlueBall.Items[i].Selected == true)
{
if (count == 0)
{
this.TextBox7.Text = this.cblBlueBall.Items[i].Value;
}
count++;
}
else
{
if (this.cblBlueBall.Items[i].Value == this.TextBox7.Text)
{
this.TextBox7.Text = "";
}
}
}
else
{

Response.Write("<script>alert('不能超过2个数字!');</script>");
break;
}
}
}
//红球1-33个数字中选择不重复的6个数字
public List<int> GenerateNumber1()
{

//用于保存返回的结果

List<int> result = new List<int>(6);

Random random = new Random();

int temp = 0;

//如果返回的结果集合中实际的元素个数小于6个

while (result.Count < 6)
{

//在[1,34)区间任意取一个随机整数

temp = random.Next(1, 34);

if (!result.Contains(temp))
{

//如果在结果集合中不存在这个数,则添加这个数

result.Add(temp);

}

}

//对返回结果进行排序
result.Sort();
return result;
}
小阳 2011-03-25
  • 打赏
  • 举报
回复
归归,复杂哦!
段传涛 2011-03-25
  • 打赏
  • 举报
回复
直接下载个 彩票的项目比着做不久ok了
或者找里面的关键代码。
http://www.51aspx.com/SMore/彩票.html
amandag 2011-03-23
  • 打赏
  • 举报
回复
这个我以前用vb写过一些,就楼主的功能还不难实现,要实现过滤功能对算法就有要求了
IT0329 2011-03-23
  • 打赏
  • 举报
回复
amandag 2011-03-23
  • 打赏
  • 举报
回复
ps:请问版主,我的帖子分怎么就可以给到200的,我想给400分或者300分,为啥不给我给这么多,为啥只能是20-200分!
==
级别不够
  • 打赏
  • 举报
回复


  protected void cblRedBall_SelectedIndexChanged(object sender, EventArgs e)
{


for (int i = 0; i < this.cblRedBall.Items.Count; i++)
{

if (this.cblRedBall.Items[i].Selected == true)
{

//这里面应该怎么写,才可以让选择的红球在下面的框中显示??
//点击第七个红球的时候没反应,最多六个

}
else
{
this.TextBox1.Text = null;
this.TextBox2.Text = null;
this.TextBox3.Text = null;
this.TextBox4.Text = null;
this.TextBox5.Text = null;
this.TextBox6.Text = null;

}
}

}
  • 打赏
  • 举报
回复
.length >6
  • 打赏
  • 举报
回复
JS倒计时很容易实现
随机数设定范围,每次改变就用18楼的Changed事件,统计当前已经选择的数量
客户端用JS

$("input:checkbox[@name='checkboxName']").each(function(i){
$(this).click(function(){
if($("input:checkbox[@name='checkboxName']:checked").length >0)
return;
});
});

同时服务端的也要进行进一步校验
加载更多回复(12)

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧