U E D R , A S I H C RSS

�수/Smalltalk

구구단

~cpp 
from: aFrom to: aTo
	| a b |
	a := aFrom.
	b := 1.
	[a <= aTo] whileTrue: [
		[b <= 9] whileTrue:[
			Transcript cr; show: a; show: ' * '; show: b; show: ' = '; show: a*b; printString.
			b := b + 1.
		].
		a := a + 1.
		b := 1.
		Transcript cr.
	].
  • 그냥 간단히...

랜�워�

  • 머리ì—� ì¥�나는줄 알았다.--; 사소한거 하나로 삽질한게 몇가진지... --; 문법ì�´ 왜 ì�´ë¦¬ 하ë�˜ê±°ëž‘ 다른지.;;

~cpp 
RWBoard>>initialize: aSize
	size := aSize.
	numsOfWalked := Array2D width:size height:size.
	numsOfWalked atAllPut:0.

RWBoard>>isAllPut
	numsOfWalked do: [ :val | val = 0 ifTrue: [^false] ].
	^true.
		
RWBoard>>row: aRow col: aCol
	| numOfWalked |
	numOfWalked _ numsOfWalked at: aRow at: aCol.
	numsOfWalked at: aRow at:aCol put: numOfWalked + 1.

RWBoard>>setValidLocation: num
	| newValue |
	newValue := num + 3 atRandom - 2.
	newValue = 0 ifTrue: [newValue := 1].
	newValue = (1 + size) ifTrue: [newValue := size].
	^newValue.

RWBoard Class>>make: aSize
	^self new initialize:aSize.
~cpp 
RWRoach>>abroad: aBoard row: aRow col: aCol
	totalWalked := 1.
	curRow _ aRow.
	curCol _ aCol.
	aBoard row: aRow col: aCol.

RWRoach>>moveOne: aBoard
	totalWalked _ totalWalked + 1.
	self selectDirection: aBoard.
	aBoard row:curRow col:curCol.
	
RWRoach>>selectDirection: aBoard
	curRow := aBoard setValidLocation: curRow.
	curCol := aBoard setValidLocation: curCol.

RWRoach>>traverse: aBoard
	[ aBoard isAllPut = false. ] whileTrue: [ self moveOne:aBoard. ].

~cpp 
b := RWBoard make:5.
r := RWRoach new.
r abroad:b row:1 col:1.
r traverse:b.
  • 짜놓고 ìƒ�ê°� : ì�´ê±´ 스몰토í�¬í”„로그래ë°�ì�´ 아니다. C++/Javaì�˜ 냄새가 너무 ë§Žì�´ 나는것 같다. ë€ë„ë€ë„ì�„ 좀ë�” 간단하게 í•  수 있ì�„것 같기ë�„ 하다. ì±…ì�„ ë�” ë´�야 할듯 싶다. ì�¸ìŠ¤í„´ìŠ¤ ìƒ�성할때ë�„ ì�¸ìž�를 넘겨 ë°›ì�„ 수 있ì�„ í…�ë�° 잘 안ë�œë‹¤.(지금 보니까 그렇게 하지 ë§�ë�¼ 한다. 대충 찾아보니 팩토리 메소드를 ë§Žì�´ 쓰는것 같다. ë˜� í�´ëž˜ìФ 메소드 만드는법 알아낼ë�¼ê³  줄기차게 삽질ì�„ 했다.--;) doë�¼ëŠ” 좋ì�€ê²Œ 있었군.
  • 스퀵 소스 옮기기 너무 힘들다. ã… .ã…  좀 ë�” 커지면 어떻게 ë� ì§€... í�‘ ã… .ã… 
  • 따로따로 있ì�„ë•� 몰ëž�는ë�° 지금 보니까 중복ë�„ 있다.--; 제길
  • 2ì°¨ì›� ë°°ì—´ í�´ëž˜ìŠ¤ê°€ 있었다. ë ˆí�¼ëŸ°ìŠ¤ë¥¼ 잘 찾아보고 하ìž�. ì�´ì œ 조금 볼만하구나.
  • ì�´ì œ SBPP를 ë³¼ 수 있ì�„듯 하다.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:35
Processing time 0.0823 sec