用c++编写一个流星雨的程序 哪位大哥大姐能帮我一下呀~~~

作者&投稿:丰炕 (联系方式在网页底部的电邮联系)
谁能帮我用C++编写这么一个小程序~

竟然比我还快~像2楼说的,这个就是用位的方法啦
#include
#include

using namespace std;

#define NOTAKE 0
#define TAKE 1

/*每个队员用一个位来表示,从高位到低位分别为EDBCA
相应位为1表示参赛,为0表示不参赛*/
#define A (players & 0x01)
#define B ((players & 0x02)>>1)
#define C ((players & 0x04)>>2)
#define D ((players & 0x08)>>3)
#define E ((players & 0x10)>>4)

int players;

bool check() {

if (((A == TAKE)? B == TAKE: true) /* A参加时,B也参加; */
&& (B != C) /*B和C只有一个人参加; */
&& (C == D) /*C和D或者都参加,或者都不参加;*/
&& (D == TAKE || E == TAKE) /*D和E中至少有一个人参加;*/
&& (E == TAKE? (A == TAKE && D == TAKE): true)) /*如果E参加,那么A和D也都参加。*/ {
return true;
}
return false;
}

int main(int argc, char *argv[])
{
int i;

for (players = 0; players < 32; players++){
if (check()) {
if (A == TAKE) {
cout<<"A ";
}
if (B == TAKE) {
cout<<"B ";
}
if (C == TAKE) {
cout<<"C ";
}
if (D == TAKE) {
cout<<"D ";
}
if (E == TAKE) {
cout<<"E";
}
cout<<endl;
}
}

return EXIT_SUCCESS;
}

#include "stdafx.h"
#include

class Observer;

class Subject
{
public:
virtual void attachObserver(Observer* o) = 0;
virtual void detachObserver(Observer* o) = 0;
virtual void notify() = 0;
};

class Observer
{
public:
virtual void update(Subject* s) = 0;
};

class Window : public Subject
{
public:
void attachObserver(Observer* o)
{
mObservers.insert(o);
}

void detachObserver(Observer* o)
{
mObservers.erase(o);
}

void notify()
{
for (std::set::const_iterator it = mObservers.begin();
it!=mObservers.end();
++it)
{
(*it)->update(this);
}
}

void OnSize(int w, int h)
{
mWidth = w;
mHeight = h;
notify();
}

void GetSize(int &w, int &h)
{
w = mWidth;
h = mHeight;
}

protected:
std::set mObservers;
int mWidth, mHeight;
};

class Client : public Observer
{
public:
void update(Subject* s)
{
int w, h;
Window* pWnd = (Window*)s;
pWnd->GetSize(w, h);

mWidth = w / 2;
mHeight = h / 2;
}

private:
int mWidth, mHeight;
};

class Button : public Observer
{
public:
void update(Subject* s)
{
int w, h;
Window* pWnd = (Window*)s;
pWnd->GetSize(w, h);

mWidth = w / 8;
mHeight = h / 8;
}

private:
int mWidth, mHeight;
};

int _tmain(int argc, _TCHAR* argv[])
{
Window w;
Client c;
w.attachObserver(&c);

Button btn;
w.attachObserver(&btn);

w.OnSize(50, 20);

return 0;
}

#include<conio.h>
#include<dos.h>
#include<stdlib.h>
main()
{char screen[24][80],e[10];
int i,j,k,l,m,n,t=0,a[10],b[10],c[10],d[10],f[10]={0};
randomize();
for(i=0;i<24;i++)
for(j=0;j<80;j++)
{if(i<19){screen[j]='';printf(" ");}
else{screen[j]='#';textcolor(GREEN);cprintf("%c",screen[j]);}
}
do{for(i=0;i<10;i++)
{c=random(4)+1;d=random(16);b=0;}
a[0]=random(80);j=0;
do{k=random(80);j++;l=3;
for(i=0;i<j;i++)
if(k==a){j--;l=2;break;}
if(l==2)continue;a=k;
}while(i<9);
for(i=0;i<9;i++)
{e=random(26)+'A';gotoxy(a+1,b+1);
textcolor(d);cprintf("%c",e);f=0;}
for(j=0;j<24;j++)
for(i=0;i<10;i++)
if(f!=1)
{delay(5000);gotoxy(a+1,b+1);printf(" ");b=b+c;
l=(c<19-b)?c:(19-b);
for(m=1;m<l;m++)
{n=b+m-c;gotoxy(a+1,n+1);textcolor(d);
cprintf("%c",e);gotoxy(a+1,n+1);printf(" ");}
if(b<19){textcolor(d);gotoxy(a+1,b+1);cprintf("%c",e);}
else{for(m=0,k=a;m<5;m++)
if(screen[19+m][k]=='#')
{screen[19+m][k]='';gotoxy(k+1,20+m);printf(" ");f=1;break;}
else{gotoxy(k+1,m+20);textcolor(d);cprintf("%c",e);
gotoxy(k+1,m+20);printf(" ");}
}
}
for(k=0;k<80;k++)
if(screen[23][k]==''){t=1;break;}
}while(t!=1);
}

我们在做这个,我是这样的

好难哦, 我有一些简单的,是用OpenGL做的,不过跟你的要求不一至。

相关视频

用C语言编写流星雨程序
这篇文章详细描述了如何使用C语言编写一个模拟数字流星雨的程序。它首先定义了程序的入口点以及一些关键的编译指令和全局变量,如屏幕尺寸、流星速度和数量等。程序的主要部分包括流星结构体的定义,函数的声明和实现,如随机ASCII码生成、流星移动和颜色设置等。在主函数中,通过初始化流星、批量绘图、更新...

一起来看流星雨的所有歌曲歌词和谱子
1. 主题曲《流星雨》- 作词:张赢心 - 作曲:汪苏泷 - 歌词:我以为我们之间会永远那样的美好会停留,可是所有的一切烟消云散,我还来不及感受。- 谱子:[C]我以为我们之间会永远[Am]那样的美好会停留[Dm]可是所有的一切烟消云散[G7]我还来不及感受 2. 插曲《你是我心内的一首歌》- 作词:...

C\/C++编程笔记:浪漫流星雨表白装b程序
C\/C++编程笔记:浪漫流星雨表白程序解析 该程序是一个使用C\/C++语言结合easyX图形库实现的浪漫流星雨表白效果。程序通过定义星星和流星的结构体,利用随机数生成星星和流星的位置、颜色、速度等属性,并在窗口中动态绘制它们,同时显示表白文字,营造出浪漫的氛围。程序结构解析:头文件引入:include <graphics....