• 大小: 280KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2023-01-19
  • 语言: C/C++
  • 标签: C++/Curses  

资源简介

这个小游戏主要是用C++、curses、以及多线程来实现的。

资源截图

代码片段和文件信息

#include“head.h“

int dengji=0;

WINDOW *sc;

void qishi()
{
WINDOW * w= derwin(stdscrGAOKUAN(LINES-GAO)/2(COLS-KUAN-12)/2);
fang=w;
int i=0 j=0;
for(i=0; i for(j=0; j {
kuai[i][j]=derwin(w12i2*j);
box(kuai[i][j]00);
}
wbkgd(wCOLOR_PAIR(5));
wrefresh(w);
refresh();
WINDOW * w1= derwin(stdscrGAO12(LINES-GAO)/2(COLS-KUAN-12)/2+KUAN);
wbkgd(w1COLOR_PAIR(1));
mvwaddstr(w100“Next:“);
WINDOW * w2= derwin(w14811);
nextkuai=w2;
wbkgd(w2COLOR_PAIR(5));
wrefresh(w2);
mvwaddstr(w170“Score:“);
WINDOW * w3= derwin(w111081);
sc=w3;
wbkgd(w3COLOR_PAIR(5));
mvwprintw(w301“%-4d“score);
wrefresh(w3);
wrefresh(w1);
refresh();
}

void huiPan()
{
WINDOW *w;
int i=0j=0;
for(;i {
for(j=0;j {
if(Pan[i+4][j]==1)
{
wbkgd(kuai[i][j]COLOR_PAIR(2));
wrefresh(kuai[i][j]);
}
else
{
wbkgd(kuai[i][j]COLOR_PAIR(5));
wrefresh(kuai[i][j]);
}
}
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(Next[i][j]==1)
{
w=derwin(nextkuai12i2*j);
wbkgd(wCOLOR_PAIR(4));
wrefresh(w);
}
}
}
mvwprintw(sc01“%-4d“score);
wrefresh(sc);
refresh();
}
int whdengji(int n)
{
if(n>1200) return 4;
if(n>700)  return 3;
if(n>300)  return 2;
if(n>100)  return 1;
return 0;
}
void chongxin()
{
times=1000-200*dengji;
cur=next;
next=rand()%10;
yidongx=0;
yidongy=0;
bzero(Next64);
Nextzu(next);
}
void cleartu()
{
WINDOW *w;
int i=0j=0;
for(;i<4;i++)
for(j=0;j<4;j++)
{
w=derwin(nextkuai12i2*j);
wbkgd(wCOLOR_PAIR(5));
wrefresh(w);
}
}
int over()
{
int i=0 j=0;
for(;i<4;i++)
for(j=0; j if(Pan[i][j]==1) return 1;
return 0;
}
void control()
{
int c;
while(1)
{
c=mvgetch(11);
switch(c)
{
case ‘a‘: Pstart(cur&yidongx&yidongy2); huiPan();xianshi=0;break;
case ‘d‘: Pstart(cur&yidongx&yidongy3); huiPan();xianshi=0;break;
case ‘w‘: cur=zhuan(cur&yidongx&yidongy);Pstart(cur&yidongx&yidongy0);huiPan(); xianshi=0;break;
case ‘s‘: times=200;break;
default: break;
}
}
}
void xiayi(int n)
{
int i=0j=0;
for(i=n;i>3;i--)
{
for(j=0;j Pan[i][j]=Pan[i-1][j];
}
}
int haveman()
{
int i=0 j=0;
for(;i {
for(j=0;j if(Pan[i+4][j]==0)  break;
if(j==KUAN/2)

xiayi(i+4);
score+=10;
return 1;
}
}
return 0;
}
void msleep(int n)
{
usleep(n*1000);
}
int main()
{
init();
int i;
pthread_t id;
int r; 
r=pthread_create(&idNULL(void*)controlstdscr);
if(r!=0) mvaddstr(LINES-1(COLS-16)/2“control failed“);
qishi();
while(1)
{
while(1)
{
if(xianshi==1)
{
//qishi();
cleartu();
if(Pstart(cur&yidongx&yidongy1)==0) break;
huiPan();
msleep(times);
}
else
xianshi=1;
}
while(haveman());
if(over()) {endwin(); break;}
dengji=whdengji(score);
chongxin();
}
printf(“最后得分:%d\n“score);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      17752  2010-11-20 15:44  俄罗斯方块\a.out

     文件       8489  2010-11-17 11:26  俄罗斯方块\head.h

     文件    1836264  2010-09-18 18:26  俄罗斯方块\head.h.gch

     文件       2952  2010-11-17 11:24  俄罗斯方块\main.c

     目录          0  2010-12-11 10:11  俄罗斯方块

----------- ---------  ---------- -----  ----

              1865457                    5


评论

共有 条评论

相关资源