如何识别扑克牌中黑桃、红桃、草花、红片

cehcueu 2010-02-08 04:08:03
如何识别扑克牌中黑桃、红桃、草花、红片

那位大哥能给一个类
...全文
2820 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cbirdfly 2010-02-20
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Text;

namespace 扑克牌
{
public enum Rank
{
Ace = 1,
Deuce,
Three,
Four,
Five,
Six,
Seven,
Eight,
Nine,
Ten,
Jack,
Queen,
King,
}
}
using System;
using System.Collections.Generic;
using System.Text;

namespace 扑克牌
{
public enum Suit
{
Club,
Diamond,
Heart,
Spade,
}
}
using System;
using System.Collections.Generic;
using System.Text;
using 扑克牌;

namespace Client
{
class Program
{
static void Main(string[] args)
{
Deck MyDeck = new Deck();
MyDeck.Shuffle();
for (int i = 0; i < 52; i++)
{
Card tempCard = MyDeck.GetCard(i);
Console.Write(tempCard.ToString());
if (i != 51)
Console.Write(",");
else
Console.WriteLine();
}
Console.ReadKey();
}
}
}
Cbirdfly 2010-02-20
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Text;

namespace 扑克牌
{
public class Deck
{
private Card[] cards;

public Deck()
{
cards = new Card[52];
for (int suitVal = 0; suitVal < 4; suitVal++)
{
for (int rankVal = 1; rankVal < 14; rankVal++)
{
cards[suitVal * 13 + rankVal - 1] = new Card((Suit)suitVal, (Rank)rankVal);
}
}
}

public Card GetCard(int cardNum)
{
if (cardNum >= 0 && cardNum <= 51)
return cards[cardNum];
else
throw (new System.ArgumentOutOfRangeException("cardNum", cardNum, "Value must be between 0 and 51"));
}

public void Shuffle()
{
Card[] newDeck = new Card[52];
bool[] assigned = new bool[52];
Random sourceGen = new Random();
for (int i = 0; i < 52; i++)
{
int destCard = 0;
bool foundCard = false;
while (foundCard == false)
{
destCard = sourceGen.Next(52);
if (assigned[destCard] == false)
foundCard = true;

}
assigned[destCard] = true;
newDeck[destCard] = cards[i];
}
newDeck.CopyTo(cards, 0);
}
}
}
Cbirdfly 2010-02-20
  • 打赏
  • 举报
回复

using System;
using System.Collections.Generic;
using System.Text;

namespace 扑克牌
{
public class Card
{
public readonly Suit suit;
public readonly Rank rank;
public Card(Suit newSuit, Rank newRank)
{
suit = newSuit;
rank = newRank;
}
public Card()
{

}
public override string ToString()
{
return "The " + rank + " of " + suit + "s";
}
}
}
王集鹄 2010-02-10
  • 打赏
  • 举报
回复
这个比较容易,游戏中每张牌的图案是固定的,你只要采样然后做简单的图片比较即可。
qazse1234 2010-02-10
  • 打赏
  • 举报
回复
黑桃、红桃、草花、红片 用枚举喽 C# codepublicenum PokerColor {//黑桃 Spade=0,//红心 Heart=1,//草花 Club=2,//方块 Diamond=3 }

qazse1234 2010-02-10
  • 打赏
  • 举报
回复
```budomg urtuyturtytu
Joe-xXx 2010-02-10
  • 打赏
  • 举报
回复
这识别是图像的智能识别,还是编程里抽象之后的封装识别啊?LZ明示啊!
kingcsx666 2010-02-10
  • 打赏
  • 举报
回复
肯定是用枚举出来的

花色,牌的大小
lovelan1748 2010-02-10
  • 打赏
  • 举报
回复
楼主失踪了回复内容太短了!
上海程序员3 2010-02-10
  • 打赏
  • 举报
回复
大概猜到楼主要做什么了,想网上打牌游戏做个外挂。
这个直接从图片取会很困难的,我做过,屏幕上取到的颜色也是会有偏差的,需要模糊算法,我就是碰到了这个难题搞不定了。
flyerwing 2010-02-10
  • 打赏
  • 举报
回复
写个枚举!
然后每种类型都有自己的类型枚举!
JOCLI 2010-02-10
  • 打赏
  • 举报
回复
过年啦,无聊,写副扑克牌来自己安慰安慰,呵呵
leefwu 2010-02-10
  • 打赏
  • 举报
回复
是不是想做个棋牌游戏的外挂?
Baesky 2010-02-10
  • 打赏
  • 举报
回复
如何识别扑克牌中黑桃、红桃、草花、红片
太简单了这问题~
toxuecheng111 2010-02-10
  • 打赏
  • 举报
回复
stuty............
fengling2001 2010-02-10
  • 打赏
  • 举报
回复
特征比较明显,识别起来问题不大,SIFT方法就可以,网上有很多源代码
chenshidan 2010-02-09
  • 打赏
  • 举报
回复
可以使用识别验证码的一种思路,将图片切块,如4*4=16块,获取每块的最主要的那个颜色,将16块的主要色综合就能得出一个点阵式的像素图,再进行对比,当然分的区块越多运算量越大,也越精确
shine0524 2010-02-09
  • 打赏
  • 举报
回复
我是来学习地,顺便打点酱油。
Cbirdfly 2010-02-09
  • 打赏
  • 举报
回复
枚举了 你想干啥子嘛?
xiaoshen1360 2010-02-08
  • 打赏
  • 举报
回复
枚举。。。。。。。。。。。。。。。。。
加载更多回复(18)

110,539

社区成员

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

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

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