【分享】我的第一个C++小游戏——纸牌接龙

哈利_蜘蛛侠 2013-10-21 02:58:01
自己做的第一个C++小游戏,就是纸牌接龙。用的最原始的控制台程序写的。玩起来比较纠结,因为字体太小,而且花色不太好辨认!输入的时候一定要输入整数,因为没有设置纠错机制。希望大家多多支持哈!

http://download.csdn.net/detail/u011873969/6429045

花了八个小时写的,真是到了废寝忘食的地步了呀!编写的过程中发现个问题,就是这个问题让我纠结了好几个小时,直到最后通过各种手段才发现。至今不懂为何会有这个问题。这个问题就是:

设column是一个vector<card>::size_type类型的变量,其中card是一个已经定义好的class,那么
不管column取值多少,好像条件
column-7 >0
都为真!
只有改写成
column > 7
才能得到想要的效果!

这究竟是什么情况?是因为column和7不是同一个类型的吗?
...全文
472 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
秃头披风侠 2013-10-22
  • 打赏
  • 举报
回复
引用 4 楼 u011873969 的回复:
[quote=引用 3 楼 WhiteBird99 的回复:] vector<card>::size_type是无符号整型, 也就是说如果column小于7, 那么column-7得到的值就是一个非常大的无符号正数, 其预算结果是必定大于0的. 要么把column换成有符号的整数, 要么就用楼主说的column>7做判断.
原来如此,领教了!看来这小问题坑死人啊!不过为什么 column>7 就可以了呢?[/quote] 做减法肯定得到大于等于0的正整数, 因此和0比较没有意义 但是直接和7比较, 小于7的数就有意义了
大奶兔白糖 2013-10-22
  • 打赏
  • 举报
回复
引用 6 楼 u011873969 的回复:
[quote=引用 5 楼 WhiteBird99 的回复:] 做减法肯定得到大于等于0的正整数, 因此和0比较没有意义 但是直接和7比较, 小于7的数就有意义了
Hmmm,好纠结的样子。计算机判断x>y的时候难道不是判断x-y与0的大小关系吗?[/quote] 这个是咱们的数学思想,是没错的。但是在计算机领域内分为无符号和有符号的整数,假设内存里面某个byte就是存的值0xff,当你把它当做无符号整形的数据读出来的时候,看到的这个byte就是255,但是当你把它当成有符号的整数读出来的时候呢?你可以试试看。
秃头披风侠 2013-10-22
  • 打赏
  • 举报
回复
引用 6 楼 u011873969 的回复:
[quote=引用 5 楼 WhiteBird99 的回复:] 做减法肯定得到大于等于0的正整数, 因此和0比较没有意义 但是直接和7比较, 小于7的数就有意义了
Hmmm,好纠结的样子。计算机判断x>y的时候难道不是判断x-y与0的大小关系吗?[/quote] 举个栗子: 1 - 2 > 0, 如果这里的1是无符号整型, 那么1-2得到的是0xffffffff, 这个值是大于0的, 因此判断结果为true 1 > 2, 怎么看结果都为false吧... 注:楼主可以再顺便看下隐式类型转换
哈利_蜘蛛侠 2013-10-22
  • 打赏
  • 举报
回复
引用 5 楼 WhiteBird99 的回复:
做减法肯定得到大于等于0的正整数, 因此和0比较没有意义 但是直接和7比较, 小于7的数就有意义了
Hmmm,好纠结的样子。计算机判断x>y的时候难道不是判断x-y与0的大小关系吗?
哈利_蜘蛛侠 2013-10-21
  • 打赏
  • 举报
回复
引用 3 楼 WhiteBird99 的回复:
vector<card>::size_type是无符号整型, 也就是说如果column小于7, 那么column-7得到的值就是一个非常大的无符号正数, 其预算结果是必定大于0的. 要么把column换成有符号的整数, 要么就用楼主说的column>7做判断.
原来如此,领教了!看来这小问题坑死人啊!不过为什么 column>7 就可以了呢?
秃头披风侠 2013-10-21
  • 打赏
  • 举报
回复
vector<card>::size_type是无符号整型, 也就是说如果column小于7, 那么column-7得到的值就是一个非常大的无符号正数, 其预算结果是必定大于0的. 要么把column换成有符号的整数, 要么就用楼主说的column>7做判断.
buyong 2013-10-21
  • 打赏
  • 举报
回复
不管column取值多少,好像条件 column-7 >0 都为真! 只有改写成 column > 7 才能得到想要的效果! 这个真没听说过。看看汇编结果?
turing-complete 2013-10-21
  • 打赏
  • 举报
回复
column是unsinged类型的?

64,641

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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