有80张牌。。三个玩家。。开始时洗牌。。用随即函数。然后发牌每人拿19张,然后第一玩家摸一张之后开始打牌
。。
想问的就是怎样写这个洗牌和发牌函数
不用数据库。。
用type
Card=record
CardCode:integer;
.....
............记录定义没写完。。不会。。HUHU~~~。
。
谢谢大家了。。~
解决方案 »
- ^_^ 轻松一下,一个程序员买包子的笑话!
- kye_jufei 來接分
- 不要 Webbrowser,怎么执行 html
- 如何读取打印任务队列中需要打印的文件的内容???!!!
- 动态创建一个对象以后,如何向对象的事件里写入代码? 急急急
- 有人去Borland Developer Network (BDN)完成20周年调查吗?
- 请教问题:
- 如何将DBGrid显示的数据一次清除掉,不要影响标题
- 有关串行口的编程.
- 我用一个QUERY,想修改指定的一个记录,但不 知为什么却变成了加一个新记录,且新记录的字段的值是我要修改的字段的值,
- 对VC和delphi都很了解的朋友请进来帮忙!!
- 怎么样加快把数据源的数据导出Excel的速度.....
但是我真不是什么高手啊...您可是四星上将了啊..~~!!:)
~~~~~~~~~~~
今天在QQ上问了个叫DELPHI的前辈.....
对方甩了句"简单得要死"就没理我了。....
~~~~~~~~~~~~~~~~~~~~~~
就是定义一个结构体后...
随机定义牌的堆放顺序...80张牌.就定义一个80个元素的数组..
再对它们一一进行随机的顺序堆放..也就是没张牌获得一个1..80的顺序号...
我笨..前辈们能给点思路吗?
谢谢了.
var
A1, A2: TStrtingList;
I, iPos: Integer;
begin
A1 := TStringList.Create;
A2 := TStringList.Create;
for I := 1 to 80 do //初始化
begin
A1.Add(IntToStr(I));
end;
Ramdomize;
for I := 1 to 80 do //洗牌
begin
iPos := Ramdomize(A1.Count);
A2.Add(A1[iPos]);
A1.Delete(iPos);
end;
//从A2中发牌, 发出一张Delete一张, 楼主自己写写吧
end;
A1.Free;
A2.Free;
A1, A2: TStrtingList;
I, iPos: Integer;
a,b,c:string;
begin
A1 := TStringList.Create(self);
A2 := TStringList.Create(self);
for I := 1 to 80 do
begin
A1.Add(IntToStr(mod(I,14));
end;
Ramdomize;
for I := 1 to 80 do
begin
iPos := Ramdomize(A1.Count);
A2.Add(A1[iPos]);
A1.Delete(iPos);
end;
for I:=1 to 80 do
begin
case mod(I,3)
case 0:
begin
a:=a+inttostr(A2[I]);
A2.Delete(I);
end;
case 1:
begin
b:=b+inttostr(A2[I]);
A2.Delete(I);
end;
case 2:
begin
c:=c+inttostr(A2[I]);
A2.Delete(I);
end;
end;
end;
a,b,c中装的就是三个玩家的牌,前面的MOD函数,我想应该是,请楼主试一下,也许函数写错了,因为牌只有十三种样式!除14取余就行了!
QQQ上聊聊。因为我的方法和他们都不太一样。我用的是TLIST,随即的产生和他们也不太一样。懒的在这里写。分我不要。你给楼上的和楼下的吧。。QQ上随便聊聊。
QQ:29879344
呵呵找几个臭味相投的人聊了。我没有QQ群,也没加QQ群。不是会员。哈哈
用LIST...很方便..结