C语言俄罗斯方块游戏课程设计

本文实例为大家分享了C语言实现俄罗斯方块游戏的具体代码,供大家参考,具体内容如下

1、设计流程

2、相关程序

#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
#include<time.h>
#include<dos.h>
#include<bios.h>
#define LEFT 0x4b00                             /*键盘码*/
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
#define   TIMER   0x1c        /*   时钟中断的中断号   */

struct Snow
{
int x;
int y;
int speed;
}snow[100];
typedef struct
{
int box[4][4];
int color;
int next;
}SHAPE;
int x=0,y=4,form[16][12]={            /*x,y是用作记录每个方块的最左上角的编号*/
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1,1,1},
};                      /*俄罗斯方块初始化界面*/
SHAPE shapes[19]={
{1,0,0,0,
   1,0,0,0,
   1,1,0,0,
   0,0,0,0,CYAN,1},
{1,1,1,0,
   1,0,0,0,
   0,0,0,0,
   0,0,0,0,CYAN,2},
{1,1,0,0,
   0,1,0,0,
   0,1,0,0,
   0,0,0,0,CYAN,3},
{0,0,0,0,
   0,0,1,0,
   1,1,1,0,
   0,0,0,0,CYAN,0},
{0,1,0,0,
   0,1,0,0,
   1,1,0,0,
   0,0,0,0,MAGENTA,5},
{1,0,0,0,
   1,1,1,0,
   0,0,0,0,
   0,0,0,0,MAGENTA,6},
{1,1,0,0,
   1,0,0,0,
   1,0,0,0,
   0,0,0,0,MAGENTA,7},
{1,1,1,0,
   0,0,1,0,
   0,0,0,0,
   0,0,0,0,MAGENTA,4},
{1,0,0,0,
   1,1,0,0,
   0,1,0,0,
   0,0,0,0,YELLOW,9},
{0,1,1,0,
   1,1,0,0,
   0,0,0,0,
   0,0,0,0,YELLOW,8},
{0,1,0,0,
   1,1,0,0,
   1,0,0,0,
   0,0,0,0,BROWN,11},
{1,1,0,0,
   0,1,1,0,
   0,0,0,0,
   0,0,0,0,BROWN,10},
{0,1,0,0,
   1,1,1,0,
   0,0,0,0,
   0,0,0,0,WHITE,13},
{1,0,0,0,
   1,1,0,0,
   1,0,0,0,
   0,0,0,0,WHITE,14},
{1,1,1,0,
   0,1,0,0,
   0,0,0,0,
   0,0,0,0,WHITE,15},
{0,1,0,0,
   1,1,0,0,
   0,1,0,0,
   0,0,0,0,WHITE,12},
{1,0,0,0,
   1,0,0,0,
   1,0,0,0,
   1,0,0,0,RED,17},
{1,1,1,1,
   0,0,0,0,
   0,0,0,0,
   0,0,0,0,RED,16},
{1,1,0,0,
   1,1,0,0,
   0,0,0,0,
   0,0,0,0,BLUE,18}
}; 

int TimerCounter=0;
int snownum=0;
int size;
int change1=10;
int annal[4][2],score=0,level=0,color,Boxnumber;
void plot();
void operation();
void *save1,*save2;
void Copy();
void DrawSnow();
void Pr();
void   interrupt   (   *oldhandler)();
void   interrupt   newhandler( )
{
TimerCounter++;
TimerCounter==36;
oldhandler();
}
void   SetTimer(void   interrupt   (*IntProc)())
{
oldhandler=getvect(TIMER);
disable();                /*   设置新的时钟中断处理过程时,禁止所有中断   */
setvect(TIMER,IntProc);
enable();               /*   开启中断   */
}
void   KillTimer()
{
disable();
setvect(TIMER,oldhandler);
enable();
}
void main()
{
int gdriver=DETECT,gmode;
SetTimer(newhandler);                      /*   修改时钟中断   */
registerbgidriver(EGAVGA_driver);
initgraph(&gdriver,&gmode,"c:\\turboc2");
Copy();
DrawSnow();
closegraph();
initgraph(&gdriver,&gmode,"E:\\TC20H\\INCLUDE\\GRAPHICS.H");        /*初始化图形*/
plot();
operation();
getch();
}
  void Copy()
{
setcolor(0);
setfillstyle(SOLID_FILL,15);
fillellipse(200,200,4,4);
size=imagesize(196,196,204,204);
save1=malloc(size);
save2=malloc(size);
getimage(196,196,204,204,save1);
getimage(96,96,104,104,save2);
}
void Pr()
{
int fr[]={392,392,440,294,262,262,220,294,392,392,
           440,532,440,392,262,262,220,294,392,294,
           262,247,220,196,392,294,330,294,262,262,
           220,294,330,294,262,294,22,247,220,196};
setcolor(change1/10);
settextstyle(0,0,3);
outtextxy(100,200,"Welcome to our Game!!!”);
sound(fr[change1/10]);
}
void DrawSnow()
{
int i;
int sx[62];
randomize();
for(i=0;i<62;i++)
sx[i]=(i+2)*10;
cleardevice();
while(!kbhit())
{
Pr();
if (snownum!=100)
{
    snow[snownum].speed=2+random(5);
    i=random(62);
    snow[snownum].x=sx[i];
    snow[snownum].y=10-random(100);
}
for(i=0;i<snownum;i++)
   putimage(snow[i].x,snow[i].y,save2,COPY_PUT);
  Pr();
if(snownum!=100)
   snownum++;
/*delay(300);*/
setfillstyle(SOLID_FILL,15);
for(i=0;i<snownum;i++)
   {
    snow[i].y+=snow[i].speed;
    putimage(snow[i].x,snow[i].y,save1,COPY_PUT);
    if(snow[i].y>500)
    snow[i].y=10-random(200);
   }
change1++;
if(change1==140)
change1=10;
}
nosound();
}
void plot()
{
int i,j;
char ch1[]={24,'-','R','o','l','l','\0'},
     ch2[]={25,'-','D','o','w','n','w','a','r','d','s','\0'},
     ch3[]={26,'-','T','u','r','n',' ','L','e','f','t','\0'},
     ch4[]={27,'-','T','u','r','n',' ','R','i','g','h','t','\0'};
setcolor(LIGHTGRAY);
rectangle(200,30,350,255);
i=0;
while((i++)<10)
  line(200+i*15,30,200+i*15,255);
i=0;
while((i++)<15)
  line(200,30+i*15,350,30+i*15);
setcolor(WHITE);
rectangle(170,270,390,330);
outtextxy(190,280,ch1);
outtextxy(270,280,ch2);
outtextxy(190,300,ch3);
outtextxy(290,300,ch4);
outtextxy(190,320,"Esc-Exit");
settextjustify(1,1);
outtextxy(390,50,"score");
outtextxy(390,100,"lexel");
outtextxy(390,150,"Next box");
outtextxy(390,65,"0");
outtextxy(390,115,"0");
}
void nextboxfun(SHAPE shapes[],int i)
{
int m,n;
for(m=0;m<4;m++)
   for(n=0;n<4;n++)
    if(shapes[i].box[m][n])
    {
     setfillstyle(1,shapes[i].color);
     bar(370+n*15+1,180+m*15+1,370+n*15+15-1,180+m*15+15-1);
     setcolor(LIGHTGRAY);
     rectangle(370+n*15,180+m*15,370+n*15+15,180+m*15+15);
    }
}
int Leftmobile()
{
int m,k=-1;         /*暂时存放annal中的坐标数据,用来判断左移是否成立*/
for(m=0;m<4;m++)
{
   if(annal[m][0]!=k)
   {
    if(form[annal[m][0]][annal[m][1]-1])
     return(0);
    k=annal[m][0];
   }
}
return(1);
}
int Rightmobile()
{
int m,k=-1;
for(m=3;m>=0;m--)
{
   if(annal[m][0]!=k)
   {
    if(form[annal[m][0]][annal[m][1]+1])
     return(0);
    k=annal[m][0];
   }
}
return(1);
}
int Downmobile()
{
int m;
for(m=0;m<4;m++)
   form[annal[m][0]][annal[m][1]]=2;     /*将方块此时的位置设置成2以方便后面的判断*/
for(m=0;m<4;m++)
{
   if(form[annal[m][0]+1][annal[m][1]]==1)          /*如果等于1说明此处已经有方块*/
   {
    for(m=0;m<4;m++)/*将原本数值还原*/
     form[annal[m][0]][annal[m][1]]=1;
    return(0);
   }
}
for(m=0;m<4;m++)                        /*将原本数值还原*/
   form[annal[m][0]][annal[m][1]]=1;
return(1);
}
void LeftRedraw()
{
int m;
y--;
for(m=0;m<4;m++)
{
   setfillstyle(1,BLACK);
bar(200+(annal[m][1]-1)*15+1,30+annal[m][0]*15+1,200+(annal[m][1]-1)*15+15-1,30+annal[m][0]*15+15-1);                     /*将原图像位置设置为黑色框*/
}
for(m=0;m<4;m++)
   form[annal[m][0]][annal[m][1]]=0;
for(m=0;m<4;m++)
{
   annal[m][1]--;
   form[annal[m][0]][annal[m][1]]=1;
   setfillstyle(1,color);
bar(200+(annal[m][1]-1)*15+1,30+annal[m][0]*15+1,200+(annal[m][1]-1)*15+15-1,30+annal[m][0]*15+15-1);                        /*在新的位置重绘图像*/
}
}
void RightRedraw()
{
int m;
y++;
for(m=0;m<4;m++)
{
   setfillstyle(1,BLACK);
bar(200+(annal[m][1]-1)*15+1,30+annal[m][0]*15+1,200+(annal[m][1]-1)*15+15-1,30+annal[m][0]*15+15-1);           /*将原图像位置设置为黑色框*/
}
for(m=0;m<4;m++)
   form[annal[m][0]][annal[m][1]]=0;
for(m=0;m<4;m++)
{
 annal[m][1]++;
  form[annal[m][0]][annal[m][1]]=1;
  setfillstyle(1,color);
bar(200+(annal[m][1]-1)*15+1,30+annal[m][0]*15+1,200+(annal[m][1]-1)*15+15-1,30+annal[m][0]*15+15-1); }          /*在新的位置重绘图像*/
}
void DownRedraw()
{
int m,n;
x++;
for(m=0;m<4;m++)
{
   setfillstyle(1,BLACK);
bar(200+(annal[m][1]-1)*15+1,30+annal[m][0]*15+1,200+(annal[m][1]-1)*15+15-1,30+annal[m][0]*15+15-1);            /*将原图像位置设置为黑色框*/
}
for(m=0;m<4;m++)
   form[annal[m][0]][annal[m][1]]=0;
for(m=0;m<4;m++)
{
   annal[m][0]++;
   form[annal[m][0]][annal[m][1]]=1;
   setfillstyle(1,color); bar(200+(annal[m][1]-1)*15+1,30+annal[m][0]*15+1,200+(annal[m][1]-1)*15+15-1,30+annal[m][0]*15+15-1);                     /*在新的位置重绘图像*/
}
}
int UPmobile()
{
int m,n,k;
k=shapes[Boxnumber].next;/*k==此方块下一个方块的编号*/
for(m=0;m<4;m++)
   form[annal[m][0]][annal[m][1]]=2;
for(m=0;m<4;m++)
   for(n=0;n<4;n++)
   {
    if(form[x+m][y+n]==1&&shapes[k].box[m][n])
{
for(m=0;m<4;m++)
      form[annal[m][0]][annal[m][1]]=1;/*将2还原为1*/
     return(0);
}
}
 for(m=0;m<4;m++)
    form[annal[m][0]][annal[m][1]]=1;
   return(1);
}
void change()
{
int m,n,k,i=0;
k=Boxnumber=shapes[Boxnumber].next;/*等于要转变的方块编号*/
for(m=0;m<4;m++)
{
   setfillstyle(1,BLACK);
bar(200+(annal[m][1]-1)*15+1,30+annal[m][0]*15+1,200+(annal[m][1]-1)*15+15-1,30+annal[m][0]*15+15-1);        /*将原图像位置设置为黑色框*/
}
for(m=0;m<4;m++)               /*将原方块位置改为0*/
   form[annal[m][0]][annal[m][1]]=0;
for(m=0;m<4;m++)              /*重新记录新的形状坐标*/
   for(n=0;n<4;n++)
    if(shapes[k].box[m][n])
    {
     annal[i][0]=x+m;         /*annal更新新的坐标*/
     annal[i][1]=y+n;
     i++;
    }
    for(m=0;m<4;m++)              /*将新坐标设置为1并绘图*/
    {
     form[annal[m][0]][annal[m][1]]=1;
     setfillstyle(1,color);   bar(200+(annal[m][1]-1)*15+1,30+annal[m][0]*15+1,200+(annal[m][1]-1)*15+15-1,30+annal[m][0]*15+15-1)         ;/*在新的位置重绘图像*/
    }
}
void FulllineJudge()
{
void *p1;
int m,n,i,k,p,q;
char *ch;
if(!(p1=malloc(imagesize(200,30,350,255))))
{
   printf("开辟空间失败\n");
   getch();
   exit(1);
}
i=0;
for(m=14;m>=0;m--)          /*逐行判断是否有满行情况*/
{
   for(n=1;n<=10;n++)
   {
    if(!form[m][n])         /*如果有一个为0那么退出本行的循环*/
     break;
    else if(n==10)           /*1-10全为1*/
    {
     i++;            /*用来记录所消行数*/
     for(p=m;p>=1;p--)
      for(q=1;q<=10;q++)        /*所有行数信息下降1行*/
       form[p][q]=form[p-1][q];
      for(p=1;p<=10;p++)          /*最顶行清零*/
       form[0][p]=0;
      getimage(200,30,350,30+m*15,p1);
      putimage(200,45,p1,0);
      m++;
    }
   }
  if(i==4)           /*如果已经消掉4行则不用再进行判断*/
    break;
}
if(i==1)              /*一次所消行数进行不同分数奖励*/
   score+=10;
if(i==2)
   score+=30;
if(i==3)
   score+=60;
if(i==4)
   score+=100;
setcolor(WHITE);                        /*绘图部分*/
sprintf(ch,"%d",score);
setfillstyle(1,BLACK);
bar(380,60,400,80);
outtextxy(390,65,ch);
level=score/500;
setfillstyle(1,BLACK);
bar(380,110,400,130);
sprintf(ch,"%d",level);
outtextxy(390,115,ch);
free(p1);
}
void operation()
{
int newbox,nextbox,m,n,k=1,i,KEY,l,o;
o=1;
srand((unsigned)time(NULL));
nextbox=rand()%19;
while(o)
{
   if(k)           /*产生新方块*/
   {
    x=0,y=4;           /*还原x,y*/
    Boxnumber=newbox=nextbox;
    nextbox=rand()%19;
    setfillstyle(1,BLACK);
    bar(360,160,430,250);
    nextboxfun(shapes,nextbox);
    i=0;
    color=shapes[newbox].color;
    for(m=0;m<4;m++)
     for(n=0;n<4;n++)
      if(shapes[newbox].box[m][n])  /*将新方块在俄罗斯方块界面的坐标记录在annal中*/
      {
       annal[i][0]=0+m;              /*记录坐标*/
       annal[i][1]=4+n;
       if(form[0+m][4+n])
       {
        setfillstyle(1,BLACK);
        bar(240,130,310,150);
        setcolor(RED);
        outtextxy(275,140,"GAME OVER");
        getch();
        o=0;
       }
       form[0+m][4+n]=1;
       setfillstyle(1,shapes[newbox].color);
       bar(200+n*15+1+45,30+m*15+1,200+n*15+15-1+45,30+m*15+15-1);/*将对应的位画上颜色*/
       setcolor(LIGHTGRAY);
       rectangle(200+n*15+45,30+m*15,200+n*15+15+45,30+m*15+15);
       i++;
      }
      k=0;
    }
  if(bioskey(1))                             /*读取键盘*/
    KEY=bioskey(0);
   else
    KEY=0;
   switch(KEY)
   {
    case LEFT:/*左*/
    if(Leftmobile())
     LeftRedraw();break;
    case RIGHT:/*右*/
    if(Rightmobile())
     RightRedraw();break;
    case DOWN:/*下*/
    if(Downmobile())
     DownRedraw();
    else
    {FulllineJudge();k=1;}break;
   case UP:/*变形*/
    if(UPmobile())
     change();break;
   case ESC:o=0;break;
   }
   if(TimerCounter>(36-level*2))           /*TimerCounter每秒钟增加18*/
   {
    TimerCounter=0;
    if(Downmobile())                        /*作下降处理*/
     DownRedraw();
    else
    {FulllineJudge();k=1;}
   }
}
KillTimer();
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言源码实现俄罗斯方块

    介绍 俄罗斯方块(Tetris, 俄文:Тетрис)是一款电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢·帕基特诺夫发明,故得此名.俄罗斯方块的基本规则是移动.旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分.由于上手简单.老少皆宜,从而家喻户晓,风靡世界. 源码 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> #includ

  • C语言代码实现俄罗斯方块

    这里为大家敲写一段怎样用C语言实现俄罗斯方块: 首先推荐大家使用CodeBlocks这个软件,方便添加不同的工程. 代码中有很多注释便于理解! 下面是效果图和全部的代码以及注释,大家可以观看并自己新增内容! 1.首先是main.c文件: #include <stdio.h> #include <stdlib.h> #include "game.h" int main() { gameInit(); return 0; } 2.然后是mywindows.h文件:

  • C语言Turbo C下实现俄罗斯方块

    本文实例为大家分享了C语言俄罗斯方块的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <dos.h> #include <conio.h> #include <graphics.h> #include <stdlib.h> #ifdef __cplusplus #define __CPPARGS ... #else #define __CPPARGS #endif #define MINBOXSIZE

  • VC++ 6.0 C语言实现俄罗斯方块详细教程

    今天把我之前写的大作业分享一下吧,并教你们如何实现,希望你们看了前面的教程也能自己写一个. 1.要先下载一个 graphics.h 的头文件来绘图. 2.初始化窗口:initgraph(x, y);这是先创建一个窗口的函数,以左上角为(0,0),向右为x轴,向下为y轴,其中x表示长x个单位,y表示宽y个单位. 3.关闭图像窗口:closegraph();结束时用来关闭用的. 4.按任意键继续:getch();这个就和getchar();差不多,为了防止以运行完就关了,这样能停顿一下,他的头文件是

  • C语言实现俄罗斯方块源代码

    本文实例为大家分享了C语言实现俄罗斯方块的具体代码,供大家参考,具体内容如下 GitHub:[C语言]实现俄罗斯方块源代码 Head.h #ifndef _HEAD_H_ #define _HEAD_H_ #include<graphics.h> #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<time.h> #include<string.h> #def

  • C语言实现俄罗斯方块课程设计

    本文实例为大家分享了C语言实现俄罗斯方块的具体代码,供大家参考,具体内容如下 该课程设计用VC++6.0操作如下: 1.文件->新建->文件->左边选C/C++ Header File->右边文件名命名为"tetris.h"->路径假定为桌面文件夹:tetris->确定.然后将下面红色字体标记的"头文件"代码粘贴至其中,保存并退出(或者关闭工作空间). 2.文件->新建->文件->左边选C/C++ Header

  • 基于VC 6.0使用C语言实现俄罗斯方块

    本文实例为大家分享了C语言实现俄罗斯方块的具体代码,供大家参考,具体内容如下 裸写的俄罗斯方块的代码,有意见或者想征用,直接评论留言即可. 效果如下: 代码: /***************************************************************/ /*俄罗斯方块的实现 * 基于VC 6.0 编译链接即可运行 * 已实现的功能: * 1.初步的规划及背景图案的显示 * 2.四种方块实现左右移动.下键加速.上键变形(两种变形)功能 * 3.下落方块碰壁及触

  • C语言实现俄罗斯方块

    本文实例为大家分享了C语言俄罗斯方块的具体代码,供大家参考,具体内容如下 本代码运行环境是Windows下的VS2013 首先创建tetris.cpp 然后依次创建view.h以及view.cpp.model.h以及model.cpp. 代码如下: view.h #pragma once #include <stdio.h> void ShowBackground(); void ShowBrick(); void ShowGame(); void OnLeft(); void OnRight

  • C语言实现俄罗斯方块小游戏

    C语言实现俄罗斯方块小游戏的制作代码,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #define TTY_PATH "/dev/tty" #define STTY_ON "stty raw -echo -F" #define STTY_OFF "stty -raw echo -F" int map[21][14]; char

  • C语言俄罗斯方块游戏课程设计

    本文实例为大家分享了C语言实现俄罗斯方块游戏的具体代码,供大家参考,具体内容如下 1.设计流程 2.相关程序 #include<stdio.h> #include<stdlib.h> #include<graphics.h> #include<time.h> #include<dos.h> #include<bios.h> #define LEFT 0x4b00 /*键盘码*/ #define RIGHT 0x4d00 #define

  • C语言通讯录管理系统课程设计

    本文实例为大家分享了C语言通讯录管理系统课程设计,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <windows.h> struct Sign{ char name[8]; char sex[4]; char birthday[12]; char phone[11]; char postcode[7]; char addr[30]; struct Sign *next; }pe; char Ph

  • 基于C语言扫雷游戏的设计与实现

    目录 1 引言 2 相关工作 3 本文方法 4 结果与分析 5 总结 整体代码 1 引言 伴随着信息技术的快速发展,近年来,人们的生活已经离不开计算机.生活娱乐几乎都是在计算机上进行的.其中的扫雷游戏就是之一.扫雷游戏是微软公司在1992年在windows系统上发布的一款益智类小游戏,直到今天这款小游戏依然存在,可见此款游戏的成功.本文将用Visual Studio 2019作为开发工具来模拟实现扫雷游戏.经过大一第一学期的学习,我们对C语言的理论及其相关知识有了一定的认识和了解.本文可以把我们

  • java实现连连看游戏课程设计

    本文为大家分享了JAVA语言课程设计:连连看小游戏,供大家参考,具体内容如下 1.设计内容 界面中有5*10的界面,图中共有6种不同的图片,每两个相同的图片连接在一起,如果连线中转折的次数<=3次,两张图片可同时削掉,否则不能削去. 2.设计要求 色彩鲜艳,鼠标点击键好用,以固定时间将所有图片消掉为胜利,若时间到了,图片还有,则闯关失败. 3.设计思想 1)    搭建界面,首先搭建简单界面,可以先用按钮代替图片,并且行列可以先少做一些,如下图所示:2)    每次用户选择两个图形,如果图形满足

  • 一个MIDP俄罗斯方块游戏的设计和实现

    文章来源:csdn 作者:陈万飞 作者简介 陈万飞,男,中南大学数软系学士,曾任北京长城软件高级程序员,系统分析师.有较为丰富的j2se,j2ee开发经验.目前致力于j2me研究工作.可通过chen_cwf@163.net与他联系 摘要 本文给出了一个基于MIDP1.0的俄罗斯方块游戏的设计方案,并给出全部实现源代码.该游戏的最大特色是屏幕自适应,无论各种手机,PDA的屏幕大小如何,该游戏总是能获得最佳的显示效果.游戏在J2me wireless toolkit 2.1的4种模拟器上测试通过.

  • C语言图书管理系统课程设计

    这是本人大一第二学期初C语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中竟然在QQ网络硬盘中找到了当初的teta版,发布于此,以作纪念. C 源代码如下: #include<stdio.h> #include<stdlib.h> #include<string.h> struct book{ char book_name[30]; int bianhao; double price; char author[20]; char state[20]; cha

  • C语言学生成绩管理系统课程设计

    学生成绩管理系统是比较适合初学者的.它涵盖了c语言几乎知识.对于学了c语言的人,把这个课程设计搞好(当然自己能设计出来是要有很好的基础).不管自己能不能够完成,最重要的是能弄懂.参考其他资料,试着自己编写是不错的选择.这个课程设计也是我参照资料,自己编写的.自己适当地增加了一些功能.不过,编的不够那么专业吧. #include<stdio.h> #include<string.h> #include<stdlib.h> #define size 100 char* cl

  • C语言银行系统课程设计

    本文为大家分享了C语言银行系统课程设计,供大家参考,具体内容如下 main.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <windows.h> #define MaxNum 200 #define N_P 6 typedef struct { int AccountNumber[3]; char name[20];

  • C语言课程设计之抽奖系统

    本文实例为大家分享了C语言课程设计之抽奖系统的具体代码,供大家参考,具体内容如下 该程序的功能包括: 1.设置中奖人员 2.设置内幕人员 3.添加功能 4.删除功能 5.颜色设置 6.开发人员介绍 在使用该系统之前,请先在你程序保存的位置建一个17计科2.txt文档,里面填上学号和姓名,例如:25 贺志营. 建好txt文档后就可以直接运行了 运行截图及代码如下: 主界面: 功能介绍界面: 设置奖项界面: 开始抽奖界面不好演示,它是个动态的,下面有代码,可以自己运行下 程序代码: #include

随机推荐