我正在尝试用c创建一个简单的扑克游戏Texas Hold'em风格.
起初,我试图用2个char数组创建一副牌.
char *suits_str[4] = {"Spades", "Hearts", "Diamonds", "Clubs"};
char *faces_str[13] = {"2", "3", "4", "5", "6", "7", "8", "9",
"10", "J", "Q", "K", "A"};
Run Code Online (Sandbox Code Playgroud)
一切顺利,代表卡片非常简单.但是当分析手来确定胜利者时,似乎使用char类型值是一个非常糟糕的主意.所以我想将套装改为int值,其中0 = Clubs,1 =钻石,2 = Hearts,3 =黑桃,面部 0 = 2(deuce),1 = 3,11 = King,12 = Ace.(这是我的想法,但我不知道如何将这些字符串值分配给他们)
所以这里有我的阵列,
int suits[4] = {0, 1, 2, 3};
int faces[13] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将这些int值转换为匹配的字符串值.我应该使用什么方法?
我正在尝试创建一个函数,该函数应该将表行映射到我的用户定义类型(这是复合类型)并返回结果。如果该表中的某些列为 NULL,则IS NOT NULL检查我的自定义类型不起作用!
我有一个简单的复合类型:
CREATE TYPE my_custom_type AS (
sender VARCHAR(30),
destination VARCHAR(30),
count INTEGER
);
Run Code Online (Sandbox Code Playgroud)
还有一张桌子:
CREATE TABLE messages (
id INTEGER PRIMARY KEY,
sender VARCHAR(30),
destination VARCHAR(30),
count INTEGER
);
Run Code Online (Sandbox Code Playgroud)
在此示例中插入单行:
INSERT INTO messages VALUES (1, 'sender', 'destination', 100);
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个函数,它将将该行作为自定义 Postgres 类型返回:
CREATE OR REPLACE FUNCTION my_custom_function()
RETURNS my_custom_type AS
$$
DECLARE
result my_custom_type;
BEGIN
SELECT sender, destination, count
FROM messages
LIMIT 1
INTO result;
IF result IS NULL THEN
RAISE EXCEPTION 'no data'; …Run Code Online (Sandbox Code Playgroud) 所以我有一个示例代码,用于为c中的迷你扑克游戏创建一副牌.但我不明白西装和面孔是如何确定的.为什么这些阵列有2个维度?我知道[9]并且[6]是数组的列,但我不明白它们的目的.
char suits[4][9]= {"Hearts","Diamonds","Clubs","Spades"};
char faces[13][6]= {"Ace","2","3","4","5","6","7","8","9", "10","Jack",
"Queen","King"};
Run Code Online (Sandbox Code Playgroud)