用c語言寫游戲腳本
看到這三個選項,心情真的不太好形容,對T語言和Y語言不是特別了解,大概說一下自己的感覺。
C語言是更貼近底層的編程語言,全英文的字母的那種,屬於面向過程的語言,個人認為用C語言寫游戲腳本有點兒求虐,因為介面什麼的都要自己寫。不是很建議用。當然,前提是你說的是純C語言,而不是C++、VC++這種C語言的衍生品。
T語言雖然有點兒過時,不過確實有很多人用TC做出過很炫的游戲效果,應該也容易找到一些例子,方便借鑒。
Y語言不是很了解,只知道是中文編程的典範,全中文內核,不太清楚是不適合寫游戲腳本。
但是我覺得如果選用T語言和Y語言之前,應該考慮一下你要做什麼游戲的腳本,如果是全英文的游戲內核,就要考慮中文編程和英文游戲的對接問題了,特別是Y語言。不是我崇洋媚外,但是事實證明國內出的一些計算機相關的東西確實都有很多不足之處,有時候可能會很坑。
最後建議還是選用一下現在主流的語言做游戲腳本,想javascript之類的,這些語言其實語法沒比T或Y語言難多少,但是因為大家都在用,可以找到很多資料,還可以有更多的人讓你請教。
Ⅱ 怎樣用C語言編程積木游戲
1)第一行include語句前沒有加#。不知道是不是你粘貼程序的時候漏了。
include<stdio.h>
-->
#include
<stdio.h>
2)在分積木的for循環中,應該為for
(i=0;
i<n-1;
i++),而不是i<n-2。因為在這個循環中,a[i]是獲得積木的小朋友;a[i+1]是給出積木的小朋友。按照你原來的循環(i<n-2),那麼最後一個獲得積木的是a[n-3],最後一個給出積木的是a[n-2],這樣a[n-2]就得不到a[n-1]的積木了。
3)在分積木的for循環中,a[i+1]把一半的積木分給左邊的小朋友a[i]之後,剩餘的積木數量卻沒有減少。
4)循環外處理a[0]分給a[n-1]的特殊情況時,應該是按a[0]得到a[1]的積木前的數量來算。而你現在是a[0]拿到a[1]的一半積木後,再把當前的一半分給a[n-1]。
這樣修改後的代碼片段為:
int
a[100],i,n,b;
...
...
b
=
a[0];
for(i=0;
i<n
-
1;
i++)
{
a[i]
+=
a[i+1]
/
2;
/*把自己的積木分一半給左邊的小朋友*/
a[i+1]
/=
2;
}
a[i]
+=
b
/
2;
a[0]
-=
b
/
2;
Ⅲ C語言編程:編寫一個猜數的游戲,系統自動產生一個隨機數,你來猜,程序給出提示,直到猜對為止。
import java.util.*;
class Assignment8{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
int x=(int)(Math.random()*100);//生成一個0~100的隨機數
int y=-1;
System.out.println("已生成0~100的隨機整數,請輸入您所猜的數:");
while(x!=y)
{
y=sc.nextInt();
if(y>x)
{
System.out.println("輸入的數過大");
}
else if(y<x)
{
System.out.println("輸入的數過小");
}
}
System.out.println("正確!該隨機數是"+x);
sc.close();
}
}

(3)用c語言寫游戲腳本擴展閱讀:
while循環的格式:while(表達式){語句;}
while循環的執行順序:當表達式為真,則執行下面的語句,語句執行完之後再判斷表達式是否為真,如果為真,再次執行下面的語句,然後再判斷表達式是否為真??就這樣一直循環下去,直到表達式為假,跳出循環。
例:
int a=NULL;
while(a<10){
a++;//自加
if(a>5)//不等while退出循環,直接判斷循環
{break;//跳出循環}
}
結果:結束後a的值為6。
Ⅳ c語言 貪吃蛇 程序
基本思路:
蛇每吃一個食物蛇身子就增加一格,用UP, DOWN, LEFT, RIGHT控制蛇頭的運動,而蛇身子跟著蛇頭走,每後一格蛇身子下一步走到上一格蛇身子的位置,以此類推。
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#define BEG_X 2
#define BEG_Y 1
#define WID 20
#define HEI 20
HANDLE hout;
typedef enum {UP, DOWN, LEFT, RIGHT} DIR;
typedef struct Snake_body
{
COORD pos;//蛇身的位置
struct Snake_body *next;//下一個蛇身
struct Snake_body *prev;//前一個蛇身
}SNAKE, *PSNAKE;
PSNAKE head = NULL;//蛇頭
PSNAKE tail = NULL;//蛇尾
//畫游戲邊框的函數
void DrawBorder()
{
int i, j;
COORD pos = {BEG_X, BEG_Y};
for(i = 0; i < HEI; ++i)
{
SetConsoleCursorPosition(hout, pos);
for(j = 0; j < WID; ++j)
{
if(i == 0)//第一行
{
if(j == 0)
printf("┏");
else if(j == WID - 1)
printf("┓");
else
printf("━");
}
else if(i == HEI - 1)//最後一行
{
if(j == 0)
printf("┗");
else if(j == WID - 1)
printf("┛");
else
printf("━");
}
else if(j == 0 || j == WID - 1)//第一列或最後一列
printf("┃");
else
printf(" ");
}
++pos.Y;
}
}
//添加蛇身的函數
void AddBody(COORD pos)
{
PSNAKE pnew = (PSNAKE)calloc(1, sizeof(SNAKE));
pnew->pos = pos;
if(!head)
{
head = tail = pnew;
}
else
{
pnew->next = head;//新創建蛇身的next指向原先的蛇頭
head->prev = pnew;//原先的蛇頭的prev指向新創建的蛇身
head = pnew;//把新創建的蛇身作為新的蛇頭
}
SetConsoleCursorPosition(hout, head->pos);
printf("◎");
}
//蛇身移動的函數
void MoveBody(DIR dir)
{
PSNAKE ptmp;
COORD pos = head->pos;
switch(dir)
{
case UP:
if(head->pos.Y > BEG_Y + 1)
--pos.Y;
else
return;
break;
case DOWN:
if(head->pos.Y < BEG_Y + HEI - 2)
++pos.Y;
else
return;
break;
case LEFT:
if(head->pos.X > BEG_X + 2)
pos.X -= 2;
else
return;
break;
case RIGHT:
if(head->pos.X < BEG_X + (WID - 2) * 2)
pos.X += 2;
else
return;
break;
}
AddBody(pos);//添加了一個新的蛇頭
ptmp = tail;//保存當前的蛇尾
tail = tail->prev;
if(tail)
tail->next = NULL;
SetConsoleCursorPosition(hout, ptmp->pos);
printf(" ");
free(ptmp);
}
int main()
{
int ctrl;
DIR dir = RIGHT;//初始蛇的方向是向右的
COORD pos = {BEG_X + 2, BEG_Y + HEI / 2};
system("color 0E");
system("mode con cols=90 lines=30");
hout = GetStdHandle(STD_OUTPUT_HANDLE);
printf(" ------------貪吃蛇的移動------------");
DrawBorder();
//自定義幾個蛇的身體
AddBody(pos);
pos.X += 2;
AddBody(pos);
pos.X += 2;
AddBody(pos);
pos.X += 2;
AddBody(pos);
pos.X += 2;
AddBody(pos);
pos.X += 2;
AddBody(pos);
pos.X += 2;
AddBody(pos);
//控制蛇的移動
while(ctrl = getch())
{
switch(ctrl)
{
case 'w':
if(dir == DOWN)
continue;
dir = UP;
break;
case 's':
if(dir == UP)
continue;
dir = DOWN;
break;
case 'a':
if(dir == RIGHT)
continue;
dir = LEFT;
break;
case 'd':
if(dir == LEFT)
continue;
dir = RIGHT;
break;
case 'q':
return 0;
}
MoveBody(dir);
}
return 0;
}

(4)用c語言寫游戲腳本擴展閱讀:
實現邏輯
1,可以設置游標,就能實現制定位置列印製定符號。
2,涉及一個結構體,包含兩個元素坐標元素和一個結構體指針。
3,結構體串聯形成鏈表,遍歷獲取成員坐標,列印符號得到蛇身。
4,不斷的加頭,去尾,重新遍歷坐標,再列印形成蛇的移動。
5,食物產生的位置判定,不能越界,也不能與蛇身體重合。
6,蛇的轉向判定,一條規則,不允許倒退。
7,轉向的實現,跟行進方向決定新的關節坐標(當前頭的上下左右)
8,死亡檢測,是否頭節點坐標是否與牆壁重合,是否與身體其他關節重合。
9,加速減速,設置刷新休眠時間實現。
Ⅳ 用C語言編寫的小游戲代碼是什麼
/*貪吃蛇*/
#include<stdio.h>
#include<time.h>
#include<conio.h>
#include<stdlib.h>
int head=3 ,tail=0;
int main()
{
int i,j,k=0;
int zuobiao[2][80];
long start;
int direction=77;
int gamespeed;
int timeover;
int change(char qipan[20][80],
int zuobiao[2][80],
char direction);
zuobiao[0][tail]=1;
zuobiao[1][tail]=1;
zuobiao[0][1]=1;
zuobiao[1][1]=2;zuobiao[0
[2]=1;
zuobiao[1][2]=3;
zuobiao[0][head]=1;
zuobiao[1][head]=4;
/*處理棋盤*/
char qipan[20][80];
//定義棋盤
for(i=0;i<20;i++)
for(j=0;j<80;j++)
qipan[i][j]=' ';//初始化棋盤
for(i=0;i<80;i++)
qipan[0][i]='_';
for(i=0;i<20;i++)
qipan[i][0]='|';
for(i=0;i<20;i++)
qipan[i][79]='|';
for(i=0;i<80;i++)
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
Ⅵ C語言編寫三局兩勝的猜拳游戲編程
/*假設有A和B進行猜拳
'x'表示剪刀,'y'表示石頭,'z'表示布
規則如下:
1、 石頭 > 剪刀
2、 布 > 石頭
3、 剪刀> 布
*/
#include <stdio.h>
#define WIN 1
#define LOSE -1
#define EQUAL 0
/*比賽規則函數*/
int game_rule(char a,char b)
{
switch(a)
case 'x':
{
switch(b)
case 'x':return EQUAL;
case 'y':return LOSE;
case 'z':return WIN;
}
case 'y':
{
switch(b)
case 'x':return WIN;
case 'y':return EQUAL;
case 'z':return LOSE;
}
case 'z':
{
switch(b)
case 'x':return LOSE;
case 'y':return WIN;
case 'z':return EQUAL;
}
}
/* main function*/
void main(void)
{
int ans;
int a = b = 0;
char A;
char B;
do
{
prinf("please input A:\n");
scanf("%c",&A);
getchar();
prinf("please input B:\n");
scanf("%c",&B);
getchar();
//有效性檢查請自己加上
ans = game_rule(A,B);
if(ans==WIN)
{
a++;
prinf("A贏了%d局\n",a);
}
else if(ans==LOSE)
{
b++;
prinf("A贏了%d局\n",b);
}
if((a==2)||(b==2))
{
prinf("game over");
break;
}
}while(1);
}
Ⅶ C++或者C可以寫游戲腳本嗎
只能寫小游戲· ···稍微大型的游戲都需要所謂游戲引擎來帶動··腳本編寫改成了游戲所用引擎的代碼!
Ⅷ 游戲腳本用什麼語言寫
問題一:誰能給我講講游戲腳本的事,用什麼語言編寫?是不是需要你所玩游戲的代碼? 10分 目前游戲腳本用得多的是按鍵與TC簡單開發,前者需要用到VB,學習起來比較吃力,後者是一個新推出的游戲腳本製作工具,可以說它在這方面彌補了按鍵的很多不足的地方,再一個就目前的情況來看,很多游戲都對按鍵進行封殺,所以按鍵的景也是非常的不容易樂觀的,就我而言,我更看TC簡單開發,必定目前剛推出,游戲商基本上不對其進行封殺,再就是它支持中文編程,有自己的編程語言體系,編寫一些游戲腳本自然不需要用到其它的開發語言。
問題二:Win平台的游戲一般是使用什麼語言開發的 一般的大型游戲開發絕不是用某種語言這么單純的問題。一個大型游戲的開發需要龐大的團隊使用各種各樣的語言和工具來完成。總結一下主要有C/C++,匯編語言,著色器語言,腳本語言,高效的開發語言C#或Java。
首先一般的游戲開發架構(Windows平台)從底到頂一般是Direct X?――游戲引擎――游戲。
Direct X?相當於所有顯卡的一個統一介面,為游戲提供一個利用硬體渲染的編程模型,但Direct X?介面為了追求高性能功能非常單純和鬆散,不利於游戲的高效開發。此時就需要根據游戲特點對其進行適當的取捨和封裝,實現一組更高抽象的游戲開發介面和框架,可以理解成游戲引擎中的圖形引擎。這部分的開發一般使用的語言是C/C++和少量的匯編語言。
至於游戲引擎是一個非常復雜的功能聚合體,所有的游戲開發工作都是在之上進行的。包括圖形引擎,音頻引擎,碰撞引擎,藝術資源管理,腳本引擎等等。到此為止幾乎還沒有涉及到你所說的游戲開發。
首先在圖形渲染方面,例如光照陰影處理等等,現代顯卡一般是通過可編程著色器實現對圖形效果的控制,所採用的編程語言一般是一些著色器語言,例如Direct X?採用的HLSL,OpenGL使用的GLSL等等,語法類似C語言,游戲執行時被編譯載入到顯卡上,在實現硬體渲染速度的同時又實現了軟體編程的靈活性。
大型游戲開發的絕大部分工作其實都是在編寫游戲腳本,腳本是大型游戲得以如此高速開發和發布的主要原因。腳本化的開發讓游戲開發擺脫了硬編碼的種種弊端,讓游戲內容可以輕易的修改和調試。游戲故事如何進行,各種事件如何觸發,何時該播放哪些聲音或動畫,如何使用藝術團隊創作的資源,這些都是在腳本中編寫的,可以說引擎決定了游戲能做什麼,而腳本才真正決定了游戲做了什麼。一些著名的引擎如虛幻系列都有自己獨特的腳本語言,其他一些引擎可能會採用一些第三方的腳本語言,比如比較流行的Lua。所以開發一個新游戲最簡單的情形就是沿用之前的引擎,創作藝術資源,然後編寫腳本將其組織成一個游戲,幾乎不需要什麼底層的編程語言。
開發環境方面,游戲團隊內部可能會使用一些開發和設計工具對資源進行處理,可以理解成游戲引擎的IDE,這部分因為是內部工具,而且可能需要經常修改所以一般採用比較高效的開發平台和語言,比如暴雪就是部分使用.NET和C#進行一些內部工具的開發。
至於引擎核心的開發,Windows平台比較流行的方法是使用最新版本的Visual Studio,顯卡廠商如NVIDIA也會為VS開發一些插件來簡化顯卡編程和調試。
問題三:游戲用什麼語言編寫的? CS是用VC++寫的,魔獸不清楚了,大多都用VC++,C++,DELHPI寫的手機上用的JAVA
問題四:一般的游戲都是用什麼語言開發的 一般的大型游戲開發絕不是用某種語言這么單純的問題。一個大型游戲的開發需要龐大的團隊使用各種各樣的語言和工具來完成。總結一下主要有C/C++,匯編語言,著色器語言,腳本語言,高效的開發語言C#或Java。
首先一般的游戲開發架構(Windows)從底到頂一般是Direct X?――游戲引擎――游戲。
Direct X?相當於所有顯卡的一個統一介面,為游戲提供一個利用硬體渲染的編程模型,但Direct X?介面為了追求高性能功能非常單純和鬆散,不利於游戲的高效開發。此時就需要根據游戲特點對其進行適當的取捨和封裝,實現一組更高抽象的游戲開發介面和框架,可以理解成游戲引擎中的圖形引擎。這部分的開發一般使用的語言是C/C++和少量的匯編語言。
至於游戲引擎是一個非常復雜的功能聚合體,所有的游戲開發工作都是在之上進行的。包括圖形引擎,音頻引擎,碰撞引擎,藝術資源管理,腳本引擎等等。到此為止幾乎還沒有涉及到你所說的游戲開發。
首先在圖形渲染方面,例如光照陰影處理等等,現代顯卡一般是通過可編程著色器實現對圖形效果的控制,所採用的編程語言一般是一些著色器語言,例如Direct X?採用的HLSL,OpenGL使用的GLSL等等,語法類似C語言,游戲執行時被編譯載入到顯卡上,在實現硬體渲染速度的同時又實現了編程的靈活性。
大型游戲開發的絕大部分工作其實都是在編寫游戲腳本,腳本是大型游戲得以如此高速開發和發布的主要原因。腳本化的開發讓游戲開發擺脫了硬編碼的種種弊端,讓游戲內容可以輕易的修改和調試。游戲故事如何進行,各種事件如何觸發,何時該播放哪些聲音或動畫,如何使用藝術團隊創作的資源,這些都是在腳本中編寫的,可以說引擎決定了游戲能做什麼,而腳本才真正決定了游戲做了什麼。一些著名的引擎如虛幻系列都有自己獨特的腳本語言,其他一些引擎可能會採用一些第三方的腳本語言,比如比較流行的Lua。所以開發一個新游戲最簡單的情形就是沿用之前的引擎,創作藝術資源,然後編寫腳本將其組織成一個游戲,幾乎不需要什麼底層的編程語言。
開發環境方面,游戲團隊內部可能會使用一些開發和設計工具對資源進行處理,可以理解成游戲引擎的IDE,這部分因為是內部工具,而且可能需要經常修改所以一般採用比較高效的開發和語言,比如暴雪就是部分使用.NET和C#進行一些內部工具的開發。
至於引擎核心的開發,Windows比較流行的方法是使用最新版本的Visual Studio,顯卡廠商如NVIDIA也會為VS開發一些插件來簡化顯卡編程和調試。
問題五:游戲里的腳本 都是用什麼語言寫的 可以用Lex和Yacc,沒有什麼語言,一般自己定義
問題六:游戲源碼一般都是用什麼語言寫的? 編寫單機 PC/主機游戲現在都是 C++ 加上一個腳本語言(比如 Lua,這地方不需要腳本引擎多麼高性能,夠用就好)。游戲的架構是引擎 + 游戲邏輯,兩者代碼量是引擎遠遠大於游戲邏輯。商業游戲往往引擎是重用多於自研,所以那些大型游戲的代碼也不是全部都是一行一行敲出來的――很可能其中許多內容是買來的。
網游服務端則一般是自研,這個真是一行一行敲了。網游 EVE 的伺服器完全是照著超算的標准修的,演算法也完全是超算的演算法。編寫單機 PC/主機游戲現在都是 C++ 加上一個腳本語言(比如 Lua,這地方不需要腳本引擎多麼高性能,夠用就好)。游戲的架構是引擎 + 游戲邏輯,兩者代碼量是引擎遠遠大於游戲邏輯。商業游戲往往引擎是重用多於自研,所以那些大型游戲的代碼也不是全部都是一行一行敲出來的――很可能其中許多內容是買來的。
問題七:游戲開發中常用哪種腳本語言? 一般大型的商業游戲引擎有自己的腳本語言,比如Unreal3就有自己的一套Unreal Script ,Unity3d可以用C#、JavaScript~~
也有用Python的,不過游戲裡面最知名,用的最多的還是Lua。
魔獸世界的腳本語言就是Lua。
有些公司自主開發的引擎是不公開的,我們也不知道用什麼,很可能是有自己的一套腳本語言系統,有本書《Game script mastery》就是講解游戲裡面腳本引擎搭建的,如果有興趣,加上一點匯編語言和編譯原理的基礎,可以跟著這本書上的看看。推薦還是用Lua(前面那本書也提到Lua了),這個東現在比較流行,資料齊全,有問題也方便交流。
問題八:現在用什麼語言寫游戲腳本好點 5分 CE+OD+E 採納
問題九:做正規游戲用什麼語言編寫腳本最好 做正規游戲用自己家寫的引擎內部語言寫腳本。
問題十:T語言 Y語言 C語言哪個寫游戲腳本好?? 看到這三個選項,心情真的不太好形容,對T語言和Y語言不是特別了解,大概說一下自己的感覺。
C語言是更貼近底層的編程語言,全英文的字母的那種,屬於面向過程的語言,個人認為用C語言寫游戲腳本有點兒求虐,因為介面什麼的都要自己寫。不是很建議用。當然,前提是你說的是純C語言,而不是C++、VC++這種C語言的衍生品。
T語言雖然有點兒過時,不過確實有很多人用TC做出過很炫的游戲效果,應該也容易找到一些例子,方便借鑒。
Y語言不是很了解,只知道是中文編程的典範,全中文內核,不太清楚是不適合寫游戲腳本。
但是我覺得如果選用T語言和Y語言之前,應該考慮一下你要做什麼游戲的腳本,如果是全英文的游戲內核,就要考慮中文編程和英文游戲的對接問題了,特別是Y語言。不是我崇洋 *** ,但是事實證明國內出的一些計算機相關的東西確實都有很多不足之處,有時候可能會很坑。
最後建議還是選用一下現在主流的語言做游戲腳本,想javascript之類的,這些語言其實語法沒比T或Y語言難多少,但是因為大家都在用,可以找到很多資料,還可以有更多的人讓你請教。
Ⅸ 是不是所有的匯編語言都能寫游戲腳本比如說用c語言或者java寫夢幻西遊的押鏢跑商腳本之所以用這
c 和 匯編語言 是相當 底層的語言 了,不可能來寫 游戲腳本,java 一般寫服務端, 游戲腳本 一般是 用專門的腳本語言 比如lua javascript ,魔獸世界 插件腳本全是 lua~ 語法清晰 好懂~
Ⅹ c語言編程 編一個猜數字游戲
源碼如下:
/*File:guess.c*/
#include<stdio.h>/*standardinput&outputsupport*/
#include<stdlib.h>/*srand()rand()*/
#include<time.h>/*time()*/
/*宏定義*/
#defineNUMBER_LENGTH5/*隨機數長度*/
#defineNUMBER_LIMIT10/*隨機數限制,每一位0-9*/
#defineINPUT_LENTH128/*輸入緩沖區大小*/
chargoal[NUMBER_LENGTH]={0};/*保存隨機數*/
charflag[NUMBER_LIMIT]={0};/*保存隨機數標志,保證不重復*/
charinput[INPUT_LENTH]={0};/*保存輸入*/
/*初始化用於保存數據的數組*/
voidinitData()
{
inti=0;
while(i<NUMBER_LENGTH)
goal[i++]=0;
i=0;
while(i<NUMBER_LIMIT)
{
flag[i++]=0;
}
}
/*初始化用於保存緩沖區的數組*/
voidinitBuffer()
{
inti=0;
while(i<INPUT_LENTH)
input[i++]=0;
}
/*顯示猜測結果*/
voiddisplay()
{
intcount=0;
inti=0;
while(i<NUMBER_LENGTH)
{
if(input[i]==goal[i])
{
printf("%c",'o');
count++;
}
else
{
printf("%c",'x');
}
i++;
}
printf(" RIGHT:%dbit(s) ",count);
if(count==NUMBER_LENGTH)
{
printf("Youwin!Thenumberis%s. ",goal);
exit(0);
}
}
/*生成隨機數*/
voidgeneral()
{
/*以時間作為時間種子保證生成的隨機數真正具有隨機性質*/
srand((unsignedint)time(NULL));
inti=0;
while(i<NUMBER_LENGTH)
{
chartmp;
do
{
tmp='0'+((i!=0)?(rand()%10):(1+rand()%9));
}while(flag[tmp]!=0);
flag[tmp]=1;
goal[i++]=tmp;
}
}
/*輸入方法,用於猜測*/
voidguess()
{
printf(": ");
scanf("%s",input);
display();
initBuffer();
}
/*主函數,程序主框架*/
intmain(intargc,constchar*argv[])
{
initData();
initBuffer();
general();
while(1)guess();
return0;
}
==============================================
運行結果見附圖,希望我的回答能夠對你有所幫助。

