U E D R , A S I H C RSS

정모/2011.4.4/Code Race

레이튼 교수와 함께 하는 CodeRace

  • PairProgramming
    • 1,2학년-3,4학년이 한 팀을 이룬다.
    • 두명이 하나의 모니터를 보고 하나의 키보드로 프로그래밍 해야 한다.
  • 역할
    • Navigator : Driver에게 어떻게 해야할지 알려주는 역할. 키보드를 직접 잡지 않는다.
    • Driver : Navigator가 알려주는대로 실제 코딩하는 역할. Navigator의 지시 없이 혼자 코딩하지 않는다.
    • 3분마다 역할을 바꾸는데 스위치 모션을 취한 뒤 자리를 바꿔야 한다.
  • 배경
    • A마을과 B마을 사이에는 강이 있다.
    • 배를 타지 않고 강을 건널 수 없다.
    • 등장하는 모든 인물이 강을 건너 다른 마을로 가야한다.

    1. 레이튼 교수가 A마을에서 배를 타고 강을 건너 B마을로 간다.
    2. 레이튼 교수가 A마을에 있다면 B마을로, B마을에 있다면 A마을로 간다.
    3. 루크의 등장
      1. 루크는 어려서 혼자서는 배를 탈 수 없다.
    4. 나쁜 아저씨 등장
      1. 나쁜 아저씨는 레이튼 교수가 없으면 루크를 강에 던져버린다.
    5. 알고보니 배가 2인승이었다.
  • 내가 이걸 진상황을 다 알고 다시 프로그래밍한다면...

쓰레기

public class person {

	static private String name = "";
	static boolean isOnShip;
	public String city;
	
	public person(String name){this.name = name;}
	public void moveCity(){
		// A->B, B->A
		if(isOnShip != true)
			return;
		
		if(city == "A"){
			city = "B";
	
		}else if(city == "B"){
			city = "A";
		}
		isOnShip = false;

	System.out.println(name + "은/는 지금 "+city+"에있다");
	}
}
public class Raton {

	private static String city = "A";
	
	
	public static void main(String[] args) {
		// A -> B
//		System.out.println(city);
//		city = "B";
//		System.out.println(city);
//		
//		// A->B, B->A
//		if(city == "A"){
//			city = "B";
//		}else if(city == "B"){
//			city = "A";
//		}
//		System.out.println(city);
//		
		// 2인승 배
		person Luke = new person("루크");
		person Raton = new person("레이튼");
		person Bad = new person("나쁜아저씨");
		
		Luke.city = "A";
		Raton.city = "A";
		Bad.city = "A";

		Luke.isOnShip = true;
		Raton.isOnShip = true;
		
		Luke.moveCity();
		Raton.moveCity();
		
		Raton.moveCity();
		
	}
}

핸드폰이 죽었슴다

#include<iostream>
using namespace std;

void main(){
	char location1 = 'A';
	char location2 = 'A';
	char location3 = 'A';
	
	while (1) {
	cout << "레이튼의 현재 위치 " << location1 << endl;
	cout << "루크의 현재 위치 " << location2 << endl;
	cout << "나쁜 아저씨의 현재 위치 " << location3 << endl;

	int i1 = -1, i2 = -1;
		
	cout << "배에 탈 사람은? (레이튼:1, 루크:2, 나쁜아저씨:3, 끝:0) ";
		cin >> i1;
		cin >> i2;
		if(i1 == 1 && i2 == 2){
			location1 = location1=='B'?'A':'B';
			location2 = location2=='B'?'A':'B';
		}
		if (i1 == 2 && i2 == 3){
			location2 = location2=='B'?'A':'B';
			location3 = location3=='B'?'A':'B';
		}
		if (i1 == 1 && i2 == 3){
			location1 = location1=='B'?'A':'B';
			location3 = location3=='B'?'A':'B';
		}
		if (i1 == 1 && i2 == 0) location1 = location1=='B'?'A':'B';
		if (i1 == 2 && i2 == 0) location2 = location2=='B'?'A':'B';
		if (i1 == 3 && i2 == 0) location3 = location3=='B'?'A':'B';
		if (location1 != location2 && location2 == location3) {
			cout << "루크가 죽었슴다 ㅡㅡ" << endl;
			return;
		}
	cout << endl;
	}
}

Untitled.txt


#include <stdio.h>


typedef struct _h {
	int id;
} human;

typedef struct _t {
	human h[3];
} town;

int main(int argc, const char **argv) {
	human raten, ruke, bad, pl1, pl2, pl3;
	town a, b;
	
	a.h[0] = raten;
	a.h[1] = ruke;
	a.h[2] = bad;
	
	b.h[0] =a.h[0];
	b.h[1]=a.h[1];
	a.h[0]=pl1;
	a.h[1]=pl2;
	
	a.h[0]=b.h[0];
	b.h[0]=pl1;
	
	b.h[0]=a.h[0];
	b.h[2]=a.h[2];
	a.h[0]=pl1;
	a.h[2]=pl3;
	
	return 0;
}

기생충

public class Ship {
	
	public int maxNum;
	public int cur;
	
	public Ship(int n){
		maxNum = n;
		cur = 0;
	}
	public void take(){
		cur++;
	}
	public void getOff(){
		cur--;
	}
	public boolean cross(){
		return (maxNum >= cur);
	}
}


public class BadUncle {
	public boolean location;
	
	public BadUncle(){location = true;}
	
	public void ThrowRook(ProfessorR r, Child c) {
		if( r.location != c.location && location == c.location )
			killRook();
	}

	public void crossRiver() {
		if(location) location = false;
		else location = true;
	}
	
	public void printLocation() {
		String str = (location)? "A" : "B";
		System.out.println("Uncle loc : " + str);
	}

	private void killRook() {
		System.out.println("루크 죽음 ㅋ");		
	}	

}


public class Child {
	public boolean location;
	
	public Child() {
		location = true;
	}
	
	public void crossRiver(ProfessorR r) {
		if( r.location == location ) {
			if(location) {
				location = false;
				r.location = false;
			}
			else {
				location = true;
				r.location = true;
			}
		}
	}
	
	public void printLocation() {
		String str = (location)? "A" : "B";
		System.out.println("Child loc : " + str);
	}
}


public class ProfessorR {
	public boolean location;
	
	public ProfessorR() {
		location = true;
	}
	
	public void crossRiver() {
		if(location) location = false;
		else location = true;
	}
	
	public void printLocation() {
		String str = (location)? "A" : "B";
		System.out.println("Professor loc : " + str);
	}
	
	public static void main(String[] args) {
		ProfessorR test = new ProfessorR();
		Child rook = new Child();
		test.printLocation();
		test.crossRiver();
		test.printLocation();
		test.crossRiver();
		test.printLocation();
		rook.printLocation();
		rook.crossRiver(test);
		rook.printLocation();
		test.printLocation();
		
		BadUncle b = new BadUncle();
		
		test.crossRiver();
		b.crossRiver();
		test.printLocation();
		b.printLocation();
		rook.printLocation();
		b.ThrowRook(test, rook);
		
	}


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