| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5559 人关注过本帖
标题:中文版的C语言V1.71 天宫一号纪念版发布
取消只看楼主 加入收藏
a2120258
Rank: 2
等 级:论坛游民
帖 子:53
专家分:11
注 册:2010-4-18
结帖率:0
收藏
 问题点数:0 回复次数:43 
中文版的C语言V1.71 天宫一号纪念版发布
习语言 V1.71 天宫一号纪念版
 
习语言 V1.71
【概括介绍】
  综合了PASCAL和C的优点实现,支持 “开始”“结束”扩起语句块。
 
【基本介绍】
  习语言即中文版的C语言。作为一种新起步的中文编程语言,了解的人可能还很少,但是开发者一直在不断完善。也许很多人都听说过易语言,易语言其实看起来像中文版的VB,但两者在许多方面不同。而习语言,则是中文版的C语言。     
 
  习语言由一套完备的编程语法和相配套的工具组成,旨在将计算机及软件编程大众化,普及化,中文化,提高程序的维护性而诞生。习语言还很年轻,不到一岁,可作为学习工具。
 
  作为一种中文编程语言,习语言中所有的关键字和函数都为中文。
 
  习语言有可能成为将来中文系统的开发语言。目前习语言已经完全支持汇编和C语言,并向windows图形处理发展。
 
  历史经验证明,英文写的代码大部分都会遗忘的。而习语言则避免了这一点。真正符合汉语言特色。而且支持全角和半角的标点符号,编程时输入符号类时不用切换为英文输入法。   中文C(习)语言中文编程系统(简称:习语言):是一款主要用于教育和学习的中文编程软件系统。基于现有C语言系统实现并有扩充。
 
【软件特点】
1、完全兼容现有的C语言系统,在设置好头文件路径的条件下,可以编译现存大部分C代码。(对VC的兼容性最好!)
2、完全支持全中文编程  
3、综合了PASCAL和C的优点实现,支持 “开始”“结束”扩起语句块。支持更多注释方法,方便程序组织。   4、支持多字节字直观表示。如 '我', 'abcd'都可以作为字(符).  
5、支持中文标点符号,中文标点符号和英文标点符号混合使用等。   
6、支持文章式的程序组织,中文文章中嵌入程序,直接编译。
7、支持中文运算符,支持全角,半角混合使用。
8、体积小巧,单一接口文件,使用理解容易。
 
用途:
1、开发底层软件如操作系统等
2、写控制台程序(俗称DOS程序)
3、写纯图形界面程序(通常的WINDOWS程序 )
4、写控制台和图形界面同时存在的混合程序。
5、编写游戏程序( DirectX 2D 实现)
 
习语言的下载地址:http://www.
 
贪吃蛇程序+源码修正版.rar (65.2 KB)

 
以下是用习语言改编(C语言源程序)的贪吃蛇代码:
 
 
【版本1.0,2011年10月 花心胡萝卜制作】
#包含 “习语言系统.接口”
#包含 “习语言视窗.接口”
 
#定义  N 200
【#定义  左 0x4b00
#定义  右 0x4d00
#定义  下 0x5000
#定义  上 0x4800
#定义  ESC 0x011b】
 
类型定义 无类型 (标准调用 *延时函数)(
    自然数类型 毫秒数  
);
 
整数类型  计数,标识,定时器标识;
整数类型 得分=0;【得分】
自然数类型 游戏速度=300;【500;【游戏速度自己调整】
 
画笔类型 食物画笔,蛇画笔;
 
整数类型 定时器控制,定时器按键;
 
结构类型  食物结构

   整数类型 横坐标;【食物的横坐标】
   整数类型 纵坐标;【食物的纵坐标】
   整数类型 是否出现食物;【判断是否要出现食物的变量】
}食物;【食物的结构体】
 
结构类型 蛇结构

   整数类型 横坐标[N];
   整数类型 纵坐标[N];
   整数类型 蛇节数;【蛇的节数】
   整数类型 移动方向;【蛇移动方向】
   整数类型 生命;【 蛇的生命,0活着,1死亡】
}蛇;
 
整数类型 显示器消息主处理( 自然数类型 消息, 双字类型 参数1, 双字类型 参数2 )

    【====用户消息处理开始==】
    //用户已经处理的消息,返回1,系统不再处理此消息,没处理的消息,返回0,让系统处理
    分支( 消息 )
   
        若等于 视窗消息_键按下:
                  {
           如果((参数1  等于 ‘W’ 或  参数1 等于 ‘w’)  与  蛇.
 
移动方向  不等于  4)【判断是否往相反的方向移动】{
              蛇.移动方向=3;
           } 否则 {
               如果((参数1  等于 ‘D’ 或 参数1 等于 ‘d’)   与
 
  蛇.移动方向  不等于  2){
                  蛇.移动方向=1;
               } 否则 {
                   如果((参数1  等于 ‘A’  或 参数1 等于 ‘a’
 
)  与  蛇.移动方向  不等于  1) {
                      蛇.移动方向=2;
                   } 否则 {
                      如果((参数1  等于  ‘S’ 或 参数1 等于
 
 ‘s’ )  与  蛇.移动方向  不等于  3) {
                          蛇.移动方向=4;
                      } 否则 {
                             如果(参数1  等于  ‘X’ 或 参数1 
 
等于 ‘x’ ){
                                 图形关闭显示器(1);
                            
                       }
                  }
              }
          }
      }
            跳出;
   
    【====用户消息处理结束==】
    返回 0;

 
【输出成绩】
无类型 游戏结果()
{   
     字符串类型 串;
   格式化(串,20,“得分:%整”, 得分);
   【整数类型】图形输出文字(【整数类型 水平坐标】55,【整数类型 垂直坐标】22,【字符
 
串类型 字符串】串);

 
无类型 游戏结束()

           画刷类型 画刷1;
      【整数类型】图形销毁定时器(【双字类型 定时器号码】1);
 
    【无类型】  图形清屏(【无类型】);
 
    【整数类型】图形获取画刷(【画刷类型 *画刷指针】&画刷1);
        画刷1.颜色 = 红绿蓝(218,228,228);
        【整数类型】图形设置画刷(【画刷类型 *画刷指针】&画刷1);
        【颜色类型】图形设置背景色(【颜色类型  背景色】红绿蓝(218,228,228));
        图形输出文字(260, 230 , “游戏结束!”);
            游戏结果();

 
无类型 延时(自然数类型 时长)

    模块证类型 模块证;
    延时函数 Sleep;
    模块证 =【模块证类型】获取模块证(【字符串类型 模块名】“kernel32.dll”);
    Sleep =【无类型 *】  (延时函数)获取函数地址(【模块证类型 模块证】模块证,【字
 
符串类型 函数名】“Sleep”);
    Sleep(时长);

 
无类型 绘画()

       颜色类型 前景色;
       画刷类型  画刷;
       
   前景色 = 红绿蓝(255,0,0) ;
   
      【无类型】  图形清屏(【无类型】);
   
      【整数类型】图形获取画刷(【画刷类型 *画刷指针】&画刷);
      画刷.颜色 = 红绿蓝(218,228,228);
      【整数类型】图形设置画刷(【画刷类型 *画刷指针】&画刷);
   【颜色类型】图形设置背景色(【颜色类型  背景色】 红绿蓝(218,228,228) )
 

   
   【整数类型】图形获取画笔(【画笔类型 *画笔指针】&蛇画笔);
   蛇画笔.颜色 = 前景色;
   蛇画笔.风格 = 0;
   【整数类型】图形设置画笔(【画笔类型 *画笔指针】&蛇画笔);
   
   步进循环(【初始化语句】计数 = 50;【条件表达式】计数  小于等于  600;【步
 
进语句】计数  加等  10){
       【循环语句】
       【整数类型】图形画方框(【整数类型 左坐标】计数,【整数类型 上坐标】40,【整
 
数类型 右坐标】计数 加 10,【整数类型 下坐标】49);
       【整数类型】图形画方框(【整数类型 左坐标】计数,【整数类型 上坐标】451,【
 
整数类型 右坐标】计数 加 10,【整数类型 下坐标】460);
   }
   步进循环(【初始化语句】计数 = 40;【条件表达式】计数  小于等于  450;【步
 
进语句】计数  加等  10){
       【循环语句】
       【整数类型】图形画方框(【整数类型 左坐标】50,【整数类型 上坐标】计数,【整
 
数类型 右坐标】59,【整数类型 下坐标】计数 加 10);
       【整数类型】图形画方框(【整数类型 左坐标】601,【整数类型 上坐标】计数,【
 
整数类型 右坐标】610,【整数类型 下坐标】计数 加 10);
   }
   游戏结果();【输出得分】

 
整数类型 定时器事件处理主函数(双字类型 定时器号)
{     
     绘画();
     
      {          
         如果(食物.是否出现食物 等于 1)【需要出现新食物】
         {
             食物.横坐标=【整数类型】  取随机数(【无参数】) 模除 400
 
 加 60;
             食物.纵坐标=【整数类型】  取随机数(【无参数】) 模除 350
 
 加 60;
             当(食物.横坐标 模除 10 不等于 0)【食物随机出现后必须让食
 
物能够在整格内,这样才可以让蛇吃到】
                食物.横坐标 加加 ;
             当(食物.纵坐标 模除 10 不等于 0)
                食物.纵坐标 加加 ;
             食物.是否出现食物=0;【画面上有食物了】            
 
    
         }
         如果(食物.是否出现食物 等于 0)【画面上有食物了就要显示】
         {
              【整数类型】图形获取画笔(【画笔类型 *画笔指针】&食物画笔);
              食物画笔.颜色 =  红绿蓝(0,255,0) ;
              【整数类型】图形设置画笔(【画笔类型 *画笔指针】&食物画笔);
              【整数类型】图形画方框(【整数类型 左坐标】食物.横坐标,【整数
 
类型 上坐标】食物.纵坐标,【整数类型 右坐标】食物.横坐标 加 10,【整数类型 下坐标】食
 
物.纵坐标-10);
         }
         步进循环(计数 = 蛇.蛇节数-1;计数 大于 0;计数   减减 )【蛇
 
的每个环节往前移动,也就是贪吃蛇的关键算法】
         {
                蛇.横坐标[计数]=蛇.横坐标[计数-1];
                蛇.纵坐标[计数]=蛇.纵坐标[计数-1];
         }
       【1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头】
              
         分支(蛇.移动方向)
         {
            若等于 1: 蛇.横坐标[0]  加等  10;跳出;
            若等于 2: 蛇.横坐标[0]  减等  10;跳出;
            若等于 3: 蛇.纵坐标[0]  减等  10;跳出;
            若等于 4: 蛇.纵坐标[0]  加等  10;跳出;
         }
         步进循环(计数=3;计数 小于 蛇.蛇节数;计数  加加 )
         【从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来】
         {
            如果(蛇.横坐标[计数]  等于  蛇.横坐标[0]  与  蛇.纵
 
坐标[计数]  等于  蛇.纵坐标[0])
            {
               游戏结束();【显示失败】
               蛇.生命=1;
               跳出;
            }
         }
         如果(蛇.横坐标[0] 小于 55  或  蛇.横坐标[0] 大于 595
 
  或  蛇.纵坐标[0] 小于 55  或  蛇.纵坐标[0] 大于 455)【蛇是否撞到
 
墙壁】
         {
             游戏结束();【本次游戏结束】
             蛇.生命=1; 【蛇死】
         }
         如果(蛇.生命  等于  1)【以上两种判断以后,如果蛇死就跳出内循环,重
 
新开始】
         {
             【整数类型】图形销毁定时器(【双字类型 定时器号码】定时器标识);
            游戏结束();
         }
         如果(蛇.横坐标[0]  等于  食物.横坐标  与  蛇.纵坐标[0] 
 
 等于  食物.纵坐标)【吃到食物以后】
         {
            【把画面上的食物东西去掉】
            【整数类型】图形获取画笔(【画笔类型 *画笔指针】&食物画笔);
            食物画笔.颜色 = 红绿蓝(0,0,0);
            【整数类型】图形设置画笔(【画笔类型 *画笔指针】&食物画笔);
            【整数类型】图形画方框(【整数类型 左坐标】食物.横坐标,【整数类型  
 
上坐标】食物.纵坐标,【整数类型 右坐标】食物.横坐标 加 10,【整数类型 下坐标】食物.纵
 
坐标-10);
             蛇.横坐标[蛇.蛇节数] = -20;
             蛇.纵坐标[蛇.蛇节数] = -20;
            【新的一节先放在看不见的位置,下次循环就取前一节的位置】
             蛇.蛇节数  加加 ;【蛇的身体长一节】
             食物.是否出现食物=1;【画面上需要出现新的食物】
             得分  加等  10;
             游戏结果();【输出新得分】
         }
        【画出蛇】
        【整数类型】图形获取画笔(【画笔类型 *画笔指针】&蛇画笔);
         蛇画笔.颜色 = 红绿蓝(0,0,255);
        【整数类型】图形设置画笔(【画笔类型 *画笔指针】&蛇画笔);
         步进循环(计数=0;计数 小于 蛇.蛇节数;计数  加加 )
            【整数类型】图形画方框(【整数类型 左坐标】蛇.横坐标[计数],【整
 
数类型 上坐标】蛇.纵坐标[计数],【整数类型 右坐标】蛇.横坐标[计数] 加 10,【整数类
 
型 下坐标】蛇.纵坐标[计数]-10);
        【延时(游戏速度);】
        【用黑色去除蛇的的最后一节】
//        【整数类型】图形获取画笔(【画笔类型 *画笔指针】&蛇画笔);
//         蛇画笔.颜色 = 红绿蓝(0,0,0);
//        【整数类型】图形设置画笔(【画笔类型 *画笔指针】&蛇画笔);
//        【整数类型】图形画方框(【整数类型 左坐标】蛇.横坐标[蛇.蛇节数-1],【
 
整数类型 上坐标】蛇.纵坐标[蛇.蛇节数-1],【整数类型 右坐标】蛇.横坐标[蛇.蛇节数-1]  
 
加 10,【整数类型 下坐标】蛇.纵坐标[蛇.蛇节数-1]-10);        
      }  
      如果(蛇.生命  等于  1)【如果蛇死就跳出循环】{
          【整数类型】图形销毁定时器(【双字类型 定时器号码】定时器标识);
          游戏结束();
      }
      
      返回 0;       

 
 
无类型 初始化()
{   
    
   整数类型 标志位=0;
   画笔类型 画笔;
   
   【整数类型】图形初始化显示器(【字符类型* 名称】“习语言简易版贪吃蛇    by   花心胡萝
 
  ”,【整数类型 宽】660,【整数类型 高】500,【字符类型* 图标】空指针,【自然数类型  
 
属性】0,【显示器消息处理函数 消息回调】显示器消息主处理);
   【整数类型】图形打开显示器(【整数类型 模式】0);
   
       【整数类型】图形输出文字(【整数类型 水平坐标】50,【整数类型 垂直坐标】30,【字符串类型  
 
字符串】“习语言 简易贪吃蛇   花心胡萝卜编写。”);
       【整数类型】图形输出文字(【整数类型 水平坐标】50,【整数类型 垂直坐标】60,【字符串类型  
 
字符串】“控制方法:上 W,下 S,左 A,右 D。”);
       【整数类型】图形输出文字(【整数类型 水平坐标】50,【整数类型 垂直坐标】90,【字符串类型  
 
字符串】“按任意键开始玩。”);
       【整数类型】图形输出文字(【整数类型 水平坐标】50,【整数类型 垂直坐标】120,【字符串类
 
型 字符串】“由于刚开始玩习语言,很多不知道的东西!”);
       【整数类型】图形输出文字(【整数类型 水平坐标】50,【整数类型 垂直坐标】150,【字符串类
 
型 字符串】“所以导致程序不美观,”);
       【整数类型】图形输出文字(【整数类型 水平坐标】50,【整数类型 垂直坐标】180,【字符串类
 
型 字符串】“希望大家见谅!”);
       【整数类型】图形输出文字(【整数类型 水平坐标】50,【整数类型 垂直坐标】210,【字符串类
 
型 字符串】“欢迎大家与我讨论习语言!”);
       【整数类型】图形输出文字(【整数类型 水平坐标】50,【整数类型 垂直坐标】240,【字符串类
 
型 字符串】“QQ:84613538”);
       【整数类型】图形输出文字(【整数类型 水平坐标】50,【整数类型 垂直坐标】320,【字符串类
 
型 字符串】“习语言官方论坛:http://www.”);
       【整数类型】图形输出文字(【整数类型 水平坐标】50,【整数类型 垂直坐标】350,【字符串类
 
型 字符串】“习语言QQ群:61440235”);
       【整数类型】图形输出文字(【整数类型 水平坐标】50,【整数类型 垂直坐标】380,【字符串类
 
型 字符串】“欢迎使用习语言!”);
        
       获取按键();
   
    绘画();
    
    【无类型】  图形初始化定时器(【定时器事件处理函数 定时器回调】定时器事件处理主函
 
数);
    
    定时器控制 = 【双字类型】图形创建定时器(【双字类型 定时器号码】1,【双字类型 时
 
间间隔】游戏速度);
    
    食物.是否出现食物=1;【1表示需要出现新食物,0表示已经存在食物】
    蛇.生命=0;【活着】
    蛇.移动方向=1;【方向往右】
    蛇.横坐标[0]=100;蛇.纵坐标[0]=100;【蛇头】
    蛇.横坐标[1]=110;蛇.纵坐标[1]=100;
    蛇.蛇节数=2;【节数】
    
   图形等待显示器关闭();

 
 
 
整数类型  主函数(整数类型 参数个数, 字符串类型 参数[])

    【======用户代码开始======】
    初始化();
    
    图形关闭显示器(1);
     
    返回 0;

【版本1.0,2011年10月 花心胡萝卜制作】

[ 本帖最后由 a2120258 于 2011-10-9 12:26 编辑 ]
搜索更多相关主题的帖子: 软件编程 计算机 天宫一号 中文编程 纪念版 
2011-10-06 16:12
a2120258
Rank: 2
等 级:论坛游民
帖 子:53
专家分:11
注 册:2010-4-18
收藏
得分:0 
习语言可以直接编译C源代码,所以C语言的源代码可以直接用习语言进行编译,不用其他的设置。他可以说是C语言,也可以说是习语言。总而言之,他是中文版的C语言!
俄罗斯方块_WIN.rar (66.39 KB)

含源代码

[ 本帖最后由 a2120258 于 2011-10-11 22:01 编辑 ]
2011-10-06 16:14
a2120258
Rank: 2
等 级:论坛游民
帖 子:53
专家分:11
注 册:2010-4-18
收藏
得分:0 
回复 3楼 laoyang103
当然了,他可以直接编译C源代码哦!
支持C99标准,甚至可以编译LIUNX源代码!
2011-10-06 16:17
a2120258
Rank: 2
等 级:论坛游民
帖 子:53
专家分:11
注 册:2010-4-18
收藏
得分:0 
回复 5楼 hjywyj
可以说是新出来的语言吧!
也可以说,他就是C语言,只不过他是C语言的升级版,支持中文函数和变量,连关键字都可以用中文
2011-10-06 16:20
a2120258
Rank: 2
等 级:论坛游民
帖 子:53
专家分:11
注 册:2010-4-18
收藏
得分:0 
回复 7楼 lxk115
不是取代C语言!
因为他是C语言的升级版,是中文版的C语言!

[ 本帖最后由 a2120258 于 2011-10-6 23:03 编辑 ]
2011-10-06 17:10
a2120258
Rank: 2
等 级:论坛游民
帖 子:53
专家分:11
注 册:2010-4-18
收藏
得分:0 
回复 9楼 embed_xuel
开放什么源代码?
2011-10-06 17:30
a2120258
Rank: 2
等 级:论坛游民
帖 子:53
专家分:11
注 册:2010-4-18
收藏
得分:0 
回复 11楼 flyue
为什么开放编译器源代码?
2011-10-06 17:52
a2120258
Rank: 2
等 级:论坛游民
帖 子:53
专家分:11
注 册:2010-4-18
收藏
得分:0 
回复 13楼 flyue
不是GCC改的!
这是全新的语言,支持中文汇编!
2011-10-06 19:49
a2120258
Rank: 2
等 级:论坛游民
帖 子:53
专家分:11
注 册:2010-4-18
收藏
得分:0 
回复 14楼 hjywyj
请使用后,在说吧!
习语言是一门全新的语言,是C语言的升级版。使C语言支持中文函数和变量
2011-10-06 19:50
a2120258
Rank: 2
等 级:论坛游民
帖 子:53
专家分:11
注 册:2010-4-18
收藏
得分:0 
回复 15楼 外部三电铃
源代码会开放的,不过开放的是用习语言自身写的!
所以需要一段时间的过度,将其源代码用习语言重写一次,就会开放编译器源码!
2011-10-06 19:52
快速回复:中文版的C语言V1.71 天宫一号纪念版发布
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016127 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved