C語言實(shí)現(xiàn)飛機(jī)大戰(zhàn)
更新時(shí)間:2022年06月08日 09:34:22 作者:Object_in_java
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了C語言實(shí)現(xiàn)飛機(jī)大戰(zhàn)的具體代碼,供大家參考,具體內(nèi)容如下

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<Windows.h>
int score = 0;
int plane_col, plane_row;//·é?ú????
int bullet_col,bullet_row;//×óμˉμ?????
int area_height, area_width;//ó??·??óò ?0-n-1
int enemy_col, enemy_row;
int enemy_vh, enemy_vv;
int a[100][100] = { 0 };
void gotoxy(int x, int y) {//?¢D??
?? ?HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
?? ?COORD pos;
?? ?pos.X = x;
?? ?pos.Y = y;
?? ?SetConsoleCursorPosition(handle, pos);
}
void HideCursor() {
?? ?CONSOLE_CURSOR_INFO cursor_info = { 1,0 };
?? ?SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
void startup()//3?ê??ˉ?
{
?? ?area_height = 20;
?? ?area_width = 30;
?? ?plane_col = 14;
?? ?plane_row = 10;
?? ?
?? ?bullet_col = 0;
?? ?bullet_row = -1;
?? ?enemy_col = rand() % area_width;
?? ?enemy_row = 0;
?? ?enemy_vh = 0;
?? ?enemy_vv = 1;
}
//int[][] planeArray() {
//?? ?
//?? ?a[plane_col][plane_row] = 1;
//?? ?for (int i = plane_col - 2; i < plane_col + 2; i++)
//?? ??? ?a[i][plane_row + 1] = 1;
//?? ?a[plane_col - 1][plane_row + 2] = 1; a[plane_col + 1][plane_row + 2] = 1;
//
//?? ?return a;
//}
void show()//?e??×?·?é¨?è2¢′òó??
{
?? ?gotoxy(0, 0);
?? ?int i, j;
?? ?//??ê?
?? ?//system("cls");
?? ?for (i = 0; i < area_height; i++)//DD񂅣
?? ?{
?? ??? ?for (j = 0; j < area_width; j++)//áD±éàú
?? ??? ?{
?? ??? ??? ?if (i == plane_row && j == plane_col)
?? ??? ??? ?{
?? ??? ??? ??? ?printf("*");
?? ??? ??? ?}
?? ??? ??? ?else if (i == bullet_row && j == bullet_col)
?? ??? ??? ??? ?printf("|");
?? ??? ??? ?else if (i == enemy_row && j == enemy_col)
?? ??? ??? ??? ?printf("@");
?? ??? ??? ?else printf(" ");
?? ??? ?}
?? ??? ?printf("\n");
?? ?}
?? ?printf("score:%d\n",score);
}
void updateWithInput()//???¥£?????·é?úò??ˉ£?é??÷
{?
?? ?char input;
?? ?//μè′yó??§μ?ê?è?£????¥
?? ?if (kbhit()) {
?? ??? ?input = getch();
?? ??? ?switch (input)
?? ??? ?{
?? ??? ?case 'w':
?? ??? ??? ?if(plane_row != 0)
?? ??? ??? ?plane_row--; break;
?? ??? ?case 'a':
?? ??? ??? ?if(plane_col != 0)
?? ??? ??? ?plane_col--; break;
?? ??? ?case 'd':
?? ??? ??? ?if(plane_col != area_width)
?? ??? ??? ?plane_col++; break;
?? ??? ?case 's':
?? ??? ??? ?if(plane_row != area_height)
?? ??? ??? ?plane_row++; break;
?? ??? ?case ' ':
?? ??? ??? ?if (bullet_row < 0)//?á??à???óD×óμˉ
?? ??? ??? ?{
?? ??? ??? ??? ?bullet_row = plane_row - 1;
?? ??? ??? ??? ?bullet_col = plane_col;
?? ??? ??? ?}
?? ??? ??? ?break;
?? ??? ?default:
?? ??? ??? ?break;
?? ??? ?}
?? ?}
}
int IsCrash() {
?? ?//?D???ò·?·é?úê?·?×1?ù?
?? ?if (enemy_col == plane_col && enemy_row == plane_row) {
?? ??? ?return 1;
?? ?}
?? ?return 0;
}
void updateWithourInput()//×óμˉò??ˉó?μDè?ò??ˉ?
{
?? ?//?üD?
?? ?bullet_row--;
?? ?static int count = 0;
?? ?count ++;
?? ?if (count == 40) {
?? ??? ?enemy_row += enemy_vv;
?? ??? ?enemy_col += enemy_vh;
?? ??? ?count = 0;
?? ?}
?? ?
}
void crack() {//?÷?ùμDè??
?? ?if(enemy_row > area_height){
?? ??? ?bullet_row = -1;
?? ??? ?enemy_row = -1;
?? ??? ?enemy_col = rand() % area_height;
?? ?}
?? ?else if (bullet_col == enemy_col && bullet_row == enemy_row) {
?? ??? ?score += 10;
?? ??? ?bullet_row = -1;
?? ??? ?enemy_row = -1;
?? ??? ?enemy_col = rand() % area_height;
?? ?}
}
int IsFinish() {//ó??·ê?·??áê??
?? ?if (score == 100) {
?? ??? ?system("cls");
?? ??? ?printf("congretulations!!!");
?? ??? ?score = 0;
?? ??? ?_sleep(500);//?è?Yí£?ú??êμ·?o?è?D??ˉ?
?? ??? ?system("pause");
?? ??? ?return 1;
?? ?}
?? ?else if (IsCrash() == 1) {
?? ??? ?system("cls");
?? ??? ?printf("you have lost!!!");
?? ??? ?score = 0;
?? ??? ?_sleep(500);
?? ??? ?system("pause");
?? ??? ?return 1;
?? ?} ? ? ? ? ?
?? ?
?? ?return 0;
}
int main()
{
?? ?HideCursor();
?? ?startup();
?? ?while (1)
?? ?{
?? ??? ?show();
?? ??? ?updateWithInput();
?? ??? ?updateWithourInput();
?? ??? ?crack();
?? ??? ?if(IsFinish()==1){
?? ??? ??? ?startup();
?? ??? ??? ?continue;
?? ??? ?}
?? ?}
?? ?return 0;
}以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- C語言實(shí)現(xiàn)飛機(jī)大戰(zhàn)程序設(shè)計(jì)
- C語言用封裝方法實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲
- C語言實(shí)現(xiàn)簡單的飛機(jī)大戰(zhàn)游戲
- C語言實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲完整代碼
- C語言控制臺(tái)實(shí)現(xiàn)字符飛機(jī)大戰(zhàn)
- C語言版飛機(jī)大戰(zhàn)游戲
- C語言代碼實(shí)現(xiàn)飛機(jī)大戰(zhàn)
- C語言之飛機(jī)大戰(zhàn)游戲
- C語言實(shí)現(xiàn)簡單飛機(jī)大戰(zhàn)
- C語言實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲
相關(guān)文章
C/C++實(shí)現(xiàn)的游戲角色名稱名字隨機(jī)生成代碼
這篇文章主要介紹了C/C++實(shí)現(xiàn)的游戲角色名稱名字隨機(jī)生成代碼,本文特別針對(duì)一些古典游戲的角色名稱進(jìn)行隨機(jī)生成,需要的朋友可以參考下2015-05-05
基于Matlab實(shí)現(xiàn)鯨魚優(yōu)化算法的示例代碼
鯨魚優(yōu)化算法(WOA)是澳大利亞學(xué)者M(jìn)irjaili等于2016年提出的群體智能優(yōu)化算法,根據(jù)座頭鯨的捕獵行為實(shí)現(xiàn)優(yōu)化搜索的目的。本文將利用Matlab實(shí)現(xiàn)這一算法,需要的可以參考一下2022-04-04
深入二叉樹兩個(gè)結(jié)點(diǎn)的最低共同父結(jié)點(diǎn)的詳解
本篇文章是對(duì)二叉樹兩個(gè)結(jié)點(diǎn)的最低共同父結(jié)點(diǎn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05

