當前位置:首頁 » 編程軟體 » 小游戲編程

小游戲編程

發布時間: 2022-01-08 19:29:30

❶ 製作小游戲的簡單編程軟體

學習編程,從何入手

如果您想學習編程,卻又不知從何入手,那麼您不妨看看下面的幾種學習方案,可能會給您一些啟示吧!
==============================================
方案一 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;
}

熱點內容
優酷緩存格式的 發布:2024-12-27 16:46:17 瀏覽:86
恥辱2未加密 發布:2024-12-27 16:43:46 瀏覽:436
擴展器找不到伺服器怎麼辦 發布:2024-12-27 16:42:11 瀏覽:90
我的世界手機版花雨庭伺服器ip 發布:2024-12-27 16:37:22 瀏覽:602
c語言判斷是整數 發布:2024-12-27 16:33:39 瀏覽:819
scratch編程視頻下載 發布:2024-12-27 16:32:09 瀏覽:874
荒野行動怎麼提升配置 發布:2024-12-27 16:18:35 瀏覽:870
人少的伺服器什麼東西便宜 發布:2024-12-27 16:12:59 瀏覽:64
教育在線直播源碼 發布:2024-12-27 15:56:43 瀏覽:201
為什麼安卓不能裝ios 發布:2024-12-27 15:56:40 瀏覽:660