本文目录
关于pascal 游戏
先贴进文本文件(即:txt),然后把文件的扩展名直接改成“.pas”,直接拉进fp里,运行产生exe文件,直接使用就好了。如果出错,要重新弄一个文本文件,重复操作。只要那个代码可以用,这样操作就没问题。我已经试过好几次了。
pascal 井字游戏
var //游戏规则:先下者为P1,后下者为P2。至多下9步,下满为止。i,j,x,y,k:longint;t:array of char=(’*’,’0’);a:array of char;function win(n1:longint):boolean; //判断是否有人已经赢了var j,l:longint;begin win:=false; l:=n1 mod 2; //由第几次下判断赢的人是谁 for j:=1 to 3 do begin if (a《》’+’) then//横排 begin writeln(’P’,2-l,’ win!’); win:=true; exit; end; if (a《》’+’) then//竖排 begin writeln(’P’,2-l,’ win!’); win:=true; exit; end; if (a《》’+’) then//斜排 begin writeln(’P’,2-l,’ win!’); win:=true; exit; end; if (a《》’+’) then//斜排 begin writeln(’P’,2-l,’ win!’); win:=true; exit; end; end;end;begin for i:=1 to 3 do for j:=1 to 3 do a:=’+’; k:=0; while k《9 do begin readln(x,y); //判断此点是否下过 inc(k); if a《》’+’ then begin dec(k); for i:=1 to 3 do begin for j:=1 to 3 do write(a); writeln; end; end else begin a; for i:=1 to 3 do begin for j:=1 to 3 do write(a); writeln; end; if win(k) then exit; //已有人赢则退出 end; end; writeln(’Ping’); //平手end.
pascal程序写游戏
var i,r,n,s:integer; f:boolean;begin f:=false; randomize; s:=1; r:=random(1000)+1; while f《》true do begin readln(n); if n=r then f:=true; if n《r then writeln(’low’); if n》r then writeln(’hign’); if n《》r then s:=s+1; end; case s of 1:writeln(’good!’); 2,3,4:writeln(’genius!’); 5,6,7,8,9,10:writeln(’good!’); else writeln(’stupid!’); end; readln;end.放心,我验证过了,求采纳啊!
求教pascal编程题目“扫雷游戏”
思路:针对每一个点,列出它的所有可能,然后相邻点比较删除掉不相容的即得到结果。
pascalswger伊琳娜在哪
找敲钟人那个大桥往回走,可以看到一块石碑,伊琳娜就在这附近。
女人就在附近,你进来左手铁门打开去杀了敲钟的对吧;左手铁门的位置继续往前走右转走到底能看到一个铁栅栏里面有个棺材;往左边走有块大石碑,正常来说女人就站在那,也可能直接进大门了。
完成与伊琳娜的交易,任务介绍:不管真相如何,这个装神弄鬼的敲钟人已经倒下。一切都已经结束,秦伦斯捡起弗罗洛那张染血的覆面作为信物,回身前往伊琳娜所在的审判庭。伊迪斯的事情就告一段落了,泰伦斯想着那座通往赐福之地的大桥加快了脚步。
游戏简介。
帕斯卡契约是一款极度Hardcore的魂系动作冒险游戏。游戏中描述一个古老的国度,在那没有了太阳,而是一尊尊的光明巨象。人们跟随着巨象一同生活了千百年,然而一场莫名的瘟疫袭来,使得巨象纷纷倒下,人们也受到了奇特的污染体感染。
而玩家扮演的剑士先驱者泰伦斯发觉此事似乎和他的妻子特蕾莎有关,只好跟着其他先驱者一同前往调查,踏上一段救赎之路。
pascal题目:游戏
这题也许是贪心算法的一个简单应用 。
一开始我是这么想的:
但是马上就推翻了这种简单的算法:
如果给第一个人7颗糖,第二个人3颗,那么生气指数是:
尽管上述看似对于解题没太大帮助,但是了解一个思考过程我觉得也是有必要的。
事实上,它启发了我找到下面这个应该正确的算法。
——————————————————————————————————————
36,比一开始的55小了很多。
事实上,经过验证,36是这一个例子中最小的结果。
(用以上算法验证一下样例,得到的也是正确答案)
贪心的算法一旦确定,代码应该就好写了。
目前摆在面前的一道坎,是数据范围。那么大的数,一个个减去一定会超时,因此用了一点技巧。
写了很久的代码,看一下:
var a:arrayof record x,y:longint; //记录类型,x表示理想糖数,y表示实际收到糖数; end; s,ans:int64; m,n,i,j,t:longint;procedure sort(l,r:longint); //快速排序,从小到大;var i,j,k,t:longint;begin i:=l; j:=r; k:=a.x; repeat while a.x《k do inc(i); while a.x》k do dec(j); if i《=j then begin t:=a.x:=t; inc(i); dec(j); end; until i》j; if i《r then sort(i,r); if l《j then sort(l,j);end;begin readln(m,n); for i:=1 to n do begin readln(a.x); a.x; inc(s,a.x); end; sort(1,n); for i:=1 to n do a.x; i:=0; while true do begin inc(i); t:=a.y; while (s-t*(n-i+1)《m) and (t》0) do dec(t); dec(s,t*(n-i+1)); if t》0 then for j:=i to n do dec(a.y,t) else break; end; //代码核心; while s》m do begin dec(a.y); inc(i); dec(s); end; for i:=1 to n do inc(ans,trunc(sqr(a.y))); writeln(ans); //最终结果;
readln;end.
或者直接从附件中下载。