정모/2011.4.4/CodeRace (rev. 1.6)
- PairProgramming
- 1,2학년-3,4학년이 한 팀을 이룬다.
- 두명이 하나의 모니터를 보고 하나의 키보드로 프로그래밍 해야 한다.
- 역할
- Navigator : Driver에게 어떻게 해야할지 알려주는 역할. 키보드를 직접 잡지 않는다.
- Driver : Navigator가 알려주는대로 실제 코딩하는 역할. Navigator의 지시 없이 혼자 코딩하지 않는다.
- 3분마다 역할을 바꾸는데 스위치 모션을 취한 뒤 자리를 바꿔야 한다.
- 배경
- A마을과 B마을 사이에는 강이 있다.
- 배를 타지 않고 강을 건널 수 없다.
- 등장하는 모든 인물이 강을 건너 다른 마을로 가야한다.
- 진행
- 레이튼 교수가 A마을에서 배를 타고 강을 건너 B마을로 간다.
- 레이튼 교수가 A마을에 있다면 B마을로, B마을에 있다면 A마을로 간다.
- 루크의 등장
- 루크는 어려서 혼자서는 배를 탈 수 없다.
- 나쁜 아저씨 등장
- 나쁜 아저씨는 레이튼 교수가 없으면 루크를 강에 던져버린다.
- 알고보니 배가 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);
}
}