1. 程式人生 > >C語言實現打字通遊戲

C語言實現打字通遊戲

打字母遊戲
通過控制檯和一些簡單的C語言函式完成一個簡單的打字母遊戲,練習C語言基本語法和一些簡單的邏輯。

注意規範

  1. 程式碼中注意不要出現魔數,用巨集定義代替,儘量防止魔數的出現。
  2. .每個函式實現自己的功能,C語言每個函式程式碼儘量保持在20行以下 。
  3. 儘量減少全域性變數的使用。(我偷懶使用了(๑•ᴗ•๑))。
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <stdbool.h>
#include <time.h>
#include <conio.h>

#define MIND_LINE 15		//文字居中列印的行數
#define MIND_SPACE 40		//文字居中列印的列數
#define MAX_LINE   30		//介面的最大顯示行數
#define MAX_SCORE  5		//最大分數
#define MAX_LEVEL  10		//最大等級

int SCORE = 0;				//起始分數
int LEVEL = 1;				//起始等級
int SLEEPTIME = 500;		//起始等待時間


//列印換行
void PrintEnter(int Line);
//列印空格
void PrintSpace(int Space);

//列印開始歡迎介面
void WelcomeMenu(char *Str);
//設定遊戲介面標題
void GameTitle();

//遊戲開始
void GameStart();
//遊戲結束
void GameOver(bool Ret);
//遊戲暫停
void GamePause();

//顯示字母
void ShowaLphabet();	
//遊戲控制
bool isCheckTrue(char iLphabet);

//判斷是否超過最大行數
bool isOverStep(int Index);
//判斷是否最大分數
bool isMaxScore(int Score);
//判斷是否最大等級
bool isMaxLevel(int Level);


void PrintEnter(int Line)
{
	for (int i = 0; i < Line; i++)
	{
		printf("\n");
	}
}

void PrintSpace(int Space)
{
	for (int i = 0; i < Space; i++)
	{
		printf(" ");
	}
}

void WelcomeMenu(char *Str)
{
	PrintEnter(MIND_LINE);
	PrintSpace(MIND_SPACE);
	printf("%s\n", Str);
	getchar();
}

void GameStart()
{
	GameTitle();
	ShowaLphabet();
}

void GamePause()
{
	system("cls");
	PrintEnter(MIND_LINE);
	PrintSpace(MIND_SPACE);
	printf("Game Pause, Press 1 to Continue!");
	while (_getch() != '1');
	system("cls");
}

void GameTitle()
{
	system("cls");
	PrintSpace(12);
	printf("Leves[%d]", LEVEL);
	PrintSpace(50);
	printf("Score[%d]\n", SCORE);
	PrintSpace(12);
	printf("Press 1 to Prase");
	PrintSpace(40);
	printf("Press 2 to Exit\n");
	for (int i = 0; i < 90; i++)
	{
		printf("_");
	}
	printf("\n");
}

void GameOver(bool Ret)
{
	system("cls");
	if (Ret)
	{
		PrintEnter(MIND_LINE);
		PrintSpace(MIND_SPACE);
		printf("Congratulations,You are across the game!!!");
	}
	else
	{
		PrintEnter(MIND_LINE);
		PrintSpace(MIND_SPACE);
		printf("You are failed ths game!!!");
	}
	getchar();
	exit(0);
}

void ShowaLphabet()
{
	srand((unsigned)time(NULL));
	char iLphabet = 'A' + rand() % 26;
	int iSpace = rand() % 70;
	int LineIndex = 0;
	while (true)
	{
		LineIndex++;
		PrintSpace(iSpace);
		printf("%c",iLphabet);
		Sleep(SLEEPTIME);
		printf("\b \n");		/*通過退格和空格消除字母*/
		if (isOverStep(LineIndex))
		{
			LineIndex = 0;
			SCORE--;
			break;
		}
		if(isCheckTrue(iLphabet))
		{
			SCORE++;
			if (isMaxScore(SCORE))
			{
				SCORE = 0;
				SLEEPTIME -= 10;
				LEVEL++;
				if (isMaxLevel(LEVEL))
				{
					GameOver(true);
				}
			}
			break;
		}
		if (SCORE < -10)
		{
			GameOver(false);
		}
	}
}

bool isOverStep(int Index)
{
	bool Ret = false;
	if (Index > MAX_LINE)
	{
		Ret = true;
	}
	return Ret;
}

bool isCheckTrue(char iLphabet)
{
	bool Ret = false;
	if (_kbhit())
	{
		char ch = _getch();
		if (ch == iLphabet)
		{
			Ret = true;
		}
		else if(ch == '1')
		{
			GamePause();
		}
		else if (ch == '2')
		{
			GameOver(false);
		}
		else
		{
			SCORE--;
		}
	}
	return Ret;
}

bool isMaxScore(int Score)
{
	bool Ret = false;
	if (Score > MAX_SCORE)
	{
		Ret = true;
	}
	return Ret;
}

bool isMaxLevel(int Level)
{
	bool Ret = false;
	if (Level > MAX_LEVEL)
	{
		Ret = true;
	}
	return Ret;
}

int main(void)
{
	WelcomeMenu("Press AnyKey to Start the Game!\n");
	while (true)
	{
		GameStart();
	}
	getchar();
	return 0;
}

相關推薦

C語言實現打字遊戲

打字母遊戲 通過控制檯和一些簡單的C語言函式完成一個簡單的打字母遊戲,練習C語言基本語法和一些簡單的邏輯。 注意規範 程式碼中注意不要出現魔數,用巨集定義代替,儘量防止魔數的出現。 .每個函式實現自己的功能,C語言每個函式程式碼儘量保持在20行以下 。 儘量減

C語言實現經典小遊戲貪吃蛇

純c語言寫的小遊戲,本人才疏學淺,程式碼有很多不足,僅供給初學者參考。 實現功能: ↑ ↓ ← →分別用來控制上下左右四個方向 空格暫停 esc退出遊戲 f1加速, f2 減速 蛇的長度越長,速度越快(速度有上限) 食物顏色隨機

基於C語言實現的掃雷遊戲

函式實現的功能: 1.佈置雷:用rand函式生成隨機座標再雷陣裡隨機佈雷 2.排雷:踩到雷炸死,不是雷,統計周圍一圈有⼏個雷,並記錄資訊放到另一個數組 實現原理: 1.雷的資訊儲存到一個二維陣列mine裡 2.排出來的雷存到另一個二維陣列show裡    

C語言實現一條龍小遊戲

一條龍小遊戲 一、程式碼構思 全部程式碼分為三個檔案:game.h, game.c, text.c(game.h用來申明所有用到的函式,game.c用來寫實現遊戲的程式碼,text.c用來除錯程式碼) 第一步將棋盤初始化為空格;第二步列印棋盤;第三步設計由玩家先走(在棋盤中放入X),然後電腦

C語言實現三子棋遊戲

game.h #ifndef __GAME_H__ #define __GAME_H__ #define _CRT_SECURE_NO_WARNINGS #include <string.h> #include <s

使用C語言實現隨機小遊戲原始碼

#include"stdio.h" #include"stdlib.h" #include"windows.h" int print() {     printf("\n\n+++++++++++++你會看見的數字和運算子+++++++++++++\n");   &

C語言實現掃雷小遊戲

本文將從一行行程式碼中詳解掃雷小遊戲,對每一個模組都使用詳細的註釋,使這個掃雷小遊戲簡單易懂。 首先,簡單分析掃雷的玩法,掃雷就是在一個棋盤中佈置適當數量的雷數玩家通過對雷陣的排查,來找出雷的位置。如果玩家選擇的座標周圍無雷將自動展開這片區域,若有雷會顯示雷數。

C語言實現猜數字遊戲 全乾貨!

知識點:隨機數的生成: srand((unsigned)time(NULL)): srand函式是隨機數發生器的初始化函式。原型:void srand(unsigned seed); 用法:它初始化隨機種子,會提供一個種子,這個種子會對應一個隨機數,如果使用相同的種子後面的ran

C++語言實現貪吃蛇遊戲

寫在前面 用C++語言寫遊戲再適合不過了,當然不是因為用它寫起來簡單,(相反那並不簡單),但是其效能絕對是其他語言沒法比的。所以這裡我會用C++實現一個貪吃蛇的遊戲。當然我可能有意隱瞞了你,因為我們不僅僅是用C++純語言來幹這件事,那會很彆扭,因為我們需要影象

C語言實現三子棋遊戲

先直接上程式碼: #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> //2.實現三子棋遊戲。 #include<Windows.h> //Sleep

C語言實現貪吃蛇遊戲(VC6.0)

轉自C語言網 今天筆者為大家展示C語言寫的貪吃蛇遊戲,讓大家玩一玩自己寫的遊戲~ 是純C語言哦~VC6.0開發 無問題 首先,開始介面: 遊戲介面如下: 程式碼如下: 筆者VC6.0下編寫,測試無問題,可複製程式碼直接到VC6原始檔下,字尾為.c檔案

C語言實現三子棋遊戲(意義版)

我還會再遇到ta。所以,這並不算是真正意義上得離別。雖然從近幾個月幾乎每天都跟ta走的頗近。每次得相遇都會讓我恍惚。我想躲著ta的一些,但是每次提起思緒卻總會跟ta不期而遇。遇時苦惱,別時著迷。昨日又與ta相遇,這一聚,就是六個多時辰。從正午窗外得鳴笛到回頭時到卷閘門刺耳的伸

分享我寫的2D格鬥遊戲C語言實現

fpm cal srm i2c cga wsb rpi blank iii Json、FastJson、Gson 數據結構對單鏈表進行數據排序 請教各位幾個小問題,有點暈了不太理解 StringUtil對字符串類型參數進行校驗的工具類 11r玖橇粱http://p.baid

C語言實現簡易2048小遊戲

blog 而在 而是 null 移動 是我 我們 空指針 主體 一直很喜歡玩這個小遊戲,簡單的遊戲中包含運氣與思考與策略,喜歡這種簡約又不失內涵的遊戲風格。於是萌生了用C語言實現一下的想法。 具體代碼是模仿這個:https://www.cnblogs.com/judgeyo

C語言實現的三子棋遊戲

oid operation endif while oar ini line 重新 被占用 頭文件 #ifndef __game_h__ #define __game_h__ #include <stdio.h> #include <stdlib.h>

C語言實現Socket簡單

簡單 置0 tin led AS accep sin ive receive 服務端 #include<stdio.h> #include<stdlib.h> #include<errno.h> #include<string.h

[日常練習] 3. 基於井字棋遊戲C語言實現

井字棋算是童年課堂上的與同桌默契配合的一大樂趣...躲避著老師“關切”的目光,在眼皮底下“頂風作案”,將“燈下黑”體現的淋漓盡致!在C語言中,也算是一個小的專案,今天,我們就用C語言來實現它!!!追逐童年的一份小樂趣! 遊戲介紹: “井字棋”也稱“三子棋”,需要一個3*3的棋盤。假設

[日常練習] 5. 基於掃雷遊戲C語言實現

#include "game.h" void InitBoard(char arr[ROWS][COLS], int rows, int cols, char set) { int i = 0; int j = 0; for(i=0; i<rows; i++) { for(j=0

C語言實現打飛機簡易遊戲(半完成版)

打飛機簡易遊戲(半完成版),如圖。 感謝 童晶 老師的教程,連結地址:http://study.163.com/forum/detail/1003961010.htm 未完成內容:①邊框繪製 ②多個敵機 ③敵機子彈 ④戰機生命 等等。 以下是程式碼。(在帶c99標準的codeblock

C語言實現簡單的三子棋小遊戲

函式實現的基本功能: 1.初始化棋盤:用空字元初始化 2.列印棋盤:控制列印九宮格來表示棋盤 3.玩家下棋:用P表示玩家的棋子 4.電腦隨機下棋:隨機生成座標,用0表示玩家的棋子 5.判斷輸贏:玩家贏,電腦贏,平局,繼續遊戲四種情況 多檔案實現: 測試部分test.