关于可以抽签的编程。

使用pascal

开始

随机化;

writeln("恭喜你!",随机(& ltNumbers > )+1,“赢了!”);

结束。

可以播放的节目?这里是一个贪吃蛇程序,原创,但是好像有bug(对游戏没有影响)

程序GReedySNAKE

使用Crt

const up = 0;

右= 1;

down = 2;

左= 3;

平常= 0;

奖金= 1;

shorten = 2;

类型点=记录

x,y:整数;

结束;

tfood类型=记录

fpoint:点;

ftype:byte;

的大小写字节

平常:();

奖金:

(b time:word;

bs core:byte);

缩短:

(stime:word;

slength:byte);

结束;

var cur,bin:point;

食物:tfood

轨道:数组[1..200]的点;

ch:char;

dir:字节;

hit:布尔型;

int,length,score:整数;

函数p zero(p:point):boolean;

var bool:布尔型;

开始

如果(p.x=0)和(p.y=0 ),则

布尔:=真

其他

bool:= false;

p zero:= bool;

结束;

过程p write(p:point;ch:char);

开始

如果不是pzero(p ),则

开始

gotoxy(p.x,p . y);

写(ch);

结束;

结束;

函数psame(p,p2:point):boolean;

var bool:布尔型;

开始

如果(p.x=p2.x)和(p.y=p2.y ),则

布尔:=真

其他

bool:= false;

psame:= bool;

结束;

过程pset(var p:point;x2,y2:整数);

开始

p . x:= x2;

p . y:= y2;

结束;

过程new food(var s food:t food);

var int2:整数;

好的:布尔型;

开始

用sfood做

开始

pwrite(fpoint,' ');

ftype:= random(9);

如果(ftype=3)或(ftype=4)那么ftype:= 1;

如果ftype=5,则ftype:= 2;

如果ftype & gt5那么ftype:= 0;

案例类型

通常:;

奖金:

开始

btime:=(random(3)+4)* 20;{20=1000/50}

bs core:= 8-(btime div 20);

结束;

缩短:

开始

如果3 & gt那么长度

ftype:=通常

其他

开始

stime:=(random(3)+4)* 20;

slength:= random(2)+1;

结束;

结束;

结束;

重复

好的:=真;

pset(fpoint,random(78)+2,random(46)+2);

对于int:=1到长度do

okay:=okay and (not psame(fpoint,track[int]);

okay:=okay and(非psame(fpoint,cur)) and(非psame(fpoint,bin));

直到还好;

案例类型

通常:

开始

textcolor(浅洋红色);

pwrite(fpoint,# 3);

textcolor(黄色);

结束;

奖金:

开始

textbackground(红色);

pwrite(fpoint,' B ');

textbackground(黑色);

结束;

缩短:

开始

textbackground(绿色);

pwrite(fpoint,' S ');

textbackground(黑色);

结束;

结束;

结束;

结束;

程序newtrack

var int:integer;

开始

pwrite(bin,' ');

对于int:=1到长度do

pwrite(track[int],# 219);

textcolor(浅红色);

pwrite(cur,# 2);

textcolor(黄色);

gotoxy(cur.x,cur . y);

结束;

开始

随机化;

check break:= false;

textbackground(黑色);

textcolor(黄色);

clrscr

writeln('贪婪的蛇');

writeln('使用',#27#24#25#26,'键来控制蛇。');

writeln(‘持续按下其中一个键可以让蛇跑得更快。’);

textcolor(浅洋红色);

写(# 3);

textcolor(黄色);

writeln('普通食物,吃了得分+10。');

textbackground(红色);

写(' B ');

textbackground(黑色);

writeln('奖励食物,如果吃了得分+40或60或80。“快吃吧!”);

writeln('如果被吃掉,蛇的长度会大大增加。');

writeln('所以尽量吃这种食物:');

textbackground(绿色);

写(' S ');

textbackground(黑色);

用食物来缩短蛇的长度。也要快!”);

writeln('蛇的最大长度是201。');

writeln(‘如果长度真的是201,游戏就结束了。’);

writeln('不要让蛇撞到墙壁或它的身体!');

writeln(' P '键:暂停,暂停时按任意键继续。);

writeln('注意:(1)游戏前最好按Alt-Enter。');

writeln(' (2)如果蛇走得太快,再试试打开它。');

writeln('按任意键继续...');

ch:= read key;

如果ch=#0那么ch:= read key;

clrscr

writeln('谈经验:');

writeln('(1)连续按',#27#24#25#26,'键中的一个可以使蛇变快,');

writeln('小心使用这个!');

writeln('应该只在食物不平常的时候使用。');

writeln('(2)当蛇的长度过长时,');

writeln(‘最好放弃吃奖励食品的机会。’);

writeln('(3)最好不要一而再、再而三地追逐奖金食物!');

writeln('也许蛇会撞到它的身体。');

只谈经验。用不用,这是你的选择。);

writeln('按任意键继续...');

ch:= read key;

如果ch=#0那么ch:= read key;

text mode(8060);

textbackground(黑色);

clrscr

textcolor(黄色);

pset(cur,1,1);

对于int:=1到100 do

pset(track[int],0,0);

pset(bin,0,0);

长度:= 1;

得分:= 0;

dir:= right;

textbackground(红色);

gotoxy(1,50);

writeln

writeln

textbackground(蓝色);

写('长度: ',长度+1);

gotoxy(1,49);

写('分数: ',分数);

textbackground(黑色);

textcolor(红色);

gotoxy(1,1);

写(# 2);

gotoxy(1,1);

textcolor(黄色);

newfood(食物);

ch:= read key;

如果ch=#0那么ch:= read key;

重复

重复

case food . ft类型

通常:

开始

textcolor(浅洋红色);

pwrite(food.fpoint,# 3);

textcolor(黄色);

结束;

奖金:

开始

textbackground(红色);

pwrite(food.fpoint,' B ');

textbackground(黑色);

结束;

缩短:

开始

textbackground(绿色);

pwrite(food.fpoint,' S ');

textbackground(黑色);

结束;

结束;

gotoxy(food.fpoint.x,food . fpoint . y);

如果psame(cur,food.fpoint)则

开始

case food . ft类型

通常:

开始

inc(分数);

inc(长度);

结束;

奖金:

开始

inc(score,food . bs core * 2);

inc(length,trunc(food . bs core * 2.5));

结束;

缩短:

开始

for int:= 1 to food . slength do

开始

pwrite(track[length-int+1],' ');

pset(track[length-int+1],0,0);

结束;

dec(长度、食物、长度);

结束;

结束;

textbackground(蓝色);

gotoxy(8,49);

写(分数* 10);

gotoxy(9,50);

textbackground(红色);

clreol

textbackground(蓝色);

写(长度+1);

textbackground(黑色);

newfood(食物);

结束;

延迟(50);

if food.ftype & lt& gt那就像往常一样

开始

dec(food . b time);

如果food.btime=0,则

newfood(食物);

结束;

案例目录

向上:

开始

如果cur.y & gt那么1

开始

bin:=轨道[长度];

如果长度& lt那么=200

for int:=length downto 1 do

轨道[int+1]:=轨道[int]

其他

for int:= 199 down to 1 do

track[int+1]:= track[int];

track[1]:= cur;

十二月(当前年);

newtrack

结束

其他

hit:= true;

结束;

左侧:

开始

如果cur.x & gt那么1

开始

bin:=轨道[长度];

如果长度& lt那么=200

for int:= length-1 down to 1 do

轨道[int+1]:=轨道[int]

其他

for int:= 199 down to 1 do

track[int+1]:= track[int];

track[1]:= cur;

dec(cur . x);

newtrack

结束

其他

hit:= true;

结束;

右:

开始

if cur.x & lt那就80

开始

bin:=轨道[长度];

如果长度& lt那么=200

for int:= length-1 down to 1 do

轨道[int+1]:=轨道[int]

其他

for int:= 199 down to 1 do

track[int+1]:= track[int];

track[1]:= cur;

Inc(cur . x);

newtrack

结束

其他

hit:= true;

结束;

向下:

开始

if cur.y & lt那就48

开始

bin:=轨道[长度];

如果长度& lt那么=200

for int:= length-1 down to 1 do

轨道[int+1]:=轨道[int]

其他

for int:= 199 down to 1 do

track[int+1]:= track[int];

track[1]:= cur;

Inc(cur . y);

newtrack

结束

其他

hit:= true;

结束;

结束;

对于int:=1到长度do

开始

hit:=hit或psame(cur,track[int]);

结束;

如果长度& gt=200然后打:=真;

直到按键或击键;

如果打中了

其他

开始

如果psame(cur,food.fpoint)则

开始

case food . ft类型

通常:

开始

inc(分数);

inc(长度);

结束;

奖金:

开始

inc(score,food . bs core * 2);

inc(length,trunc(food . bs core * 2.5));

结束;

缩短:

开始

for int:= 1 to food . slength do

开始

pwrite(track[length-int+1],' ');

pset(track[length-int+1],0,0);

结束;

dec(长度、食物、长度);

结束;

结束;

textbackground(蓝色);

gotoxy(8,49);

写(分数* 10);

gotoxy(9,50);

textbackground(红色);

clreol

textbackground(蓝色);

写(长度+1);

textbackground(黑色);

newfood(食物);

结束;

ch:= read key;

第箱

#27:暂停;

#0:

开始

ch:= read key;

第箱

#72:{UP}

开始

if(cur . y & gt;1)和(dir & lt& gt向下)然后

开始

bin:=轨道[长度];

如果长度& lt那么=200

for int:= length-1 down to 1 do

轨道[int+1]:=轨道[int]

其他

for int:= 199 down to 1 do

track[int+1]:= track[int];

track[1]:= cur;

十二月(当前年);

newtrack

dir:= up;

结束

其他

如果目录& lt& gt下然后打:=真;

结束;

#75:{LEFT}

开始

if(cur . x & gt;1)和(dir & lt& gt对)然后

开始

bin:=轨道[长度];

如果长度& lt那么=200

for int:= length-1 down to 1 do

轨道[int+1]:=轨道[int]

其他

for int:= 199 down to 1 do

track[int+1]:= track[int];

track[1]:= cur;

dec(cur . x);

newtrack

dir:= left;

结束

其他

如果目录& lt& gt右然后击:=真;

结束;

#77:{RIGHT}

开始

if(cur . x & lt;80)和(dir & lt& gt左)然后

开始

bin:=轨道[长度];

如果长度& lt那么=200

for int:= length-1 down to 1 do

轨道[int+1]:=轨道[int]

其他

for int:= 199 down to 1 do

track[int+1]:= track[int];

track[1]:= cur;

Inc(cur . x);

newtrack

dir:= right;

结束

其他

如果目录& lt& gt左然后打:=真;

结束;

# 80:{向下}

开始

if(cur . y & lt;48)和(dir & lt& gt向上)然后

开始

bin:=轨道[长度];

如果长度& lt那么=200

for int:= length-1 down to 1 do

轨道[int+1]:=轨道[int]

其他

for int:= 199 down to 1 do

track[int+1]:= track[int];

track[1]:= cur;

Inc(cur . y);

newtrack

dir:= down;

结束

其他

如果目录& lt& gtup then hit:= true;

结束;

结束;

结束;

else if (ch='P ')或(ch='p') then

开始

ch:= read key;

如果ch=#0那么ch:= read key;

结束;

结束;

结束;

直到击中;

text mode(co80);

textbackground(黑色);

textcolor(黄色);

clrscr

写(# 219 # 219 # 219);

textcolor(浅红色);

写(# 2);

textcolor(黄色);

writeln('游戏结束!');

writeln(' Score:',Score * 10);

写('蛇长:');

如果长度& lt200然后writeln(长度+1)

else writeln(201);

writeln(' Press & lt;输入& gt退出...);

readln

结束。