C# 21点游戏的问题

michaelqi1226 2011-05-05 05:46:49
这个是用visual studio 和 C# 做的21点游戏的代码.
帮我看看怎么能实现1. 电脑只随机得到1个1-40的数.(只有1个,而且用户不知道)
2. 用户只能得到1-10的数,但能得到几个(但如果大于20,就直接比较)
3. 点比较时,看谁的和20近或等于20,谁就赢.
//////////////////////////////////////////////////////////

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace _21点
{
public partial class Form1 : Form
{
public static int iswho=0;
private int u1;
private int u2;
private int sum1;
private int sum2;
private int []pai1=new int[5];
private int[] pai2 = new int[5];
int kk;//记录是否已经平分了
bool kaishi;

private int lost, win, pease;
public Form1()
{
InitializeComponent();
u1 = 0;
u2 = 0;
for (int i = 0; i < 5; i++)
{
pai1[i] = 0;
pai2[i] = 0;

}
sum1 = 0;
sum2 = 0;
lost = 0;
win = 0;
pease = 0;
kk = 0;
kaishi = false;

}

private void Form1_Load(object sender, EventArgs e)
{

this.textBox1.Text = "win:" + win + " lost:" + lost + " pease:" + pease;
}

protected void get_radom()
{
Random a = new Random();
for (int i = 0; i < 5; i++)
{
pai1[i] = a.Next(1, 14);
pai2[i] = a.Next(1, 14);
// pai2[i] = 2;
}

this.lblu1.Text = pai1[0].ToString();
this.lblu2.Text = pai1[1].ToString();
this.lblu3.Text = pai1[2].ToString();
this.lblu4.Text = pai1[3].ToString();
this.lblu5.Text = pai1[4].ToString();


}
private void diannaoqushu()
{

while (sum2 < 17)
{
sum2 = 0;
u2++;
for (int j = 0; j <= u2; j++)
{
if (j == 5)
break;
sum2 += pai2[j];

}
if (u2 == 4)
return;
}

huhu();
}
private void button1_Click(object sender, EventArgs e)
{
kaishi = true;

this.lblu2.Visible = false;
this.lblu3.Visible = false;
this.lblu4.Visible = false;
this.lblu5.Visible = false;

this.lbld2.Visible = false;
this.lbld3.Visible = false;
this.lbld4.Visible = false;
this.lbld5.Visible = false;
this.lbld1.Text = "";
this.lbld2.Text = "";
this.lbld3.Text = "";
this.lbld4.Text = "";
this.lbld5.Text = "";
get_radom();
u1 = 0;
u2 = 0;
this.lblu1.Visible = true;
this.lbld1.Visible = true;
sum1 = 0;
sum2 = 0;
kk=0;

}

private void button2_Click(object sender, EventArgs e)
{
if (!kaishi)
{
MessageBox.Show("还没开始了!点击开始选牌吧!");
return;
}
if (kk == 1)
{
MessageBox.Show("这局已经平分了,请重新开局吧!!!");
return;
}
if (u1 == 4)
{
MessageBox.Show("5张都已选了,这么好的牌,还选,你傻啊!");
return;
}
if (!isda())
return;
else
u1++;
sum1 = 0;
for (int i = 0; i <= u1; i++)
{

sum1 += pai1[i];
}
hehe();

if (sum2 < 17)
{
sum2 = 0;
u2++;
for (int j = 0; j <= u2; j++)
sum2 += pai2[j];
}

huhu();
}
private void hehe()
{
if (u1 >=1)
{
this.lblu2.Visible = true;
if(u1>=2)
{
this.lblu3.Visible=true;
if(u1>=3)
{
this.lblu4.Visible=true;
if(u1>=4)
{
this.lblu5.Visible=true;
}
else return;
}
}

}

}
private void huhu()
{
if (u2 >= 1)
{
this.lbld2.Visible = true;
this.lbld2.Visible = true;

if (u2 >= 2)
{
this.lbld3.Visible = true;

if (u2 >= 3)
{
this.lbld4.Visible = true;



if (u2 >= 4)
{
this.lbld5.Visible = true;

}
else return;
}
}

}
}

private void diaonaopai()
{
if (u2 >= 1)
{
this.lbld1.Text = pai2[0].ToString();
this.lbld2.Text = pai2[1].ToString();
if (u2 >= 2)
{

this.lbld3.Text = pai2[2].ToString();
if (u2 >= 3)
{

this.lbld4.Text = pai2[3].ToString();

if (u2 >= 4)
{

this.lbld5.Text = pai2[4].ToString();
}
else return;
}
}

}

}
private bool isda()
{


if (sum1 > 21)
{
MessageBox.Show("不好意思!爆牌,你不能选牌了,开牌吧!!");
return false;
}
else return true;

}
private bool isxiao()
{

if (sum1 < 17)
{
MessageBox.Show("你的牌数还没到17哦!继续选牌吧,还有小心爆牌哦!!!");
return false;
}
else return true;
}
private void button3_Click(object sender, EventArgs e)
{
if (!kaishi)
{
MessageBox.Show("还没开始了!点击开始选牌吧!");
return;
}
if (kk == 1)
{
MessageBox.Show("这局平分已经平了,重新开局吧!");
return;
}
if (!isxiao())
return;
diannaoqushu();
diaonaopai();
if ((u1 == 4)&&(sum1<=21))
{

if (u2 == 4)
{
MessageBox.Show("运气不太好,这种牌都能和局!");
pease++;
}
else
{
MessageBox.Show("你牌太好了,5张都没爆,翻3倍,win3局");
win += 3;
}
this.textBox1.Text = "win:" + win + " lost :" + lost + " pease:" + pease;
kk = 1;
return;
}
if ((u2 == 4)&&(sum2<=21))
{
huhu();
MessageBox.Show("运气太次了,让电脑得了这种牌,你lost3局");
lost += 3;
this.textBox1.Text = "win:" + win + " lost :" + lost + " pease:" + pease;
kk = 1;
return;
}


// diannaoqushu();
// diaonaopai();
if ((sum1 > 21 && sum2 > 21)||(sum1==sum2))
{
MessageBox.Show("运气不错麽,和电脑打了平手! 你的总数"+sum1+"电脑总数"+sum2);
pease++;
}
else if ((sum1 > 21 && sum2<=21))
{
MessageBox.Show("你运气太次了,输给电脑了! 你的总数" + sum1 + "电脑总数" + sum2);
lost++;

}

else if ((sum1 > sum2)||((sum1<=21)&&(sum2>21)))
{
MessageBox.Show("恭喜你,you win 你的总数"+sum1+"电脑总数"+sum2);
win++;

}
else
{
MessageBox.Show("你运气太次了,输给电脑了! 你的总数" + sum1 + "电脑总数" + sum2);
lost++;
}
kk = 1;

this.textBox1.Text = "win:" + win + " lost :" + lost + " pease:" + pease;
}

private void toolStripButton2_Click(object sender, EventArgs e)
{
Frmhelp_usr fm = new Frmhelp_usr();
fm.Text = "游戏简介";
iswho = 0;
fm.Show();
}

private void toolStripButton3_Click(object sender, EventArgs e)
{
Frmhelp_usr fms = new Frmhelp_usr();
fms.Text = "作者简介!";
iswho = 1;
fms.Show();
}

private void textBox1_TextChanged(object sender, EventArgs e)
{

}

private void label4_Click(object sender, EventArgs e)
{

}

private void lblu1_Click(object sender, EventArgs e)
{

}
}

}
...全文
217 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lichunping007 2011-05-05
  • 打赏
  • 举报
回复
楼主想干嘛???也没看到问题。。。。代码倒是和楼上贴的地址里的一样。。。。
threenewbee 2011-05-05
  • 打赏
  • 举报
回复
http://www.hackchina.com/en/r/152465/Form1.cs__html

抄来的吧。随手抄一个程序,就这个态度,懒得回答你。

先搞清楚 Visual Studio 和 C# 是什么关系吧。
kingdom_0 2011-05-05
  • 打赏
  • 举报
回复
对啊,程序出现什么问题了?
xiaoqiu1234 2011-05-05
  • 打赏
  • 举报
回复

你想问什么 还是只是把写的东西贴出来

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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