跪求一个用C语言写的小程序,答辩用!!!!!!#!@###!!!

跪求一个用C语言写的小程序,答辩用!!!!!!#!@###!!!,第1张

#include<reg52.h>

#include<intrins.h>

//#include<math.h>

#include<stdlib.h>

#include<lcd12864.h>

sbit up = P1^0 //上

sbit down= P1^1 //下

sbit left= P1^2 //左

sbit right = P1^3 //右

sbit restart = P1^4 //功能键

#define snake_max_body 22

#define Key_Up 1

#define Key_Down 4

#define Key_Left 2

#define Key_Right 3

uchar Key_V_temp=0//上次按键值

uchar Key_Value

const uchar code failure[]={"很遗憾,你输了"}

const uchar code maker[]={"设计者:机协成员"}

const uchar code huiz[]={"会长:方吉桐"}

const uchar code guanggao[]={"机器人协会欢迎你"}

const uchar code t[]={

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x0E,0x00,0x00,0x00,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0xFF,0xF7,0xFF,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0xCE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xCE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xCE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xCE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xCE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xCE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xCE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xCE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xCE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xCE,0xFF,0xFF,0xF7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x0E,0xE0,0x00,0x07,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFE,0xFF,0xFF,0xF7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xCF,0xFE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xCF,0xFE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xCF,0xFE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xCF,0xFE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xCF,0xFE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xCF,0xFE,0xFF,0xFF,0xE7,0x3F,0xFF,0x9F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xDF,0xCF,0xFE,0xFF,0xFF,0xE7,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xE0,0x0F,0xC0,0x0E,0xFF,0xFF,0xE7,0x00,0x00,0x00,0x7F,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,

0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x7F,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFD,0xE1,0xF1,0xF8,0xFF,0x9F,0xFF,0x7F,0xF8,0x00,0xFD,0xFB,0xFF,0x8F,0xFF,

0xFF,0xFD,0xED,0xF5,0xBA,0xFF,0xBF,0xFF,0xBF,0xFB,0xDE,0xFD,0xF3,0xFF,0x77,0xFF,

0xFF,0xE0,0x2D,0xF1,0xA8,0xFF,0x1F,0xF8,0x00,0xF8,0x00,0xF0,0x40,0xFE,0xFB,0xFF,

0xFF,0xF8,0xED,0xFF,0xB7,0xFF,0x1F,0xFB,0xFF,0xFB,0xDE,0xFD,0xF6,0xF9,0x04,0xFF,

0xFF,0xF5,0x6D,0xFC,0x03,0xFE,0x4F,0xFA,0x4E,0xF8,0x00,0xFD,0x36,0x7F,0xFF,0xFF,

0xFF,0xED,0xAD,0xFF,0x9F,0xFC,0xE7,0xFB,0x6E,0xFB,0xDE,0xFD,0x6E,0xBC,0x00,0xFF,

0xFF,0xFD,0xED,0xF1,0x28,0xF9,0xF3,0xFB,0x6C,0xFB,0xDE,0xFC,0xDE,0xBF,0x7F,0xFF,

0xFF,0xFD,0xDD,0x74,0x62,0xF3,0xF9,0xFB,0xFF,0xFB,0xDA,0xFD,0xBE,0xFE,0xFB,0xFF,

0xFF,0xFD,0xBE,0x71,0xF8,0xE7,0xFC,0xF2,0x00,0xF7,0xDC,0xFD,0x7C,0xFC,0x01,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF

}

//const uchar zhi[]={

//0xFF,0xF3,0x85,0xE8,0xCC,0xED,0x8D,0xEF}

struct //结构体:食物

{

uchar X

uchar Y

uchar Yes

}Food

struct //结构体:小蛇

{

uchar X[snake_max_body] //蛇的X坐标

uchar Y[snake_max_body]//蛇的Y坐标

uchar Log //蛇的长度

uchar Life //蛇的生命

uchar Score//蛇的分数

uchar Level//蛇的等级

}Snake

void Init_time1() //定时器初始化,用来产生随机数

{

EA=1

ET1=1

TMOD|=0X20

TH1=0X01

TL1=0X01

TR1=1

}

void snake_init() //贪吃蛇初始化场地

{

uchar i

line(0,0,0,80)

line(0,80,50,80)

line(50,80,50,0)

line(50,0,0,0)

Snake.Log=2 //定义初始化蛇的长度

Snake.Life=0

Snake.Score=0

// Food.Yes=1

Key_Value=0

for(i=0i<Snake.Logi++) //将蛇给赋值

{

Snake.X[i]=i+2

Snake.Y[i]=2

}

for(i=0i<Snake.Logi++) //将蛇给画出来

{

dot(Snake.X[i],Snake.Y[i])

}

}

key_press()//按键检测

{

// uchar key

up=1

if(!up)

{

delay_ms(5)

if(!up)

{

Key_Value=1

}

while(!up)

}

down=1

if(!down)

{

delay_ms(5)

if(!down)

{

Key_Value=4

}

while(!down)

}

left=1

if(!left)

{

delay_ms(5)

if(!left)

{

Key_Value=2

}

while(!left)

}

right=1

if(!right)

{

delay_ms(5)

if(!right)

{

Key_Value=3

}

while(!up)

}

// return Key_Value

}

void Run_snake(void) //蛇移动

{

uchar i=0

if((Key_Value==Key_Right&&Key_V_temp!=Key_Left)||(Key_Value==Key_Left&&Key_V_temp==Key_Right))

{

offdot(Snake.X[0],Snake.Y[0]) //先把蛇尾给熄灭掉

for(i=0i<Snake.Log-1i++) //蛇身都是它前一段的蛇身的位置

{

Snake.X[i]=Snake.X[i+1]

Snake.Y[i]=Snake.Y[i+1]

}

Snake.X[Snake.Log-1]=Snake.X[Snake.Log-2]+0

Snake.Y[Snake.Log-1]=Snake.Y[Snake.Log-2]+1 //蛇头向要求的方向移动

for(i=0i<Snake.Logi++) //蛇显示函数

{

dot(Snake.X[i],Snake.Y[i])

}

Key_V_temp=Key_Right //保存现在的值,以便下次按下时使用

}

if((Key_Value==Key_Left&&Key_V_temp!=Key_Right)||(Key_Value==Key_Right&&Key_V_temp==Key_Left))

{

offdot(Snake.X[0],Snake.Y[0])

for(i=0i<Snake.Log-1i++)

{

Snake.X[i]=Snake.X[i+1]

Snake.Y[i]=Snake.Y[i+1]

}

Snake.X[Snake.Log-1]=Snake.X[Snake.Log-2]+0

Snake.Y[Snake.Log-1]=Snake.Y[Snake.Log-2]-1

for(i=0i<Snake.Logi++)

{

dot(Snake.X[i],Snake.Y[i])

}

Key_V_temp=Key_Left

}

if(( Key_Value==Key_Up&&Key_V_temp!=Key_Down)||( Key_Value==Key_Down&&Key_V_temp==Key_Up))

{

offdot(Snake.X[0],Snake.Y[0])

for(i=0i<Snake.Log-1i++)

{

Snake.X[i]=Snake.X[i+1]

Snake.Y[i]=Snake.Y[i+1]

}

Snake.X[Snake.Log-1]=Snake.X[Snake.Log-2]-1

Snake.Y[Snake.Log-1]=Snake.Y[Snake.Log-2]+0

for(i=0i<Snake.Logi++)

{

dot(Snake.X[i],Snake.Y[i])

}

Key_V_temp=Key_Up

}

if(( Key_Value==Key_Down&&Key_V_temp!=Key_Up)||( Key_Value==Key_Up&&Key_V_temp==Key_Down))

{

offdot(Snake.X[0],Snake.Y[0])

for(i=0i<Snake.Log-1i++)

{

Snake.X[i]=Snake.X[i+1]

Snake.Y[i]=Snake.Y[i+1]

}

Snake.X[Snake.Log-1]=Snake.X[Snake.Log-2]+1

Snake.Y[Snake.Log-1]=Snake.Y[Snake.Log-2]+0

for(i=0i<Snake.Logi++)

{

dot(Snake.X[i],Snake.Y[i])

}

Key_V_temp=Key_Down

}

if((Snake.X[Snake.Log-1]>=50)||(Snake.Y[Snake.Log-1]>=80)||(Snake.X[Snake.Log-1]==0)||(Snake.Y[Snake.Log-1]==0))//判蛇头是否撞到墙壁

{

Snake.Life=1

}

for(i=3i<Snake.Logi++)//从第三节开始判断蛇头是否咬到自己

{

if((Snake.X[i]==Snake.X[0])&&(Snake.Y[i]==Snake.Y[0]))

{

Snake.Life=1

}

}

/* if(Snake.Life==1)

{

i=Key_Value

// Display_dead( i)

// clear()

write_comd(0x34)

}*/

/* if(Snake.Log==snake_max_body) //判断蛇是否最长了

{

//i=Key_Value

write_comd(0x34)

// clear()

write_comd(0x30)

// Display_Pass(i)

}*/

if(Snake.X[Snake.Log-1]==Food.X&&Snake.Y[Snake.Log-1]==Food.Y)//判蛇是否吃到食物

{

Snake.Log++ //蛇节数加1

Snake.X[Snake.Log-1]=Food.X

Snake.Y[Snake.Log-1]=Food.Y

Snake.Score++

Food.Yes=1 //食物标志置1

}

if(Food.Yes==0) //放果子程序

{

dot(Food.X,Food.Y)

}

if(Food.Yes==1)

{

while(1)

{

Food.X=TL1/5//获得随机数

Food.Y=TL1/4

for(i=0i<Snake.Logi++)//判断产生的食物坐标是否和蛇身重合

{

if((Food.X==Snake.X[i])&&(Food.X==Snake.Y[i]))

break

}

if(i==Snake.Log)

{

Food.Yes=0

break //产生有效的食物坐标

}

}

}

}

void main()

{

lcd_init() //初始化LCD

Init_time1()

clear()

_nop_()_nop_()_nop_()

map(t)

delay_ms(1400)

clear()

snake_init()

// snake_food()

Food.X=TL1/5

Food.Y=TL1/4

dot(Food.X,Food.Y)

// dot(TL1&49,TL1&79)

// dot(TL1&49,TL1&79)

while(1)

{

if(Snake.Life)

{

// clear()

write_comd(0x34)

write_comd(0x30)

delay_ms(100)

display(0x80,7,failure)

display(0x90,8,maker)

display(0x88,6,huiz)

display(0x98,8,guanggao)

}

else

{

key_press()

Run_snake()

write_comd(0x36)

}

if(Snake.Score<15)

delay_ms(150-10*Snake.Score)

else

delay_ms(5)

}

}

1 最经典的“Hello world!”,直接用 printf 输出 “Hello world!”

#include <stdio.h>

#include <iostream>

int main(){

printf("Hello world! ")// 教科书的写法

puts("Hello world!")// 我最喜欢的

puts("Hello" " " "world!")// 拼接字符串

std::cout <<"Hello world!" <<std::endl// C++风格的教科书写法

return 0}

2、用宏写的“Hello world!”

“#”可以“提取”参数的名 字,把它变成字符串。

#include <stdio.h>

#define Say(sth) puts (#sth)

int main(){

return Say(Hello world!)

}

3. 断章取义的“Hello world!”

#include <stdio.h>

int main(){

return puts ("Do not say: Hello world! "[12])

}

4. 退出时运行的“Hello world!”

atexit()注册回调函数。这个函数可以调用多次,最后注册的函数最先执行。

#include <stdio.h>

#include <stdlib.h>

void say(){printf("world! ")}

void sth(){printf("Hello ")}

int main(){

return atexit(say), atexit (sth)

}

5. 读取自己的“Hello world!”

// Hello world!

#include <iostream>

#include <fstream>

#include <string>

int main(){

std::ifstream ifs(__FILE__)

std::string say, some, word

ifs >>say >>some >>word

std::cout <<some <<" " <<word

return 0

}

6. 话分两头的“Hello world!”

声明一个全局的类的实例,在 main 函数执行之前会调用这个类的构造函数,结束之后则会调用析构函数。

#include <iostream>

class say{

public:say(){std::cout <<"Hell"}

~say(){std::cout <<"world!"}

}hello

int main(){

std::cout <<"o "

return 0

}

7. 传入模板的“Hello world!”

#include <iostream>

template <char * words>

class say{

public:

void operator () (){std::cout <<words}

}

char hello[] = "Hello world!"

int main(){

return say<hello>()(), 0

}

8. 调用私有函数的“Hello world!”

#include <iostream>

#include <cstddef>

class secret{

private:

virtual void say(){std::cout <<"Hello world!"}

}

int main(){

secret word

(reinterpret_cast<void (*)()>(**(intptr_t**)(&word)))()

return 0

}

9. 直接修改函数的返回地址

#include <stdio.h>

#include <stdlib.h>

#include <stddef.h>

void say(){

puts("Hello world!")

exit(0)

}

int main()

{

volatile intptr_t a = 0

volatile intptr_t * p = &a

*(p + 2) = (intptr_t)say

*(p + 3) = (intptr_t)say

return 0

}

10. 外星人说的“Hello world!”

#include <stdio.h>

void alien_say (char * p){

while (putchar (*(p += *(p + 1) - *p)))

}

int main(){

return alien_say ("BETHO! Altec oh liryom(a loadjudas!) dowd."), 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8109386.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存