小游戏编程
❶ 制作小游戏的简单编程软件
学习编程,从何入手
如果您想学习编程,却又不知从何入手,那么您不妨看看下面的几种学习方案,可能会给您一些启示吧!
==============================================
方案一 Basic语言 & Visual Basic
优点
(1)Basic 简单易学,很容易上手。
(2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。
(3)众多的控件让编程变得象垒积木一样简单。
(4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。
缺点
(1)Visual Basic 不是真正的面向对象的开发文具。
(2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。
(3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。
综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。
Basic/Visual Basic简介
==============================================
方案二 Pascal语言 & Delphi
优点
(1)Pascal语言结构严谨,可以很好地培养一个人的编程
❷ 小游戏vb编程
贪吃蛇
PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
DimCAsLong
IfKeyCode=27ThenEnd
IfKeyCode=32Then
IfTimer1.Enabled=TrueThen
Timer1.Enabled=False
Label1.Visible=True
Else
Timer1.Enabled=True
Label1.Visible=False
EndIf
EndIf
C=UBound(She)
IfGFangXiang=TrueThenExitSub
SelectCaseKeyCode
Case37
IfShe(C).F=2ThenExitSub
She(C).F=0
GFangXiang=True
Case38
IfShe(C).F=3ThenExitSub
She(C).F=1
GFangXiang=True
Case39
IfShe(C).F=0ThenExitSub
She(C).F=2
GFangXiang=True
Case40
IfShe(C).F=1ThenExitSub
She(C).F=3
GFangXiang=True
EndSelect
EndSub
PrivateSubForm_Load()
Me.AutoRedraw=True
Me.BackColor=&HC000&
Me.FillColor=255
Me.FillStyle=0
Me.ScaleWidth=24
Me.ScaleHeight=24
Me.WindowState=2
SetTimer1=Controls.Add("VB.Timer","Timer1")
SetLabel1=Controls.Add("VB.Label","Label1")
Label1.AutoSize=True
Label1.BackStyle=0
Label1="暂停"
Label1.ForeColor=RGB(255,255,0)
Label1.FontSize=50
ChuShiHua
EndSub
PrivateSubForm_Resize()
OnErrorGoTo1:
WithMe
If.WindowState<>1Then
.Cls
.ScaleMode=3
HWB=.ScaleHeight/.ScaleWidth
.ScaleWidth=24
.ScaleHeight=24
Label1.Move(Me.ScaleWidth-Label1.Width)/2,(Me.ScaleHeight-Label1.Height)/2
HuaTu
Me.Line(X,Y)-(X+1,Y+1),RGB(255,255,0),BF
EndIf
EndWith
1:
EndSub
PrivateSubTimer1_Timer()
DimCAsLong,IAsLong
OnErrorGoTo2:
QingChu
C=UBound(She)
SelectCaseShe(C).F
Case0
IfZhuangTai(She(C).X-1,She(C).Y)=2Then
C=C+1
ReDimPreserveShe(C)
She(C).F=She(C-1).F
She(C).X=She(C-1).X-1
She(C).Y=She(C-1).Y
ChanShengShiWu
GoTo1:
ElseIfZhuangTai(She(C).X-1,She(C).Y)=1Then
GoTo2:
EndIf
Case1
IfZhuangTai(She(C).X,She(C).Y-1)=2Then
C=C+1
ReDimPreserveShe(C)
She(C).F=She(C-1).F
She(C).X=She(C-1).X
She(C).Y=She(C-1).Y-1
ChanShengShiWu
GoTo1:
ElseIfZhuangTai(She(C).X,She(C).Y-1)=1Then
GoTo2:
EndIf
Case2
IfZhuangTai(She(C).X+1,She(C).Y)=2Then
C=C+1
ReDimPreserveShe(C)
She(C).F=She(C-1).F
She(C).X=She(C-1).X+1
She(C).Y=She(C-1).Y
ChanShengShiWu
GoTo1:
ElseIfZhuangTai(She(C).X+1,She(C).Y)=1Then
GoTo2:
EndIf
Case3
IfZhuangTai(She(C).X,She(C).Y+1)=2Then
C=C+1
ReDimPreserveShe(C)
She(C).F=She(C-1).F
She(C).X=She(C-1).X
She(C).Y=She(C-1).Y+1
ChanShengShiWu
GoTo1:
ElseIfZhuangTai(She(C).X,She(C).Y+1)=1Then
GoTo2:
EndIf
EndSelect
ZhuangTai(She(0).X,She(0).Y)=0
ForI=0ToC
SelectCaseShe(I).F
Case0
She(I).X=She(I).X-1
Case1
She(I).Y=She(I).Y-1
Case2
She(I).X=She(I).X+1
Case3
She(I).Y=She(I).Y+1
EndSelect
Next
TiaoZheng
1:
GFangXiang=False
ZhuangTai(She(C).X,She(C).Y)=1
HuaTu
ExitSub
2:
IfMsgBox("游戏结束,点“是”重新开始游戏,点“否”",vbYesNo,"贪吃蛇")=vbYesThen
ChuShiHua
Else
End
EndIf
EndSub
PrivateSubChuShiHua()
Me.Cls
Timer1.Enabled=True
Timer1.Interval=200
EraseZhuangTai
ReDimShe(2)
She(0).F=2
She(0).X=9
She(0).Y=11
ZhuangTai(9,11)=1
She(1).F=2
She(1).X=10
She(1).Y=11
ZhuangTai(10,11)=1
She(2).F=2
She(2).X=11
She(2).Y=11
ZhuangTai(11,11)=1
HuaTu
ChanShengShiWu
EndSub
PrivateSubQingChu()
DimIAsLong
ForI=0ToUBound(She)
Me.Line(She(I).X,She(I).Y)-(She(I).X+1,She(I).Y+1),Me.BackColor,BF
Next
EndSub
PrivateSubHuaTu()
DimIAsLong
ForI=0ToUBound(She)
Me.Circle(She(I).X+0.5,She(I).Y+0.5),0.49,RGB(255,255,0),,,HWB
Next
EndSub
PrivateSubTiaoZheng()
DimIAsLong
ForI=0ToUBound(She)-1
She(I).F=She(I+1).F
Next
EndSub
PrivateSubChanShengShiWu()
RandomizeTimer
1:
X=Int(Rnd*24)
Y=Int(Rnd*24)
IfZhuangTai(X,Y)>0ThenGoTo1:
ZhuangTai(X,Y)=2
Me.Line(X,Y)-(X+1,Y+1),RGB(255,255,0),BF
EndSub
❸ 求一个类似于编程的小游戏。
看到你这个问题的时候,感觉就是高端大气上档次,制作小游戏,是我这种没有梦想没有追求的人想倒是想过但也只是想过而已。但是在看完你的问题描述了之后,我瞬间感觉我高富帅了许多。不会编程!!!敢问楼主可学过FLASH?FLASH小游戏可听说过?我没制作过FLASH小游戏,虽然我稍微学过一点FLASH,所以我也不知道FLASH小游戏是不是需要编程,如果不需要楼主可以去试一试,不过横版过关类的小游戏是不可能了,最多也就是那种图片式的游戏。不会编程还想制作小游戏,而且还是横版过关!楼主你真的很有追求,赞一个!!不是打击你,想要制作一款小游戏,别说横版过关吧,就是现在手机上几百KB的那种超低级游戏,你也得用到编程的知识,而且也不是随便每一本编程的书看那么一两天就做得出来的,可以说计算机专业的本科毕业生做这种小游戏还比较靠谱。楼主你可能把一个游戏的制作过程想的太简单了。至于软件就想都别想了,如果真的有那种能制作游戏的软件,估计游戏开发商就得上街要饭去了,再说这种软件本身就比游戏要好玩多了,还玩游戏干嘛?如果楼主要的是能够帮助你制作游戏的软件(就像上面我所说过的FLASH)的话,那我要告诉你你必须得好好学编程,不学好编程就别整天瞎想着制作游戏什么的吧,还不如想想今天晚上吃什么这类现实的问题——因为这种类型的软件都是关于编程的软件,游戏大体是怎么制作出来的?就打DNF这种横版过关类的来说吧,首先你得计算,血量,伤害,技能伤害,怎么设置才能是这个游戏更具可玩性,然后就是编程,编程什么?举个例子,主人公打怪一下,这是过程,怪掉了血,主人公掉了蓝,这是结果,如何让计算机实现这个结果,怎么样让计算机实现这个计算的过程?这就需要编程,编程是什么?就是编写一种能让计算机听懂你的话的语言(C语言)的东西,只有这样,才能实现这个过程与结果。关于这一块,楼主可以去图书馆借一本C++基础看一看(我也是从书上看来的,说的有点通俗因为本人屌丝一枚)但是做完这一步还不够,怪掉血了,主人公掉蓝了,怎么让这个结果以及攻击的过程以动画的形式展现出来?FLASH动画。基本的就这么多,总之本人不是搞游戏制作的,对计算机之类的也只是皮毛,有时候也经常网络,回答的可能很不专业,但是我也已经竭尽全力去回答这个问题,最后,分数要给我啊!!!!
❹ 编程序做一个小游戏需要学习哪些知识
你可以先去【绘学霸】网站找“游戏设计/游戏制作”板块的【免费】视频教程-【点击进入】完整入门到精通视频教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=307&zdhhr-11y04r-431353100149645732
想要系统的学习可以考虑报一个网络直播课,推荐CGWANG的网络课。老师讲得细,上完还可以回看,还有同类型录播课可以免费学(赠送终身VIP)。
自制能力相对较弱的话,建议还是去好点的培训机构,实力和规模在国内排名前几的大机构,推荐行业龙头:王氏教育。
王氏教育全国直营校区面授课程试听【复制后面链接在浏览器也可打开】: www.huixueba.com.cn/school/3dmodel?type=2&zdhhr-11y04r-431353100149645732
在“游戏设计/游戏制作”领域的培训机构里,【王氏教育】是国内的老大,且没有加盟分校,都是总部直营的连锁校区。跟很多其它同类型大机构不一样的是:王氏教育每个校区都是实体面授,老师是手把手教,而且有专门的班主任从早盯到晚,爆肝式的学习模式,提升会很快,特别适合基础差的学生。
大家可以先把【绘学霸】APP下载到自己手机,方便碎片时间学习——绘学霸APP下载: www.huixueba.com.cn/Scripts/download.html
❺ 最简单的C#小游戏编程
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication2
{
class Player
{
public string Name;
Card[] cards = new Card[5];
public void InitFiveCards()//五张牌
{
Random md = new Random();
int m = md.Next(1, 14);
for (int i = 0; i < 5; i++)
{
Card card = new Card();
card.Point = md.Next(1, 14);
card.Color = md.Next(0, 4);
cards[i] = card;
}
}
public void display()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine(cards[i].CardDisplayString());
}
}
public void chosecard() //取牌
{
int n;
Random md = new Random();
int m = md.Next(1, 14);
n = Convert.ToInt32(Console.ReadLine());
Card cd = new Card();
switch (n)
{
case 0:
Table.tablecard = n;
Console.WriteLine("新取的牌");
break;
case 1:
n = m;
Console.WriteLine("上个玩家丢的牌");
break;
}
}
public void throwcard()//丢牌
{
Card[] cards = new Card[5];
Random md = new Random();
int m = md.Next(1, 14);
for (int i = 0; i < 5; i++)
{
Card card = new Card();
card.Point = md.Next(1, 14);
card.Color = md.Next(0, 4);
cards[i] = card;
switch (i)
{
case 0:
card = cards[1];
break;
case 1:
card = cards[2];
break;
case 2:
break;
case 3:
card = cards[3];
break;
case 4:
card = cards[4];
break;
}
}
Console.WriteLine("chose the card:{0}");
}
public void Changeplayer()
{
int m;
}
public bool isWin()
{
for (int i = 1; i < 5;i++ )
{
if (cards[i].Color != cards[0].Color)
{
return false;
}
}
return true;
}
}
class Table
{
public static int tablecard;
public void cunchu()
{
Console.WriteLine(tablecard);
}
}
class Card
{
public int Point;
public int Color;
public string CardDisplayString()
{
string sColor = "";
switch (Color)
{
case 0:
sColor = "红心";
break;
case 1:
sColor = "方块";
break;
case 2:
sColor = "黑桃";
break;
case 3:
sColor = "草花";
break;
}
return string.Format("花色:{0} Point:{1}", sColor, Point);
}
class Program
{
static void Main(string[] args)
{
//1.输入玩家数量
int py;
Console.WriteLine("请输入玩家的数量");
py = int.Parse(Console.ReadLine());
Player[] pys = new Player[py];
//2.输入玩家姓名
for (int m = 0; m < py; m++)
{
pys[m] = new Player();
Console.WriteLine("请输入第{0}玩家名字", m + 1);
pys[m].Name = Console.ReadLine();
pys[m].InitFiveCards();
}
//3.开始游戏
bool isExit = false;
while (!isExit)
{
for (int m = 0; m < py; m++)
{
pys[m].display();
pys[m].chosecard();
pys[m].throwcard();
if (pys[m].isWin())
{
Console.WriteLine("The player name :{0}" + "游戏结束");
isExit = true;
break;
}
}
}
Console.ReadLine();
}
}
}
}
❻ 小游戏编程
买本语言的教程最好了 不过要一定的理解能力 现在最好学C语言 这个是基础 C++ C# java 等等等等的语言都是从C上发展来的
然后下个WIN-TC 如果是WIN 7的话要装虚拟机运行XP才能用WIN-TC 如果是win XP的 话可以直接安装
加油 我今年17了 才开始学
ps 游戏害死人啊= =
psps. 我买了一本《C语言编程 现代方法》 (大概是这个名字,我忘了,书没有带过来。。。) 记得是人民邮电出版社的 第二版 你去书店看看吧 我是觉得还不错的
❼ java小游戏编程
/**
* File: ControlPanel.java
* User:相思无偿
* Date: 2004.12.3
* Describe: 俄罗斯方块的 Java 实现
*/
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import java.awt.*;
import java.awt.event.*;
/**
* 控制面板类,继承自JPanel.
* 上边安放预显窗口、等级、得分、控制按钮
* 主要用来控制游戏进程。
*/
class ControlPanel extends JPanel {
private JTextField
tfLevel = new JTextField("" + ErsBlocksGame.DEFAULT_LEVEL),
tfScore = new JTextField("0");
private JButton
btPlay = new JButton("Play"),
btPause = new JButton("Pause"),
btStop = new JButton("Stop"),
btTurnLevelUp = new JButton("Turn hard"),
btTurnLevelDown = new JButton("Turn easy");
private JPanel plTip = new JPanel(new BorderLayout());
private TipPanel plTipBlock = new TipPanel();
private JPanel plInfo = new JPanel(new GridLayout(4, 1));
private JPanel plButton = new JPanel(new GridLayout(5, 1));
private Timer timer;
private ErsBlocksGame game;
private Border border = new EtchedBorder(
EtchedBorder.RAISED, Color.white, new Color(148, 145, 140));
/**
* 控制面板类的构造函数
* @param game ErsBlocksGame, ErsBoxesGame类的一个实例引用,
* 方便直接控制ErsBoxesGame类的行为。
*/
public ControlPanel(final ErsBlocksGame game) {
setLayout(new GridLayout(3, 1, 0, 4));
this.game = game;
plTip.add(new JLabel("Next block"), BorderLayout.NORTH);
plTip.add(plTipBlock);
plTip.setBorder(border);
plInfo.add(new JLabel("Level"));
plInfo.add(tfLevel);
plInfo.add(new JLabel("Score"));
plInfo.add(tfScore);
plInfo.setBorder(border);
tfLevel.setEditable(false);
tfScore.setEditable(false);
plButton.add(btPlay);
plButton.add(btPause);
plButton.add(btStop);
plButton.add(btTurnLevelUp);
plButton.add(btTurnLevelDown);
plButton.setBorder(border);
add(plTip);
add(plInfo);
add(plButton);
addKeyListener(new ControlKeyListener());
btPlay.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
game.playGame();
}
});
btPause.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (btPause.getText().equals(new String("Pause"))) {
game.pauseGame();
} else {
game.resumeGame();
}
}
});
btStop.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
game.stopGame();
}
});
btTurnLevelUp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
try {
int level = Integer.parseInt(tfLevel.getText());
if (level < ErsBlocksGame.MAX_LEVEL)
tfLevel.setText("" + (level + 1));
} catch (NumberFormatException e) {
}
requestFocus();
}
});
btTurnLevelDown.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
try {
int level = Integer.parseInt(tfLevel.getText());
if (level > 1)
tfLevel.setText("" + (level - 1));
} catch (NumberFormatException e) {
}
requestFocus();
}
});
addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent ce) {
plTipBlock.fanning();
}
});
timer = new Timer(500, new ActionListener() {
public void actionPerformed(ActionEvent ae) {
tfScore.setText("" + game.getScore());
int scoreForLevelUpdate =
game.getScoreForLevelUpdate();
if (scoreForLevelUpdate >= ErsBlocksGame.PER_LEVEL_SCORE
&& scoreForLevelUpdate > 0)
game.levelUpdate();
}
});
timer.start();
}
/**
* 设置预显窗口的样式,
* @param style int,对应ErsBlock类的STYLES中的28个值
*/
public void setTipStyle(int style) {
plTipBlock.setStyle(style);
}
/**
* 取得用户设置的游戏等级。
* @return int, 难度等级,1 - ErsBlocksGame.MAX_LEVEL
*/
public int getLevel() {
int level = 0;
try {
level = Integer.parseInt(tfLevel.getText());
} catch (NumberFormatException e) {
}
return level;
}
/**
* 让用户修改游戏难度等级。
* @param level 修改后的游戏难度等级
*/
public void setLevel(int level) {
if (level > 0 && level < 11) tfLevel.setText("" + level);
}
/**
* 设置"开始"按钮的状态。
*/
public void setPlayButtonEnable(boolean enable) {
btPlay.setEnabled(enable);
}
public void setPauseButtonLabel(boolean pause) {
btPause.setText(pause ? "Pause" : "Continue");
}
/**
* 重置控制面板
*/
public void reset() {
tfScore.setText("0");
plTipBlock.setStyle(0);
}
/**
* 重新计算TipPanel里的boxes[][]里的小框的大小
*/
public void fanning() {
plTipBlock.fanning();
}
/**
* 预显窗口的实现细节类
*/
private class TipPanel extends JPanel {
private Color backColor = Color.darkGray, frontColor = Color.lightGray;
private ErsBox[][] boxes =
new ErsBox[ErsBlock.BOXES_ROWS][ErsBlock.BOXES_COLS];
private int style, boxWidth, boxHeight;
private boolean isTiled = false;
/**
* 预显窗口类构造函数
*/
public TipPanel() {
for (int i = 0; i < boxes.length; i++) {
for (int j = 0; j < boxes[i].length; j++)
boxes[i][j] = new ErsBox(false);
}
}
/**
* 预显窗口类构造函数
* @param backColor Color, 窗口的背景色
* @param frontColor Color, 窗口的前景色
*/
public TipPanel(Color backColor, Color frontColor) {
this();
this.backColor = backColor;
this.frontColor = frontColor;
}
/**
* 设置预显窗口的方块样式
* @param style int,对应ErsBlock类的STYLES中的28个值
*/
public void setStyle(int style) {
this.style = style;
repaint();
}
/**
* 覆盖JComponent类的函数,画组件。
* @param g 图形设备环境
*/
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (!isTiled) fanning();
int key = 0x8000;
for (int i = 0; i < boxes.length; i++) {
for (int j = 0; j < boxes[i].length; j++) {
Color color = (((key & style) != 0) ? frontColor : backColor);
g.setColor(color);
g.fill3DRect(j * boxWidth, i * boxHeight,
boxWidth, boxHeight, true);
key >>= 1;
}
}
}
/**
* 根据窗口的大小,自动调整方格的尺寸
*/
public void fanning() {
boxWidth = getSize().width / ErsBlock.BOXES_COLS;
boxHeight = getSize().height / ErsBlock.BOXES_ROWS;
isTiled = true;
}
}
private class ControlKeyListener extends KeyAdapter {
public void keyPressed(KeyEvent ke) {
if (!game.isPlaying()) return;
ErsBlock block = game.getCurBlock();
switch (ke.getKeyCode()) {
case KeyEvent.VK_DOWN:
block.moveDown();
break;
case KeyEvent.VK_LEFT:
block.moveLeft();
break;
case KeyEvent.VK_RIGHT:
block.moveRight();
break;
case KeyEvent.VK_UP:
block.turnNext();
break;
default:
break;
}
}
}
}
❽ 如何用C++编写一个小游戏
一个用C++编程的小游戏,可以实现的功能如下:
1、随机生成数字;
2、数字消除合并;
3、判定游戏结束;
一、游戏主体:
因为用C++写的,所以用了类,棋盘用了一个二维数组,m是棋盘规格,取了4。
class game
{
public:
int i, j;
game() {
count1 = 0;
for (i = 0; i < m; i++)
for (j = 0; j < m; j++)
chessboard[i][j] = 0;
srand((unsigned)time(NULL));
x = rand() % m;
y = rand() % m;
if (count1 == 1 || count1 == 0)
chessboard[x][y] = 2;
else
chessboard[x][y] = 4;
showchessboard();
}//构造初始棋盘
void add(int count1);//新增数字
void showchessboard();//显示棋盘
void up();
void down();
void left();
void right();
bool gameover();//游戏失败
private:
int chessboard[m][m];
int x, y, count1, count2, temp1, temp2, k;//c1-连消,c2-空位标记,t1-判连消,t2,k-临时变量
bool flag;//判消
};
二、随机生成数字
void game::add(int count1)
{
for (i = 0; i < m; i++)
for (j = 0; j < m; j++)
{
if (chessboard[i][j] == 0)
goto loop;
}
showchessboard();
return;
loop:srand((unsigned)time(NULL));
do {
x = rand() % m;
y = rand() % m;
} while (chessboard[x][y] != 0);
if (count1 < 2)
chessboard[x][y] = 2;
else
chessboard[x][y] = 4;
showchessboard();
}
三、数字消除合并
void game::up()
{
temp1 = count1;
flag = false;
for (j = 0; j < m; j++)
for (i = 0; i < m;)
{
for (; i < 4 && chessboard[i][j] == 0; i++); // 找非零值
if (i == 4)
break;
else
{
for (k = i + 1; k < 4 && chessboard[k][j] == 0; k++);//找下一个非零值
if (k == 4)
break;
else if (chessboard[i][j] == chessboard[k][j])//匹配
{
chessboard[i][j] *= 2;
chessboard[k][j] = 0;
i = k + 1;
flag = true;
}
else if (chessboard[i][j] != chessboard[k][j] && k < 4)//不匹配
{
i = k;
}
}
}
for (j = 0; j < m; j++)//排列棋盘
for (i = 0, count2 = 0; i < m; i++)
{
if (chessboard[i][j] != 0)
{
temp2 = chessboard[i][j];
chessboard[i][j] = 0;
chessboard[count2][j] = temp2;
count2++;
}
}
}
四、判断游戏结束
bool game::gameover()
{
if (flag)
count1++;//判连消
if (temp1 == count1)
count1 = 0;//未消除,连消归零
add(count1);
for (i = m - 1, j = 0; j < m; j++)//最后一行
{
if (j == m - 1)//右下角
{
if (chessboard[i][j] == 0)
return false;
else if (chessboard[i][j] == 2048)
{
cout << "You Win~ ";
return true;
}
}
else
{
if (chessboard[i][j] == 0 || chessboard[i][j] == chessboard[i][j + 1])
return false;
else if (chessboard[i][j] == 2048)
{
cout << "You Win~ ";
return true;
}
}
}
for (i = 0, j = m - 1; i < m; i++)//最后一列
{
if (i == m - 1)//右下角
{
if (chessboard[i][j] == 0)
return false;
else if (chessboard[i][j] == 2048)
{
cout << "You Win~ ";
return true;
}
}
else
{
if (chessboard[i][j] == 0 || chessboard[i][j] == chessboard[i + 1][j])
return false;
else if (chessboard[i][j] == 2048)
{
cout << "You Win~ ";
return true;
}
}
}
for (i = 0; i < m - 1; i++)
for (j = 0; j < m - 1; j++)
{
if (chessboard[i][j] == 2048)
{
cout << "You Win! ";
return true;
}
else if (chessboard[i][j] == chessboard[i][j + 1] || chessboard[i][j] == chessboard[i + 1][j] || chessboard[i][j] == 0)
return false;
}
cout << "Game over. ";
return true;
}
(8)小游戏编程扩展阅读:
C++语言的程序因为要体现高性能,所以都是编译型的。但其开发环境,为了方便测试,将调试环境做成解释型的。
生成程序是指将源码(C++语句)转换成一个可以运行的应用程序的过程。如果程序的编写是正确的,那么通常只需按一个功能键,即可搞定这个过程。但是该过程实际上分成两个步骤。
第一步是对程序进行编译,这需要用到编译器(compiler)。编译器将C++语句转换成机器码(也称为目标码);
第二步就是对程序进行链接,这需要用到链接器(linker)。链接器将编译获得机器码与C++库中的代码进行合并。C++库包含了执行某些常见任务的函数(“函数”是子程序的另一种称呼)。
参考资料来源:
网络-C++
❾ c语言编程小游戏
原创:
TC2.0以及gcc 编译通过
/*=======================================================
*Author :wacs5
*Date :20100601(YYYYMMDD)
*Function :剪刀石头布
*=======================================================*/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
char name[4][15]=;
int x[2];
int i;
srand(time(NULL));
for (i=0;i<10;i++) /*10 times game*/
{
x[0]=1+rand()%3; /*generate a number from 1 to 3*/
x[1]=1+rand()%3; /*generate another number from 1 to 3*/
printf("A=%-12sB=%-12s\t",name[x[0]],name[x[1]]);
if (x[0]==x[1])
printf("draw\n"); /*和*/
else if (x[0]%3+1==x[1]) /*lost*/
printf("lost\n");
else /*win*/
printf("win\n");
}
getch();
return 0;
}
❿ c++编程小游戏代码
以下是贪吃蛇源代码:
#include<iostream.h>
#include<windows.h>
#include<time.h>
#include<stdlib.h>
#include<conio.h>
#defineN21
voidgotoxy(intx,inty)//位置函数{
COORDpos;
pos.X=2*x;
pos.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
voidcolor(inta)//颜色函数{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
voidinit(intapple[2])//初始化函数(初始化围墙、显示信息、苹果)
{
inti,j;//初始化围墙
intwall[N+2][N+2]={{0}};
for(i=1;i<=N;i++)
{
for(j=1;j<=N;j++)
wall[i][j]=1;
}
color(11);
for(i=0;i<N+2;i++)
{
for(j=0;j<N+2;j++)
{
if(wall[i][j])
cout<<"■";
elsecout<<"□";
}
cout<<endl;
}
gotoxy(N+3,1);//显示信息
color(20);
cout<<"按WSAD移动方向"<<endl;
gotoxy(N+3,2);
color(20);
cout<<"按任意键暂停"<<endl;
gotoxy(N+3,3);
color(20);
cout<<"得分:"<<endl;
apple[0]=rand()%N+1;//苹果
apple[1]=rand()%N+1;
gotoxy(apple[0],apple[1]);
color(12);
cout<<"●"<<endl;
}
intmain()
{
inti,j;
int**snake=NULL;
intapple[2];
intscore=0;
inttail[2];
intlen=3;
charch='p';
srand((unsigned)time(NULL));
init(apple);
snake=(int**)realloc(snake,sizeof(int*)*len);
for(i=0;i<len;i++)
snake[i]=(int*)malloc(sizeof(int)*2);
for(i=0;i<len;i++)
{
snake[i][0]=N/2;
snake[i][1]=N/2+i;
gotoxy(snake[i][0],snake[i][1]);
color(14);
cout<<"★"<<endl;
}
while(1)//进入消息循环
{
tail[0]=snake[len-1][0];
tail[1]=snake[len-1][1];
gotoxy(tail[0],tail[1]);
color(11);
cout<<"■"<<endl;
for(i=len-1;i>0;i--)
{
snake[i][0]=snake[i-1][0];
snake[i][1]=snake[i-1][1];
gotoxy(snake[i][0],snake[i][1]);
color(14);
cout<<"★"<<endl;
}
if(kbhit())
{
gotoxy(0,N+2);
ch=getche();
}
switch(ch)
{
case'w':snake[0][1]--;break;
case's':snake[0][1]++;break;
case'a':snake[0][0]--;break;
case'd':snake[0][0]++;break;
default:break;
}
gotoxy(snake[0][0],snake[0][1]);
color(14);
cout<<"★"<<endl;
Sleep(abs(200-0.5*score));
if(snake[0][0]==apple[0]&&snake[0][1]==apple[1])//吃掉苹果后蛇分数加1,蛇长加1
{
score++;
len++;
snake=(int**)realloc(snake,sizeof(int*)*len);
snake[len-1]=(int*)malloc(sizeof(int)*2);
apple[0]=rand()%N+1;
apple[1]=rand()%N+1;
gotoxy(apple[0],apple[1]);
color(12);
cout<<"●"<<endl;
gotoxy(N+5,3);
color(20);
cout<<score<<endl;
}
if(snake[0][1]==0||snake[0][1]==N||snake[0][0]==0||snake[0][0]==N)//撞到围墙后失败
{
gotoxy(N/2,N/2);
color(30);
cout<<"失败!!!"<<endl;
for(i=0;i<len;i++)
free(snake[i]);
Sleep(INFINITE);
exit(0);
}
}
return0;
}