A
apple058
Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手:
本人想编一个 扑克 牌 游戏 有几点搞不定
type
pai = record
paimian:integer;
paise:1..4;
end;
var
puke:array[1..25] of pai;
// 申明变量
------------------------------
procedure qupai();
// 取牌
begin
for i:=1 to 25do
// 一个人可以得到 25 张
puke.paimian:=random(13);
// 随机抽取牌值(假设牌为 A,2,3,4,5,6,7,8,9.10,j,Q,k 其顺序为 1..13)
// 目的是随便得到一些牌的值,并且在牌面的范围之内
puke.paise:=random(4);
// 随便抽取牌色(假设牌色为 黑,红,梅。方,其顺序为 1..4)
end;
------------------------------
function fenhuase(pk:array[1..25] of pai):array [1..25] of pai;
// 分花色
// 但是这里有问题 函数中间数组的原数不能确定为 25, 并且 好像还不能为数组类型(纪录)
var
hei,hong,mei,fang:array [1..25] of pai ;
// 定义 4 个数组 用于临时放一下黑,红,梅,方 4 中花色的牌
hei1,hong1,mei1,fang1:ingteger;
// 用于记录当前花色的情况 个数
zhengge:integer;
// 用于记录整个数组当前的个数
i,j:integer;
flag:0..1;
begin
for i:=1 to 25-1do
begin
flage:=0;
for j:=1 to 25-ido
if pk[j+1].paimian < pk[j].paimian
then
begin
x:=pk[j];
// x 为中间变量
pk[j]:=pk[j+1];
pk[j+1]:=x;
end;
if flag=0 then
break;
end;
// 这一段使用的冒泡法排序,我是着书上面打上去的,不管细节就算我对
我的目的值想牌面按顺序排列(A,2,3...Q,K);
hei1:=1;
hong1:=1;
mei1:=1;
fang1;=1;
// 赋初值 记录当前各种花色的牌有多少张
for i:=1 to 25do
case pk.paise of
1: begin
// 为黑桃的就分为一组
hei[hei1]:=pk;
hei1:=hei+1;
end;
2:begin
// 红
hong[hong1]:=pk;
hong1:=hong1+1;
end;
3: begin
// 梅
mei[mei1]:=pk;
mei1:=mei1+1;
end;
4:begin
//方 我想问一下 我把左边的分开了写应该是一样的吧 ?
fang[fang1]:=pk;
fang[fagn1].paimian:=pk.paimian;
fang1:=fang1+1;
fang[fang1].paise:=pk;
end;
fang1:=fang1+1;
end;
for i:=1 to 25do
begin
pk.paimian:=null;
pk.paise:=null;
// 我想把数组清空 不知这样清空是否可以 ?
end;
zhengge:=1;
for i:=1 to hei1do
begin
pk[zhengge]:=hei;
// 把黑桃添加到数组
zhengge:=zhengge+1;
end;
for i:=1 to hong1do
// 红
begin
pk[zhengge]:=hong;
zhengge:=zhengge+1;
end;
for i:=1 to mei1do
// 梅
begin
pk[zhengge]:=mei;
zhengge:=zhengge+1;
end;
for i:=1 to fang1do
// 方
begin
pk[zhengge]:=fang;
zhengge:=zhengge+1;
end;
// 理论是这样就可以吧数祖赋值给函数变量名
for i:=1 to 25do
fenhuase:=pk
end;
但是我就是调试通不过!!!!
--------------------------------------------
请各路高手指点迷津!!! 本人将不慎感激!!!
本人想编一个 扑克 牌 游戏 有几点搞不定
type
pai = record
paimian:integer;
paise:1..4;
end;
var
puke:array[1..25] of pai;
// 申明变量
------------------------------
procedure qupai();
// 取牌
begin
for i:=1 to 25do
// 一个人可以得到 25 张
puke.paimian:=random(13);
// 随机抽取牌值(假设牌为 A,2,3,4,5,6,7,8,9.10,j,Q,k 其顺序为 1..13)
// 目的是随便得到一些牌的值,并且在牌面的范围之内
puke.paise:=random(4);
// 随便抽取牌色(假设牌色为 黑,红,梅。方,其顺序为 1..4)
end;
------------------------------
function fenhuase(pk:array[1..25] of pai):array [1..25] of pai;
// 分花色
// 但是这里有问题 函数中间数组的原数不能确定为 25, 并且 好像还不能为数组类型(纪录)
var
hei,hong,mei,fang:array [1..25] of pai ;
// 定义 4 个数组 用于临时放一下黑,红,梅,方 4 中花色的牌
hei1,hong1,mei1,fang1:ingteger;
// 用于记录当前花色的情况 个数
zhengge:integer;
// 用于记录整个数组当前的个数
i,j:integer;
flag:0..1;
begin
for i:=1 to 25-1do
begin
flage:=0;
for j:=1 to 25-ido
if pk[j+1].paimian < pk[j].paimian
then
begin
x:=pk[j];
// x 为中间变量
pk[j]:=pk[j+1];
pk[j+1]:=x;
end;
if flag=0 then
break;
end;
// 这一段使用的冒泡法排序,我是着书上面打上去的,不管细节就算我对
我的目的值想牌面按顺序排列(A,2,3...Q,K);
hei1:=1;
hong1:=1;
mei1:=1;
fang1;=1;
// 赋初值 记录当前各种花色的牌有多少张
for i:=1 to 25do
case pk.paise of
1: begin
// 为黑桃的就分为一组
hei[hei1]:=pk;
hei1:=hei+1;
end;
2:begin
// 红
hong[hong1]:=pk;
hong1:=hong1+1;
end;
3: begin
// 梅
mei[mei1]:=pk;
mei1:=mei1+1;
end;
4:begin
//方 我想问一下 我把左边的分开了写应该是一样的吧 ?
fang[fang1]:=pk;
fang[fagn1].paimian:=pk.paimian;
fang1:=fang1+1;
fang[fang1].paise:=pk;
end;
fang1:=fang1+1;
end;
for i:=1 to 25do
begin
pk.paimian:=null;
pk.paise:=null;
// 我想把数组清空 不知这样清空是否可以 ?
end;
zhengge:=1;
for i:=1 to hei1do
begin
pk[zhengge]:=hei;
// 把黑桃添加到数组
zhengge:=zhengge+1;
end;
for i:=1 to hong1do
// 红
begin
pk[zhengge]:=hong;
zhengge:=zhengge+1;
end;
for i:=1 to mei1do
// 梅
begin
pk[zhengge]:=mei;
zhengge:=zhengge+1;
end;
for i:=1 to fang1do
// 方
begin
pk[zhengge]:=fang;
zhengge:=zhengge+1;
end;
// 理论是这样就可以吧数祖赋值给函数变量名
for i:=1 to 25do
fenhuase:=pk
end;
但是我就是调试通不过!!!!
--------------------------------------------
请各路高手指点迷津!!! 本人将不慎感激!!!