打字遊戲初級版——C語言

其中用到了圖形庫graphics.h

在網路課程中學到的。

#include <stdio.h>
#include <graphics.h>
#include <Windows.h>
#include <conio.h>
#include <time.h>
IMAGE backimg;
IMAGE bamime;
IMAGE state;
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")
void Play()//進入遊戲 ————有字母從上方落下,字幕的x座標為座標0-640(自定)y為一個自加的過程
{
cleardevice();//清屏
char TarLetter; //目標字母
char KeyLetter;
int LetterX;
int LetterY;
int speed=1;
int level=1;  //定義難度
int score = 0;
while (true)
{
setcolor(WHITE);
setbkcolor(BLACK);//清屏並把背景變為相應顏色
setbkmode(TRANSPARENT);//背景格式 這裡TRANSPARENT為透明
//putimage(0, 0, 640, 480, &backimg, 0, 0, SRCCOPY);
TarLetter = rand() % 26   65;//隨機出現大寫字母  26個字母中隨機取 A ascll 65
LetterX = rand() % 620;//現在的設定大小為640,防止字母跑出範圍
for (LetterY = 0; LetterY < 480; LetterY =speed)//通過letterY  來控制速度
{
cleardevice();//清屏  否則看起來是一個線條,因為迴圈一直往下掉
outtextxy(500, 440, L"退出請按回車");
setbkmode(TRANSPARENT);//背景格式 這裡TRANSPARENT為透明
//putimage(0, 0, 640, 480, &backimg, 0, 0, SRCCOPY);
settextstyle(20, 0,L"宋體");
outtextxy(LetterX, LetterY, TarLetter);//不斷按位置輸出目標字母
Sleep(20);//下落的時候一直清屏會閃動,防止字母的閃爍
if (kbhit())//判斷有按鍵按下則判斷
{
KeyLetter = getch();//接收按盤輸入
if (KeyLetter == '\n'|| KeyLetter == '\r')//如果是回車就退出系統
{
char s[3];// = (char)score;
s[0]=score/10;
s[1] = score % 10;
settextstyle(30, 0, L"黑體");
outtextxy(220, 150, L"得分為 ");
outtextxy(380, 150, s[0]);
outtextxy(385, 150, s[1]);
outtextxy(220, 200, L"即將退出遊戲");
Sleep(600);
exit(0);
}
else if(KeyLetter == TarLetter)
{
putimage(LetterX, LetterY, 271, 81,&bamime,0,0,SRCCOPY);
Sleep(30);//提供圖片播放時間
score  ;//分數加1;
level  ;
if (level == 10) //每輸入十個就 加快遊戲速度
{
level = 0;
speed  ;
}
break;//退出迴圈 再隨機生成字母
}
}
}
}
getch();
}
void Welcome()
{
loadimage(&backimg, L"state.jpg", 640, 480);
putimage(0, 0, 640, 480, &backimg, 0, 0, SRCCOPY);
PlaySound(L"Maroon 5 - One More Night.wav", NULL, SND_FILENAME | SND_LOOP | SND_ASYNC);
setcolor(RED);//字型顏色
setbkmode(TRANSPARENT);//背景格式 這裡TRANSPARENT為透明
settextstyle(60, 0, L"華文彩雲");//字型格式
outtextxy(140, 50, L"打字練習系統");//在指定座標列印文字
setcolor(BLUE);
settextstyle(20, 0, L"宋體");
outtextxy(100, 200, L"自學介面程式設計");
outtextxy(100, 250, L"打字練習系統");
outtextxy(100, 300, L"版本1.0");
outtextxy(100, 350, L"退出請按回車");
int colorR = 255, colorG = 0;
int speed = 5;
while (!kbhit())   //kbhit 表示接收任意鍵
{
setcolor(RGB(colorR, colorG, 0));//RGB(RED, GREEN, BLUE)顏色控制 設定3個數
outtextxy(260, 430, L"按空格鍵開始");
colorR  = speed;
colorG -= speed;
if (colorG > 255|| colorG < 0)
{
speed = -speed;//當變色
}
Sleep(20);//控制字型閃爍的速度
}
}
int main()
{
SetConsoleTitle(L"打字遊戲————Lee");
srand((unsigned int)time(NULL));
initgraph(640, 480);
loadimage(&state, L"state", 640, 480);
loadimage(&bamime, L"boom.jpg",271, 81);
Welcome();
Play();
getchar();
return 0;
}

載入了本地圖片,如果需要的話可以下載玩玩,不喜勿噴。http://pan.baidu.com/s/1o8CnVJk