编程一个最简单游戏_通过一个简单的数学游戏,清晰了解各大编程语言之间的一些区别...
我想很多人在小時候都玩過這么一個游戲,我記得以前的摩托羅拉的手機里面就有,那就是漢諾塔!
看到圖片是不是想起來玩過這個游戲呢?
漢諾塔:漢諾塔(又稱河內塔)問題是源于印度一個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。并且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤
今天除了用編程語言解決這個簡單數學問題以外,小編還發現其實實現同一個東西,使用不同的編程語言,可以看出它們之間的相似之處以及一些區別,接下來就看看各大編程語言是如何實現的吧。
Python
def?hanoi(n,?a,?b,?c):if?n?==?1:????????print(a,?'-->',?c)else:
????????hanoi(n?-?1,?a,?c,?b)
????????print(a,?'-->',?c)
????????hanoi(n?-?1,?b,?a,?c)#?調用
hanoi(5,?'A',?'B',?'C')
C
#include?#include?void?Hanoi(int?n,?char?a,char?b,char?c);void?Move(int?n,?char?a,?char?b);int?count;int?main(){int?n=8;printf("漢諾塔的層數:\n");scanf("?%d",&n);????Hanoi(n,?'A',?'B',?'C');
????sleep(20000);return?0;
}void?Hanoi(int?n,?char?a,?char?b,?char?c){if?(n?==?1)
????{
????????Move(n,?a,?c);
????}else
????{
????????Hanoi(n?-?1,?a,?c,?b);
????????Move(n,?a,?c);
????????Hanoi(n?-?1,?b,?a,?c);
????}
}void?Move(int?n,?char?a,?char?b){
????count++;printf("第%d次移動?Move?%d:?Move?from?%c?to?%c?!\n",count,n,a,b);
}
C#
using?System;class?HANOI{private?static?int?time?=?0;static?void?Main(string[]?args){
????????Hanoi(3,?"x",?"y",?"z");
????????Console.WriteLine(time?+?"?Times");
????????Console.ReadKey();
????}public?static?void?Hanoi(int?n,?string?x,?string?y,?string?z){if?(n?==?1)
????????{
????????????Console.WriteLine(x?+?"--->"?+?z);
????????????time++;
????????}else
????????{
????????????Hanoi(n?-?1,?x,?z,?y);
????????????Hanoi(1,?x,?y,?z);
????????????Hanoi(n?-?1,?y,?x,?z);
????????}
????}
}
Java
public?class?Hanoi?{/**????*?
????*?@param?n?盤子的數目
????*?@param?origin?源座
????*?@param?assist?輔助座
????*?@param?destination?目的座
????*/public?void?hanoi(int?n,?char?origin,?char?assist,?char?destination)?{if?(n?==?1)?{
????????????move(origin,?destination);
????????}?else?{
????????????hanoi(n?-?1,?origin,?destination,?assist);
????????????move(origin,?destination);
????????????hanoi(n?-?1,?assist,?origin,?destination);
????????}
????}//?Print?the?route?of?the?movementprivate?void?move(char?origin,?char?destination)?{
????????System.out.println("Direction:"?+?origin?+?"--->"?+?destination);
????}public?static?void?main(String[]?args)?{
????????Hanoi?hanoi?=?new?Hanoi();
????????hanoi.hanoi(3,?'A',?'B',?'C');
????}
}
PHP
<?php function?hanoi($n,$x,$y,$z){if($n==1){????????move($x,1,$z);
????}else{
????????hanoi($n-1,$x,$z,$y);
????????move($x,$n,$z);
????????hanoi($n-1,$y,$x,$z);
????}
}function?move($x,$n,$z){echo'movedisk'.$n.'from'.$x.'to'.$z.'
';
}
hanoi(10,'x','y','z');?>
Pascal
var?m:integer;procedure?move(getone,putone:char);begin?writeln(getone,'->',putone)?end;procedure?hanoi(n:integer;one,two,three:char);beginif?n=1?then?move(one,three)?elsebeginhanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three)endend;begin
readln(m);write('the?step?to?moving?disks:');
writeln;
hanoi(m,'A','B','C')end.
通過上面的實現代碼,我們很容易發現,Python語言的使用代碼量是最少的,也是最為簡潔的,并沒有那么多的()和{},所以對于很對想要學習編程語言的小伙伴們,小編是非常建議大家學習Python入門的,畢竟對新手還是非常的友好的!
雖然它們的語法可能是存在一些差異,但是實現效果的邏輯思維還是一樣的呀,所以一法通萬法通!
最后再說一句(主要針對那些杠精^.^)
這并沒有說專門棒哪個編程語言,也沒有說貶低哪個編程語言,因為每一個編程語言都有自己的特點以及擅長的領域,Python代碼特點就是簡潔,這個是我們不能反駁的。
每一個編程語言都有其擅長的領域,比如:
Java擅長的領域:
網頁, 企業級開發, 普通應用軟件, 游戲后臺
C/C++擅長的領域:
C: 系統底層, 驅動, 嵌入式開發.
C++: 游戲開發, 大規模, 高性能, 分布式要求的程序開發。
PHP擅長的領域:
網絡前端,用于生成網頁。也可以整個web服務器都用php,比如很多論壇引擎。
Python擅長的領域:
服務器開發與物聯網開發。信息安全,大數據處理,數據可視化機器學習,物聯網開發,各大軟件的api,桌面應用
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持
總結
以上是生活随笔為你收集整理的编程一个最简单游戏_通过一个简单的数学游戏,清晰了解各大编程语言之间的一些区别...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 响应事件,用java响应颜色事
- 下一篇: Spring框架概述(快速入门)