C语⾔C++编程基础⼊门经典⼩游戏坦克⼤战
C语⾔是⾯向过程的,⽽C++是⾯向对象的
C和C++的区别:
C是⼀个结构化语⾔,它的重点在于算法和数据结构。C程序的设计⾸要考虑的是如何通过⼀个过程,对输⼊(或环境条件)进⾏运算处理得到输出(或实现过程(事务)控制)。
C++,⾸要考虑的是如何构造⼀个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最⼤区别在于它们的⽤于解决问题的思想⽅法不⼀样。之所以说C++⽐C更先进,是因为“ 设计这个概念已经被融⼊到C++之中 ”。
C与C++的最⼤区别:在于它们的⽤于解决问题的思想⽅法不⼀样。之所以说C++⽐C更先进,是因为“ 设计这个概念已经被融⼊到C++之中”,⽽就语⾔本⾝⽽⾔,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,⼀样不⾏。⽽且,“C加上好的设计”也能写出⾮常好的东西。
⼩编推荐⼀个学C语⾔/C++的学习裙【 ⼆六三,六⼋⼋,⼆七六 】,⽆论你是⼤⽜还是⼩⽩,是想转
⾏还是想⼊⾏都可以来了解⼀起进步⼀起学习!裙内有开发⼯具,很多⼲货和技术资料分享!
game.h下的代码
#ifndef _GAME_
#define _GAME_
#include"tankdef.h"
void ImportMapGameAreaArry();
void ImportHomeGameAreaArry();
void ImportMyTankGameAreaArry();
void DrawGame_Info();
int ConsoleSwtichArrX(int x);
int ConsoleSwtichArrY(int y);
void TankAdjustUp(Tank *ptank, Dir dir); void TankAdjustLeft(Tank *ptank);
void TankAdjustRight(Tank *ptank);
void TankAdjustDown(Tank *ptank);
void TankAdjustUpE(Tank *ptank, Dir dir); //发射炮弹,参数为发射改炮弹的坦克SHELLNODE *shot(Tank *ptank);
c语言编程小游戏
//炮弹向上移动
int ShellMoveUP(SHELLNODE *psn);
int ShellMoveDOWN(SHELLNODE *psn); int ShellMoveLEFT(SHELLNODE *psn);
int ShellMoveRIGHT(SHELLNODE *psn);
//检查链表
SHELLNODE *CheckLinkList(int owner,int x,int y);
//线程处理函数
DWORD WINAPI ShellDispes(LPVOID lpParam);
//void WriteFile1();
void HitTarget(SHELLNODE *psn, int tagert);
//根据炮弹的坐标销毁相应的坦克
void DestroyEnemy(SHELLNODE *psn);
/
/清空敌⽅坦克的数据
void ClearEnemyTank(Tank *ptank);
//炮弹节点的⽐较函数
int ShellCompareByNum(NODE *pNode1, NODE *pNode2); //敌⽅坦克移动函数
DWORD WINAPI EnemyMove(LPVOID lpParam);
#endif
game.c下的代码
#define _CRT_SECURE_NO_WARNINGS
#include"tankdef.h"
#include"interface.h"
#include
#include
#include
#include
#include "game.h"
int g_start;
void Game_Start()
{
HANDLE hThread;
//初始化临界区资源
system("mode con cols=95 lines=25");
SetConsoleTitle(TEXT("坦克⼤战"));
InitializeCriticalSection(&g_cs);
srand((unsigned int)time(NULL));
DrawGameBord();
DrawGame_Info();
LoadMap();
DrawHome();
InitMyTnak(&MyselfTanke);
DrawTnak(&MyselfTanke);
ImportMapGameAreaArry();
ImportHomeGameAreaArry();
ImportMyTankGameAreaArry();
PlaySound(TEXT("sound/Tnak.wav "), NULL, SND_LOOP);
PlaySound(TEXT("sound/TankMove.wav "), NULL, SND_LOOP);
int i;
for (i = 0; i < ENEMY_Tank; ++i)
{
EnemyTank[i] = InitEnemtyTank();
DrawEnmpty(&EnemyTank[i]);
ImportEnemyTankGameAreaArry(&EnemyTank[i]);
}
while (i--)
{
hThread = CreateThread(NULL, 0, EnemyMove, &EnemyTank[i], 0, NULL); CloseHandle(hThread);
}
//初始化炮弹链表
InitLinkList(&g_shell_list);
//WriteFile1();
}
void InitMyTnak(Tank *ptank)
{
ptank->belong = MYSELF;
ptank->dir = UP;
ptank->lief = 1;
ptank->x = Left_Top_X + 24;
ptank->y = Left_Top_Y + 18;
}
Tank InitEnemtyTank()
{
int row, col, overlp;
int i, j;
Tank tank;
tank.belong = ENEMY;
tank.dir = rand() % 4;
tank.lief = 1;
tank.speed = 400;
tank.y = Left_Top_Y + 1;
while (1)
{
overlp = 0;
tank.x = rand() % 29 * 2 + Left_Top_X + 2; row = ConsoleSwtichArrY(tank.y);
col = ConsoleSwtichArrX(tank.x);
for (i = row; i< row + 3 && !overlp; ++i) { //取⾮为真

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。