posts - 2,  comments - 0,  trackbacks - 0
摘要: Role-Playing Game 简易教程 – 重用 Tile Engine 本文翻译自RPG_Tutorial_2_Engine.doc 文章所提RPG示例可在此下载 简介 这篇教程会告诉你如何在Role-Playing Game (RPG)示例中提取二维贴图及碰撞系统,并将它添加到一个XNA Game Studio创建的全新游戏里。此教程有以下假设: 1) 你将可以使用C#语言轻易写出...阅读全文
posted @ 2011-12-21 12:38 养狗的老鼠 阅读(450) 评论(0) 编辑
//by 养狗的老鼠
//猜数
//2010.3.11创建 3.12修正小数问题  3.14修正时序逻辑问题 3.16修改未完成 3.28完成16号的修改 但同时发现在输入字母时会死掉

//相对于上一个多调用了一个函数...类还没学到也许用类也可以解决也说不定.学到再改啦
#include < iostream >
#include < cstdlib > //rand(), srand(), 在该头文件里
#include < ctime > //产生格林尼治时间.做srand()的种子 
using namespace std;

char q;
long tim = time(0);
double n;//定义要猜的数,在main函数和decide函数中都有用到,故定义为全局变量
double t;//定义t;t就是要产生的随机数
bool flag = false;//控制多次猜数
bool quit = false;

int comeRand();//声明comeRand()函数;
void decide(double a,double b);//声明decide()函数

double main()
{
 cout << "随机产生一个1-100的整数 你能猜的到么?(如若输入为小数..小数部分会被截去(^o^)/~)" << endl << "你猜:";
 cin >> n;//由输入设备读取一个1-100的数
 
 while ( !quit )
 {
  while ( !flag ) //while循环与flag共同控制多次猜数
  {
   n = ( int ) n;//强制类型转换.若n输入为小数.取整
   if ( n >=1 && n <= 100 ) //如果输入的数在1-100范围内,则进行判断。如果不在则输出else的,提示用户重新输入
   {
    t = comeRand();//将产生的随机数赋给参数t;
    decide( n,t );
   }
   else
   {
    cout << "因感冒引发了发烧.嘿嘿..该数不在范围.请重新输入:";
    cin >> n;//所输入的数不在范围,重新输入
   }
  }
 }
 return 0;//主函数结束
}

int comeRand()//产生一个随机数
{
 int k;
 srand ( tim );
 k = 1 + rand() % 100;
 return k;
}

void decide(double a,double b)//decide函数判断所输入的数与要猜的数的大小关系
{
 if ( a > b ) //如果输入的数大于要猜的数,提示过大,重新猜
 {
  cout << a << "过大" << endl << "再猜:"; 
  cin >> n;
 }
 if ( a < b ) //如果输入的数小于要猜的数,提示太小,重新猜
 {
  cout << a << "太小" << endl << "再猜:";
  cin >> n;
 }
 if ( a == b ) 
 {
  cout << "太好啦,你猜对啦" << endl;
  flag = true;//flag = true !flag = 0 终止while循环
  cout << "再来一次? ***(y for YES;n for NO)***" << endl;
  cin >> q;
  if ( q == 'n' )
   quit = true;
  else if ( q == 'y' )
  {
   tim = time(0);
   cout << "请猜:";
   cin >> n;
   flag = false;
  }
  else 
  {
   cout << "输入有错,运行终止..(太懒啦 不想改了)";
   quit = true;
  }
 }
}
posted @ 2011-08-12 17:18 养狗的老鼠 阅读(12) 评论(0) 编辑